From e1051aececa7700e5f71d046d9166b49f58854c4 Mon Sep 17 00:00:00 2001 From: "siniidrozd@gmail.com" Date: Fri, 7 Jul 2017 06:53:51 +0300 Subject: [PATCH 01/41] Update for angular 4 --- README.md | 8 +++++--- package.json | 48 +++++++++++++++++++++++++++++++----------------- tsconfig.json | 10 +++++++++- 3 files changed, 45 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 370776d..ff9962d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -## Angular 2 Data Table +## Angular 4 Data Table -A simple Angular 2 data table, with built-in solutions for features including: +It is fork of this package [https://github.com/ggmod/angular-2-data-table] (https://github.com/ggmod/angular-2-data-table) + +A simple Angular 4 data table, with built-in solutions for features including: * pagination * sorting @@ -16,7 +18,7 @@ The templates use bootstrap CSS class names, so the component requires a bootstr Check out the [demo](https://ggmod.github.io/angular-2-data-table-demo) and its [code](https://github.com/ggmod/angular-2-data-table-demo) for examples of how to use it. ## Installing: -`npm install angular-2-data-table --save` +`npm install angular-4-data-table --save` #### Licensing diff --git a/package.json b/package.json index 570f02c..31bf508 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { - "name": "angular-2-data-table", - "version": "0.1.2", - "description": "An Angular 2 data table, with pagination, sorting, expandable rows etc.", + "name": "angular-4-data-table", + "version": "0.1.3", + "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", - "angular2", - "Angular 2", + "angular4", + "Angular 4", "ng2", "datatable", "data-table", @@ -15,24 +15,38 @@ "main": "dist/index.js", "typings": "dist/index.d.ts", "scripts": { - "build": "rm -rf dist/* && tsc", - "serve": "rm -rf dist/ && tsc -w", + "build": "tsc", + "serve": "tsc -w", "prepublish": "npm run build" }, "repository": { "type": "git", - "url": "git://git@github.com/ggmod/angular-2-data-table.git" + "url": "git+https://github.com/MIt9/angular-4-data-table.git" }, "peerDependencies": { - "@angular/core": "^2.0.0" + "@angular/core": "^4.0.1" }, - "author": "ggmod ", + "author": "Dmitrii Bilukha (http://donsamogon.com)", "license": "MIT", - "devDependencies": { - "@angular/common": "^2.0.0", - "@angular/core": "^2.0.0", - "@angular/forms": "^2.0.0", - "rxjs": "^5.0.0-beta.12", - "typescript": "^2.0.2" - } + "devDependencies": {}, + "dependencies": { + "@angular/common": "^4.0.1", + "@angular/compiler": "^4.0.1", + "@angular/compiler-cli": "^4.0.1", + "@angular/forms": "^4.0.1", + "@angular/core": "^4.0.1", + "@angular/platform-browser": "^4.0.1", + "@angular/platform-browser-dynamic": "^4.0.1", + "@angular/platform-server": "^4.0.1", + "rxjs": "^5.1.0", + "@types/node": "~6.0.60", + "zone.js": "^0.8.4", + "ts-node": "~2.0.0", + "typescript": "~2.1.5" + }, + "false": {}, + "bugs": { + "url": "https://github.com/MIt9/angular-4-data-table/issues" + }, + "homepage": "https://github.com/MIt9/angular-4-data-table#readme" } diff --git a/tsconfig.json b/tsconfig.json index afa16d1..6ef5b30 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compileOnSave": false, "compilerOptions": { - "declaration": true, + "declaration": false, "emitDecoratorMetadata": true, "experimentalDecorators": true, "mapRoot": "/", @@ -9,10 +9,18 @@ "moduleResolution": "node", "noEmitOnError": true, "noImplicitAny": false, + "preserveConstEnums": true, "outDir": "dist/", "rootDir": "src/", "sourceMap": true, "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2016", + "dom" + ], "inlineSources": true }, "exclude": [ From 1fec92e131a689f219a019d866d66dcd28461818 Mon Sep 17 00:00:00 2001 From: "siniidrozd@gmail.com" Date: Fri, 7 Jul 2017 07:42:27 +0300 Subject: [PATCH 02/41] Update for angular 4 --- package.json | 12 ++++++------ tsconfig.json | 4 ++-- typings.json | 7 ------- 3 files changed, 8 insertions(+), 15 deletions(-) delete mode 100644 typings.json diff --git a/package.json b/package.json index 31bf508..f390f74 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "url": "git+https://github.com/MIt9/angular-4-data-table.git" }, "peerDependencies": { - "@angular/core": "^4.0.1" + "@angular/core": "^4.0.1.1" }, "author": "Dmitrii Bilukha (http://donsamogon.com)", "license": "MIT", @@ -33,16 +33,16 @@ "@angular/common": "^4.0.1", "@angular/compiler": "^4.0.1", "@angular/compiler-cli": "^4.0.1", - "@angular/forms": "^4.0.1", "@angular/core": "^4.0.1", - "@angular/platform-browser": "^4.0.1", + "@angular/forms": "^4.0.1", + "@angular/platform-browser": "^4.2.5", "@angular/platform-browser-dynamic": "^4.0.1", "@angular/platform-server": "^4.0.1", - "rxjs": "^5.1.0", "@types/node": "~6.0.60", - "zone.js": "^0.8.4", + "rxjs": "^5.1.0", "ts-node": "~2.0.0", - "typescript": "~2.1.5" + "typescript": "2.1.5", + "zone.js": "^0.8.12" }, "false": {}, "bugs": { diff --git a/tsconfig.json b/tsconfig.json index 6ef5b30..3a58908 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { - "compileOnSave": false, + "compileOnSave": true, "compilerOptions": { - "declaration": false, + "declaration": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "mapRoot": "/", diff --git a/typings.json b/typings.json deleted file mode 100644 index b0bb089..0000000 --- a/typings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "angular-2-data-table", - "dependencies": {}, - "globalDevDependencies": { - "es6-shim": "registry:dt/es6-shim#0.31.2+20160602141504" - } -} From 0abd8be5af9c7dfec2ab918e4fca8c6d8417b77f Mon Sep 17 00:00:00 2001 From: "siniidrozd@gmail.com" Date: Tue, 1 Aug 2017 05:59:51 +0300 Subject: [PATCH 03/41] pre compile --- .gitignore | 4 +- dist/components/column.component.d.ts | 19 + dist/components/column.component.js | 91 ++++ dist/components/column.component.js.map | 1 + dist/components/header.component.d.ts | 7 + dist/components/header.component.js | 41 ++ dist/components/header.component.js.map | 1 + dist/components/header.style.d.ts | 1 + dist/components/header.style.js | 3 + dist/components/header.style.js.map | 1 + dist/components/header.template.d.ts | 1 + dist/components/header.template.js | 3 + dist/components/header.template.js.map | 1 + dist/components/pagination.component.d.ts | 12 + dist/components/pagination.component.js | 73 +++ dist/components/pagination.component.js.map | 1 + dist/components/pagination.style.d.ts | 1 + dist/components/pagination.style.js | 3 + dist/components/pagination.style.js.map | 1 + dist/components/pagination.template.d.ts | 1 + dist/components/pagination.template.js | 3 + dist/components/pagination.template.js.map | 1 + dist/components/row.component.d.ts | 16 + dist/components/row.component.js | 81 ++++ dist/components/row.component.js.map | 1 + dist/components/row.style.d.ts | 1 + dist/components/row.style.js | 3 + dist/components/row.style.js.map | 1 + dist/components/row.template.d.ts | 1 + dist/components/row.template.js | 3 + dist/components/row.template.js.map | 1 + dist/components/table.component.d.ts | 79 +++ dist/components/table.component.js | 456 ++++++++++++++++++ dist/components/table.component.js.map | 1 + dist/components/table.style.d.ts | 1 + dist/components/table.style.js | 3 + dist/components/table.style.js.map | 1 + dist/components/table.template.d.ts | 1 + dist/components/table.template.js | 3 + dist/components/table.template.js.map | 1 + dist/index.d.ts | 15 + dist/index.js | 48 ++ dist/index.js.map | 1 + dist/tools/data-table-resource.d.ts | 7 + dist/tools/data-table-resource.js | 48 ++ dist/tools/data-table-resource.js.map | 1 + dist/types/cell-callback.type.d.ts | 3 + dist/types/cell-callback.type.js | 2 + dist/types/cell-callback.type.js.map | 1 + dist/types/data-table-params.type.d.ts | 6 + dist/types/data-table-params.type.js | 2 + dist/types/data-table-params.type.js.map | 1 + dist/types/data-table-translations.type.d.ts | 7 + dist/types/data-table-translations.type.js | 2 + .../types/data-table-translations.type.js.map | 1 + dist/types/default-translations.type.d.ts | 2 + dist/types/default-translations.type.js | 9 + dist/types/default-translations.type.js.map | 1 + dist/types/row-callback.type.d.ts | 2 + dist/types/row-callback.type.js | 2 + dist/types/row-callback.type.js.map | 1 + dist/utils/drag.d.ts | 6 + dist/utils/drag.js | 31 ++ dist/utils/drag.js.map | 1 + dist/utils/hide.d.ts | 10 + dist/utils/hide.js | 51 ++ dist/utils/hide.js.map | 1 + dist/utils/min.d.ts | 4 + dist/utils/min.js | 23 + dist/utils/min.js.map | 1 + dist/utils/px.d.ts | 4 + dist/utils/px.js | 31 ++ dist/utils/px.js.map | 1 + package.json | 5 +- src/components/column.component.ts | 2 +- src/components/table.component.ts | 7 +- src/components/types.ts | 34 -- src/index.ts | 13 +- src/tools/data-table-resource.ts | 2 +- src/types/cell-callback.type.ts | 4 + src/types/data-table-params.type.ts | 6 + src/types/data-table-translations.type.ts | 7 + src/types/default-translations.type.ts | 9 + src/types/row-callback.type.ts | 3 + tsconfig.json | 5 +- 85 files changed, 1297 insertions(+), 50 deletions(-) create mode 100644 dist/components/column.component.d.ts create mode 100644 dist/components/column.component.js create mode 100644 dist/components/column.component.js.map create mode 100644 dist/components/header.component.d.ts create mode 100644 dist/components/header.component.js create mode 100644 dist/components/header.component.js.map create mode 100644 dist/components/header.style.d.ts create mode 100644 dist/components/header.style.js create mode 100644 dist/components/header.style.js.map create mode 100644 dist/components/header.template.d.ts create mode 100644 dist/components/header.template.js create mode 100644 dist/components/header.template.js.map create mode 100644 dist/components/pagination.component.d.ts create mode 100644 dist/components/pagination.component.js create mode 100644 dist/components/pagination.component.js.map create mode 100644 dist/components/pagination.style.d.ts create mode 100644 dist/components/pagination.style.js create mode 100644 dist/components/pagination.style.js.map create mode 100644 dist/components/pagination.template.d.ts create mode 100644 dist/components/pagination.template.js create mode 100644 dist/components/pagination.template.js.map create mode 100644 dist/components/row.component.d.ts create mode 100644 dist/components/row.component.js create mode 100644 dist/components/row.component.js.map create mode 100644 dist/components/row.style.d.ts create mode 100644 dist/components/row.style.js create mode 100644 dist/components/row.style.js.map create mode 100644 dist/components/row.template.d.ts create mode 100644 dist/components/row.template.js create mode 100644 dist/components/row.template.js.map create mode 100644 dist/components/table.component.d.ts create mode 100644 dist/components/table.component.js create mode 100644 dist/components/table.component.js.map create mode 100644 dist/components/table.style.d.ts create mode 100644 dist/components/table.style.js create mode 100644 dist/components/table.style.js.map create mode 100644 dist/components/table.template.d.ts create mode 100644 dist/components/table.template.js create mode 100644 dist/components/table.template.js.map create mode 100644 dist/index.d.ts create mode 100644 dist/index.js create mode 100644 dist/index.js.map create mode 100644 dist/tools/data-table-resource.d.ts create mode 100644 dist/tools/data-table-resource.js create mode 100644 dist/tools/data-table-resource.js.map create mode 100644 dist/types/cell-callback.type.d.ts create mode 100644 dist/types/cell-callback.type.js create mode 100644 dist/types/cell-callback.type.js.map create mode 100644 dist/types/data-table-params.type.d.ts create mode 100644 dist/types/data-table-params.type.js create mode 100644 dist/types/data-table-params.type.js.map create mode 100644 dist/types/data-table-translations.type.d.ts create mode 100644 dist/types/data-table-translations.type.js create mode 100644 dist/types/data-table-translations.type.js.map create mode 100644 dist/types/default-translations.type.d.ts create mode 100644 dist/types/default-translations.type.js create mode 100644 dist/types/default-translations.type.js.map create mode 100644 dist/types/row-callback.type.d.ts create mode 100644 dist/types/row-callback.type.js create mode 100644 dist/types/row-callback.type.js.map create mode 100644 dist/utils/drag.d.ts create mode 100644 dist/utils/drag.js create mode 100644 dist/utils/drag.js.map create mode 100644 dist/utils/hide.d.ts create mode 100644 dist/utils/hide.js create mode 100644 dist/utils/hide.js.map create mode 100644 dist/utils/min.d.ts create mode 100644 dist/utils/min.js create mode 100644 dist/utils/min.js.map create mode 100644 dist/utils/px.d.ts create mode 100644 dist/utils/px.js create mode 100644 dist/utils/px.js.map delete mode 100644 src/components/types.ts create mode 100644 src/types/cell-callback.type.ts create mode 100644 src/types/data-table-params.type.ts create mode 100644 src/types/data-table-translations.type.ts create mode 100644 src/types/default-translations.type.ts create mode 100644 src/types/row-callback.type.ts diff --git a/.gitignore b/.gitignore index 2d45d27..5754d02 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ -/dist /tmp /node_modules /.idea /typings -npm-debug.log \ No newline at end of file +npm-debug.log +package-lock.json \ No newline at end of file diff --git a/dist/components/column.component.d.ts b/dist/components/column.component.d.ts new file mode 100644 index 0000000..f71c9ef --- /dev/null +++ b/dist/components/column.component.d.ts @@ -0,0 +1,19 @@ +import { OnInit } from '@angular/core'; +import { DataTableRow } from './row.component'; +import { CellCallback } from '../types/cell-callback.type'; +export declare class DataTableColumn implements OnInit { + header: string; + sortable: boolean; + resizable: boolean; + property: string; + styleClass: string; + cellColors: CellCallback; + width: number | string; + visible: boolean; + cellTemplate: any; + headerTemplate: any; + getCellColor(row: DataTableRow, index: number): string; + private styleClassObject; + ngOnInit(): void; + private _initCellClass(); +} diff --git a/dist/components/column.component.js b/dist/components/column.component.js new file mode 100644 index 0000000..cffc126 --- /dev/null +++ b/dist/components/column.component.js @@ -0,0 +1,91 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = require("@angular/core"); +var DataTableColumn = (function () { + function DataTableColumn() { + this.sortable = false; + this.resizable = false; + this.visible = true; + this.styleClassObject = {}; // for [ngClass] + } + DataTableColumn.prototype.getCellColor = function (row, index) { + if (this.cellColors !== undefined) { + return this.cellColors(row.item, row, this, index); + } + }; + DataTableColumn.prototype.ngOnInit = function () { + this._initCellClass(); + }; + DataTableColumn.prototype._initCellClass = function () { + if (!this.styleClass && this.property) { + if (/^[a-zA-Z0-9_]+$/.test(this.property)) { + this.styleClass = 'column-' + this.property; + } + else { + this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, ''); + } + } + if (this.styleClass != null) { + this.styleClassObject = (_a = {}, + _a[this.styleClass] = true, + _a); + } + var _a; + }; + return DataTableColumn; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTableColumn.prototype, "header", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "sortable", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "resizable", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTableColumn.prototype, "property", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTableColumn.prototype, "styleClass", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Function) +], DataTableColumn.prototype, "cellColors", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "width", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "visible", void 0); +__decorate([ + core_1.ContentChild('dataTableCell'), + __metadata("design:type", Object) +], DataTableColumn.prototype, "cellTemplate", void 0); +__decorate([ + core_1.ContentChild('dataTableHeader'), + __metadata("design:type", Object) +], DataTableColumn.prototype, "headerTemplate", void 0); +DataTableColumn = __decorate([ + core_1.Directive({ + selector: 'data-table-column' + }) +], DataTableColumn); +exports.DataTableColumn = DataTableColumn; +//# sourceMappingURL=/components/column.component.js.map \ No newline at end of file diff --git a/dist/components/column.component.js.map b/dist/components/column.component.js.map new file mode 100644 index 0000000..d9bbc13 --- /dev/null +++ b/dist/components/column.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAuE;AAQvE,IAAa,eAAe;IAH5B;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IACL,sBAAC;AAAD,CAAC,AA5CD,IA4CC;AAzCY;IAAR,YAAK,EAAE;;+CAAgB;AACf;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;kDAAmB;AAClB;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;mDAAoB;AACnB;IAAR,YAAK,EAAE;;mDAA0B;AAGzB;IAAR,YAAK,EAAE;;8CAAwB;AACvB;IAAR,YAAK,EAAE;;gDAAgB;AAEO;IAA9B,mBAAY,CAAC,eAAe,CAAC;;qDAAc;AACX;IAAhC,mBAAY,CAAC,iBAAiB,CAAC;;uDAAgB;AAfvC,eAAe;IAH3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;GACW,eAAe,CA4C3B;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\r\nimport { DataTableRow } from './row.component';\r\nimport { CellCallback } from '../types/cell-callback.type';\r\n\r\n\r\n@Directive({\r\n selector: 'data-table-column'\r\n})\r\nexport class DataTableColumn implements OnInit {\r\n\r\n // init:\r\n @Input() header: string;\r\n @Input() sortable = false;\r\n @Input() resizable = false;\r\n @Input() property: string;\r\n @Input() styleClass: string;\r\n @Input() cellColors: CellCallback;\r\n\r\n // init and state:\r\n @Input() width: number | string;\r\n @Input() visible = true;\r\n\r\n @ContentChild('dataTableCell') cellTemplate;\r\n @ContentChild('dataTableHeader') headerTemplate;\r\n\r\n getCellColor(row: DataTableRow, index: number) {\r\n if (this.cellColors !== undefined) {\r\n return (this.cellColors)(row.item, row, this, index);\r\n }\r\n }\r\n\r\n private styleClassObject = {}; // for [ngClass]\r\n\r\n ngOnInit() {\r\n this._initCellClass();\r\n }\r\n\r\n private _initCellClass() {\r\n if (!this.styleClass && this.property) {\r\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\r\n this.styleClass = 'column-' + this.property;\r\n } else {\r\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\r\n }\r\n }\r\n\r\n if (this.styleClass != null) {\r\n this.styleClassObject = {\r\n [this.styleClass]: true\r\n };\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.component.d.ts b/dist/components/header.component.d.ts new file mode 100644 index 0000000..775b7e3 --- /dev/null +++ b/dist/components/header.component.d.ts @@ -0,0 +1,7 @@ +import { DataTable } from './table.component'; +export declare class DataTableHeader { + dataTable: DataTable; + columnSelectorOpen: boolean; + _closeSelector(): void; + constructor(dataTable: DataTable); +} diff --git a/dist/components/header.component.js b/dist/components/header.component.js new file mode 100644 index 0000000..f3c1d47 --- /dev/null +++ b/dist/components/header.component.js @@ -0,0 +1,41 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var core_1 = require("@angular/core"); +var table_component_1 = require("./table.component"); +var header_template_1 = require("./header.template"); +var header_style_1 = require("./header.style"); +var DataTableHeader = (function () { + function DataTableHeader(dataTable) { + this.dataTable = dataTable; + this.columnSelectorOpen = false; + } + DataTableHeader.prototype._closeSelector = function () { + this.columnSelectorOpen = false; + }; + return DataTableHeader; +}()); +DataTableHeader = __decorate([ + core_1.Component({ + selector: 'data-table-header', + template: header_template_1.HEADER_TEMPLATE, + styles: [header_style_1.HEADER_STYLE], + host: { + '(document:click)': '_closeSelector()' + } + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) +], DataTableHeader); +exports.DataTableHeader = DataTableHeader; +//# sourceMappingURL=/components/header.component.js.map \ No newline at end of file diff --git a/dist/components/header.component.js.map b/dist/components/header.component.js.map new file mode 100644 index 0000000..8d24351 --- /dev/null +++ b/dist/components/header.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAW9C,IAAa,eAAe;IAQxB,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAGL,sBAAC;AAAD,CAAC,AATD,IASC;AATY,eAAe;IAR3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,iCAAe;QACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;QACtB,IAAI,EAAE;YACJ,kBAAkB,EAAE,kBAAkB;SACvC;KACF,CAAC;IASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GARnE,eAAe,CAS3B;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { HEADER_TEMPLATE } from './header.template';\r\nimport { HEADER_STYLE } from \"./header.style\";\r\n\r\n\r\n@Component({\r\n selector: 'data-table-header',\r\n template: HEADER_TEMPLATE,\r\n styles: [HEADER_STYLE],\r\n host: {\r\n '(document:click)': '_closeSelector()'\r\n }\r\n})\r\nexport class DataTableHeader {\r\n\r\n columnSelectorOpen = false;\r\n\r\n _closeSelector() {\r\n this.columnSelectorOpen = false;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.style.d.ts b/dist/components/header.style.d.ts new file mode 100644 index 0000000..33d53a7 --- /dev/null +++ b/dist/components/header.style.d.ts @@ -0,0 +1 @@ +export declare const HEADER_STYLE: string; diff --git a/dist/components/header.style.js b/dist/components/header.style.js new file mode 100644 index 0000000..26455b0 --- /dev/null +++ b/dist/components/header.style.js @@ -0,0 +1,3 @@ +"use strict"; +exports.HEADER_STYLE = "\n.data-table-header {\n min-height: 25px;\n margin-bottom: 10px;\n}\n.title {\n display: inline-block;\n margin: 5px 0 0 5px;\n}\n.button-panel {\n float: right;\n}\n.button-panel button {\n outline: none !important;\n}\n\n.column-selector-wrapper {\n position: relative;\n}\n.column-selector-box {\n box-shadow: 0 0 10px lightgray;\n width: 150px;\n padding: 10px;\n position: absolute;\n right: 0;\n top: 1px;\n z-index: 1060;\n}\n.column-selector-box .checkbox {\n margin-bottom: 4px;\n}\n.column-selector-fixed-column {\n font-style: italic;\n}\n"; +//# sourceMappingURL=/components/header.style.js.map \ No newline at end of file diff --git a/dist/components/header.style.js.map b/dist/components/header.style.js.map new file mode 100644 index 0000000..9497826 --- /dev/null +++ b/dist/components/header.style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\r\n.data-table-header {\r\n min-height: 25px;\r\n margin-bottom: 10px;\r\n}\r\n.title {\r\n display: inline-block;\r\n margin: 5px 0 0 5px;\r\n}\r\n.button-panel {\r\n float: right;\r\n}\r\n.button-panel button {\r\n outline: none !important;\r\n}\r\n\r\n.column-selector-wrapper {\r\n position: relative;\r\n}\r\n.column-selector-box {\r\n box-shadow: 0 0 10px lightgray;\r\n width: 150px;\r\n padding: 10px;\r\n position: absolute;\r\n right: 0;\r\n top: 1px;\r\n z-index: 1060;\r\n}\r\n.column-selector-box .checkbox {\r\n margin-bottom: 4px;\r\n}\r\n.column-selector-fixed-column {\r\n font-style: italic;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/header.template.d.ts b/dist/components/header.template.d.ts new file mode 100644 index 0000000..5564ae5 --- /dev/null +++ b/dist/components/header.template.d.ts @@ -0,0 +1 @@ +export declare const HEADER_TEMPLATE: string; diff --git a/dist/components/header.template.js b/dist/components/header.template.js new file mode 100644 index 0000000..08f1ff7 --- /dev/null +++ b/dist/components/header.template.js @@ -0,0 +1,3 @@ +"use strict"; +exports.HEADER_TEMPLATE = "\n
\n

\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n"; +//# sourceMappingURL=/components/header.template.js.map \ No newline at end of file diff --git a/dist/components/header.template.js.map b/dist/components/header.template.js.map new file mode 100644 index 0000000..be28aa6 --- /dev/null +++ b/dist/components/header.template.js.map @@ -0,0 +1 @@ +{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_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
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.component.d.ts b/dist/components/pagination.component.d.ts new file mode 100644 index 0000000..2a26bc6 --- /dev/null +++ b/dist/components/pagination.component.d.ts @@ -0,0 +1,12 @@ +import { DataTable } from './table.component'; +export declare class DataTablePagination { + dataTable: DataTable; + constructor(dataTable: DataTable); + pageBack(): void; + pageForward(): void; + pageFirst(): void; + pageLast(): void; + readonly maxPage: number; + limit: number; + page: number; +} diff --git a/dist/components/pagination.component.js b/dist/components/pagination.component.js new file mode 100644 index 0000000..13975b9 --- /dev/null +++ b/dist/components/pagination.component.js @@ -0,0 +1,73 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var core_1 = require("@angular/core"); +var table_component_1 = require("./table.component"); +var pagination_template_1 = require("./pagination.template"); +var pagination_style_1 = require("./pagination.style"); +var DataTablePagination = (function () { + function DataTablePagination(dataTable) { + this.dataTable = dataTable; + } + DataTablePagination.prototype.pageBack = function () { + this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset); + }; + DataTablePagination.prototype.pageForward = function () { + this.dataTable.offset += this.dataTable.limit; + }; + DataTablePagination.prototype.pageFirst = function () { + this.dataTable.offset = 0; + }; + DataTablePagination.prototype.pageLast = function () { + this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit; + }; + Object.defineProperty(DataTablePagination.prototype, "maxPage", { + get: function () { + return Math.ceil(this.dataTable.itemCount / this.dataTable.limit); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTablePagination.prototype, "limit", { + get: function () { + return this.dataTable.limit; + }, + set: function (value) { + this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string? + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTablePagination.prototype, "page", { + get: function () { + return this.dataTable.page; + }, + set: function (value) { + this.dataTable.page = Number(value); + }, + enumerable: true, + configurable: true + }); + return DataTablePagination; +}()); +DataTablePagination = __decorate([ + core_1.Component({ + selector: 'data-table-pagination', + template: pagination_template_1.PAGINATION_TEMPLATE, + styles: [pagination_style_1.PAGINATION_STYLE] + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) +], DataTablePagination); +exports.DataTablePagination = DataTablePagination; +//# sourceMappingURL=/components/pagination.component.js.map \ No newline at end of file diff --git a/dist/components/pagination.component.js.map b/dist/components/pagination.component.js.map new file mode 100644 index 0000000..da3dd89 --- /dev/null +++ b/dist/components/pagination.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,6DAA4D;AAC5D,uDAAsD;AAQtD,IAAa,mBAAmB;IAE5B,6BAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEhF,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,yCAAW,GAAX;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,uCAAS,GAAT;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACtE,CAAC;IAED,sBAAI,wCAAO;aAAX;YACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;;;OAAA;IAED,sBAAI,sCAAK;aAAT;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAChC,CAAC;aAED,UAAU,KAAK;YACX,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC,CAAC,oEAAoE;QACnH,CAAC;;;OAJA;IAMD,sBAAI,qCAAI;aAAR;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/B,CAAC;aAED,UAAS,KAAK;YACV,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC;QAC7C,CAAC;;;OAJA;IAKL,0BAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,mBAAmB;IAL/B,gBAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,yCAAmB;QAC7B,MAAM,EAAE,CAAC,mCAAgB,CAAC;KAC3B,CAAC;IAGe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAFnE,mBAAmB,CAuC/B;AAvCY,kDAAmB","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { PAGINATION_TEMPLATE } from './pagination.template';\r\nimport { PAGINATION_STYLE } from \"./pagination.style\";\r\n\r\n\r\n@Component({\r\n selector: 'data-table-pagination',\r\n template: PAGINATION_TEMPLATE,\r\n styles: [PAGINATION_STYLE]\r\n})\r\nexport class DataTablePagination {\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n pageBack() {\r\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\r\n }\r\n\r\n pageForward() {\r\n this.dataTable.offset += this.dataTable.limit;\r\n }\r\n\r\n pageFirst() {\r\n this.dataTable.offset = 0;\r\n }\r\n\r\n pageLast() {\r\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\r\n }\r\n\r\n get maxPage() {\r\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\r\n }\r\n\r\n get limit() {\r\n return this.dataTable.limit;\r\n }\r\n\r\n set limit(value) {\r\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\r\n }\r\n\r\n get page() {\r\n return this.dataTable.page;\r\n }\r\n\r\n set page(value) {\r\n this.dataTable.page = Number(value);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/pagination.style.d.ts b/dist/components/pagination.style.d.ts new file mode 100644 index 0000000..6817e0c --- /dev/null +++ b/dist/components/pagination.style.d.ts @@ -0,0 +1 @@ +export declare const PAGINATION_STYLE: string; diff --git a/dist/components/pagination.style.js b/dist/components/pagination.style.js new file mode 100644 index 0000000..718e509 --- /dev/null +++ b/dist/components/pagination.style.js @@ -0,0 +1,3 @@ +"use strict"; +exports.PAGINATION_STYLE = "\n.pagination-box {\n position: relative;\n margin-top: -10px;\n}\n.pagination-range {\n margin-top: 7px;\n margin-left: 3px;\n display: inline-block;\n}\n.pagination-controllers {\n float: right;\n}\n.pagination-controllers input {\n min-width: 60px;\n /*padding: 1px 0px 0px 5px;*/\n text-align: right;\n}\n\n.pagination-limit {\n margin-right: 25px;\n display: inline-table;\n width: 150px;\n}\n.pagination-pages {\n display: inline-block;\n}\n.pagination-page {\n width: 110px;\n display: inline-table;\n}\n.pagination-box button {\n outline: none !important;\n}\n.pagination-prevpage,\n.pagination-nextpage,\n.pagination-firstpage,\n.pagination-lastpage {\n vertical-align: top;\n}\n.pagination-reload {\n color: gray;\n font-size: 12px;\n}\n"; +//# sourceMappingURL=/components/pagination.style.js.map \ No newline at end of file diff --git a/dist/components/pagination.style.js.map b/dist/components/pagination.style.js.map new file mode 100644 index 0000000..8ed0ddc --- /dev/null +++ b/dist/components/pagination.style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.template.d.ts b/dist/components/pagination.template.d.ts new file mode 100644 index 0000000..f3b5d1c --- /dev/null +++ b/dist/components/pagination.template.d.ts @@ -0,0 +1 @@ +export declare const PAGINATION_TEMPLATE: string; diff --git a/dist/components/pagination.template.js b/dist/components/pagination.template.js new file mode 100644 index 0000000..7826223 --- /dev/null +++ b/dist/components/pagination.template.js @@ -0,0 +1,3 @@ +"use strict"; +exports.PAGINATION_TEMPLATE = "\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n \n
\n
\n
\n"; +//# sourceMappingURL=/components/pagination.template.js.map \ No newline at end of file diff --git a/dist/components/pagination.template.js.map b/dist/components/pagination.template.js.map new file mode 100644 index 0000000..7b1d281 --- /dev/null +++ b/dist/components/pagination.template.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";AAAa,QAAA,mBAAmB,GAAG,kxEAsClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\r\n
\r\n
\r\n {{dataTable.translations.paginationRange}}:\r\n \r\n -\r\n \r\n /\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{dataTable.translations.paginationLimit}}:\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n /\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.component.d.ts b/dist/components/row.component.d.ts new file mode 100644 index 0000000..44dfa8e --- /dev/null +++ b/dist/components/row.component.d.ts @@ -0,0 +1,16 @@ +import { EventEmitter, OnDestroy } from '@angular/core'; +import { DataTable } from './table.component'; +export declare class DataTableRow implements OnDestroy { + dataTable: DataTable; + item: any; + index: number; + expanded: boolean; + private _selected; + selectedChange: EventEmitter<{}>; + selected: boolean; + readonly displayIndex: number; + getTooltip(): string; + constructor(dataTable: DataTable); + ngOnDestroy(): void; + private _this; +} diff --git a/dist/components/row.component.js b/dist/components/row.component.js new file mode 100644 index 0000000..1add753 --- /dev/null +++ b/dist/components/row.component.js @@ -0,0 +1,81 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var core_1 = require("@angular/core"); +var table_component_1 = require("./table.component"); +var row_template_1 = require("./row.template"); +var row_style_1 = require("./row.style"); +var DataTableRow = (function () { + function DataTableRow(dataTable) { + this.dataTable = dataTable; + this.selectedChange = new core_1.EventEmitter(); + this._this = this; // FIXME is there no template keyword for this in angular 2? + } + Object.defineProperty(DataTableRow.prototype, "selected", { + get: function () { + return this._selected; + }, + set: function (selected) { + this._selected = selected; + this.selectedChange.emit(selected); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTableRow.prototype, "displayIndex", { + // other: + get: function () { + if (this.dataTable.pagination) { + return this.dataTable.displayParams.offset + this.index + 1; + } + else { + return this.index + 1; + } + }, + enumerable: true, + configurable: true + }); + DataTableRow.prototype.getTooltip = function () { + if (this.dataTable.rowTooltip) { + return this.dataTable.rowTooltip(this.item, this, this.index); + } + return ''; + }; + DataTableRow.prototype.ngOnDestroy = function () { + this.selected = false; + }; + return DataTableRow; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableRow.prototype, "item", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Number) +], DataTableRow.prototype, "index", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTableRow.prototype, "selectedChange", void 0); +DataTableRow = __decorate([ + core_1.Component({ + selector: '[dataTableRow]', + template: row_template_1.ROW_TEMPLATE, + styles: [row_style_1.ROW_STYLE] + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) +], DataTableRow); +exports.DataTableRow = DataTableRow; +//# sourceMappingURL=/components/row.component.js.map \ No newline at end of file diff --git a/dist/components/row.component.js.map b/dist/components/row.component.js.map new file mode 100644 index 0000000..bd5a707 --- /dev/null +++ b/dist/components/row.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AAQxC,IAAa,YAAY;IAuCrB,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAGL,mBAAC;AAAD,CAAC,AA9CD,IA8CC;AA5CY;IAAR,YAAK,EAAE;;0CAAW;AACV;IAAR,YAAK,EAAE;;2CAAe;AAQb;IAAT,aAAM,EAAE;;oDAAqC;AAXrC,YAAY;IALxB,gBAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,2BAAY;QACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;KACtB,CAAC;IAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAvCnE,YAAY,CA8CxB;AA9CY,oCAAY","sourcesContent":["import {\r\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\r\n} from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { ROW_TEMPLATE } from './row.template';\r\nimport { ROW_STYLE } from \"./row.style\";\r\n\r\n\r\n@Component({\r\n selector: '[dataTableRow]',\r\n template: ROW_TEMPLATE,\r\n styles: [ROW_STYLE]\r\n})\r\nexport class DataTableRow implements OnDestroy {\r\n\r\n @Input() item: any;\r\n @Input() index: number;\r\n\r\n expanded: boolean;\r\n\r\n // row selection:\r\n\r\n private _selected: boolean;\r\n\r\n @Output() selectedChange = new EventEmitter();\r\n\r\n get selected() {\r\n return this._selected;\r\n }\r\n\r\n set selected(selected) {\r\n this._selected = selected;\r\n this.selectedChange.emit(selected);\r\n }\r\n\r\n // other:\r\n\r\n get displayIndex() {\r\n if (this.dataTable.pagination) {\r\n return this.dataTable.displayParams.offset + this.index + 1;\r\n } else {\r\n return this.index + 1;\r\n }\r\n }\r\n\r\n getTooltip() {\r\n if (this.dataTable.rowTooltip) {\r\n return this.dataTable.rowTooltip(this.item, this, this.index);\r\n }\r\n return '';\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n ngOnDestroy() {\r\n this.selected = false;\r\n }\r\n\r\n private _this = this; // FIXME is there no template keyword for this in angular 2?\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/row.style.d.ts b/dist/components/row.style.d.ts new file mode 100644 index 0000000..8024ce7 --- /dev/null +++ b/dist/components/row.style.d.ts @@ -0,0 +1 @@ +export declare const ROW_STYLE: string; diff --git a/dist/components/row.style.js b/dist/components/row.style.js new file mode 100644 index 0000000..ac8067e --- /dev/null +++ b/dist/components/row.style.js @@ -0,0 +1,3 @@ +"use strict"; +exports.ROW_STYLE = "\n.select-column {\n text-align: center;\n}\n\n.row-expand-button {\n cursor: pointer;\n text-align: center;\n}\n\n.clickable {\n cursor: pointer;\n}\n"; +//# sourceMappingURL=/components/row.style.js.map \ No newline at end of file diff --git a/dist/components/row.style.js.map b/dist/components/row.style.js.map new file mode 100644 index 0000000..5489e59 --- /dev/null +++ b/dist/components/row.style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.template.d.ts b/dist/components/row.template.d.ts new file mode 100644 index 0000000..04ff0ae --- /dev/null +++ b/dist/components/row.template.d.ts @@ -0,0 +1 @@ +export declare const ROW_TEMPLATE: string; diff --git a/dist/components/row.template.js b/dist/components/row.template.js new file mode 100644 index 0000000..1c119c6 --- /dev/null +++ b/dist/components/row.template.js @@ -0,0 +1,3 @@ +"use strict"; +exports.ROW_TEMPLATE = "\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n\n\n \n
\n \n\n"; +//# sourceMappingURL=/components/row.template.js.map \ No newline at end of file diff --git a/dist/components/row.template.js.map b/dist/components/row.template.js.map new file mode 100644 index 0000000..c4882ce --- /dev/null +++ b/dist/components/row.template.js.map @@ -0,0 +1 @@ +{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_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\r\n\r\n \r\n
\r\n \r\n\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.component.d.ts b/dist/components/table.component.d.ts new file mode 100644 index 0000000..6d69359 --- /dev/null +++ b/dist/components/table.component.d.ts @@ -0,0 +1,79 @@ +import { EventEmitter, QueryList, TemplateRef, OnInit } from '@angular/core'; +import { DataTableColumn } from './column.component'; +import { DataTableRow } from './row.component'; +import { DataTableParams } from '../types/data-table-params.type'; +import { RowCallback } from '../types/row-callback.type'; +import { DataTableTranslations } from '../types/data-table-translations.type'; +export declare class DataTable implements DataTableParams, OnInit { + private _items; + items: any[]; + itemCount: number; + columns: QueryList; + rows: QueryList; + expandTemplate: TemplateRef; + headerTitle: string; + header: boolean; + pagination: boolean; + indexColumn: boolean; + indexColumnHeader: string; + rowColors: RowCallback; + rowTooltip: RowCallback; + selectColumn: boolean; + multiSelect: boolean; + substituteRows: boolean; + expandableRows: boolean; + translations: DataTableTranslations; + selectOnRowClick: boolean; + autoReload: boolean; + showReloading: boolean; + indexColumnVisible: boolean; + selectColumnVisible: boolean; + expandColumnVisible: boolean; + private _sortBy; + private _sortAsc; + private _offset; + private _limit; + sortBy: string; + sortAsc: boolean; + offset: number; + limit: number; + page: number; + readonly lastPage: number; + sort(sortBy: string, asc: boolean): void; + ngOnInit(): void; + private _initDefaultValues(); + private _initDefaultClickEvents(); + _reloading: boolean; + readonly reloading: boolean; + reload: EventEmitter<{}>; + reloadItems(): void; + private _onReloadFinished(); + _displayParams: DataTableParams; + readonly displayParams: DataTableParams; + _updateDisplayParams(): void; + _scheduledReload: any; + _triggerReload(): void; + rowClick: EventEmitter<{}>; + rowDoubleClick: EventEmitter<{}>; + headerClick: EventEmitter<{}>; + cellClick: EventEmitter<{}>; + private rowClicked(row, event); + private rowDoubleClicked(row, event); + private headerClicked(column, event); + private cellClicked(column, row, event); + private _getRemoteParameters(); + private sortColumn(column); + readonly columnCount: number; + private getRowColor(item, index, row); + selectedRow: DataTableRow; + selectedRows: DataTableRow[]; + private _selectAllCheckbox; + selectAllCheckbox: boolean; + private _onSelectAllChanged(value); + onRowSelectChanged(row: DataTableRow): void; + readonly substituteItems: {}[]; + private _resizeInProgress; + private resizeColumnStart(event, column, columnElement); + resizeLimit: number; + private _isResizeInLimit(columnElement, dx); +} diff --git a/dist/components/table.component.js b/dist/components/table.component.js new file mode 100644 index 0000000..fd376d1 --- /dev/null +++ b/dist/components/table.component.js @@ -0,0 +1,456 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = require("@angular/core"); +var column_component_1 = require("./column.component"); +var row_component_1 = require("./row.component"); +var default_translations_type_1 = require("../types/default-translations.type"); +var drag_1 = require("../utils/drag"); +var table_template_1 = require("./table.template"); +var table_style_1 = require("./table.style"); +var DataTable = (function () { + function DataTable() { + this._items = []; + this.header = true; + this.pagination = true; + this.indexColumn = true; + this.indexColumnHeader = ''; + this.selectColumn = false; + this.multiSelect = true; + this.substituteRows = true; + this.expandableRows = false; + this.translations = default_translations_type_1.defaultTranslations; + this.selectOnRowClick = false; + this.autoReload = true; + this.showReloading = false; + this._sortAsc = true; + this._offset = 0; + this._limit = 10; + // Reloading: + this._reloading = false; + this.reload = new core_1.EventEmitter(); + this._displayParams = {}; // params of the last finished reload + this._scheduledReload = null; + // event handlers: + this.rowClick = new core_1.EventEmitter(); + this.rowDoubleClick = new core_1.EventEmitter(); + this.headerClick = new core_1.EventEmitter(); + this.cellClick = new core_1.EventEmitter(); + this.selectedRows = []; + this._selectAllCheckbox = false; + // column resizing: + this._resizeInProgress = false; + this.resizeLimit = 30; + } + Object.defineProperty(DataTable.prototype, "items", { + get: function () { + return this._items; + }, + set: function (items) { + this._items = items; + this._onReloadFinished(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "sortBy", { + get: function () { + return this._sortBy; + }, + set: function (value) { + this._sortBy = value; + this._triggerReload(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "sortAsc", { + get: function () { + return this._sortAsc; + }, + set: function (value) { + this._sortAsc = value; + this._triggerReload(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "offset", { + get: function () { + return this._offset; + }, + set: function (value) { + this._offset = value; + this._triggerReload(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "limit", { + get: function () { + return this._limit; + }, + set: function (value) { + this._limit = value; + this._triggerReload(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "page", { + // calculated property: + get: function () { + return Math.floor(this.offset / this.limit) + 1; + }, + set: function (value) { + this.offset = (value - 1) * this.limit; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "lastPage", { + get: function () { + return Math.ceil(this.itemCount / this.limit); + }, + enumerable: true, + configurable: true + }); + // setting multiple observable properties simultaneously + DataTable.prototype.sort = function (sortBy, asc) { + this.sortBy = sortBy; + this.sortAsc = asc; + }; + // init + DataTable.prototype.ngOnInit = function () { + this._initDefaultValues(); + this._initDefaultClickEvents(); + this._updateDisplayParams(); + if (this.autoReload && this._scheduledReload == null) { + this.reloadItems(); + } + }; + DataTable.prototype._initDefaultValues = function () { + this.indexColumnVisible = this.indexColumn; + this.selectColumnVisible = this.selectColumn; + this.expandColumnVisible = this.expandableRows; + }; + DataTable.prototype._initDefaultClickEvents = function () { + var _this = this; + this.headerClick.subscribe(function (tableEvent) { return _this.sortColumn(tableEvent.column); }); + if (this.selectOnRowClick) { + this.rowClick.subscribe(function (tableEvent) { return tableEvent.row.selected = !tableEvent.row.selected; }); + } + }; + Object.defineProperty(DataTable.prototype, "reloading", { + get: function () { + return this._reloading; + }, + enumerable: true, + configurable: true + }); + DataTable.prototype.reloadItems = function () { + this._reloading = true; + this.reload.emit(this._getRemoteParameters()); + }; + DataTable.prototype._onReloadFinished = function () { + this._updateDisplayParams(); + this._selectAllCheckbox = false; + this._reloading = false; + }; + Object.defineProperty(DataTable.prototype, "displayParams", { + get: function () { + return this._displayParams; + }, + enumerable: true, + configurable: true + }); + DataTable.prototype._updateDisplayParams = function () { + this._displayParams = { + sortBy: this.sortBy, + sortAsc: this.sortAsc, + offset: this.offset, + limit: this.limit + }; + }; + // for avoiding cascading reloads if multiple params are set at once: + DataTable.prototype._triggerReload = function () { + var _this = this; + if (this._scheduledReload) { + clearTimeout(this._scheduledReload); + } + this._scheduledReload = setTimeout(function () { + _this.reloadItems(); + }); + }; + DataTable.prototype.rowClicked = function (row, event) { + this.rowClick.emit({ row: row, event: event }); + }; + DataTable.prototype.rowDoubleClicked = function (row, event) { + this.rowDoubleClick.emit({ row: row, event: event }); + }; + DataTable.prototype.headerClicked = function (column, event) { + if (!this._resizeInProgress) { + this.headerClick.emit({ column: column, event: event }); + } + else { + this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end + } + }; + DataTable.prototype.cellClicked = function (column, row, event) { + this.cellClick.emit({ row: row, column: column, event: event }); + }; + // functions: + DataTable.prototype._getRemoteParameters = function () { + var params = {}; + if (this.sortBy) { + params.sortBy = this.sortBy; + params.sortAsc = this.sortAsc; + } + if (this.pagination) { + params.offset = this.offset; + params.limit = this.limit; + } + return params; + }; + DataTable.prototype.sortColumn = function (column) { + if (column.sortable) { + var ascending = this.sortBy === column.property ? !this.sortAsc : true; + this.sort(column.property, ascending); + } + }; + Object.defineProperty(DataTable.prototype, "columnCount", { + get: function () { + var count = 0; + count += this.indexColumnVisible ? 1 : 0; + count += this.selectColumnVisible ? 1 : 0; + count += this.expandColumnVisible ? 1 : 0; + this.columns.toArray().forEach(function (column) { + count += column.visible ? 1 : 0; + }); + return count; + }, + enumerable: true, + configurable: true + }); + DataTable.prototype.getRowColor = function (item, index, row) { + if (this.rowColors !== undefined) { + return this.rowColors(item, row, index); + } + }; + Object.defineProperty(DataTable.prototype, "selectAllCheckbox", { + get: function () { + return this._selectAllCheckbox; + }, + set: function (value) { + this._selectAllCheckbox = value; + this._onSelectAllChanged(value); + }, + enumerable: true, + configurable: true + }); + DataTable.prototype._onSelectAllChanged = function (value) { + this.rows.toArray().forEach(function (row) { return row.selected = value; }); + }; + DataTable.prototype.onRowSelectChanged = function (row) { + // maintain the selectedRow(s) view + if (this.multiSelect) { + var index = this.selectedRows.indexOf(row); + if (row.selected && index < 0) { + this.selectedRows.push(row); + } + else if (!row.selected && index >= 0) { + this.selectedRows.splice(index, 1); + } + } + else { + if (row.selected) { + this.selectedRow = row; + } + else if (this.selectedRow === row) { + this.selectedRow = undefined; + } + } + // unselect all other rows: + if (row.selected && !this.multiSelect) { + this.rows.toArray().filter(function (row_) { return row_.selected; }).forEach(function (row_) { + if (row_ !== row) { + row_.selected = false; + } + }); + } + }; + Object.defineProperty(DataTable.prototype, "substituteItems", { + // other: + get: function () { + return Array.from({ length: this.displayParams.limit - this.items.length }); + }, + enumerable: true, + configurable: true + }); + DataTable.prototype.resizeColumnStart = function (event, column, columnElement) { + var _this = this; + this._resizeInProgress = true; + drag_1.drag(event, { + move: function (moveEvent, dx) { + if (_this._isResizeInLimit(columnElement, dx)) { + column.width = columnElement.offsetWidth + dx; + } + }, + }); + }; + DataTable.prototype._isResizeInLimit = function (columnElement, dx) { + /* This is needed because CSS min-width didn't work on table-layout: fixed. + Without the limits, resizing can make the next column disappear completely, + and even increase the table width. The current implementation suffers from the fact, + that offsetWidth sometimes contains out-of-date values. */ + if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) || + !columnElement.nextElementSibling || + (dx >= 0 && (columnElement.nextElementSibling.offsetWidth + dx) <= this.resizeLimit)) { + return false; + } + return true; + }; + return DataTable; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Array]) +], DataTable.prototype, "items", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Number) +], DataTable.prototype, "itemCount", void 0); +__decorate([ + core_1.ContentChildren(column_component_1.DataTableColumn), + __metadata("design:type", core_1.QueryList) +], DataTable.prototype, "columns", void 0); +__decorate([ + core_1.ViewChildren(row_component_1.DataTableRow), + __metadata("design:type", core_1.QueryList) +], DataTable.prototype, "rows", void 0); +__decorate([ + core_1.ContentChild('dataTableExpand'), + __metadata("design:type", core_1.TemplateRef) +], DataTable.prototype, "expandTemplate", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTable.prototype, "headerTitle", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "header", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "indexColumn", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "indexColumnHeader", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Function) +], DataTable.prototype, "rowColors", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Function) +], DataTable.prototype, "rowTooltip", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "selectColumn", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "multiSelect", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "substituteRows", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "expandableRows", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "translations", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "selectOnRowClick", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "autoReload", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "showReloading", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "sortBy", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "sortAsc", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "offset", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "limit", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "page", null); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "reload", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "rowClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "rowDoubleClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "headerClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "cellClick", void 0); +DataTable = __decorate([ + core_1.Component({ + selector: 'data-table', + template: table_template_1.TABLE_TEMPLATE, + styles: [table_style_1.TABLE_STYLE] + }) +], DataTable); +exports.DataTable = DataTable; +//# sourceMappingURL=/components/table.component.js.map \ No newline at end of file diff --git a/dist/components/table.component.js.map b/dist/components/table.component.js.map new file mode 100644 index 0000000..f08c67d --- /dev/null +++ b/dist/components/table.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\r\n TemplateRef, ContentChild, ViewChildren, OnInit\r\n} from '@angular/core';\r\nimport { DataTableColumn } from './column.component';\r\nimport { DataTableRow } from './row.component';\r\nimport { DataTableParams } from '../types/data-table-params.type';\r\nimport { RowCallback } from '../types/row-callback.type';\r\nimport { DataTableTranslations } from '../types/data-table-translations.type';\r\nimport { defaultTranslations } from '../types/default-translations.type';\r\nimport { drag } from '../utils/drag';\r\nimport { TABLE_TEMPLATE } from './table.template';\r\nimport { TABLE_STYLE } from \"./table.style\";\r\n\r\n\r\n\r\n@Component({\r\n selector: 'data-table',\r\n template: TABLE_TEMPLATE,\r\n styles: [TABLE_STYLE]\r\n})\r\nexport class DataTable implements DataTableParams, OnInit {\r\n\r\n private _items: any[] = [];\r\n\r\n @Input() get items() {\r\n return this._items;\r\n }\r\n\r\n set items(items: any[]) {\r\n this._items = items;\r\n this._onReloadFinished();\r\n }\r\n\r\n @Input() itemCount: number;\r\n\r\n // UI components:\r\n\r\n @ContentChildren(DataTableColumn) columns: QueryList;\r\n @ViewChildren(DataTableRow) rows: QueryList;\r\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\r\n\r\n // One-time optional bindings with default values:\r\n\r\n @Input() headerTitle: string;\r\n @Input() header = true;\r\n @Input() pagination = true;\r\n @Input() indexColumn = true;\r\n @Input() indexColumnHeader = '';\r\n @Input() rowColors: RowCallback;\r\n @Input() rowTooltip: RowCallback;\r\n @Input() selectColumn = false;\r\n @Input() multiSelect = true;\r\n @Input() substituteRows = true;\r\n @Input() expandableRows = false;\r\n @Input() translations: DataTableTranslations = defaultTranslations;\r\n @Input() selectOnRowClick = false;\r\n @Input() autoReload = true;\r\n @Input() showReloading = false;\r\n\r\n // UI state without input:\r\n\r\n indexColumnVisible: boolean;\r\n selectColumnVisible: boolean;\r\n expandColumnVisible: boolean;\r\n\r\n // UI state: visible ge/set for the outside with @Input for one-time initial values\r\n\r\n private _sortBy: string;\r\n private _sortAsc = true;\r\n\r\n private _offset = 0;\r\n private _limit = 10;\r\n\r\n @Input()\r\n get sortBy() {\r\n return this._sortBy;\r\n }\r\n\r\n set sortBy(value) {\r\n this._sortBy = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get sortAsc() {\r\n return this._sortAsc;\r\n }\r\n\r\n set sortAsc(value) {\r\n this._sortAsc = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get offset() {\r\n return this._offset;\r\n }\r\n\r\n set offset(value) {\r\n this._offset = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get limit() {\r\n return this._limit;\r\n }\r\n\r\n set limit(value) {\r\n this._limit = value;\r\n this._triggerReload();\r\n }\r\n\r\n // calculated property:\r\n\r\n @Input()\r\n get page() {\r\n return Math.floor(this.offset / this.limit) + 1;\r\n }\r\n\r\n set page(value) {\r\n this.offset = (value - 1) * this.limit;\r\n }\r\n\r\n get lastPage() {\r\n return Math.ceil(this.itemCount / this.limit);\r\n }\r\n\r\n // setting multiple observable properties simultaneously\r\n\r\n sort(sortBy: string, asc: boolean) {\r\n this.sortBy = sortBy;\r\n this.sortAsc = asc;\r\n }\r\n\r\n // init\r\n\r\n ngOnInit() {\r\n this._initDefaultValues();\r\n this._initDefaultClickEvents();\r\n this._updateDisplayParams();\r\n\r\n if (this.autoReload && this._scheduledReload == null) {\r\n this.reloadItems();\r\n }\r\n }\r\n\r\n private _initDefaultValues() {\r\n this.indexColumnVisible = this.indexColumn;\r\n this.selectColumnVisible = this.selectColumn;\r\n this.expandColumnVisible = this.expandableRows;\r\n }\r\n\r\n private _initDefaultClickEvents() {\r\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\r\n if (this.selectOnRowClick) {\r\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\r\n }\r\n }\r\n\r\n // Reloading:\r\n\r\n _reloading = false;\r\n\r\n get reloading() {\r\n return this._reloading;\r\n }\r\n\r\n @Output() reload = new EventEmitter();\r\n\r\n reloadItems() {\r\n this._reloading = true;\r\n this.reload.emit(this._getRemoteParameters());\r\n }\r\n\r\n private _onReloadFinished() {\r\n this._updateDisplayParams();\r\n\r\n this._selectAllCheckbox = false;\r\n this._reloading = false;\r\n }\r\n\r\n _displayParams = {}; // params of the last finished reload\r\n\r\n get displayParams() {\r\n return this._displayParams;\r\n }\r\n\r\n _updateDisplayParams() {\r\n this._displayParams = {\r\n sortBy: this.sortBy,\r\n sortAsc: this.sortAsc,\r\n offset: this.offset,\r\n limit: this.limit\r\n };\r\n }\r\n\r\n _scheduledReload = null;\r\n\r\n // for avoiding cascading reloads if multiple params are set at once:\r\n _triggerReload() {\r\n if (this._scheduledReload) {\r\n clearTimeout(this._scheduledReload);\r\n }\r\n this._scheduledReload = setTimeout(() => {\r\n this.reloadItems();\r\n });\r\n }\r\n\r\n // event handlers:\r\n\r\n @Output() rowClick = new EventEmitter();\r\n @Output() rowDoubleClick = new EventEmitter();\r\n @Output() headerClick = new EventEmitter();\r\n @Output() cellClick = new EventEmitter();\r\n\r\n private rowClicked(row: DataTableRow, event) {\r\n this.rowClick.emit({ row, event });\r\n }\r\n\r\n private rowDoubleClicked(row: DataTableRow, event) {\r\n this.rowDoubleClick.emit({ row, event });\r\n }\r\n\r\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\r\n if (!this._resizeInProgress) {\r\n this.headerClick.emit({ column, event });\r\n } else {\r\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\r\n }\r\n }\r\n\r\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\r\n this.cellClick.emit({ row, column, event });\r\n }\r\n\r\n // functions:\r\n\r\n private _getRemoteParameters(): DataTableParams {\r\n let params = {};\r\n\r\n if (this.sortBy) {\r\n params.sortBy = this.sortBy;\r\n params.sortAsc = this.sortAsc;\r\n }\r\n if (this.pagination) {\r\n params.offset = this.offset;\r\n params.limit = this.limit;\r\n }\r\n return params;\r\n }\r\n\r\n private sortColumn(column: DataTableColumn) {\r\n if (column.sortable) {\r\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\r\n this.sort(column.property, ascending);\r\n }\r\n }\r\n\r\n get columnCount() {\r\n let count = 0;\r\n count += this.indexColumnVisible ? 1 : 0;\r\n count += this.selectColumnVisible ? 1 : 0;\r\n count += this.expandColumnVisible ? 1 : 0;\r\n this.columns.toArray().forEach(column => {\r\n count += column.visible ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n private getRowColor(item: any, index: number, row: DataTableRow) {\r\n if (this.rowColors !== undefined) {\r\n return (this.rowColors)(item, row, index);\r\n }\r\n }\r\n\r\n // selection:\r\n\r\n selectedRow: DataTableRow;\r\n selectedRows: DataTableRow[] = [];\r\n\r\n private _selectAllCheckbox = false;\r\n\r\n get selectAllCheckbox() {\r\n return this._selectAllCheckbox;\r\n }\r\n\r\n set selectAllCheckbox(value) {\r\n this._selectAllCheckbox = value;\r\n this._onSelectAllChanged(value);\r\n }\r\n\r\n private _onSelectAllChanged(value: boolean) {\r\n this.rows.toArray().forEach(row => row.selected = value);\r\n }\r\n\r\n onRowSelectChanged(row: DataTableRow) {\r\n\r\n // maintain the selectedRow(s) view\r\n if (this.multiSelect) {\r\n let index = this.selectedRows.indexOf(row);\r\n if (row.selected && index < 0) {\r\n this.selectedRows.push(row);\r\n } else if (!row.selected && index >= 0) {\r\n this.selectedRows.splice(index, 1);\r\n }\r\n } else {\r\n if (row.selected) {\r\n this.selectedRow = row;\r\n } else if (this.selectedRow === row) {\r\n this.selectedRow = undefined;\r\n }\r\n }\r\n\r\n // unselect all other rows:\r\n if (row.selected && !this.multiSelect) {\r\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\r\n if (row_ !== row) { // avoid endless loop\r\n row_.selected = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // other:\r\n\r\n get substituteItems() {\r\n return Array.from({ length: this.displayParams.limit - this.items.length });\r\n }\r\n\r\n // column resizing:\r\n\r\n private _resizeInProgress = false;\r\n\r\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\r\n this._resizeInProgress = true;\r\n\r\n drag(event, {\r\n move: (moveEvent: MouseEvent, dx: number) => {\r\n if (this._isResizeInLimit(columnElement, dx)) {\r\n column.width = columnElement.offsetWidth + dx;\r\n }\r\n },\r\n });\r\n }\r\n\r\n resizeLimit = 30;\r\n\r\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\r\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\r\n Without the limits, resizing can make the next column disappear completely,\r\n and even increase the table width. The current implementation suffers from the fact,\r\n that offsetWidth sometimes contains out-of-date values. */\r\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\r\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\r\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/table.style.d.ts b/dist/components/table.style.d.ts new file mode 100644 index 0000000..ab363e7 --- /dev/null +++ b/dist/components/table.style.d.ts @@ -0,0 +1 @@ +export declare const TABLE_STYLE: string; diff --git a/dist/components/table.style.js b/dist/components/table.style.js new file mode 100644 index 0000000..9e40dfc --- /dev/null +++ b/dist/components/table.style.js @@ -0,0 +1,3 @@ +"use strict"; +exports.TABLE_STYLE = "\n/* bootstrap override: */\n\n:host /deep/ .data-table.table > tbody+tbody {\n border-top: none;\n}\n:host /deep/ .data-table.table td {\n vertical-align: middle;\n}\n\n:host /deep/ .data-table > thead > tr > th,\n:host /deep/ .data-table > tbody > tr > td {\n\toverflow: hidden;\n}\n\n/* I can't use the bootstrap striped table, because of the expandable rows */\n:host /deep/ .row-odd {\n background-color: #F6F6F6;\n}\n:host /deep/ .row-even {\n}\n\n.data-table .substitute-rows > tr:hover,\n:host /deep/ .data-table .data-table-row:hover {\n background-color: #ECECEC;\n}\n/* table itself: */\n\n.data-table {\n box-shadow: 0 0 15px rgb(236, 236, 236);\n table-layout: fixed;\n}\n\n/* header cells: */\n\n.column-header {\n position: relative;\n}\n.expand-column-header {\n\twidth: 50px;\n}\n.select-column-header {\n\twidth: 50px;\n\ttext-align: center;\n}\n.index-column-header {\n\twidth: 40px;\n}\n.column-header.sortable {\n cursor: pointer;\n}\n.column-header .column-sort-icon {\n\tfloat: right;\n}\n.column-header.resizable .column-sort-icon {\n margin-right: 8px;\n}\n.column-header .column-sort-icon .column-sortable-icon {\n color: lightgray;\n}\n.column-header .column-resize-handle {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n padding: 0;\n width: 8px;\n height: 100%;\n cursor: col-resize;\n}\n\n/* cover: */\n\n.data-table-box {\n position: relative;\n}\n\n.loading-cover {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.3);\n top: 0;\n}\n"; +//# sourceMappingURL=/components/table.style.js.map \ No newline at end of file diff --git a/dist/components/table.style.js.map b/dist/components/table.style.js.map new file mode 100644 index 0000000..a969fdd --- /dev/null +++ b/dist/components/table.style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.template.d.ts b/dist/components/table.template.d.ts new file mode 100644 index 0000000..cc04eb4 --- /dev/null +++ b/dist/components/table.template.d.ts @@ -0,0 +1 @@ +export declare const TABLE_TEMPLATE: string; diff --git a/dist/components/table.template.js b/dist/components/table.template.js new file mode 100644 index 0000000..90086fd --- /dev/null +++ b/dist/components/table.template.js @@ -0,0 +1,3 @@ +"use strict"; +exports.TABLE_TEMPLATE = "\n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 \n
\n
\n
\n\n \n
\n"; +//# sourceMappingURL=/components/table.template.js.map \ No newline at end of file diff --git a/dist/components/table.template.js.map b/dist/components/table.template.js.map new file mode 100644 index 0000000..c0d7978 --- /dev/null +++ b/dist/components/table.template.js.map @@ -0,0 +1 @@ +{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";AAAa,QAAA,cAAc,GAAG,qtGAmD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 0000000..1b41018 --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,15 @@ +import { DataTable } from './components/table.component'; +import { DataTableColumn } from './components/column.component'; +import { DataTableRow } from './components/row.component'; +import { DataTablePagination } from './components/pagination.component'; +import { DataTableHeader } from './components/header.component'; +import { DataTableTranslations } from './types/data-table-translations.type'; +import { CellCallback } from './types/cell-callback.type'; +import { RowCallback } from './types/row-callback.type'; +import { DataTableParams } from './types/data-table-params.type'; +import { defaultTranslations } from './types/default-translations.type'; +export * from './tools/data-table-resource'; +export { DataTable, DataTableColumn, DataTableRow, DataTablePagination, DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations }; +export declare const DATA_TABLE_DIRECTIVES: (typeof DataTable | typeof DataTableColumn)[]; +export declare class DataTableModule { +} diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..1bc79b0 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,48 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +var core_1 = require("@angular/core"); +var common_1 = require("@angular/common"); +var forms_1 = require("@angular/forms"); +var table_component_1 = require("./components/table.component"); +exports.DataTable = table_component_1.DataTable; +var column_component_1 = require("./components/column.component"); +exports.DataTableColumn = column_component_1.DataTableColumn; +var row_component_1 = require("./components/row.component"); +exports.DataTableRow = row_component_1.DataTableRow; +var pagination_component_1 = require("./components/pagination.component"); +exports.DataTablePagination = pagination_component_1.DataTablePagination; +var header_component_1 = require("./components/header.component"); +exports.DataTableHeader = header_component_1.DataTableHeader; +var px_1 = require("./utils/px"); +var hide_1 = require("./utils/hide"); +var min_1 = require("./utils/min"); +var default_translations_type_1 = require("./types/default-translations.type"); +exports.defaultTranslations = default_translations_type_1.defaultTranslations; +__export(require("./tools/data-table-resource")); +exports.DATA_TABLE_DIRECTIVES = [table_component_1.DataTable, column_component_1.DataTableColumn]; +var DataTableModule = (function () { + function DataTableModule() { + } + return DataTableModule; +}()); +DataTableModule = __decorate([ + core_1.NgModule({ + imports: [common_1.CommonModule, forms_1.FormsModule], + declarations: [ + table_component_1.DataTable, column_component_1.DataTableColumn, + row_component_1.DataTableRow, pagination_component_1.DataTablePagination, header_component_1.DataTableHeader, + px_1.PixelConverter, hide_1.Hide, min_1.MinPipe + ], + exports: [table_component_1.DataTable, column_component_1.DataTableColumn] + }) +], DataTableModule); +exports.DataTableModule = DataTableModule; +//# sourceMappingURL=/index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 0000000..5a1332d --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,gDAAS;AAdlB,kEAAgE;AAc5C,6DAAe;AAbnC,4DAA0D;AAarB,oDAAY;AAZjD,0EAAwE;AAYrB,yEAAmB;AAXtE,kEAAgE;AAYtD,6DAAe;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8EAAmB;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE,IAAa,eAAe;IAA5B;IAA+B,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAhC,IAAgC;AAAnB,eAAe;IAT3B,eAAQ,CAAC;QACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;QACtC,YAAY,EAAE;YACV,2BAAS,EAAE,kCAAe;YAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;YAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;SAChC;QACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;KAC1C,CAAC;GACW,eAAe,CAAI;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { DataTable} from './components/table.component';\nimport { DataTableColumn } from './components/column.component';\nimport { DataTableRow } from './components/row.component';\nimport { DataTablePagination } from './components/pagination.component';\nimport { DataTableHeader } from './components/header.component';\n\nimport { PixelConverter } from './utils/px';\nimport { Hide } from './utils/hide';\nimport { MinPipe } from './utils/min';\nimport { DataTableTranslations } from './types/data-table-translations.type';\nimport { CellCallback } from './types/cell-callback.type';\nimport { RowCallback } from './types/row-callback.type';\nimport { DataTableParams } from './types/data-table-params.type';\nimport { defaultTranslations } from './types/default-translations.type';\nexport * from './tools/data-table-resource';\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\n\n\n@NgModule({\n imports: [ CommonModule, FormsModule ],\n declarations: [\n DataTable, DataTableColumn,\n DataTableRow, DataTablePagination, DataTableHeader,\n PixelConverter, Hide, MinPipe\n ],\n exports: [ DataTable, DataTableColumn ]\n})\nexport class DataTableModule { }\n"]} \ No newline at end of file diff --git a/dist/tools/data-table-resource.d.ts b/dist/tools/data-table-resource.d.ts new file mode 100644 index 0000000..6670e46 --- /dev/null +++ b/dist/tools/data-table-resource.d.ts @@ -0,0 +1,7 @@ +import { DataTableParams } from '../types/data-table-params.type'; +export declare class DataTableResource { + private items; + constructor(items: T[]); + query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise; + count(): Promise; +} diff --git a/dist/tools/data-table-resource.js b/dist/tools/data-table-resource.js new file mode 100644 index 0000000..a9ae8b8 --- /dev/null +++ b/dist/tools/data-table-resource.js @@ -0,0 +1,48 @@ +"use strict"; +var DataTableResource = (function () { + function DataTableResource(items) { + this.items = items; + } + DataTableResource.prototype.query = function (params, filter) { + var result = []; + if (filter) { + result = this.items.filter(filter); + } + else { + result = this.items.slice(); // shallow copy to use for sorting instead of changing the original + } + if (params.sortBy) { + result.sort(function (a, b) { + if (typeof a[params.sortBy] === 'string') { + return a[params.sortBy].localeCompare(b[params.sortBy]); + } + else { + return a[params.sortBy] - b[params.sortBy]; + } + }); + if (params.sortAsc === false) { + result.reverse(); + } + } + if (params.offset !== undefined) { + if (params.limit === undefined) { + result = result.slice(params.offset, result.length); + } + else { + result = result.slice(params.offset, params.offset + params.limit); + } + } + return new Promise(function (resolve, reject) { + setTimeout(function () { return resolve(result); }); + }); + }; + DataTableResource.prototype.count = function () { + var _this = this; + return new Promise(function (resolve, reject) { + setTimeout(function () { return resolve(_this.items.length); }); + }); + }; + return DataTableResource; +}()); +exports.DataTableResource = DataTableResource; +//# sourceMappingURL=/tools/data-table-resource.js.map \ No newline at end of file diff --git a/dist/tools/data-table-resource.js.map b/dist/tools/data-table-resource.js.map new file mode 100644 index 0000000..8575e4b --- /dev/null +++ b/dist/tools/data-table-resource.js.map @@ -0,0 +1 @@ +{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\n\n\nexport class DataTableResource {\n\n constructor(private items: T[]) {}\n\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\n\n let result: T[] = [];\n if (filter) {\n result = this.items.filter(filter);\n } else {\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\n }\n\n if (params.sortBy) {\n result.sort((a, b) => {\n if (typeof a[params.sortBy] === 'string') {\n return a[params.sortBy].localeCompare(b[params.sortBy]);\n } else {\n return a[params.sortBy] - b[params.sortBy];\n }\n });\n if (params.sortAsc === false) {\n result.reverse();\n }\n }\n if (params.offset !== undefined) {\n if (params.limit === undefined) {\n result = result.slice(params.offset, result.length);\n } else {\n result = result.slice(params.offset, params.offset + params.limit);\n }\n }\n\n return new Promise((resolve, reject) => {\n setTimeout(() => resolve(result));\n });\n }\n\n count(): Promise {\n return new Promise((resolve, reject) => {\n setTimeout(() => resolve(this.items.length));\n });\n\n }\n}\n"]} \ No newline at end of file diff --git a/dist/types/cell-callback.type.d.ts b/dist/types/cell-callback.type.d.ts new file mode 100644 index 0000000..7c2a278 --- /dev/null +++ b/dist/types/cell-callback.type.d.ts @@ -0,0 +1,3 @@ +import { DataTableRow } from '../components/row.component'; +import { DataTableColumn } from '../components/column.component'; +export declare type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string; diff --git a/dist/types/cell-callback.type.js b/dist/types/cell-callback.type.js new file mode 100644 index 0000000..6dca955 --- /dev/null +++ b/dist/types/cell-callback.type.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=/types/cell-callback.type.js.map \ No newline at end of file diff --git a/dist/types/cell-callback.type.js.map b/dist/types/cell-callback.type.js.map new file mode 100644 index 0000000..9da68eb --- /dev/null +++ b/dist/types/cell-callback.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cell-callback.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/cell-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\nimport { DataTableColumn } from '../components/column.component';\r\n\r\nexport type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-params.type.d.ts b/dist/types/data-table-params.type.d.ts new file mode 100644 index 0000000..cece533 --- /dev/null +++ b/dist/types/data-table-params.type.d.ts @@ -0,0 +1,6 @@ +export interface DataTableParams { + offset?: number; + limit?: number; + sortBy?: string; + sortAsc?: boolean; +} diff --git a/dist/types/data-table-params.type.js b/dist/types/data-table-params.type.js new file mode 100644 index 0000000..f017da5 --- /dev/null +++ b/dist/types/data-table-params.type.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=/types/data-table-params.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-params.type.js.map b/dist/types/data-table-params.type.js.map new file mode 100644 index 0000000..04ce667 --- /dev/null +++ b/dist/types/data-table-params.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"data-table-params.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/data-table-params.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableParams {\r\n offset?: number;\r\n limit?: number;\r\n sortBy?: string;\r\n sortAsc?: boolean;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-translations.type.d.ts b/dist/types/data-table-translations.type.d.ts new file mode 100644 index 0000000..87b3967 --- /dev/null +++ b/dist/types/data-table-translations.type.d.ts @@ -0,0 +1,7 @@ +export interface DataTableTranslations { + indexColumn: string; + selectColumn: string; + expandColumn: string; + paginationLimit: string; + paginationRange: string; +} diff --git a/dist/types/data-table-translations.type.js b/dist/types/data-table-translations.type.js new file mode 100644 index 0000000..bf0eb79 --- /dev/null +++ b/dist/types/data-table-translations.type.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=/types/data-table-translations.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-translations.type.js.map b/dist/types/data-table-translations.type.js.map new file mode 100644 index 0000000..a91d54e --- /dev/null +++ b/dist/types/data-table-translations.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"data-table-translations.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/data-table-translations.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableTranslations {\r\n indexColumn: string;\r\n selectColumn: string;\r\n expandColumn: string;\r\n paginationLimit: string;\r\n paginationRange: string;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/default-translations.type.d.ts b/dist/types/default-translations.type.d.ts new file mode 100644 index 0000000..0ee4b08 --- /dev/null +++ b/dist/types/default-translations.type.d.ts @@ -0,0 +1,2 @@ +import { DataTableTranslations } from './data-table-translations.type'; +export declare const defaultTranslations: DataTableTranslations; diff --git a/dist/types/default-translations.type.js b/dist/types/default-translations.type.js new file mode 100644 index 0000000..75d64cc --- /dev/null +++ b/dist/types/default-translations.type.js @@ -0,0 +1,9 @@ +"use strict"; +exports.defaultTranslations = { + indexColumn: 'index', + selectColumn: 'select', + expandColumn: 'expand', + paginationLimit: 'Limit', + paginationRange: 'Results' +}; +//# sourceMappingURL=/types/default-translations.type.js.map \ No newline at end of file diff --git a/dist/types/default-translations.type.js.map b/dist/types/default-translations.type.js.map new file mode 100644 index 0000000..20a7f23 --- /dev/null +++ b/dist/types/default-translations.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file diff --git a/dist/types/row-callback.type.d.ts b/dist/types/row-callback.type.d.ts new file mode 100644 index 0000000..a9d59b2 --- /dev/null +++ b/dist/types/row-callback.type.d.ts @@ -0,0 +1,2 @@ +import { DataTableRow } from '../components/row.component'; +export declare type RowCallback = (item: any, row: DataTableRow, index: number) => string; diff --git a/dist/types/row-callback.type.js b/dist/types/row-callback.type.js new file mode 100644 index 0000000..1283a95 --- /dev/null +++ b/dist/types/row-callback.type.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=/types/row-callback.type.js.map \ No newline at end of file diff --git a/dist/types/row-callback.type.js.map b/dist/types/row-callback.type.js.map new file mode 100644 index 0000000..8bd7958 --- /dev/null +++ b/dist/types/row-callback.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"row-callback.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/row-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\n\r\nexport type RowCallback = (item: any, row: DataTableRow, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/utils/drag.d.ts b/dist/utils/drag.d.ts new file mode 100644 index 0000000..58c168b --- /dev/null +++ b/dist/utils/drag.d.ts @@ -0,0 +1,6 @@ +export declare type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void; +export declare type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void; +export declare function drag(event: MouseEvent, {move: move, up: up}: { + move: MoveHandler; + up?: UpHandler; +}): void; diff --git a/dist/utils/drag.js b/dist/utils/drag.js new file mode 100644 index 0000000..2c72536 --- /dev/null +++ b/dist/utils/drag.js @@ -0,0 +1,31 @@ +"use strict"; +function drag(event, _a) { + var move = _a.move, up = _a.up; + var startX = event.pageX; + var startY = event.pageY; + var x = startX; + var y = startY; + var moved = false; + function mouseMoveHandler(event) { + var dx = event.pageX - x; + var dy = event.pageY - y; + x = event.pageX; + y = event.pageY; + if (dx || dy) + moved = true; + move(event, dx, dy, x, y); + event.preventDefault(); // to avoid text selection + } + function mouseUpHandler(event) { + x = event.pageX; + y = event.pageY; + document.removeEventListener('mousemove', mouseMoveHandler); + document.removeEventListener('mouseup', mouseUpHandler); + if (up) + up(event, x, y, moved); + } + document.addEventListener('mousemove', mouseMoveHandler); + document.addEventListener('mouseup', mouseUpHandler); +} +exports.drag = drag; +//# sourceMappingURL=/utils/drag.js.map \ No newline at end of file diff --git a/dist/utils/drag.js.map b/dist/utils/drag.js.map new file mode 100644 index 0000000..e89d4d2 --- /dev/null +++ b/dist/utils/drag.js.map @@ -0,0 +1 @@ +{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/hide.d.ts b/dist/utils/hide.d.ts new file mode 100644 index 0000000..ef6bccd --- /dev/null +++ b/dist/utils/hide.d.ts @@ -0,0 +1,10 @@ +import { ElementRef, Renderer } from '@angular/core'; +export declare class Hide { + private _elementRef; + private _renderer; + private _prevCondition; + private _displayStyle; + constructor(_elementRef: ElementRef, _renderer: Renderer); + hide: boolean; + private initDisplayStyle(); +} diff --git a/dist/utils/hide.js b/dist/utils/hide.js new file mode 100644 index 0000000..b7557e8 --- /dev/null +++ b/dist/utils/hide.js @@ -0,0 +1,51 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = require("@angular/core"); +function isBlank(obj) { + return obj === undefined || obj === null; +} +var Hide = (function () { + function Hide(_elementRef, _renderer) { + this._elementRef = _elementRef; + this._renderer = _renderer; + this._prevCondition = null; + } + Object.defineProperty(Hide.prototype, "hide", { + set: function (newCondition) { + this.initDisplayStyle(); + if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) { + this._prevCondition = true; + this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none'); + } + else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) { + this._prevCondition = false; + this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle); + } + }, + enumerable: true, + configurable: true + }); + Hide.prototype.initDisplayStyle = function () { + if (this._displayStyle === undefined) { + var displayStyle = this._elementRef.nativeElement.style.display; + if (displayStyle && displayStyle !== 'none') { + this._displayStyle = displayStyle; + } + } + }; + return Hide; +}()); +Hide = __decorate([ + core_1.Directive({ selector: '[hide]', inputs: ['hide'] }), + __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer]) +], Hide); +exports.Hide = Hide; +//# sourceMappingURL=/utils/hide.js.map \ No newline at end of file diff --git a/dist/utils/hide.js.map b/dist/utils/hide.js.map new file mode 100644 index 0000000..b10ffc3 --- /dev/null +++ b/dist/utils/hide.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD,IAAa,IAAI;IAKf,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,IAAI;IADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;qCAMjB,iBAAU,EAAqB,eAAQ;GAL7D,IAAI,CA2BhB;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/min.d.ts b/dist/utils/min.d.ts new file mode 100644 index 0000000..c352717 --- /dev/null +++ b/dist/utils/min.d.ts @@ -0,0 +1,4 @@ +import { PipeTransform } from '@angular/core'; +export declare class MinPipe implements PipeTransform { + transform(value: number[], args: string[]): any; +} diff --git a/dist/utils/min.js b/dist/utils/min.js new file mode 100644 index 0000000..0da7f92 --- /dev/null +++ b/dist/utils/min.js @@ -0,0 +1,23 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var core_1 = require("@angular/core"); +var MinPipe = (function () { + function MinPipe() { + } + MinPipe.prototype.transform = function (value, args) { + return Math.min.apply(null, value); + }; + return MinPipe; +}()); +MinPipe = __decorate([ + core_1.Pipe({ + name: 'min' + }) +], MinPipe); +exports.MinPipe = MinPipe; +//# sourceMappingURL=/utils/min.js.map \ No newline at end of file diff --git a/dist/utils/min.js.map b/dist/utils/min.js.map new file mode 100644 index 0000000..2219c9a --- /dev/null +++ b/dist/utils/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;AAAA,sCAAoD;AAMpD,IAAa,OAAO;IAApB;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACH,cAAC;AAAD,CAAC,AAJD,IAIC;AAJY,OAAO;IAHnB,WAAI,CAAC;QACJ,IAAI,EAAE,KAAK;KACZ,CAAC;GACW,OAAO,CAInB;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/px.d.ts b/dist/utils/px.d.ts new file mode 100644 index 0000000..480100f --- /dev/null +++ b/dist/utils/px.d.ts @@ -0,0 +1,4 @@ +import { PipeTransform } from '@angular/core'; +export declare class PixelConverter implements PipeTransform { + transform(value: string | number, args: string[]): any; +} diff --git a/dist/utils/px.js b/dist/utils/px.js new file mode 100644 index 0000000..d33c1db --- /dev/null +++ b/dist/utils/px.js @@ -0,0 +1,31 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var core_1 = require("@angular/core"); +var PixelConverter = (function () { + function PixelConverter() { + } + PixelConverter.prototype.transform = function (value, args) { + if (value === undefined) { + return; + } + if (typeof value === 'string') { + return value; + } + if (typeof value === 'number') { + return value + 'px'; + } + }; + return PixelConverter; +}()); +PixelConverter = __decorate([ + core_1.Pipe({ + name: 'px' + }) +], PixelConverter); +exports.PixelConverter = PixelConverter; +//# sourceMappingURL=/utils/px.js.map \ No newline at end of file diff --git a/dist/utils/px.js.map b/dist/utils/px.js.map new file mode 100644 index 0000000..bd1ccf2 --- /dev/null +++ b/dist/utils/px.js.map @@ -0,0 +1 @@ +{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;AAAA,sCAAoD;AAMpD,IAAa,cAAc;IAA3B;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,cAAc;IAH1B,WAAI,CAAC;QACJ,IAAI,EAAE,IAAI;KACX,CAAC;GACW,cAAc,CAY1B;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/package.json b/package.json index f390f74..1cc1141 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.1.3", + "version": "0.1.4", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", @@ -16,8 +16,7 @@ "typings": "dist/index.d.ts", "scripts": { "build": "tsc", - "serve": "tsc -w", - "prepublish": "npm run build" + "serve": "tsc -w" }, "repository": { "type": "git", diff --git a/src/components/column.component.ts b/src/components/column.component.ts index 0abb1af..9b34b8c 100644 --- a/src/components/column.component.ts +++ b/src/components/column.component.ts @@ -1,6 +1,6 @@ import { Directive, Input, ContentChild, OnInit } from '@angular/core'; import { DataTableRow } from './row.component'; -import { CellCallback } from './types'; +import { CellCallback } from '../types/cell-callback.type'; @Directive({ diff --git a/src/components/table.component.ts b/src/components/table.component.ts index e78cdf7..3ae7d8f 100644 --- a/src/components/table.component.ts +++ b/src/components/table.component.ts @@ -4,9 +4,10 @@ import { } from '@angular/core'; import { DataTableColumn } from './column.component'; import { DataTableRow } from './row.component'; -import { DataTableParams } from './types'; -import { RowCallback } from './types'; -import { DataTableTranslations, defaultTranslations } from './types'; +import { DataTableParams } from '../types/data-table-params.type'; +import { RowCallback } from '../types/row-callback.type'; +import { DataTableTranslations } from '../types/data-table-translations.type'; +import { defaultTranslations } from '../types/default-translations.type'; import { drag } from '../utils/drag'; import { TABLE_TEMPLATE } from './table.template'; import { TABLE_STYLE } from "./table.style"; diff --git a/src/components/types.ts b/src/components/types.ts deleted file mode 100644 index 30769ec..0000000 --- a/src/components/types.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { DataTableRow } from './row.component'; -import { DataTableColumn } from './column.component'; - - -export type RowCallback = (item: any, row: DataTableRow, index: number) => string; - -export type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string; - -// export type HeaderCallback = (column: DataTableColumn) => string; - - -export interface DataTableTranslations { - indexColumn: string; - selectColumn: string; - expandColumn: string; - paginationLimit: string; - paginationRange: string; -} - -export var defaultTranslations = { - indexColumn: 'index', - selectColumn: 'select', - expandColumn: 'expand', - paginationLimit: 'Limit', - paginationRange: 'Results' -}; - - -export interface DataTableParams { - offset?: number; - limit?: number; - sortBy?: string; - sortAsc?: boolean; -} diff --git a/src/index.ts b/src/index.ts index ac90400..2b4b8c0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,11 +11,14 @@ import { DataTableHeader } from './components/header.component'; import { PixelConverter } from './utils/px'; import { Hide } from './utils/hide'; import { MinPipe } from './utils/min'; - -export * from './components/types'; +import { DataTableTranslations } from './types/data-table-translations.type'; +import { CellCallback } from './types/cell-callback.type'; +import { RowCallback } from './types/row-callback.type'; +import { DataTableParams } from './types/data-table-params.type'; +import { defaultTranslations } from './types/default-translations.type'; export * from './tools/data-table-resource'; - -export { DataTable, DataTableColumn, DataTableRow, DataTablePagination, DataTableHeader }; +export { DataTable, DataTableColumn, DataTableRow, DataTablePagination, + DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations}; export const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ]; @@ -28,4 +31,4 @@ export const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ]; ], exports: [ DataTable, DataTableColumn ] }) -export class DataTableModule { } \ No newline at end of file +export class DataTableModule { } diff --git a/src/tools/data-table-resource.ts b/src/tools/data-table-resource.ts index 31a2768..5c74e39 100644 --- a/src/tools/data-table-resource.ts +++ b/src/tools/data-table-resource.ts @@ -1,4 +1,4 @@ -import { DataTableParams } from '../components/types'; +import { DataTableParams } from '../types/data-table-params.type'; export class DataTableResource { diff --git a/src/types/cell-callback.type.ts b/src/types/cell-callback.type.ts new file mode 100644 index 0000000..8636d01 --- /dev/null +++ b/src/types/cell-callback.type.ts @@ -0,0 +1,4 @@ +import { DataTableRow } from '../components/row.component'; +import { DataTableColumn } from '../components/column.component'; + +export type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string; diff --git a/src/types/data-table-params.type.ts b/src/types/data-table-params.type.ts new file mode 100644 index 0000000..1aac0d0 --- /dev/null +++ b/src/types/data-table-params.type.ts @@ -0,0 +1,6 @@ +export interface DataTableParams { + offset?: number; + limit?: number; + sortBy?: string; + sortAsc?: boolean; +} diff --git a/src/types/data-table-translations.type.ts b/src/types/data-table-translations.type.ts new file mode 100644 index 0000000..2d02b8b --- /dev/null +++ b/src/types/data-table-translations.type.ts @@ -0,0 +1,7 @@ +export interface DataTableTranslations { + indexColumn: string; + selectColumn: string; + expandColumn: string; + paginationLimit: string; + paginationRange: string; +} diff --git a/src/types/default-translations.type.ts b/src/types/default-translations.type.ts new file mode 100644 index 0000000..429162c --- /dev/null +++ b/src/types/default-translations.type.ts @@ -0,0 +1,9 @@ +import {DataTableTranslations} from'./data-table-translations.type' + +export const defaultTranslations: DataTableTranslations = { + indexColumn: 'index', + selectColumn: 'select', + expandColumn: 'expand', + paginationLimit: 'Limit', + paginationRange: 'Results' +}; diff --git a/src/types/row-callback.type.ts b/src/types/row-callback.type.ts new file mode 100644 index 0000000..d80637d --- /dev/null +++ b/src/types/row-callback.type.ts @@ -0,0 +1,3 @@ +import { DataTableRow } from '../components/row.component'; + +export type RowCallback = (item: any, row: DataTableRow, index: number) => string; diff --git a/tsconfig.json b/tsconfig.json index 3a58908..196e45f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,5 +27,8 @@ "dist", "node_modules", "index.ts" - ] + ], + "angularCompilerOptions": { + "skipTemplateCodegen": true + } } From 46a7e38fffea8d8bf07f713bceb3c082792a180a Mon Sep 17 00:00:00 2001 From: "siniidrozd@gmail.com" Date: Tue, 1 Aug 2017 06:29:38 +0300 Subject: [PATCH 04/41] pre compile --- dist/components/column.component.js | 91 +++---- dist/components/column.component.js.map | 2 +- dist/components/header.component.js | 25 +- dist/components/header.component.js.map | 2 +- dist/components/header.style.js | 1 + dist/components/header.style.js.map | 2 +- dist/components/header.template.js | 1 + dist/components/header.template.js.map | 2 +- dist/components/pagination.component.js | 19 +- dist/components/pagination.component.js.map | 2 +- dist/components/pagination.style.js | 1 + dist/components/pagination.style.js.map | 2 +- dist/components/pagination.template.js | 1 + dist/components/pagination.template.js.map | 2 +- dist/components/row.component.js | 43 ++-- dist/components/row.component.js.map | 2 +- dist/components/row.style.js | 1 + dist/components/row.style.js.map | 2 +- dist/components/row.template.js | 1 + dist/components/row.template.js.map | 2 +- dist/components/table.component.js | 267 ++++++++++---------- dist/components/table.component.js.map | 2 +- dist/components/table.style.js | 1 + dist/components/table.style.js.map | 2 +- dist/components/table.template.js | 1 + dist/components/table.template.js.map | 2 +- dist/index.js | 23 +- dist/index.js.map | 2 +- dist/tools/data-table-resource.js | 1 + dist/tools/data-table-resource.js.map | 2 +- dist/types/cell-callback.type.js | 1 + dist/types/data-table-params.type.js | 1 + dist/types/data-table-translations.type.js | 1 + dist/types/default-translations.type.js | 1 + dist/types/default-translations.type.js.map | 2 +- dist/types/row-callback.type.js | 1 + dist/utils/drag.js | 1 + dist/utils/drag.js.map | 2 +- dist/utils/hide.js | 9 +- dist/utils/hide.js.map | 2 +- dist/utils/min.js | 11 +- dist/utils/min.js.map | 2 +- dist/utils/px.js | 11 +- dist/utils/px.js.map | 2 +- package.json | 14 +- 45 files changed, 291 insertions(+), 277 deletions(-) diff --git a/dist/components/column.component.js b/dist/components/column.component.js index cffc126..c15f25c 100644 --- a/dist/components/column.component.js +++ b/dist/components/column.component.js @@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var DataTableColumn = (function () { function DataTableColumn() { @@ -40,52 +41,52 @@ var DataTableColumn = (function () { } var _a; }; + __decorate([ + core_1.Input(), + __metadata("design:type", String) + ], DataTableColumn.prototype, "header", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTableColumn.prototype, "sortable", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTableColumn.prototype, "resizable", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", String) + ], DataTableColumn.prototype, "property", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", String) + ], DataTableColumn.prototype, "styleClass", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Function) + ], DataTableColumn.prototype, "cellColors", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTableColumn.prototype, "width", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTableColumn.prototype, "visible", void 0); + __decorate([ + core_1.ContentChild('dataTableCell'), + __metadata("design:type", Object) + ], DataTableColumn.prototype, "cellTemplate", void 0); + __decorate([ + core_1.ContentChild('dataTableHeader'), + __metadata("design:type", Object) + ], DataTableColumn.prototype, "headerTemplate", void 0); + DataTableColumn = __decorate([ + core_1.Directive({ + selector: 'data-table-column' + }) + ], DataTableColumn); return DataTableColumn; }()); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTableColumn.prototype, "header", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "sortable", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "resizable", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTableColumn.prototype, "property", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTableColumn.prototype, "styleClass", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Function) -], DataTableColumn.prototype, "cellColors", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "visible", void 0); -__decorate([ - core_1.ContentChild('dataTableCell'), - __metadata("design:type", Object) -], DataTableColumn.prototype, "cellTemplate", void 0); -__decorate([ - core_1.ContentChild('dataTableHeader'), - __metadata("design:type", Object) -], DataTableColumn.prototype, "headerTemplate", void 0); -DataTableColumn = __decorate([ - core_1.Directive({ - selector: 'data-table-column' - }) -], DataTableColumn); exports.DataTableColumn = DataTableColumn; //# sourceMappingURL=/components/column.component.js.map \ No newline at end of file diff --git a/dist/components/column.component.js.map b/dist/components/column.component.js.map index d9bbc13..33f72d8 100644 --- a/dist/components/column.component.js.map +++ b/dist/components/column.component.js.map @@ -1 +1 @@ -{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAuE;AAQvE,IAAa,eAAe;IAH5B;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IACL,sBAAC;AAAD,CAAC,AA5CD,IA4CC;AAzCY;IAAR,YAAK,EAAE;;+CAAgB;AACf;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;kDAAmB;AAClB;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;mDAAoB;AACnB;IAAR,YAAK,EAAE;;mDAA0B;AAGzB;IAAR,YAAK,EAAE;;8CAAwB;AACvB;IAAR,YAAK,EAAE;;gDAAgB;AAEO;IAA9B,mBAAY,CAAC,eAAe,CAAC;;qDAAc;AACX;IAAhC,mBAAY,CAAC,iBAAiB,CAAC;;uDAAgB;AAfvC,eAAe;IAH3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;GACW,eAAe,CA4C3B;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\r\nimport { DataTableRow } from './row.component';\r\nimport { CellCallback } from '../types/cell-callback.type';\r\n\r\n\r\n@Directive({\r\n selector: 'data-table-column'\r\n})\r\nexport class DataTableColumn implements OnInit {\r\n\r\n // init:\r\n @Input() header: string;\r\n @Input() sortable = false;\r\n @Input() resizable = false;\r\n @Input() property: string;\r\n @Input() styleClass: string;\r\n @Input() cellColors: CellCallback;\r\n\r\n // init and state:\r\n @Input() width: number | string;\r\n @Input() visible = true;\r\n\r\n @ContentChild('dataTableCell') cellTemplate;\r\n @ContentChild('dataTableHeader') headerTemplate;\r\n\r\n getCellColor(row: DataTableRow, index: number) {\r\n if (this.cellColors !== undefined) {\r\n return (this.cellColors)(row.item, row, this, index);\r\n }\r\n }\r\n\r\n private styleClassObject = {}; // for [ngClass]\r\n\r\n ngOnInit() {\r\n this._initCellClass();\r\n }\r\n\r\n private _initCellClass() {\r\n if (!this.styleClass && this.property) {\r\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\r\n this.styleClass = 'column-' + this.property;\r\n } else {\r\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\r\n }\r\n }\r\n\r\n if (this.styleClass != null) {\r\n this.styleClassObject = {\r\n [this.styleClass]: true\r\n };\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAuE;AAQvE;IAHA;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IAxCQ;QAAR,YAAK,EAAE;;mDAAgB;IACf;QAAR,YAAK,EAAE;;qDAAkB;IACjB;QAAR,YAAK,EAAE;;sDAAmB;IAClB;QAAR,YAAK,EAAE;;qDAAkB;IACjB;QAAR,YAAK,EAAE;;uDAAoB;IACnB;QAAR,YAAK,EAAE;;uDAA0B;IAGzB;QAAR,YAAK,EAAE;;kDAAwB;IACvB;QAAR,YAAK,EAAE;;oDAAgB;IAEO;QAA9B,mBAAY,CAAC,eAAe,CAAC;;yDAAc;IACX;QAAhC,mBAAY,CAAC,iBAAiB,CAAC;;2DAAgB;IAfvC,eAAe;QAH3B,gBAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;SAC9B,CAAC;OACW,eAAe,CA4C3B;IAAD,sBAAC;CAAA,AA5CD,IA4CC;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\r\nimport { DataTableRow } from './row.component';\r\nimport { CellCallback } from '../types/cell-callback.type';\r\n\r\n\r\n@Directive({\r\n selector: 'data-table-column'\r\n})\r\nexport class DataTableColumn implements OnInit {\r\n\r\n // init:\r\n @Input() header: string;\r\n @Input() sortable = false;\r\n @Input() resizable = false;\r\n @Input() property: string;\r\n @Input() styleClass: string;\r\n @Input() cellColors: CellCallback;\r\n\r\n // init and state:\r\n @Input() width: number | string;\r\n @Input() visible = true;\r\n\r\n @ContentChild('dataTableCell') cellTemplate;\r\n @ContentChild('dataTableHeader') headerTemplate;\r\n\r\n getCellColor(row: DataTableRow, index: number) {\r\n if (this.cellColors !== undefined) {\r\n return (this.cellColors)(row.item, row, this, index);\r\n }\r\n }\r\n\r\n private styleClassObject = {}; // for [ngClass]\r\n\r\n ngOnInit() {\r\n this._initCellClass();\r\n }\r\n\r\n private _initCellClass() {\r\n if (!this.styleClass && this.property) {\r\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\r\n this.styleClass = 'column-' + this.property;\r\n } else {\r\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\r\n }\r\n }\r\n\r\n if (this.styleClass != null) {\r\n this.styleClassObject = {\r\n [this.styleClass]: true\r\n };\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.component.js b/dist/components/header.component.js index f3c1d47..63cbc59 100644 --- a/dist/components/header.component.js +++ b/dist/components/header.component.js @@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var table_component_1 = require("./table.component"); var header_template_1 = require("./header.template"); @@ -23,19 +24,19 @@ var DataTableHeader = (function () { DataTableHeader.prototype._closeSelector = function () { this.columnSelectorOpen = false; }; + DataTableHeader = __decorate([ + core_1.Component({ + selector: 'data-table-header', + template: header_template_1.HEADER_TEMPLATE, + styles: [header_style_1.HEADER_STYLE], + host: { + '(document:click)': '_closeSelector()' + } + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) + ], DataTableHeader); return DataTableHeader; }()); -DataTableHeader = __decorate([ - core_1.Component({ - selector: 'data-table-header', - template: header_template_1.HEADER_TEMPLATE, - styles: [header_style_1.HEADER_STYLE], - host: { - '(document:click)': '_closeSelector()' - } - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) -], DataTableHeader); exports.DataTableHeader = DataTableHeader; //# sourceMappingURL=/components/header.component.js.map \ No newline at end of file diff --git a/dist/components/header.component.js.map b/dist/components/header.component.js.map index 8d24351..744c62f 100644 --- a/dist/components/header.component.js.map +++ b/dist/components/header.component.js.map @@ -1 +1 @@ -{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAW9C,IAAa,eAAe;IAQxB,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAGL,sBAAC;AAAD,CAAC,AATD,IASC;AATY,eAAe;IAR3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,iCAAe;QACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;QACtB,IAAI,EAAE;YACJ,kBAAkB,EAAE,kBAAkB;SACvC;KACF,CAAC;IASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GARnE,eAAe,CAS3B;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { HEADER_TEMPLATE } from './header.template';\r\nimport { HEADER_STYLE } from \"./header.style\";\r\n\r\n\r\n@Component({\r\n selector: 'data-table-header',\r\n template: HEADER_TEMPLATE,\r\n styles: [HEADER_STYLE],\r\n host: {\r\n '(document:click)': '_closeSelector()'\r\n }\r\n})\r\nexport class DataTableHeader {\r\n\r\n columnSelectorOpen = false;\r\n\r\n _closeSelector() {\r\n this.columnSelectorOpen = false;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAW9C;IAQI,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IANQ,eAAe;QAR3B,gBAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE,iCAAe;YACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;YACtB,IAAI,EAAE;gBACJ,kBAAkB,EAAE,kBAAkB;aACvC;SACF,CAAC;QASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;yCAAmB,2BAAS;OARnE,eAAe,CAS3B;IAAD,sBAAC;CAAA,AATD,IASC;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { HEADER_TEMPLATE } from './header.template';\r\nimport { HEADER_STYLE } from \"./header.style\";\r\n\r\n\r\n@Component({\r\n selector: 'data-table-header',\r\n template: HEADER_TEMPLATE,\r\n styles: [HEADER_STYLE],\r\n host: {\r\n '(document:click)': '_closeSelector()'\r\n }\r\n})\r\nexport class DataTableHeader {\r\n\r\n columnSelectorOpen = false;\r\n\r\n _closeSelector() {\r\n this.columnSelectorOpen = false;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.style.js b/dist/components/header.style.js index 26455b0..31662ea 100644 --- a/dist/components/header.style.js +++ b/dist/components/header.style.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.HEADER_STYLE = "\n.data-table-header {\n min-height: 25px;\n margin-bottom: 10px;\n}\n.title {\n display: inline-block;\n margin: 5px 0 0 5px;\n}\n.button-panel {\n float: right;\n}\n.button-panel button {\n outline: none !important;\n}\n\n.column-selector-wrapper {\n position: relative;\n}\n.column-selector-box {\n box-shadow: 0 0 10px lightgray;\n width: 150px;\n padding: 10px;\n position: absolute;\n right: 0;\n top: 1px;\n z-index: 1060;\n}\n.column-selector-box .checkbox {\n margin-bottom: 4px;\n}\n.column-selector-fixed-column {\n font-style: italic;\n}\n"; //# sourceMappingURL=/components/header.style.js.map \ No newline at end of file diff --git a/dist/components/header.style.js.map b/dist/components/header.style.js.map index 9497826..eecdb8b 100644 --- a/dist/components/header.style.js.map +++ b/dist/components/header.style.js.map @@ -1 +1 @@ -{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\r\n.data-table-header {\r\n min-height: 25px;\r\n margin-bottom: 10px;\r\n}\r\n.title {\r\n display: inline-block;\r\n margin: 5px 0 0 5px;\r\n}\r\n.button-panel {\r\n float: right;\r\n}\r\n.button-panel button {\r\n outline: none !important;\r\n}\r\n\r\n.column-selector-wrapper {\r\n position: relative;\r\n}\r\n.column-selector-box {\r\n box-shadow: 0 0 10px lightgray;\r\n width: 150px;\r\n padding: 10px;\r\n position: absolute;\r\n right: 0;\r\n top: 1px;\r\n z-index: 1060;\r\n}\r\n.column-selector-box .checkbox {\r\n margin-bottom: 4px;\r\n}\r\n.column-selector-fixed-column {\r\n font-style: italic;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\r\n.data-table-header {\r\n min-height: 25px;\r\n margin-bottom: 10px;\r\n}\r\n.title {\r\n display: inline-block;\r\n margin: 5px 0 0 5px;\r\n}\r\n.button-panel {\r\n float: right;\r\n}\r\n.button-panel button {\r\n outline: none !important;\r\n}\r\n\r\n.column-selector-wrapper {\r\n position: relative;\r\n}\r\n.column-selector-box {\r\n box-shadow: 0 0 10px lightgray;\r\n width: 150px;\r\n padding: 10px;\r\n position: absolute;\r\n right: 0;\r\n top: 1px;\r\n z-index: 1060;\r\n}\r\n.column-selector-box .checkbox {\r\n margin-bottom: 4px;\r\n}\r\n.column-selector-fixed-column {\r\n font-style: italic;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/header.template.js b/dist/components/header.template.js index 08f1ff7..d69a350 100644 --- a/dist/components/header.template.js +++ b/dist/components/header.template.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.HEADER_TEMPLATE = "\n
\n

\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n"; //# sourceMappingURL=/components/header.template.js.map \ No newline at end of file diff --git a/dist/components/header.template.js.map b/dist/components/header.template.js.map index be28aa6..34fe1c5 100644 --- a/dist/components/header.template.js.map +++ b/dist/components/header.template.js.map @@ -1 +1 @@ -{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_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
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file +{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";;AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_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
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.component.js b/dist/components/pagination.component.js index 13975b9..062fc61 100644 --- a/dist/components/pagination.component.js +++ b/dist/components/pagination.component.js @@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var table_component_1 = require("./table.component"); var pagination_template_1 = require("./pagination.template"); @@ -58,16 +59,16 @@ var DataTablePagination = (function () { enumerable: true, configurable: true }); + DataTablePagination = __decorate([ + core_1.Component({ + selector: 'data-table-pagination', + template: pagination_template_1.PAGINATION_TEMPLATE, + styles: [pagination_style_1.PAGINATION_STYLE] + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) + ], DataTablePagination); return DataTablePagination; }()); -DataTablePagination = __decorate([ - core_1.Component({ - selector: 'data-table-pagination', - template: pagination_template_1.PAGINATION_TEMPLATE, - styles: [pagination_style_1.PAGINATION_STYLE] - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) -], DataTablePagination); exports.DataTablePagination = DataTablePagination; //# sourceMappingURL=/components/pagination.component.js.map \ No newline at end of file diff --git a/dist/components/pagination.component.js.map b/dist/components/pagination.component.js.map index da3dd89..ae93fe3 100644 --- a/dist/components/pagination.component.js.map +++ b/dist/components/pagination.component.js.map @@ -1 +1 @@ -{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,6DAA4D;AAC5D,uDAAsD;AAQtD,IAAa,mBAAmB;IAE5B,6BAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEhF,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,yCAAW,GAAX;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,uCAAS,GAAT;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACtE,CAAC;IAED,sBAAI,wCAAO;aAAX;YACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;;;OAAA;IAED,sBAAI,sCAAK;aAAT;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAChC,CAAC;aAED,UAAU,KAAK;YACX,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC,CAAC,oEAAoE;QACnH,CAAC;;;OAJA;IAMD,sBAAI,qCAAI;aAAR;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/B,CAAC;aAED,UAAS,KAAK;YACV,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC;QAC7C,CAAC;;;OAJA;IAKL,0BAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,mBAAmB;IAL/B,gBAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,yCAAmB;QAC7B,MAAM,EAAE,CAAC,mCAAgB,CAAC;KAC3B,CAAC;IAGe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAFnE,mBAAmB,CAuC/B;AAvCY,kDAAmB","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { PAGINATION_TEMPLATE } from './pagination.template';\r\nimport { PAGINATION_STYLE } from \"./pagination.style\";\r\n\r\n\r\n@Component({\r\n selector: 'data-table-pagination',\r\n template: PAGINATION_TEMPLATE,\r\n styles: [PAGINATION_STYLE]\r\n})\r\nexport class DataTablePagination {\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n pageBack() {\r\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\r\n }\r\n\r\n pageForward() {\r\n this.dataTable.offset += this.dataTable.limit;\r\n }\r\n\r\n pageFirst() {\r\n this.dataTable.offset = 0;\r\n }\r\n\r\n pageLast() {\r\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\r\n }\r\n\r\n get maxPage() {\r\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\r\n }\r\n\r\n get limit() {\r\n return this.dataTable.limit;\r\n }\r\n\r\n set limit(value) {\r\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\r\n }\r\n\r\n get page() {\r\n return this.dataTable.page;\r\n }\r\n\r\n set page(value) {\r\n this.dataTable.page = Number(value);\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,6DAA4D;AAC5D,uDAAsD;AAQtD;IAEI,6BAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEhF,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,yCAAW,GAAX;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,uCAAS,GAAT;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACtE,CAAC;IAED,sBAAI,wCAAO;aAAX;YACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;;;OAAA;IAED,sBAAI,sCAAK;aAAT;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAChC,CAAC;aAED,UAAU,KAAK;YACX,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC,CAAC,oEAAoE;QACnH,CAAC;;;OAJA;IAMD,sBAAI,qCAAI;aAAR;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/B,CAAC;aAED,UAAS,KAAK;YACV,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC;QAC7C,CAAC;;;OAJA;IAlCQ,mBAAmB;QAL/B,gBAAS,CAAC;YACT,QAAQ,EAAE,uBAAuB;YACjC,QAAQ,EAAE,yCAAmB;YAC7B,MAAM,EAAE,CAAC,mCAAgB,CAAC;SAC3B,CAAC;QAGe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;yCAAmB,2BAAS;OAFnE,mBAAmB,CAuC/B;IAAD,0BAAC;CAAA,AAvCD,IAuCC;AAvCY,kDAAmB","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { PAGINATION_TEMPLATE } from './pagination.template';\r\nimport { PAGINATION_STYLE } from \"./pagination.style\";\r\n\r\n\r\n@Component({\r\n selector: 'data-table-pagination',\r\n template: PAGINATION_TEMPLATE,\r\n styles: [PAGINATION_STYLE]\r\n})\r\nexport class DataTablePagination {\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n pageBack() {\r\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\r\n }\r\n\r\n pageForward() {\r\n this.dataTable.offset += this.dataTable.limit;\r\n }\r\n\r\n pageFirst() {\r\n this.dataTable.offset = 0;\r\n }\r\n\r\n pageLast() {\r\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\r\n }\r\n\r\n get maxPage() {\r\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\r\n }\r\n\r\n get limit() {\r\n return this.dataTable.limit;\r\n }\r\n\r\n set limit(value) {\r\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\r\n }\r\n\r\n get page() {\r\n return this.dataTable.page;\r\n }\r\n\r\n set page(value) {\r\n this.dataTable.page = Number(value);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/pagination.style.js b/dist/components/pagination.style.js index 718e509..575da45 100644 --- a/dist/components/pagination.style.js +++ b/dist/components/pagination.style.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.PAGINATION_STYLE = "\n.pagination-box {\n position: relative;\n margin-top: -10px;\n}\n.pagination-range {\n margin-top: 7px;\n margin-left: 3px;\n display: inline-block;\n}\n.pagination-controllers {\n float: right;\n}\n.pagination-controllers input {\n min-width: 60px;\n /*padding: 1px 0px 0px 5px;*/\n text-align: right;\n}\n\n.pagination-limit {\n margin-right: 25px;\n display: inline-table;\n width: 150px;\n}\n.pagination-pages {\n display: inline-block;\n}\n.pagination-page {\n width: 110px;\n display: inline-table;\n}\n.pagination-box button {\n outline: none !important;\n}\n.pagination-prevpage,\n.pagination-nextpage,\n.pagination-firstpage,\n.pagination-lastpage {\n vertical-align: top;\n}\n.pagination-reload {\n color: gray;\n font-size: 12px;\n}\n"; //# sourceMappingURL=/components/pagination.style.js.map \ No newline at end of file diff --git a/dist/components/pagination.style.js.map b/dist/components/pagination.style.js.map index 8ed0ddc..129e64a 100644 --- a/dist/components/pagination.style.js.map +++ b/dist/components/pagination.style.js.map @@ -1 +1 @@ -{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";;AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.template.js b/dist/components/pagination.template.js index 7826223..79cb88c 100644 --- a/dist/components/pagination.template.js +++ b/dist/components/pagination.template.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.PAGINATION_TEMPLATE = "\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n \n
\n
\n
\n"; //# sourceMappingURL=/components/pagination.template.js.map \ No newline at end of file diff --git a/dist/components/pagination.template.js.map b/dist/components/pagination.template.js.map index 7b1d281..e2f291d 100644 --- a/dist/components/pagination.template.js.map +++ b/dist/components/pagination.template.js.map @@ -1 +1 @@ -{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";AAAa,QAAA,mBAAmB,GAAG,kxEAsClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\r\n
\r\n
\r\n {{dataTable.translations.paginationRange}}:\r\n \r\n -\r\n \r\n /\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{dataTable.translations.paginationLimit}}:\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n /\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file +{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";;AAAa,QAAA,mBAAmB,GAAG,kxEAsClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\r\n
\r\n
\r\n {{dataTable.translations.paginationRange}}:\r\n \r\n -\r\n \r\n /\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{dataTable.translations.paginationLimit}}:\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n /\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.component.js b/dist/components/row.component.js index 1add753..8014010 100644 --- a/dist/components/row.component.js +++ b/dist/components/row.component.js @@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var table_component_1 = require("./table.component"); var row_template_1 = require("./row.template"); @@ -54,28 +55,28 @@ var DataTableRow = (function () { DataTableRow.prototype.ngOnDestroy = function () { this.selected = false; }; + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTableRow.prototype, "item", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Number) + ], DataTableRow.prototype, "index", void 0); + __decorate([ + core_1.Output(), + __metadata("design:type", Object) + ], DataTableRow.prototype, "selectedChange", void 0); + DataTableRow = __decorate([ + core_1.Component({ + selector: '[dataTableRow]', + template: row_template_1.ROW_TEMPLATE, + styles: [row_style_1.ROW_STYLE] + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) + ], DataTableRow); return DataTableRow; }()); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableRow.prototype, "item", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], DataTableRow.prototype, "index", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTableRow.prototype, "selectedChange", void 0); -DataTableRow = __decorate([ - core_1.Component({ - selector: '[dataTableRow]', - template: row_template_1.ROW_TEMPLATE, - styles: [row_style_1.ROW_STYLE] - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) -], DataTableRow); exports.DataTableRow = DataTableRow; //# sourceMappingURL=/components/row.component.js.map \ No newline at end of file diff --git a/dist/components/row.component.js.map b/dist/components/row.component.js.map index bd5a707..2ad7446 100644 --- a/dist/components/row.component.js.map +++ b/dist/components/row.component.js.map @@ -1 +1 @@ -{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AAQxC,IAAa,YAAY;IAuCrB,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAGL,mBAAC;AAAD,CAAC,AA9CD,IA8CC;AA5CY;IAAR,YAAK,EAAE;;0CAAW;AACV;IAAR,YAAK,EAAE;;2CAAe;AAQb;IAAT,aAAM,EAAE;;oDAAqC;AAXrC,YAAY;IALxB,gBAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,2BAAY;QACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;KACtB,CAAC;IAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAvCnE,YAAY,CA8CxB;AA9CY,oCAAY","sourcesContent":["import {\r\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\r\n} from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { ROW_TEMPLATE } from './row.template';\r\nimport { ROW_STYLE } from \"./row.style\";\r\n\r\n\r\n@Component({\r\n selector: '[dataTableRow]',\r\n template: ROW_TEMPLATE,\r\n styles: [ROW_STYLE]\r\n})\r\nexport class DataTableRow implements OnDestroy {\r\n\r\n @Input() item: any;\r\n @Input() index: number;\r\n\r\n expanded: boolean;\r\n\r\n // row selection:\r\n\r\n private _selected: boolean;\r\n\r\n @Output() selectedChange = new EventEmitter();\r\n\r\n get selected() {\r\n return this._selected;\r\n }\r\n\r\n set selected(selected) {\r\n this._selected = selected;\r\n this.selectedChange.emit(selected);\r\n }\r\n\r\n // other:\r\n\r\n get displayIndex() {\r\n if (this.dataTable.pagination) {\r\n return this.dataTable.displayParams.offset + this.index + 1;\r\n } else {\r\n return this.index + 1;\r\n }\r\n }\r\n\r\n getTooltip() {\r\n if (this.dataTable.rowTooltip) {\r\n return this.dataTable.rowTooltip(this.item, this, this.index);\r\n }\r\n return '';\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n ngOnDestroy() {\r\n this.selected = false;\r\n }\r\n\r\n private _this = this; // FIXME is there no template keyword for this in angular 2?\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AAQxC;IAuCI,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAzCQ;QAAR,YAAK,EAAE;;8CAAW;IACV;QAAR,YAAK,EAAE;;+CAAe;IAQb;QAAT,aAAM,EAAE;;wDAAqC;IAXrC,YAAY;QALxB,gBAAS,CAAC;YACP,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE,2BAAY;YACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;SACtB,CAAC;QAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;yCAAmB,2BAAS;OAvCnE,YAAY,CA8CxB;IAAD,mBAAC;CAAA,AA9CD,IA8CC;AA9CY,oCAAY","sourcesContent":["import {\r\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\r\n} from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { ROW_TEMPLATE } from './row.template';\r\nimport { ROW_STYLE } from \"./row.style\";\r\n\r\n\r\n@Component({\r\n selector: '[dataTableRow]',\r\n template: ROW_TEMPLATE,\r\n styles: [ROW_STYLE]\r\n})\r\nexport class DataTableRow implements OnDestroy {\r\n\r\n @Input() item: any;\r\n @Input() index: number;\r\n\r\n expanded: boolean;\r\n\r\n // row selection:\r\n\r\n private _selected: boolean;\r\n\r\n @Output() selectedChange = new EventEmitter();\r\n\r\n get selected() {\r\n return this._selected;\r\n }\r\n\r\n set selected(selected) {\r\n this._selected = selected;\r\n this.selectedChange.emit(selected);\r\n }\r\n\r\n // other:\r\n\r\n get displayIndex() {\r\n if (this.dataTable.pagination) {\r\n return this.dataTable.displayParams.offset + this.index + 1;\r\n } else {\r\n return this.index + 1;\r\n }\r\n }\r\n\r\n getTooltip() {\r\n if (this.dataTable.rowTooltip) {\r\n return this.dataTable.rowTooltip(this.item, this, this.index);\r\n }\r\n return '';\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n ngOnDestroy() {\r\n this.selected = false;\r\n }\r\n\r\n private _this = this; // FIXME is there no template keyword for this in angular 2?\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/row.style.js b/dist/components/row.style.js index ac8067e..f1eaa30 100644 --- a/dist/components/row.style.js +++ b/dist/components/row.style.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.ROW_STYLE = "\n.select-column {\n text-align: center;\n}\n\n.row-expand-button {\n cursor: pointer;\n text-align: center;\n}\n\n.clickable {\n cursor: pointer;\n}\n"; //# sourceMappingURL=/components/row.style.js.map \ No newline at end of file diff --git a/dist/components/row.style.js.map b/dist/components/row.style.js.map index 5489e59..3b5949c 100644 --- a/dist/components/row.style.js.map +++ b/dist/components/row.style.js.map @@ -1 +1 @@ -{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";;AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.template.js b/dist/components/row.template.js index 1c119c6..d959c09 100644 --- a/dist/components/row.template.js +++ b/dist/components/row.template.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.ROW_TEMPLATE = "\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n\n\n \n
\n \n\n"; //# sourceMappingURL=/components/row.template.js.map \ No newline at end of file diff --git a/dist/components/row.template.js.map b/dist/components/row.template.js.map index c4882ce..bc982ff 100644 --- a/dist/components/row.template.js.map +++ b/dist/components/row.template.js.map @@ -1 +1 @@ -{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_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\r\n\r\n \r\n
\r\n \r\n\r\n`;"]} \ No newline at end of file +{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_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\r\n\r\n \r\n
\r\n \r\n\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.component.js b/dist/components/table.component.js index fd376d1..c90ab5b 100644 --- a/dist/components/table.component.js +++ b/dist/components/table.component.js @@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var column_component_1 = require("./column.component"); var row_component_1 = require("./row.component"); @@ -317,140 +318,140 @@ var DataTable = (function () { } return true; }; + __decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Array]) + ], DataTable.prototype, "items", null); + __decorate([ + core_1.Input(), + __metadata("design:type", Number) + ], DataTable.prototype, "itemCount", void 0); + __decorate([ + core_1.ContentChildren(column_component_1.DataTableColumn), + __metadata("design:type", core_1.QueryList) + ], DataTable.prototype, "columns", void 0); + __decorate([ + core_1.ViewChildren(row_component_1.DataTableRow), + __metadata("design:type", core_1.QueryList) + ], DataTable.prototype, "rows", void 0); + __decorate([ + core_1.ContentChild('dataTableExpand'), + __metadata("design:type", core_1.TemplateRef) + ], DataTable.prototype, "expandTemplate", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", String) + ], DataTable.prototype, "headerTitle", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "header", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "pagination", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "indexColumn", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "indexColumnHeader", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Function) + ], DataTable.prototype, "rowColors", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Function) + ], DataTable.prototype, "rowTooltip", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "selectColumn", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "multiSelect", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "substituteRows", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "expandableRows", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "translations", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "selectOnRowClick", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "autoReload", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object) + ], DataTable.prototype, "showReloading", void 0); + __decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) + ], DataTable.prototype, "sortBy", null); + __decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) + ], DataTable.prototype, "sortAsc", null); + __decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) + ], DataTable.prototype, "offset", null); + __decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) + ], DataTable.prototype, "limit", null); + __decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) + ], DataTable.prototype, "page", null); + __decorate([ + core_1.Output(), + __metadata("design:type", Object) + ], DataTable.prototype, "reload", void 0); + __decorate([ + core_1.Output(), + __metadata("design:type", Object) + ], DataTable.prototype, "rowClick", void 0); + __decorate([ + core_1.Output(), + __metadata("design:type", Object) + ], DataTable.prototype, "rowDoubleClick", void 0); + __decorate([ + core_1.Output(), + __metadata("design:type", Object) + ], DataTable.prototype, "headerClick", void 0); + __decorate([ + core_1.Output(), + __metadata("design:type", Object) + ], DataTable.prototype, "cellClick", void 0); + DataTable = __decorate([ + core_1.Component({ + selector: 'data-table', + template: table_template_1.TABLE_TEMPLATE, + styles: [table_style_1.TABLE_STYLE] + }) + ], DataTable); return DataTable; }()); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Array]) -], DataTable.prototype, "items", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], DataTable.prototype, "itemCount", void 0); -__decorate([ - core_1.ContentChildren(column_component_1.DataTableColumn), - __metadata("design:type", core_1.QueryList) -], DataTable.prototype, "columns", void 0); -__decorate([ - core_1.ViewChildren(row_component_1.DataTableRow), - __metadata("design:type", core_1.QueryList) -], DataTable.prototype, "rows", void 0); -__decorate([ - core_1.ContentChild('dataTableExpand'), - __metadata("design:type", core_1.TemplateRef) -], DataTable.prototype, "expandTemplate", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTable.prototype, "headerTitle", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "header", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "indexColumn", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "indexColumnHeader", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Function) -], DataTable.prototype, "rowColors", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Function) -], DataTable.prototype, "rowTooltip", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "selectColumn", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "multiSelect", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "substituteRows", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "expandableRows", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "translations", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "selectOnRowClick", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "autoReload", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "showReloading", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "sortBy", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "sortAsc", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "offset", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "limit", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "page", null); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "reload", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "rowClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "rowDoubleClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "headerClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "cellClick", void 0); -DataTable = __decorate([ - core_1.Component({ - selector: 'data-table', - template: table_template_1.TABLE_TEMPLATE, - styles: [table_style_1.TABLE_STYLE] - }) -], DataTable); exports.DataTable = DataTable; //# sourceMappingURL=/components/table.component.js.map \ No newline at end of file diff --git a/dist/components/table.component.js.map b/dist/components/table.component.js.map index f08c67d..d17a370 100644 --- a/dist/components/table.component.js.map +++ b/dist/components/table.component.js.map @@ -1 +1 @@ -{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\r\n TemplateRef, ContentChild, ViewChildren, OnInit\r\n} from '@angular/core';\r\nimport { DataTableColumn } from './column.component';\r\nimport { DataTableRow } from './row.component';\r\nimport { DataTableParams } from '../types/data-table-params.type';\r\nimport { RowCallback } from '../types/row-callback.type';\r\nimport { DataTableTranslations } from '../types/data-table-translations.type';\r\nimport { defaultTranslations } from '../types/default-translations.type';\r\nimport { drag } from '../utils/drag';\r\nimport { TABLE_TEMPLATE } from './table.template';\r\nimport { TABLE_STYLE } from \"./table.style\";\r\n\r\n\r\n\r\n@Component({\r\n selector: 'data-table',\r\n template: TABLE_TEMPLATE,\r\n styles: [TABLE_STYLE]\r\n})\r\nexport class DataTable implements DataTableParams, OnInit {\r\n\r\n private _items: any[] = [];\r\n\r\n @Input() get items() {\r\n return this._items;\r\n }\r\n\r\n set items(items: any[]) {\r\n this._items = items;\r\n this._onReloadFinished();\r\n }\r\n\r\n @Input() itemCount: number;\r\n\r\n // UI components:\r\n\r\n @ContentChildren(DataTableColumn) columns: QueryList;\r\n @ViewChildren(DataTableRow) rows: QueryList;\r\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\r\n\r\n // One-time optional bindings with default values:\r\n\r\n @Input() headerTitle: string;\r\n @Input() header = true;\r\n @Input() pagination = true;\r\n @Input() indexColumn = true;\r\n @Input() indexColumnHeader = '';\r\n @Input() rowColors: RowCallback;\r\n @Input() rowTooltip: RowCallback;\r\n @Input() selectColumn = false;\r\n @Input() multiSelect = true;\r\n @Input() substituteRows = true;\r\n @Input() expandableRows = false;\r\n @Input() translations: DataTableTranslations = defaultTranslations;\r\n @Input() selectOnRowClick = false;\r\n @Input() autoReload = true;\r\n @Input() showReloading = false;\r\n\r\n // UI state without input:\r\n\r\n indexColumnVisible: boolean;\r\n selectColumnVisible: boolean;\r\n expandColumnVisible: boolean;\r\n\r\n // UI state: visible ge/set for the outside with @Input for one-time initial values\r\n\r\n private _sortBy: string;\r\n private _sortAsc = true;\r\n\r\n private _offset = 0;\r\n private _limit = 10;\r\n\r\n @Input()\r\n get sortBy() {\r\n return this._sortBy;\r\n }\r\n\r\n set sortBy(value) {\r\n this._sortBy = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get sortAsc() {\r\n return this._sortAsc;\r\n }\r\n\r\n set sortAsc(value) {\r\n this._sortAsc = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get offset() {\r\n return this._offset;\r\n }\r\n\r\n set offset(value) {\r\n this._offset = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get limit() {\r\n return this._limit;\r\n }\r\n\r\n set limit(value) {\r\n this._limit = value;\r\n this._triggerReload();\r\n }\r\n\r\n // calculated property:\r\n\r\n @Input()\r\n get page() {\r\n return Math.floor(this.offset / this.limit) + 1;\r\n }\r\n\r\n set page(value) {\r\n this.offset = (value - 1) * this.limit;\r\n }\r\n\r\n get lastPage() {\r\n return Math.ceil(this.itemCount / this.limit);\r\n }\r\n\r\n // setting multiple observable properties simultaneously\r\n\r\n sort(sortBy: string, asc: boolean) {\r\n this.sortBy = sortBy;\r\n this.sortAsc = asc;\r\n }\r\n\r\n // init\r\n\r\n ngOnInit() {\r\n this._initDefaultValues();\r\n this._initDefaultClickEvents();\r\n this._updateDisplayParams();\r\n\r\n if (this.autoReload && this._scheduledReload == null) {\r\n this.reloadItems();\r\n }\r\n }\r\n\r\n private _initDefaultValues() {\r\n this.indexColumnVisible = this.indexColumn;\r\n this.selectColumnVisible = this.selectColumn;\r\n this.expandColumnVisible = this.expandableRows;\r\n }\r\n\r\n private _initDefaultClickEvents() {\r\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\r\n if (this.selectOnRowClick) {\r\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\r\n }\r\n }\r\n\r\n // Reloading:\r\n\r\n _reloading = false;\r\n\r\n get reloading() {\r\n return this._reloading;\r\n }\r\n\r\n @Output() reload = new EventEmitter();\r\n\r\n reloadItems() {\r\n this._reloading = true;\r\n this.reload.emit(this._getRemoteParameters());\r\n }\r\n\r\n private _onReloadFinished() {\r\n this._updateDisplayParams();\r\n\r\n this._selectAllCheckbox = false;\r\n this._reloading = false;\r\n }\r\n\r\n _displayParams = {}; // params of the last finished reload\r\n\r\n get displayParams() {\r\n return this._displayParams;\r\n }\r\n\r\n _updateDisplayParams() {\r\n this._displayParams = {\r\n sortBy: this.sortBy,\r\n sortAsc: this.sortAsc,\r\n offset: this.offset,\r\n limit: this.limit\r\n };\r\n }\r\n\r\n _scheduledReload = null;\r\n\r\n // for avoiding cascading reloads if multiple params are set at once:\r\n _triggerReload() {\r\n if (this._scheduledReload) {\r\n clearTimeout(this._scheduledReload);\r\n }\r\n this._scheduledReload = setTimeout(() => {\r\n this.reloadItems();\r\n });\r\n }\r\n\r\n // event handlers:\r\n\r\n @Output() rowClick = new EventEmitter();\r\n @Output() rowDoubleClick = new EventEmitter();\r\n @Output() headerClick = new EventEmitter();\r\n @Output() cellClick = new EventEmitter();\r\n\r\n private rowClicked(row: DataTableRow, event) {\r\n this.rowClick.emit({ row, event });\r\n }\r\n\r\n private rowDoubleClicked(row: DataTableRow, event) {\r\n this.rowDoubleClick.emit({ row, event });\r\n }\r\n\r\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\r\n if (!this._resizeInProgress) {\r\n this.headerClick.emit({ column, event });\r\n } else {\r\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\r\n }\r\n }\r\n\r\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\r\n this.cellClick.emit({ row, column, event });\r\n }\r\n\r\n // functions:\r\n\r\n private _getRemoteParameters(): DataTableParams {\r\n let params = {};\r\n\r\n if (this.sortBy) {\r\n params.sortBy = this.sortBy;\r\n params.sortAsc = this.sortAsc;\r\n }\r\n if (this.pagination) {\r\n params.offset = this.offset;\r\n params.limit = this.limit;\r\n }\r\n return params;\r\n }\r\n\r\n private sortColumn(column: DataTableColumn) {\r\n if (column.sortable) {\r\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\r\n this.sort(column.property, ascending);\r\n }\r\n }\r\n\r\n get columnCount() {\r\n let count = 0;\r\n count += this.indexColumnVisible ? 1 : 0;\r\n count += this.selectColumnVisible ? 1 : 0;\r\n count += this.expandColumnVisible ? 1 : 0;\r\n this.columns.toArray().forEach(column => {\r\n count += column.visible ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n private getRowColor(item: any, index: number, row: DataTableRow) {\r\n if (this.rowColors !== undefined) {\r\n return (this.rowColors)(item, row, index);\r\n }\r\n }\r\n\r\n // selection:\r\n\r\n selectedRow: DataTableRow;\r\n selectedRows: DataTableRow[] = [];\r\n\r\n private _selectAllCheckbox = false;\r\n\r\n get selectAllCheckbox() {\r\n return this._selectAllCheckbox;\r\n }\r\n\r\n set selectAllCheckbox(value) {\r\n this._selectAllCheckbox = value;\r\n this._onSelectAllChanged(value);\r\n }\r\n\r\n private _onSelectAllChanged(value: boolean) {\r\n this.rows.toArray().forEach(row => row.selected = value);\r\n }\r\n\r\n onRowSelectChanged(row: DataTableRow) {\r\n\r\n // maintain the selectedRow(s) view\r\n if (this.multiSelect) {\r\n let index = this.selectedRows.indexOf(row);\r\n if (row.selected && index < 0) {\r\n this.selectedRows.push(row);\r\n } else if (!row.selected && index >= 0) {\r\n this.selectedRows.splice(index, 1);\r\n }\r\n } else {\r\n if (row.selected) {\r\n this.selectedRow = row;\r\n } else if (this.selectedRow === row) {\r\n this.selectedRow = undefined;\r\n }\r\n }\r\n\r\n // unselect all other rows:\r\n if (row.selected && !this.multiSelect) {\r\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\r\n if (row_ !== row) { // avoid endless loop\r\n row_.selected = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // other:\r\n\r\n get substituteItems() {\r\n return Array.from({ length: this.displayParams.limit - this.items.length });\r\n }\r\n\r\n // column resizing:\r\n\r\n private _resizeInProgress = false;\r\n\r\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\r\n this._resizeInProgress = true;\r\n\r\n drag(event, {\r\n move: (moveEvent: MouseEvent, dx: number) => {\r\n if (this._isResizeInLimit(columnElement, dx)) {\r\n column.width = columnElement.offsetWidth + dx;\r\n }\r\n },\r\n });\r\n }\r\n\r\n resizeLimit = 30;\r\n\r\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\r\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\r\n Without the limits, resizing can make the next column disappear completely,\r\n and even increase the table width. The current implementation suffers from the fact,\r\n that offsetWidth sometimes contains out-of-date values. */\r\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\r\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\r\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\r\n TemplateRef, ContentChild, ViewChildren, OnInit\r\n} from '@angular/core';\r\nimport { DataTableColumn } from './column.component';\r\nimport { DataTableRow } from './row.component';\r\nimport { DataTableParams } from '../types/data-table-params.type';\r\nimport { RowCallback } from '../types/row-callback.type';\r\nimport { DataTableTranslations } from '../types/data-table-translations.type';\r\nimport { defaultTranslations } from '../types/default-translations.type';\r\nimport { drag } from '../utils/drag';\r\nimport { TABLE_TEMPLATE } from './table.template';\r\nimport { TABLE_STYLE } from \"./table.style\";\r\n\r\n\r\n\r\n@Component({\r\n selector: 'data-table',\r\n template: TABLE_TEMPLATE,\r\n styles: [TABLE_STYLE]\r\n})\r\nexport class DataTable implements DataTableParams, OnInit {\r\n\r\n private _items: any[] = [];\r\n\r\n @Input() get items() {\r\n return this._items;\r\n }\r\n\r\n set items(items: any[]) {\r\n this._items = items;\r\n this._onReloadFinished();\r\n }\r\n\r\n @Input() itemCount: number;\r\n\r\n // UI components:\r\n\r\n @ContentChildren(DataTableColumn) columns: QueryList;\r\n @ViewChildren(DataTableRow) rows: QueryList;\r\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\r\n\r\n // One-time optional bindings with default values:\r\n\r\n @Input() headerTitle: string;\r\n @Input() header = true;\r\n @Input() pagination = true;\r\n @Input() indexColumn = true;\r\n @Input() indexColumnHeader = '';\r\n @Input() rowColors: RowCallback;\r\n @Input() rowTooltip: RowCallback;\r\n @Input() selectColumn = false;\r\n @Input() multiSelect = true;\r\n @Input() substituteRows = true;\r\n @Input() expandableRows = false;\r\n @Input() translations: DataTableTranslations = defaultTranslations;\r\n @Input() selectOnRowClick = false;\r\n @Input() autoReload = true;\r\n @Input() showReloading = false;\r\n\r\n // UI state without input:\r\n\r\n indexColumnVisible: boolean;\r\n selectColumnVisible: boolean;\r\n expandColumnVisible: boolean;\r\n\r\n // UI state: visible ge/set for the outside with @Input for one-time initial values\r\n\r\n private _sortBy: string;\r\n private _sortAsc = true;\r\n\r\n private _offset = 0;\r\n private _limit = 10;\r\n\r\n @Input()\r\n get sortBy() {\r\n return this._sortBy;\r\n }\r\n\r\n set sortBy(value) {\r\n this._sortBy = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get sortAsc() {\r\n return this._sortAsc;\r\n }\r\n\r\n set sortAsc(value) {\r\n this._sortAsc = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get offset() {\r\n return this._offset;\r\n }\r\n\r\n set offset(value) {\r\n this._offset = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get limit() {\r\n return this._limit;\r\n }\r\n\r\n set limit(value) {\r\n this._limit = value;\r\n this._triggerReload();\r\n }\r\n\r\n // calculated property:\r\n\r\n @Input()\r\n get page() {\r\n return Math.floor(this.offset / this.limit) + 1;\r\n }\r\n\r\n set page(value) {\r\n this.offset = (value - 1) * this.limit;\r\n }\r\n\r\n get lastPage() {\r\n return Math.ceil(this.itemCount / this.limit);\r\n }\r\n\r\n // setting multiple observable properties simultaneously\r\n\r\n sort(sortBy: string, asc: boolean) {\r\n this.sortBy = sortBy;\r\n this.sortAsc = asc;\r\n }\r\n\r\n // init\r\n\r\n ngOnInit() {\r\n this._initDefaultValues();\r\n this._initDefaultClickEvents();\r\n this._updateDisplayParams();\r\n\r\n if (this.autoReload && this._scheduledReload == null) {\r\n this.reloadItems();\r\n }\r\n }\r\n\r\n private _initDefaultValues() {\r\n this.indexColumnVisible = this.indexColumn;\r\n this.selectColumnVisible = this.selectColumn;\r\n this.expandColumnVisible = this.expandableRows;\r\n }\r\n\r\n private _initDefaultClickEvents() {\r\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\r\n if (this.selectOnRowClick) {\r\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\r\n }\r\n }\r\n\r\n // Reloading:\r\n\r\n _reloading = false;\r\n\r\n get reloading() {\r\n return this._reloading;\r\n }\r\n\r\n @Output() reload = new EventEmitter();\r\n\r\n reloadItems() {\r\n this._reloading = true;\r\n this.reload.emit(this._getRemoteParameters());\r\n }\r\n\r\n private _onReloadFinished() {\r\n this._updateDisplayParams();\r\n\r\n this._selectAllCheckbox = false;\r\n this._reloading = false;\r\n }\r\n\r\n _displayParams = {}; // params of the last finished reload\r\n\r\n get displayParams() {\r\n return this._displayParams;\r\n }\r\n\r\n _updateDisplayParams() {\r\n this._displayParams = {\r\n sortBy: this.sortBy,\r\n sortAsc: this.sortAsc,\r\n offset: this.offset,\r\n limit: this.limit\r\n };\r\n }\r\n\r\n _scheduledReload = null;\r\n\r\n // for avoiding cascading reloads if multiple params are set at once:\r\n _triggerReload() {\r\n if (this._scheduledReload) {\r\n clearTimeout(this._scheduledReload);\r\n }\r\n this._scheduledReload = setTimeout(() => {\r\n this.reloadItems();\r\n });\r\n }\r\n\r\n // event handlers:\r\n\r\n @Output() rowClick = new EventEmitter();\r\n @Output() rowDoubleClick = new EventEmitter();\r\n @Output() headerClick = new EventEmitter();\r\n @Output() cellClick = new EventEmitter();\r\n\r\n private rowClicked(row: DataTableRow, event) {\r\n this.rowClick.emit({ row, event });\r\n }\r\n\r\n private rowDoubleClicked(row: DataTableRow, event) {\r\n this.rowDoubleClick.emit({ row, event });\r\n }\r\n\r\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\r\n if (!this._resizeInProgress) {\r\n this.headerClick.emit({ column, event });\r\n } else {\r\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\r\n }\r\n }\r\n\r\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\r\n this.cellClick.emit({ row, column, event });\r\n }\r\n\r\n // functions:\r\n\r\n private _getRemoteParameters(): DataTableParams {\r\n let params = {};\r\n\r\n if (this.sortBy) {\r\n params.sortBy = this.sortBy;\r\n params.sortAsc = this.sortAsc;\r\n }\r\n if (this.pagination) {\r\n params.offset = this.offset;\r\n params.limit = this.limit;\r\n }\r\n return params;\r\n }\r\n\r\n private sortColumn(column: DataTableColumn) {\r\n if (column.sortable) {\r\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\r\n this.sort(column.property, ascending);\r\n }\r\n }\r\n\r\n get columnCount() {\r\n let count = 0;\r\n count += this.indexColumnVisible ? 1 : 0;\r\n count += this.selectColumnVisible ? 1 : 0;\r\n count += this.expandColumnVisible ? 1 : 0;\r\n this.columns.toArray().forEach(column => {\r\n count += column.visible ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n private getRowColor(item: any, index: number, row: DataTableRow) {\r\n if (this.rowColors !== undefined) {\r\n return (this.rowColors)(item, row, index);\r\n }\r\n }\r\n\r\n // selection:\r\n\r\n selectedRow: DataTableRow;\r\n selectedRows: DataTableRow[] = [];\r\n\r\n private _selectAllCheckbox = false;\r\n\r\n get selectAllCheckbox() {\r\n return this._selectAllCheckbox;\r\n }\r\n\r\n set selectAllCheckbox(value) {\r\n this._selectAllCheckbox = value;\r\n this._onSelectAllChanged(value);\r\n }\r\n\r\n private _onSelectAllChanged(value: boolean) {\r\n this.rows.toArray().forEach(row => row.selected = value);\r\n }\r\n\r\n onRowSelectChanged(row: DataTableRow) {\r\n\r\n // maintain the selectedRow(s) view\r\n if (this.multiSelect) {\r\n let index = this.selectedRows.indexOf(row);\r\n if (row.selected && index < 0) {\r\n this.selectedRows.push(row);\r\n } else if (!row.selected && index >= 0) {\r\n this.selectedRows.splice(index, 1);\r\n }\r\n } else {\r\n if (row.selected) {\r\n this.selectedRow = row;\r\n } else if (this.selectedRow === row) {\r\n this.selectedRow = undefined;\r\n }\r\n }\r\n\r\n // unselect all other rows:\r\n if (row.selected && !this.multiSelect) {\r\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\r\n if (row_ !== row) { // avoid endless loop\r\n row_.selected = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // other:\r\n\r\n get substituteItems() {\r\n return Array.from({ length: this.displayParams.limit - this.items.length });\r\n }\r\n\r\n // column resizing:\r\n\r\n private _resizeInProgress = false;\r\n\r\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\r\n this._resizeInProgress = true;\r\n\r\n drag(event, {\r\n move: (moveEvent: MouseEvent, dx: number) => {\r\n if (this._isResizeInLimit(columnElement, dx)) {\r\n column.width = columnElement.offsetWidth + dx;\r\n }\r\n },\r\n });\r\n }\r\n\r\n resizeLimit = 30;\r\n\r\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\r\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\r\n Without the limits, resizing can make the next column disappear completely,\r\n and even increase the table width. The current implementation suffers from the fact,\r\n that offsetWidth sometimes contains out-of-date values. */\r\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\r\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\r\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/table.style.js b/dist/components/table.style.js index 9e40dfc..e2ce937 100644 --- a/dist/components/table.style.js +++ b/dist/components/table.style.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.TABLE_STYLE = "\n/* bootstrap override: */\n\n:host /deep/ .data-table.table > tbody+tbody {\n border-top: none;\n}\n:host /deep/ .data-table.table td {\n vertical-align: middle;\n}\n\n:host /deep/ .data-table > thead > tr > th,\n:host /deep/ .data-table > tbody > tr > td {\n\toverflow: hidden;\n}\n\n/* I can't use the bootstrap striped table, because of the expandable rows */\n:host /deep/ .row-odd {\n background-color: #F6F6F6;\n}\n:host /deep/ .row-even {\n}\n\n.data-table .substitute-rows > tr:hover,\n:host /deep/ .data-table .data-table-row:hover {\n background-color: #ECECEC;\n}\n/* table itself: */\n\n.data-table {\n box-shadow: 0 0 15px rgb(236, 236, 236);\n table-layout: fixed;\n}\n\n/* header cells: */\n\n.column-header {\n position: relative;\n}\n.expand-column-header {\n\twidth: 50px;\n}\n.select-column-header {\n\twidth: 50px;\n\ttext-align: center;\n}\n.index-column-header {\n\twidth: 40px;\n}\n.column-header.sortable {\n cursor: pointer;\n}\n.column-header .column-sort-icon {\n\tfloat: right;\n}\n.column-header.resizable .column-sort-icon {\n margin-right: 8px;\n}\n.column-header .column-sort-icon .column-sortable-icon {\n color: lightgray;\n}\n.column-header .column-resize-handle {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n padding: 0;\n width: 8px;\n height: 100%;\n cursor: col-resize;\n}\n\n/* cover: */\n\n.data-table-box {\n position: relative;\n}\n\n.loading-cover {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.3);\n top: 0;\n}\n"; //# sourceMappingURL=/components/table.style.js.map \ No newline at end of file diff --git a/dist/components/table.style.js.map b/dist/components/table.style.js.map index a969fdd..b600f41 100644 --- a/dist/components/table.style.js.map +++ b/dist/components/table.style.js.map @@ -1 +1 @@ -{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.template.js b/dist/components/table.template.js index 90086fd..1684a9b 100644 --- a/dist/components/table.template.js +++ b/dist/components/table.template.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.TABLE_TEMPLATE = "\n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 \n
\n
\n
\n\n \n
\n"; //# sourceMappingURL=/components/table.template.js.map \ No newline at end of file diff --git a/dist/components/table.template.js.map b/dist/components/table.template.js.map index c0d7978..4902a07 100644 --- a/dist/components/table.template.js.map +++ b/dist/components/table.template.js.map @@ -1 +1 @@ -{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";AAAa,QAAA,cAAc,GAAG,qtGAmD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file +{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";;AAAa,QAAA,cAAc,GAAG,qtGAmD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 1bc79b0..1d702ef 100644 --- a/dist/index.js +++ b/dist/index.js @@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var common_1 = require("@angular/common"); var forms_1 = require("@angular/forms"); @@ -31,18 +32,18 @@ exports.DATA_TABLE_DIRECTIVES = [table_component_1.DataTable, column_component_1 var DataTableModule = (function () { function DataTableModule() { } + DataTableModule = __decorate([ + core_1.NgModule({ + imports: [common_1.CommonModule, forms_1.FormsModule], + declarations: [ + table_component_1.DataTable, column_component_1.DataTableColumn, + row_component_1.DataTableRow, pagination_component_1.DataTablePagination, header_component_1.DataTableHeader, + px_1.PixelConverter, hide_1.Hide, min_1.MinPipe + ], + exports: [table_component_1.DataTable, column_component_1.DataTableColumn] + }) + ], DataTableModule); return DataTableModule; }()); -DataTableModule = __decorate([ - core_1.NgModule({ - imports: [common_1.CommonModule, forms_1.FormsModule], - declarations: [ - table_component_1.DataTable, column_component_1.DataTableColumn, - row_component_1.DataTableRow, pagination_component_1.DataTablePagination, header_component_1.DataTableHeader, - px_1.PixelConverter, hide_1.Hide, min_1.MinPipe - ], - exports: [table_component_1.DataTable, column_component_1.DataTableColumn] - }) -], DataTableModule); exports.DataTableModule = DataTableModule; //# sourceMappingURL=/index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map index 5a1332d..2cadc8c 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,gDAAS;AAdlB,kEAAgE;AAc5C,6DAAe;AAbnC,4DAA0D;AAarB,oDAAY;AAZjD,0EAAwE;AAYrB,yEAAmB;AAXtE,kEAAgE;AAYtD,6DAAe;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8EAAmB;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE,IAAa,eAAe;IAA5B;IAA+B,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAhC,IAAgC;AAAnB,eAAe;IAT3B,eAAQ,CAAC;QACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;QACtC,YAAY,EAAE;YACV,2BAAS,EAAE,kCAAe;YAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;YAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;SAChC;QACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;KAC1C,CAAC;GACW,eAAe,CAAI;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { DataTable} from './components/table.component';\nimport { DataTableColumn } from './components/column.component';\nimport { DataTableRow } from './components/row.component';\nimport { DataTablePagination } from './components/pagination.component';\nimport { DataTableHeader } from './components/header.component';\n\nimport { PixelConverter } from './utils/px';\nimport { Hide } from './utils/hide';\nimport { MinPipe } from './utils/min';\nimport { DataTableTranslations } from './types/data-table-translations.type';\nimport { CellCallback } from './types/cell-callback.type';\nimport { RowCallback } from './types/row-callback.type';\nimport { DataTableParams } from './types/data-table-params.type';\nimport { defaultTranslations } from './types/default-translations.type';\nexport * from './tools/data-table-resource';\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\n\n\n@NgModule({\n imports: [ CommonModule, FormsModule ],\n declarations: [\n DataTable, DataTableColumn,\n DataTableRow, DataTablePagination, DataTableHeader,\n PixelConverter, Hide, MinPipe\n ],\n exports: [ DataTable, DataTableColumn ]\n})\nexport class DataTableModule { }\n"]} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,oBAfA,2BAAS,CAeA;AAdlB,kEAAgE;AAc5C,0BAdX,kCAAe,CAcW;AAbnC,4DAA0D;AAarB,uBAb5B,4BAAY,CAa4B;AAZjD,0EAAwE;AAYrB,8BAZ1C,0CAAmB,CAY0C;AAXtE,kEAAgE;AAYtD,0BAZD,kCAAe,CAYC;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8BAHrF,+CAAmB,CAGqF;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE;IAAA;IAA+B,CAAC;IAAnB,eAAe;QAT3B,eAAQ,CAAC;YACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;YACtC,YAAY,EAAE;gBACV,2BAAS,EAAE,kCAAe;gBAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;gBAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;aAChC;YACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;SAC1C,CAAC;OACW,eAAe,CAAI;IAAD,sBAAC;CAAA,AAAhC,IAAgC;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DataTable} from './components/table.component';\r\nimport { DataTableColumn } from './components/column.component';\r\nimport { DataTableRow } from './components/row.component';\r\nimport { DataTablePagination } from './components/pagination.component';\r\nimport { DataTableHeader } from './components/header.component';\r\n\r\nimport { PixelConverter } from './utils/px';\r\nimport { Hide } from './utils/hide';\r\nimport { MinPipe } from './utils/min';\r\nimport { DataTableTranslations } from './types/data-table-translations.type';\r\nimport { CellCallback } from './types/cell-callback.type';\r\nimport { RowCallback } from './types/row-callback.type';\r\nimport { DataTableParams } from './types/data-table-params.type';\r\nimport { defaultTranslations } from './types/default-translations.type';\r\nexport * from './tools/data-table-resource';\r\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\r\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\r\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\r\n\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule ],\r\n declarations: [\r\n DataTable, DataTableColumn,\r\n DataTableRow, DataTablePagination, DataTableHeader,\r\n PixelConverter, Hide, MinPipe\r\n ],\r\n exports: [ DataTable, DataTableColumn ]\r\n})\r\nexport class DataTableModule { }\r\n"]} \ No newline at end of file diff --git a/dist/tools/data-table-resource.js b/dist/tools/data-table-resource.js index a9ae8b8..f24576b 100644 --- a/dist/tools/data-table-resource.js +++ b/dist/tools/data-table-resource.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); var DataTableResource = (function () { function DataTableResource(items) { this.items = items; diff --git a/dist/tools/data-table-resource.js.map b/dist/tools/data-table-resource.js.map index 8575e4b..9956dea 100644 --- a/dist/tools/data-table-resource.js.map +++ b/dist/tools/data-table-resource.js.map @@ -1 +1 @@ -{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\n\n\nexport class DataTableResource {\n\n constructor(private items: T[]) {}\n\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\n\n let result: T[] = [];\n if (filter) {\n result = this.items.filter(filter);\n } else {\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\n }\n\n if (params.sortBy) {\n result.sort((a, b) => {\n if (typeof a[params.sortBy] === 'string') {\n return a[params.sortBy].localeCompare(b[params.sortBy]);\n } else {\n return a[params.sortBy] - b[params.sortBy];\n }\n });\n if (params.sortAsc === false) {\n result.reverse();\n }\n }\n if (params.offset !== undefined) {\n if (params.limit === undefined) {\n result = result.slice(params.offset, result.length);\n } else {\n result = result.slice(params.offset, params.offset + params.limit);\n }\n }\n\n return new Promise((resolve, reject) => {\n setTimeout(() => resolve(result));\n });\n }\n\n count(): Promise {\n return new Promise((resolve, reject) => {\n setTimeout(() => resolve(this.items.length));\n });\n\n }\n}\n"]} \ No newline at end of file +{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";;AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\r\n\r\n\r\nexport class DataTableResource {\r\n\r\n constructor(private items: T[]) {}\r\n\r\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\r\n\r\n let result: T[] = [];\r\n if (filter) {\r\n result = this.items.filter(filter);\r\n } else {\r\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\r\n }\r\n\r\n if (params.sortBy) {\r\n result.sort((a, b) => {\r\n if (typeof a[params.sortBy] === 'string') {\r\n return a[params.sortBy].localeCompare(b[params.sortBy]);\r\n } else {\r\n return a[params.sortBy] - b[params.sortBy];\r\n }\r\n });\r\n if (params.sortAsc === false) {\r\n result.reverse();\r\n }\r\n }\r\n if (params.offset !== undefined) {\r\n if (params.limit === undefined) {\r\n result = result.slice(params.offset, result.length);\r\n } else {\r\n result = result.slice(params.offset, params.offset + params.limit);\r\n }\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(result));\r\n });\r\n }\r\n\r\n count(): Promise {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(this.items.length));\r\n });\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/cell-callback.type.js b/dist/types/cell-callback.type.js index 6dca955..d038872 100644 --- a/dist/types/cell-callback.type.js +++ b/dist/types/cell-callback.type.js @@ -1,2 +1,3 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/cell-callback.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-params.type.js b/dist/types/data-table-params.type.js index f017da5..84d6b65 100644 --- a/dist/types/data-table-params.type.js +++ b/dist/types/data-table-params.type.js @@ -1,2 +1,3 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/data-table-params.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-translations.type.js b/dist/types/data-table-translations.type.js index bf0eb79..4c2d1f7 100644 --- a/dist/types/data-table-translations.type.js +++ b/dist/types/data-table-translations.type.js @@ -1,2 +1,3 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/data-table-translations.type.js.map \ No newline at end of file diff --git a/dist/types/default-translations.type.js b/dist/types/default-translations.type.js index 75d64cc..15392c9 100644 --- a/dist/types/default-translations.type.js +++ b/dist/types/default-translations.type.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultTranslations = { indexColumn: 'index', selectColumn: 'select', diff --git a/dist/types/default-translations.type.js.map b/dist/types/default-translations.type.js.map index 20a7f23..18a8d10 100644 --- a/dist/types/default-translations.type.js.map +++ b/dist/types/default-translations.type.js.map @@ -1 +1 @@ -{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file +{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";;AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file diff --git a/dist/types/row-callback.type.js b/dist/types/row-callback.type.js index 1283a95..d340a99 100644 --- a/dist/types/row-callback.type.js +++ b/dist/types/row-callback.type.js @@ -1,2 +1,3 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/row-callback.type.js.map \ No newline at end of file diff --git a/dist/utils/drag.js b/dist/utils/drag.js index 2c72536..089185c 100644 --- a/dist/utils/drag.js +++ b/dist/utils/drag.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); function drag(event, _a) { var move = _a.move, up = _a.up; var startX = event.pageX; diff --git a/dist/utils/drag.js.map b/dist/utils/drag.js.map index e89d4d2..e60c7be 100644 --- a/dist/utils/drag.js.map +++ b/dist/utils/drag.js.map @@ -1 +1 @@ -{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";;AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/hide.js b/dist/utils/hide.js index b7557e8..13778b7 100644 --- a/dist/utils/hide.js +++ b/dist/utils/hide.js @@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); function isBlank(obj) { return obj === undefined || obj === null; @@ -41,11 +42,11 @@ var Hide = (function () { } } }; + Hide = __decorate([ + core_1.Directive({ selector: '[hide]', inputs: ['hide'] }), + __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer]) + ], Hide); return Hide; }()); -Hide = __decorate([ - core_1.Directive({ selector: '[hide]', inputs: ['hide'] }), - __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer]) -], Hide); exports.Hide = Hide; //# sourceMappingURL=/utils/hide.js.map \ No newline at end of file diff --git a/dist/utils/hide.js.map b/dist/utils/hide.js.map index b10ffc3..032f22f 100644 --- a/dist/utils/hide.js.map +++ b/dist/utils/hide.js.map @@ -1 +1 @@ -{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD,IAAa,IAAI;IAKf,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,IAAI;IADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;qCAMjB,iBAAU,EAAqB,eAAQ;GAL7D,IAAI,CA2BhB;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD;IAKE,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IA1BU,IAAI;QADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;yCAMjB,iBAAU,EAAqB,eAAQ;OAL7D,IAAI,CA2BhB;IAAD,WAAC;CAAA,AA3BD,IA2BC;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/min.js b/dist/utils/min.js index 0da7f92..4825b63 100644 --- a/dist/utils/min.js +++ b/dist/utils/min.js @@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var MinPipe = (function () { function MinPipe() { @@ -12,12 +13,12 @@ var MinPipe = (function () { MinPipe.prototype.transform = function (value, args) { return Math.min.apply(null, value); }; + MinPipe = __decorate([ + core_1.Pipe({ + name: 'min' + }) + ], MinPipe); return MinPipe; }()); -MinPipe = __decorate([ - core_1.Pipe({ - name: 'min' - }) -], MinPipe); exports.MinPipe = MinPipe; //# sourceMappingURL=/utils/min.js.map \ No newline at end of file diff --git a/dist/utils/min.js.map b/dist/utils/min.js.map index 2219c9a..94cc744 100644 --- a/dist/utils/min.js.map +++ b/dist/utils/min.js.map @@ -1 +1 @@ -{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;AAAA,sCAAoD;AAMpD,IAAa,OAAO;IAApB;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACH,cAAC;AAAD,CAAC,AAJD,IAIC;AAJY,OAAO;IAHnB,WAAI,CAAC;QACJ,IAAI,EAAE,KAAK;KACZ,CAAC;GACW,OAAO,CAInB;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD;IAAA;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAHU,OAAO;QAHnB,WAAI,CAAC;YACJ,IAAI,EAAE,KAAK;SACZ,CAAC;OACW,OAAO,CAInB;IAAD,cAAC;CAAA,AAJD,IAIC;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/px.js b/dist/utils/px.js index d33c1db..765c32f 100644 --- a/dist/utils/px.js +++ b/dist/utils/px.js @@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var PixelConverter = (function () { function PixelConverter() { @@ -20,12 +21,12 @@ var PixelConverter = (function () { return value + 'px'; } }; + PixelConverter = __decorate([ + core_1.Pipe({ + name: 'px' + }) + ], PixelConverter); return PixelConverter; }()); -PixelConverter = __decorate([ - core_1.Pipe({ - name: 'px' - }) -], PixelConverter); exports.PixelConverter = PixelConverter; //# sourceMappingURL=/utils/px.js.map \ No newline at end of file diff --git a/dist/utils/px.js.map b/dist/utils/px.js.map index bd1ccf2..70a3ef4 100644 --- a/dist/utils/px.js.map +++ b/dist/utils/px.js.map @@ -1 +1 @@ -{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;AAAA,sCAAoD;AAMpD,IAAa,cAAc;IAA3B;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,cAAc;IAH1B,WAAI,CAAC;QACJ,IAAI,EAAE,IAAI;KACX,CAAC;GACW,cAAc,CAY1B;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD;IAAA;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAXU,cAAc;QAH1B,WAAI,CAAC;YACJ,IAAI,EAAE,IAAI;SACX,CAAC;OACW,cAAc,CAY1B;IAAD,qBAAC;CAAA,AAZD,IAYC;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/package.json b/package.json index 1cc1141..a8d3ae0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.1.4", + "version": "0.2.001", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", @@ -22,21 +22,11 @@ "type": "git", "url": "git+https://github.com/MIt9/angular-4-data-table.git" }, - "peerDependencies": { - "@angular/core": "^4.0.1.1" - }, "author": "Dmitrii Bilukha (http://donsamogon.com)", "license": "MIT", "devDependencies": {}, "dependencies": { - "@angular/common": "^4.0.1", - "@angular/compiler": "^4.0.1", - "@angular/compiler-cli": "^4.0.1", - "@angular/core": "^4.0.1", - "@angular/forms": "^4.0.1", - "@angular/platform-browser": "^4.2.5", - "@angular/platform-browser-dynamic": "^4.0.1", - "@angular/platform-server": "^4.0.1", + "@angular/core": "^4.0.0", "@types/node": "~6.0.60", "rxjs": "^5.1.0", "ts-node": "~2.0.0", From 746c72ebb0cd09e529437b4af94d4c7e23c8fb3d Mon Sep 17 00:00:00 2001 From: Mit9 Date: Tue, 1 Aug 2017 09:09:27 +0300 Subject: [PATCH 05/41] fix ng module --- dist/index.d.ts | 2 ++ package.json | 2 +- tsconfig.json | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dist/index.d.ts b/dist/index.d.ts index 1b41018..4fae7a2 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,3 +1,4 @@ +import { NgModule } from '@angular/core'; import { DataTable } from './components/table.component'; import { DataTableColumn } from './components/column.component'; import { DataTableRow } from './components/row.component'; @@ -11,5 +12,6 @@ import { defaultTranslations } from './types/default-translations.type'; export * from './tools/data-table-resource'; export { DataTable, DataTableColumn, DataTableRow, DataTablePagination, DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations }; export declare const DATA_TABLE_DIRECTIVES: (typeof DataTable | typeof DataTableColumn)[]; +@NgModule() export declare class DataTableModule { } diff --git a/package.json b/package.json index a8d3ae0..623c0bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.2.001", + "version": "0.2.002", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", diff --git a/tsconfig.json b/tsconfig.json index 196e45f..0148fd1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -24,7 +24,6 @@ "inlineSources": true }, "exclude": [ - "dist", "node_modules", "index.ts" ], From 74ce8064886611330ee468b07c44fa9fe9b33c31 Mon Sep 17 00:00:00 2001 From: "siniidrozd@gmail.com" Date: Wed, 2 Aug 2017 07:29:25 +0300 Subject: [PATCH 06/41] module id fix --- dist/components/column.component.js | 91 ++++--- dist/components/column.component.js.map | 2 +- dist/components/header.component.js | 26 +- dist/components/header.component.js.map | 2 +- dist/components/header.style.js | 1 - dist/components/header.style.js.map | 2 +- dist/components/header.template.js | 1 - dist/components/header.template.js.map | 2 +- dist/components/pagination.component.js | 20 +- dist/components/pagination.component.js.map | 2 +- dist/components/pagination.style.js | 1 - dist/components/pagination.style.js.map | 2 +- dist/components/pagination.template.js | 1 - dist/components/pagination.template.js.map | 2 +- dist/components/row.component.js | 44 ++-- dist/components/row.component.js.map | 2 +- dist/components/row.style.js | 1 - dist/components/row.style.js.map | 2 +- dist/components/row.template.js | 1 - dist/components/row.template.js.map | 2 +- dist/components/table.component.js | 268 ++++++++++---------- dist/components/table.component.js.map | 2 +- dist/components/table.style.js | 1 - dist/components/table.style.js.map | 2 +- dist/components/table.template.js | 1 - dist/components/table.template.js.map | 2 +- dist/index.js | 23 +- dist/index.js.map | 2 +- dist/tools/data-table-resource.js | 1 - dist/tools/data-table-resource.js.map | 2 +- dist/types/cell-callback.type.js | 1 - dist/types/data-table-params.type.js | 1 - dist/types/data-table-translations.type.js | 1 - dist/types/default-translations.type.js | 1 - dist/types/default-translations.type.js.map | 2 +- dist/types/row-callback.type.js | 1 - dist/utils/drag.js | 1 - dist/utils/drag.js.map | 2 +- dist/utils/hide.js | 9 +- dist/utils/hide.js.map | 2 +- dist/utils/min.js | 11 +- dist/utils/min.js.map | 2 +- dist/utils/px.js | 11 +- dist/utils/px.js.map | 2 +- src/components/header.component.ts | 1 + src/components/pagination.component.ts | 1 + src/components/row.component.ts | 1 + src/components/table.component.ts | 1 + tsconfig.json | 1 + 49 files changed, 274 insertions(+), 289 deletions(-) diff --git a/dist/components/column.component.js b/dist/components/column.component.js index c15f25c..cffc126 100644 --- a/dist/components/column.component.js +++ b/dist/components/column.component.js @@ -8,7 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; -Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var DataTableColumn = (function () { function DataTableColumn() { @@ -41,52 +40,52 @@ var DataTableColumn = (function () { } var _a; }; - __decorate([ - core_1.Input(), - __metadata("design:type", String) - ], DataTableColumn.prototype, "header", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTableColumn.prototype, "sortable", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTableColumn.prototype, "resizable", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", String) - ], DataTableColumn.prototype, "property", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", String) - ], DataTableColumn.prototype, "styleClass", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Function) - ], DataTableColumn.prototype, "cellColors", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTableColumn.prototype, "width", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTableColumn.prototype, "visible", void 0); - __decorate([ - core_1.ContentChild('dataTableCell'), - __metadata("design:type", Object) - ], DataTableColumn.prototype, "cellTemplate", void 0); - __decorate([ - core_1.ContentChild('dataTableHeader'), - __metadata("design:type", Object) - ], DataTableColumn.prototype, "headerTemplate", void 0); - DataTableColumn = __decorate([ - core_1.Directive({ - selector: 'data-table-column' - }) - ], DataTableColumn); return DataTableColumn; }()); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTableColumn.prototype, "header", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "sortable", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "resizable", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTableColumn.prototype, "property", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTableColumn.prototype, "styleClass", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Function) +], DataTableColumn.prototype, "cellColors", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "width", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "visible", void 0); +__decorate([ + core_1.ContentChild('dataTableCell'), + __metadata("design:type", Object) +], DataTableColumn.prototype, "cellTemplate", void 0); +__decorate([ + core_1.ContentChild('dataTableHeader'), + __metadata("design:type", Object) +], DataTableColumn.prototype, "headerTemplate", void 0); +DataTableColumn = __decorate([ + core_1.Directive({ + selector: 'data-table-column' + }) +], DataTableColumn); exports.DataTableColumn = DataTableColumn; //# sourceMappingURL=/components/column.component.js.map \ No newline at end of file diff --git a/dist/components/column.component.js.map b/dist/components/column.component.js.map index 33f72d8..3fb1bd4 100644 --- a/dist/components/column.component.js.map +++ b/dist/components/column.component.js.map @@ -1 +1 @@ -{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAuE;AAQvE;IAHA;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IAxCQ;QAAR,YAAK,EAAE;;mDAAgB;IACf;QAAR,YAAK,EAAE;;qDAAkB;IACjB;QAAR,YAAK,EAAE;;sDAAmB;IAClB;QAAR,YAAK,EAAE;;qDAAkB;IACjB;QAAR,YAAK,EAAE;;uDAAoB;IACnB;QAAR,YAAK,EAAE;;uDAA0B;IAGzB;QAAR,YAAK,EAAE;;kDAAwB;IACvB;QAAR,YAAK,EAAE;;oDAAgB;IAEO;QAA9B,mBAAY,CAAC,eAAe,CAAC;;yDAAc;IACX;QAAhC,mBAAY,CAAC,iBAAiB,CAAC;;2DAAgB;IAfvC,eAAe;QAH3B,gBAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;SAC9B,CAAC;OACW,eAAe,CA4C3B;IAAD,sBAAC;CAAA,AA5CD,IA4CC;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\r\nimport { DataTableRow } from './row.component';\r\nimport { CellCallback } from '../types/cell-callback.type';\r\n\r\n\r\n@Directive({\r\n selector: 'data-table-column'\r\n})\r\nexport class DataTableColumn implements OnInit {\r\n\r\n // init:\r\n @Input() header: string;\r\n @Input() sortable = false;\r\n @Input() resizable = false;\r\n @Input() property: string;\r\n @Input() styleClass: string;\r\n @Input() cellColors: CellCallback;\r\n\r\n // init and state:\r\n @Input() width: number | string;\r\n @Input() visible = true;\r\n\r\n @ContentChild('dataTableCell') cellTemplate;\r\n @ContentChild('dataTableHeader') headerTemplate;\r\n\r\n getCellColor(row: DataTableRow, index: number) {\r\n if (this.cellColors !== undefined) {\r\n return (this.cellColors)(row.item, row, this, index);\r\n }\r\n }\r\n\r\n private styleClassObject = {}; // for [ngClass]\r\n\r\n ngOnInit() {\r\n this._initCellClass();\r\n }\r\n\r\n private _initCellClass() {\r\n if (!this.styleClass && this.property) {\r\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\r\n this.styleClass = 'column-' + this.property;\r\n } else {\r\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\r\n }\r\n }\r\n\r\n if (this.styleClass != null) {\r\n this.styleClassObject = {\r\n [this.styleClass]: true\r\n };\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAuE;AAQvE,IAAa,eAAe;IAH5B;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IACL,sBAAC;AAAD,CAAC,AA5CD,IA4CC;AAzCY;IAAR,YAAK,EAAE;;+CAAgB;AACf;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;kDAAmB;AAClB;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;mDAAoB;AACnB;IAAR,YAAK,EAAE;;mDAA0B;AAGzB;IAAR,YAAK,EAAE;;8CAAwB;AACvB;IAAR,YAAK,EAAE;;gDAAgB;AAEO;IAA9B,mBAAY,CAAC,eAAe,CAAC;;qDAAc;AACX;IAAhC,mBAAY,CAAC,iBAAiB,CAAC;;uDAAgB;AAfvC,eAAe;IAH3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;GACW,eAAe,CA4C3B;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\nimport { DataTableRow } from './row.component';\nimport { CellCallback } from '../types/cell-callback.type';\n\n\n@Directive({\n selector: 'data-table-column'\n})\nexport class DataTableColumn implements OnInit {\n\n // init:\n @Input() header: string;\n @Input() sortable = false;\n @Input() resizable = false;\n @Input() property: string;\n @Input() styleClass: string;\n @Input() cellColors: CellCallback;\n\n // init and state:\n @Input() width: number | string;\n @Input() visible = true;\n\n @ContentChild('dataTableCell') cellTemplate;\n @ContentChild('dataTableHeader') headerTemplate;\n\n getCellColor(row: DataTableRow, index: number) {\n if (this.cellColors !== undefined) {\n return (this.cellColors)(row.item, row, this, index);\n }\n }\n\n private styleClassObject = {}; // for [ngClass]\n\n ngOnInit() {\n this._initCellClass();\n }\n\n private _initCellClass() {\n if (!this.styleClass && this.property) {\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\n this.styleClass = 'column-' + this.property;\n } else {\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\n }\n }\n\n if (this.styleClass != null) {\n this.styleClassObject = {\n [this.styleClass]: true\n };\n }\n }\n}\n"]} \ No newline at end of file diff --git a/dist/components/header.component.js b/dist/components/header.component.js index 63cbc59..e20f8f4 100644 --- a/dist/components/header.component.js +++ b/dist/components/header.component.js @@ -11,7 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) { var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; -Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var table_component_1 = require("./table.component"); var header_template_1 = require("./header.template"); @@ -24,19 +23,20 @@ var DataTableHeader = (function () { DataTableHeader.prototype._closeSelector = function () { this.columnSelectorOpen = false; }; - DataTableHeader = __decorate([ - core_1.Component({ - selector: 'data-table-header', - template: header_template_1.HEADER_TEMPLATE, - styles: [header_style_1.HEADER_STYLE], - host: { - '(document:click)': '_closeSelector()' - } - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) - ], DataTableHeader); return DataTableHeader; }()); +DataTableHeader = __decorate([ + core_1.Component({ + moduleId: module.id, + selector: 'data-table-header', + template: header_template_1.HEADER_TEMPLATE, + styles: [header_style_1.HEADER_STYLE], + host: { + '(document:click)': '_closeSelector()' + } + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) +], DataTableHeader); exports.DataTableHeader = DataTableHeader; //# sourceMappingURL=/components/header.component.js.map \ No newline at end of file diff --git a/dist/components/header.component.js.map b/dist/components/header.component.js.map index 744c62f..552c2bf 100644 --- a/dist/components/header.component.js.map +++ b/dist/components/header.component.js.map @@ -1 +1 @@ -{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAW9C;IAQI,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IANQ,eAAe;QAR3B,gBAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE,iCAAe;YACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;YACtB,IAAI,EAAE;gBACJ,kBAAkB,EAAE,kBAAkB;aACvC;SACF,CAAC;QASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;yCAAmB,2BAAS;OARnE,eAAe,CAS3B;IAAD,sBAAC;CAAA,AATD,IASC;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { HEADER_TEMPLATE } from './header.template';\r\nimport { HEADER_STYLE } from \"./header.style\";\r\n\r\n\r\n@Component({\r\n selector: 'data-table-header',\r\n template: HEADER_TEMPLATE,\r\n styles: [HEADER_STYLE],\r\n host: {\r\n '(document:click)': '_closeSelector()'\r\n }\r\n})\r\nexport class DataTableHeader {\r\n\r\n columnSelectorOpen = false;\r\n\r\n _closeSelector() {\r\n this.columnSelectorOpen = false;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAY9C,IAAa,eAAe;IAQxB,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAGL,sBAAC;AAAD,CAAC,AATD,IASC;AATY,eAAe;IAT3B,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACrB,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,iCAAe;QACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;QACtB,IAAI,EAAE;YACJ,kBAAkB,EAAE,kBAAkB;SACvC;KACF,CAAC;IASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GARnE,eAAe,CAS3B;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\nimport { DataTable } from './table.component';\nimport { HEADER_TEMPLATE } from './header.template';\nimport { HEADER_STYLE } from \"./header.style\";\n\n\n@Component({\n moduleId: module.id,\n selector: 'data-table-header',\n template: HEADER_TEMPLATE,\n styles: [HEADER_STYLE],\n host: {\n '(document:click)': '_closeSelector()'\n }\n})\nexport class DataTableHeader {\n\n columnSelectorOpen = false;\n\n _closeSelector() {\n this.columnSelectorOpen = false;\n }\n\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\n}\n"]} \ No newline at end of file diff --git a/dist/components/header.style.js b/dist/components/header.style.js index 31662ea..26455b0 100644 --- a/dist/components/header.style.js +++ b/dist/components/header.style.js @@ -1,4 +1,3 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); exports.HEADER_STYLE = "\n.data-table-header {\n min-height: 25px;\n margin-bottom: 10px;\n}\n.title {\n display: inline-block;\n margin: 5px 0 0 5px;\n}\n.button-panel {\n float: right;\n}\n.button-panel button {\n outline: none !important;\n}\n\n.column-selector-wrapper {\n position: relative;\n}\n.column-selector-box {\n box-shadow: 0 0 10px lightgray;\n width: 150px;\n padding: 10px;\n position: absolute;\n right: 0;\n top: 1px;\n z-index: 1060;\n}\n.column-selector-box .checkbox {\n margin-bottom: 4px;\n}\n.column-selector-fixed-column {\n font-style: italic;\n}\n"; //# sourceMappingURL=/components/header.style.js.map \ No newline at end of file diff --git a/dist/components/header.style.js.map b/dist/components/header.style.js.map index eecdb8b..ea1fdc9 100644 --- a/dist/components/header.style.js.map +++ b/dist/components/header.style.js.map @@ -1 +1 @@ -{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\r\n.data-table-header {\r\n min-height: 25px;\r\n margin-bottom: 10px;\r\n}\r\n.title {\r\n display: inline-block;\r\n margin: 5px 0 0 5px;\r\n}\r\n.button-panel {\r\n float: right;\r\n}\r\n.button-panel button {\r\n outline: none !important;\r\n}\r\n\r\n.column-selector-wrapper {\r\n position: relative;\r\n}\r\n.column-selector-box {\r\n box-shadow: 0 0 10px lightgray;\r\n width: 150px;\r\n padding: 10px;\r\n position: absolute;\r\n right: 0;\r\n top: 1px;\r\n z-index: 1060;\r\n}\r\n.column-selector-box .checkbox {\r\n margin-bottom: 4px;\r\n}\r\n.column-selector-fixed-column {\r\n font-style: italic;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\n.data-table-header {\n min-height: 25px;\n margin-bottom: 10px;\n}\n.title {\n display: inline-block;\n margin: 5px 0 0 5px;\n}\n.button-panel {\n float: right;\n}\n.button-panel button {\n outline: none !important;\n}\n\n.column-selector-wrapper {\n position: relative;\n}\n.column-selector-box {\n box-shadow: 0 0 10px lightgray;\n width: 150px;\n padding: 10px;\n position: absolute;\n right: 0;\n top: 1px;\n z-index: 1060;\n}\n.column-selector-box .checkbox {\n margin-bottom: 4px;\n}\n.column-selector-fixed-column {\n font-style: italic;\n}\n`;"]} \ No newline at end of file diff --git a/dist/components/header.template.js b/dist/components/header.template.js index d69a350..08f1ff7 100644 --- a/dist/components/header.template.js +++ b/dist/components/header.template.js @@ -1,4 +1,3 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); exports.HEADER_TEMPLATE = "\n
\n

\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n"; //# sourceMappingURL=/components/header.template.js.map \ No newline at end of file diff --git a/dist/components/header.template.js.map b/dist/components/header.template.js.map index 34fe1c5..3977d87 100644 --- a/dist/components/header.template.js.map +++ b/dist/components/header.template.js.map @@ -1 +1 @@ -{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";;AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_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
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file +{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_TEMPLATE = `\n
\n

\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.component.js b/dist/components/pagination.component.js index 062fc61..d9df44a 100644 --- a/dist/components/pagination.component.js +++ b/dist/components/pagination.component.js @@ -11,7 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) { var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; -Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var table_component_1 = require("./table.component"); var pagination_template_1 = require("./pagination.template"); @@ -59,16 +58,17 @@ var DataTablePagination = (function () { enumerable: true, configurable: true }); - DataTablePagination = __decorate([ - core_1.Component({ - selector: 'data-table-pagination', - template: pagination_template_1.PAGINATION_TEMPLATE, - styles: [pagination_style_1.PAGINATION_STYLE] - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) - ], DataTablePagination); return DataTablePagination; }()); +DataTablePagination = __decorate([ + core_1.Component({ + moduleId: module.id, + selector: 'data-table-pagination', + template: pagination_template_1.PAGINATION_TEMPLATE, + styles: [pagination_style_1.PAGINATION_STYLE] + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) +], DataTablePagination); exports.DataTablePagination = DataTablePagination; //# sourceMappingURL=/components/pagination.component.js.map \ No newline at end of file diff --git a/dist/components/pagination.component.js.map b/dist/components/pagination.component.js.map index ae93fe3..4a886c7 100644 --- a/dist/components/pagination.component.js.map +++ b/dist/components/pagination.component.js.map @@ -1 +1 @@ -{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,6DAA4D;AAC5D,uDAAsD;AAQtD;IAEI,6BAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEhF,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,yCAAW,GAAX;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,uCAAS,GAAT;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACtE,CAAC;IAED,sBAAI,wCAAO;aAAX;YACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;;;OAAA;IAED,sBAAI,sCAAK;aAAT;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAChC,CAAC;aAED,UAAU,KAAK;YACX,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC,CAAC,oEAAoE;QACnH,CAAC;;;OAJA;IAMD,sBAAI,qCAAI;aAAR;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/B,CAAC;aAED,UAAS,KAAK;YACV,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC;QAC7C,CAAC;;;OAJA;IAlCQ,mBAAmB;QAL/B,gBAAS,CAAC;YACT,QAAQ,EAAE,uBAAuB;YACjC,QAAQ,EAAE,yCAAmB;YAC7B,MAAM,EAAE,CAAC,mCAAgB,CAAC;SAC3B,CAAC;QAGe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;yCAAmB,2BAAS;OAFnE,mBAAmB,CAuC/B;IAAD,0BAAC;CAAA,AAvCD,IAuCC;AAvCY,kDAAmB","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { PAGINATION_TEMPLATE } from './pagination.template';\r\nimport { PAGINATION_STYLE } from \"./pagination.style\";\r\n\r\n\r\n@Component({\r\n selector: 'data-table-pagination',\r\n template: PAGINATION_TEMPLATE,\r\n styles: [PAGINATION_STYLE]\r\n})\r\nexport class DataTablePagination {\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n pageBack() {\r\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\r\n }\r\n\r\n pageForward() {\r\n this.dataTable.offset += this.dataTable.limit;\r\n }\r\n\r\n pageFirst() {\r\n this.dataTable.offset = 0;\r\n }\r\n\r\n pageLast() {\r\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\r\n }\r\n\r\n get maxPage() {\r\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\r\n }\r\n\r\n get limit() {\r\n return this.dataTable.limit;\r\n }\r\n\r\n set limit(value) {\r\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\r\n }\r\n\r\n get page() {\r\n return this.dataTable.page;\r\n }\r\n\r\n set page(value) {\r\n this.dataTable.page = Number(value);\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,6DAA4D;AAC5D,uDAAsD;AAStD,IAAa,mBAAmB;IAE5B,6BAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEhF,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,yCAAW,GAAX;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,uCAAS,GAAT;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACtE,CAAC;IAED,sBAAI,wCAAO;aAAX;YACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;;;OAAA;IAED,sBAAI,sCAAK;aAAT;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAChC,CAAC;aAED,UAAU,KAAK;YACX,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC,CAAC,oEAAoE;QACnH,CAAC;;;OAJA;IAMD,sBAAI,qCAAI;aAAR;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/B,CAAC;aAED,UAAS,KAAK;YACV,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC;QAC7C,CAAC;;;OAJA;IAKL,0BAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,mBAAmB;IAN/B,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACrB,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,yCAAmB;QAC7B,MAAM,EAAE,CAAC,mCAAgB,CAAC;KAC3B,CAAC;IAGe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAFnE,mBAAmB,CAuC/B;AAvCY,kDAAmB","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\nimport { DataTable } from './table.component';\nimport { PAGINATION_TEMPLATE } from './pagination.template';\nimport { PAGINATION_STYLE } from \"./pagination.style\";\n\n\n@Component({\n moduleId: module.id,\n selector: 'data-table-pagination',\n template: PAGINATION_TEMPLATE,\n styles: [PAGINATION_STYLE]\n})\nexport class DataTablePagination {\n\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\n\n pageBack() {\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\n }\n\n pageForward() {\n this.dataTable.offset += this.dataTable.limit;\n }\n\n pageFirst() {\n this.dataTable.offset = 0;\n }\n\n pageLast() {\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\n }\n\n get maxPage() {\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\n }\n\n get limit() {\n return this.dataTable.limit;\n }\n\n set limit(value) {\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\n }\n\n get page() {\n return this.dataTable.page;\n }\n\n set page(value) {\n this.dataTable.page = Number(value);\n }\n}\n"]} \ No newline at end of file diff --git a/dist/components/pagination.style.js b/dist/components/pagination.style.js index 575da45..718e509 100644 --- a/dist/components/pagination.style.js +++ b/dist/components/pagination.style.js @@ -1,4 +1,3 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); exports.PAGINATION_STYLE = "\n.pagination-box {\n position: relative;\n margin-top: -10px;\n}\n.pagination-range {\n margin-top: 7px;\n margin-left: 3px;\n display: inline-block;\n}\n.pagination-controllers {\n float: right;\n}\n.pagination-controllers input {\n min-width: 60px;\n /*padding: 1px 0px 0px 5px;*/\n text-align: right;\n}\n\n.pagination-limit {\n margin-right: 25px;\n display: inline-table;\n width: 150px;\n}\n.pagination-pages {\n display: inline-block;\n}\n.pagination-page {\n width: 110px;\n display: inline-table;\n}\n.pagination-box button {\n outline: none !important;\n}\n.pagination-prevpage,\n.pagination-nextpage,\n.pagination-firstpage,\n.pagination-lastpage {\n vertical-align: top;\n}\n.pagination-reload {\n color: gray;\n font-size: 12px;\n}\n"; //# sourceMappingURL=/components/pagination.style.js.map \ No newline at end of file diff --git a/dist/components/pagination.style.js.map b/dist/components/pagination.style.js.map index 129e64a..8ed0ddc 100644 --- a/dist/components/pagination.style.js.map +++ b/dist/components/pagination.style.js.map @@ -1 +1 @@ -{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";;AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.template.js b/dist/components/pagination.template.js index 79cb88c..7826223 100644 --- a/dist/components/pagination.template.js +++ b/dist/components/pagination.template.js @@ -1,4 +1,3 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); exports.PAGINATION_TEMPLATE = "\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n \n
\n
\n
\n"; //# sourceMappingURL=/components/pagination.template.js.map \ No newline at end of file diff --git a/dist/components/pagination.template.js.map b/dist/components/pagination.template.js.map index e2f291d..2d17488 100644 --- a/dist/components/pagination.template.js.map +++ b/dist/components/pagination.template.js.map @@ -1 +1 @@ -{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";;AAAa,QAAA,mBAAmB,GAAG,kxEAsClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\r\n
\r\n
\r\n {{dataTable.translations.paginationRange}}:\r\n \r\n -\r\n \r\n /\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{dataTable.translations.paginationLimit}}:\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n /\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file +{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";AAAa,QAAA,mBAAmB,GAAG,kxEAsClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n \n
\n
\n
\n`;"]} \ No newline at end of file diff --git a/dist/components/row.component.js b/dist/components/row.component.js index 8014010..70e9cfa 100644 --- a/dist/components/row.component.js +++ b/dist/components/row.component.js @@ -11,7 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) { var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; -Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var table_component_1 = require("./table.component"); var row_template_1 = require("./row.template"); @@ -55,28 +54,29 @@ var DataTableRow = (function () { DataTableRow.prototype.ngOnDestroy = function () { this.selected = false; }; - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTableRow.prototype, "item", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Number) - ], DataTableRow.prototype, "index", void 0); - __decorate([ - core_1.Output(), - __metadata("design:type", Object) - ], DataTableRow.prototype, "selectedChange", void 0); - DataTableRow = __decorate([ - core_1.Component({ - selector: '[dataTableRow]', - template: row_template_1.ROW_TEMPLATE, - styles: [row_style_1.ROW_STYLE] - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) - ], DataTableRow); return DataTableRow; }()); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableRow.prototype, "item", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Number) +], DataTableRow.prototype, "index", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTableRow.prototype, "selectedChange", void 0); +DataTableRow = __decorate([ + core_1.Component({ + moduleId: module.id, + selector: '[dataTableRow]', + template: row_template_1.ROW_TEMPLATE, + styles: [row_style_1.ROW_STYLE] + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) +], DataTableRow); exports.DataTableRow = DataTableRow; //# sourceMappingURL=/components/row.component.js.map \ No newline at end of file diff --git a/dist/components/row.component.js.map b/dist/components/row.component.js.map index 2ad7446..df5b58b 100644 --- a/dist/components/row.component.js.map +++ b/dist/components/row.component.js.map @@ -1 +1 @@ -{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AAQxC;IAuCI,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAzCQ;QAAR,YAAK,EAAE;;8CAAW;IACV;QAAR,YAAK,EAAE;;+CAAe;IAQb;QAAT,aAAM,EAAE;;wDAAqC;IAXrC,YAAY;QALxB,gBAAS,CAAC;YACP,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE,2BAAY;YACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;SACtB,CAAC;QAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;yCAAmB,2BAAS;OAvCnE,YAAY,CA8CxB;IAAD,mBAAC;CAAA,AA9CD,IA8CC;AA9CY,oCAAY","sourcesContent":["import {\r\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\r\n} from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { ROW_TEMPLATE } from './row.template';\r\nimport { ROW_STYLE } from \"./row.style\";\r\n\r\n\r\n@Component({\r\n selector: '[dataTableRow]',\r\n template: ROW_TEMPLATE,\r\n styles: [ROW_STYLE]\r\n})\r\nexport class DataTableRow implements OnDestroy {\r\n\r\n @Input() item: any;\r\n @Input() index: number;\r\n\r\n expanded: boolean;\r\n\r\n // row selection:\r\n\r\n private _selected: boolean;\r\n\r\n @Output() selectedChange = new EventEmitter();\r\n\r\n get selected() {\r\n return this._selected;\r\n }\r\n\r\n set selected(selected) {\r\n this._selected = selected;\r\n this.selectedChange.emit(selected);\r\n }\r\n\r\n // other:\r\n\r\n get displayIndex() {\r\n if (this.dataTable.pagination) {\r\n return this.dataTable.displayParams.offset + this.index + 1;\r\n } else {\r\n return this.index + 1;\r\n }\r\n }\r\n\r\n getTooltip() {\r\n if (this.dataTable.rowTooltip) {\r\n return this.dataTable.rowTooltip(this.item, this, this.index);\r\n }\r\n return '';\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n ngOnDestroy() {\r\n this.selected = false;\r\n }\r\n\r\n private _this = this; // FIXME is there no template keyword for this in angular 2?\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AASxC,IAAa,YAAY;IAuCrB,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAGL,mBAAC;AAAD,CAAC,AA9CD,IA8CC;AA5CY;IAAR,YAAK,EAAE;;0CAAW;AACV;IAAR,YAAK,EAAE;;2CAAe;AAQb;IAAT,aAAM,EAAE;;oDAAqC;AAXrC,YAAY;IANxB,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,2BAAY;QACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;KACtB,CAAC;IAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAvCnE,YAAY,CA8CxB;AA9CY,oCAAY","sourcesContent":["import {\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\n} from '@angular/core';\nimport { DataTable } from './table.component';\nimport { ROW_TEMPLATE } from './row.template';\nimport { ROW_STYLE } from \"./row.style\";\n\n\n@Component({\n moduleId: module.id,\n selector: '[dataTableRow]',\n template: ROW_TEMPLATE,\n styles: [ROW_STYLE]\n})\nexport class DataTableRow implements OnDestroy {\n\n @Input() item: any;\n @Input() index: number;\n\n expanded: boolean;\n\n // row selection:\n\n private _selected: boolean;\n\n @Output() selectedChange = new EventEmitter();\n\n get selected() {\n return this._selected;\n }\n\n set selected(selected) {\n this._selected = selected;\n this.selectedChange.emit(selected);\n }\n\n // other:\n\n get displayIndex() {\n if (this.dataTable.pagination) {\n return this.dataTable.displayParams.offset + this.index + 1;\n } else {\n return this.index + 1;\n }\n }\n\n getTooltip() {\n if (this.dataTable.rowTooltip) {\n return this.dataTable.rowTooltip(this.item, this, this.index);\n }\n return '';\n }\n\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\n\n ngOnDestroy() {\n this.selected = false;\n }\n\n private _this = this; // FIXME is there no template keyword for this in angular 2?\n}\n"]} \ No newline at end of file diff --git a/dist/components/row.style.js b/dist/components/row.style.js index f1eaa30..ac8067e 100644 --- a/dist/components/row.style.js +++ b/dist/components/row.style.js @@ -1,4 +1,3 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); exports.ROW_STYLE = "\n.select-column {\n text-align: center;\n}\n\n.row-expand-button {\n cursor: pointer;\n text-align: center;\n}\n\n.clickable {\n cursor: pointer;\n}\n"; //# sourceMappingURL=/components/row.style.js.map \ No newline at end of file diff --git a/dist/components/row.style.js.map b/dist/components/row.style.js.map index 3b5949c..5489e59 100644 --- a/dist/components/row.style.js.map +++ b/dist/components/row.style.js.map @@ -1 +1 @@ -{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";;AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.template.js b/dist/components/row.template.js index d959c09..1c119c6 100644 --- a/dist/components/row.template.js +++ b/dist/components/row.template.js @@ -1,4 +1,3 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); exports.ROW_TEMPLATE = "\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n\n\n \n
\n \n\n"; //# sourceMappingURL=/components/row.template.js.map \ No newline at end of file diff --git a/dist/components/row.template.js.map b/dist/components/row.template.js.map index bc982ff..490a223 100644 --- a/dist/components/row.template.js.map +++ b/dist/components/row.template.js.map @@ -1 +1 @@ -{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_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\r\n\r\n \r\n
\r\n \r\n\r\n`;"]} \ No newline at end of file +{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_TEMPLATE = `\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n\n\n \n
\n \n\n`;"]} \ No newline at end of file diff --git a/dist/components/table.component.js b/dist/components/table.component.js index c90ab5b..c3ce322 100644 --- a/dist/components/table.component.js +++ b/dist/components/table.component.js @@ -8,7 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; -Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var column_component_1 = require("./column.component"); var row_component_1 = require("./row.component"); @@ -318,140 +317,141 @@ var DataTable = (function () { } return true; }; - __decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Array]) - ], DataTable.prototype, "items", null); - __decorate([ - core_1.Input(), - __metadata("design:type", Number) - ], DataTable.prototype, "itemCount", void 0); - __decorate([ - core_1.ContentChildren(column_component_1.DataTableColumn), - __metadata("design:type", core_1.QueryList) - ], DataTable.prototype, "columns", void 0); - __decorate([ - core_1.ViewChildren(row_component_1.DataTableRow), - __metadata("design:type", core_1.QueryList) - ], DataTable.prototype, "rows", void 0); - __decorate([ - core_1.ContentChild('dataTableExpand'), - __metadata("design:type", core_1.TemplateRef) - ], DataTable.prototype, "expandTemplate", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", String) - ], DataTable.prototype, "headerTitle", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "header", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "pagination", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "indexColumn", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "indexColumnHeader", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Function) - ], DataTable.prototype, "rowColors", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Function) - ], DataTable.prototype, "rowTooltip", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "selectColumn", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "multiSelect", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "substituteRows", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "expandableRows", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "translations", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "selectOnRowClick", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "autoReload", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object) - ], DataTable.prototype, "showReloading", void 0); - __decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) - ], DataTable.prototype, "sortBy", null); - __decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) - ], DataTable.prototype, "sortAsc", null); - __decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) - ], DataTable.prototype, "offset", null); - __decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) - ], DataTable.prototype, "limit", null); - __decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) - ], DataTable.prototype, "page", null); - __decorate([ - core_1.Output(), - __metadata("design:type", Object) - ], DataTable.prototype, "reload", void 0); - __decorate([ - core_1.Output(), - __metadata("design:type", Object) - ], DataTable.prototype, "rowClick", void 0); - __decorate([ - core_1.Output(), - __metadata("design:type", Object) - ], DataTable.prototype, "rowDoubleClick", void 0); - __decorate([ - core_1.Output(), - __metadata("design:type", Object) - ], DataTable.prototype, "headerClick", void 0); - __decorate([ - core_1.Output(), - __metadata("design:type", Object) - ], DataTable.prototype, "cellClick", void 0); - DataTable = __decorate([ - core_1.Component({ - selector: 'data-table', - template: table_template_1.TABLE_TEMPLATE, - styles: [table_style_1.TABLE_STYLE] - }) - ], DataTable); return DataTable; }()); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Array]) +], DataTable.prototype, "items", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Number) +], DataTable.prototype, "itemCount", void 0); +__decorate([ + core_1.ContentChildren(column_component_1.DataTableColumn), + __metadata("design:type", core_1.QueryList) +], DataTable.prototype, "columns", void 0); +__decorate([ + core_1.ViewChildren(row_component_1.DataTableRow), + __metadata("design:type", core_1.QueryList) +], DataTable.prototype, "rows", void 0); +__decorate([ + core_1.ContentChild('dataTableExpand'), + __metadata("design:type", core_1.TemplateRef) +], DataTable.prototype, "expandTemplate", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTable.prototype, "headerTitle", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "header", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "indexColumn", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "indexColumnHeader", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Function) +], DataTable.prototype, "rowColors", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Function) +], DataTable.prototype, "rowTooltip", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "selectColumn", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "multiSelect", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "substituteRows", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "expandableRows", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "translations", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "selectOnRowClick", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "autoReload", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "showReloading", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "sortBy", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "sortAsc", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "offset", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "limit", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "page", null); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "reload", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "rowClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "rowDoubleClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "headerClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "cellClick", void 0); +DataTable = __decorate([ + core_1.Component({ + moduleId: module.id, + selector: 'data-table', + template: table_template_1.TABLE_TEMPLATE, + styles: [table_style_1.TABLE_STYLE] + }) +], DataTable); exports.DataTable = DataTable; //# sourceMappingURL=/components/table.component.js.map \ No newline at end of file diff --git a/dist/components/table.component.js.map b/dist/components/table.component.js.map index d17a370..a63747c 100644 --- a/dist/components/table.component.js.map +++ b/dist/components/table.component.js.map @@ -1 +1 @@ -{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\r\n TemplateRef, ContentChild, ViewChildren, OnInit\r\n} from '@angular/core';\r\nimport { DataTableColumn } from './column.component';\r\nimport { DataTableRow } from './row.component';\r\nimport { DataTableParams } from '../types/data-table-params.type';\r\nimport { RowCallback } from '../types/row-callback.type';\r\nimport { DataTableTranslations } from '../types/data-table-translations.type';\r\nimport { defaultTranslations } from '../types/default-translations.type';\r\nimport { drag } from '../utils/drag';\r\nimport { TABLE_TEMPLATE } from './table.template';\r\nimport { TABLE_STYLE } from \"./table.style\";\r\n\r\n\r\n\r\n@Component({\r\n selector: 'data-table',\r\n template: TABLE_TEMPLATE,\r\n styles: [TABLE_STYLE]\r\n})\r\nexport class DataTable implements DataTableParams, OnInit {\r\n\r\n private _items: any[] = [];\r\n\r\n @Input() get items() {\r\n return this._items;\r\n }\r\n\r\n set items(items: any[]) {\r\n this._items = items;\r\n this._onReloadFinished();\r\n }\r\n\r\n @Input() itemCount: number;\r\n\r\n // UI components:\r\n\r\n @ContentChildren(DataTableColumn) columns: QueryList;\r\n @ViewChildren(DataTableRow) rows: QueryList;\r\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\r\n\r\n // One-time optional bindings with default values:\r\n\r\n @Input() headerTitle: string;\r\n @Input() header = true;\r\n @Input() pagination = true;\r\n @Input() indexColumn = true;\r\n @Input() indexColumnHeader = '';\r\n @Input() rowColors: RowCallback;\r\n @Input() rowTooltip: RowCallback;\r\n @Input() selectColumn = false;\r\n @Input() multiSelect = true;\r\n @Input() substituteRows = true;\r\n @Input() expandableRows = false;\r\n @Input() translations: DataTableTranslations = defaultTranslations;\r\n @Input() selectOnRowClick = false;\r\n @Input() autoReload = true;\r\n @Input() showReloading = false;\r\n\r\n // UI state without input:\r\n\r\n indexColumnVisible: boolean;\r\n selectColumnVisible: boolean;\r\n expandColumnVisible: boolean;\r\n\r\n // UI state: visible ge/set for the outside with @Input for one-time initial values\r\n\r\n private _sortBy: string;\r\n private _sortAsc = true;\r\n\r\n private _offset = 0;\r\n private _limit = 10;\r\n\r\n @Input()\r\n get sortBy() {\r\n return this._sortBy;\r\n }\r\n\r\n set sortBy(value) {\r\n this._sortBy = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get sortAsc() {\r\n return this._sortAsc;\r\n }\r\n\r\n set sortAsc(value) {\r\n this._sortAsc = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get offset() {\r\n return this._offset;\r\n }\r\n\r\n set offset(value) {\r\n this._offset = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get limit() {\r\n return this._limit;\r\n }\r\n\r\n set limit(value) {\r\n this._limit = value;\r\n this._triggerReload();\r\n }\r\n\r\n // calculated property:\r\n\r\n @Input()\r\n get page() {\r\n return Math.floor(this.offset / this.limit) + 1;\r\n }\r\n\r\n set page(value) {\r\n this.offset = (value - 1) * this.limit;\r\n }\r\n\r\n get lastPage() {\r\n return Math.ceil(this.itemCount / this.limit);\r\n }\r\n\r\n // setting multiple observable properties simultaneously\r\n\r\n sort(sortBy: string, asc: boolean) {\r\n this.sortBy = sortBy;\r\n this.sortAsc = asc;\r\n }\r\n\r\n // init\r\n\r\n ngOnInit() {\r\n this._initDefaultValues();\r\n this._initDefaultClickEvents();\r\n this._updateDisplayParams();\r\n\r\n if (this.autoReload && this._scheduledReload == null) {\r\n this.reloadItems();\r\n }\r\n }\r\n\r\n private _initDefaultValues() {\r\n this.indexColumnVisible = this.indexColumn;\r\n this.selectColumnVisible = this.selectColumn;\r\n this.expandColumnVisible = this.expandableRows;\r\n }\r\n\r\n private _initDefaultClickEvents() {\r\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\r\n if (this.selectOnRowClick) {\r\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\r\n }\r\n }\r\n\r\n // Reloading:\r\n\r\n _reloading = false;\r\n\r\n get reloading() {\r\n return this._reloading;\r\n }\r\n\r\n @Output() reload = new EventEmitter();\r\n\r\n reloadItems() {\r\n this._reloading = true;\r\n this.reload.emit(this._getRemoteParameters());\r\n }\r\n\r\n private _onReloadFinished() {\r\n this._updateDisplayParams();\r\n\r\n this._selectAllCheckbox = false;\r\n this._reloading = false;\r\n }\r\n\r\n _displayParams = {}; // params of the last finished reload\r\n\r\n get displayParams() {\r\n return this._displayParams;\r\n }\r\n\r\n _updateDisplayParams() {\r\n this._displayParams = {\r\n sortBy: this.sortBy,\r\n sortAsc: this.sortAsc,\r\n offset: this.offset,\r\n limit: this.limit\r\n };\r\n }\r\n\r\n _scheduledReload = null;\r\n\r\n // for avoiding cascading reloads if multiple params are set at once:\r\n _triggerReload() {\r\n if (this._scheduledReload) {\r\n clearTimeout(this._scheduledReload);\r\n }\r\n this._scheduledReload = setTimeout(() => {\r\n this.reloadItems();\r\n });\r\n }\r\n\r\n // event handlers:\r\n\r\n @Output() rowClick = new EventEmitter();\r\n @Output() rowDoubleClick = new EventEmitter();\r\n @Output() headerClick = new EventEmitter();\r\n @Output() cellClick = new EventEmitter();\r\n\r\n private rowClicked(row: DataTableRow, event) {\r\n this.rowClick.emit({ row, event });\r\n }\r\n\r\n private rowDoubleClicked(row: DataTableRow, event) {\r\n this.rowDoubleClick.emit({ row, event });\r\n }\r\n\r\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\r\n if (!this._resizeInProgress) {\r\n this.headerClick.emit({ column, event });\r\n } else {\r\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\r\n }\r\n }\r\n\r\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\r\n this.cellClick.emit({ row, column, event });\r\n }\r\n\r\n // functions:\r\n\r\n private _getRemoteParameters(): DataTableParams {\r\n let params = {};\r\n\r\n if (this.sortBy) {\r\n params.sortBy = this.sortBy;\r\n params.sortAsc = this.sortAsc;\r\n }\r\n if (this.pagination) {\r\n params.offset = this.offset;\r\n params.limit = this.limit;\r\n }\r\n return params;\r\n }\r\n\r\n private sortColumn(column: DataTableColumn) {\r\n if (column.sortable) {\r\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\r\n this.sort(column.property, ascending);\r\n }\r\n }\r\n\r\n get columnCount() {\r\n let count = 0;\r\n count += this.indexColumnVisible ? 1 : 0;\r\n count += this.selectColumnVisible ? 1 : 0;\r\n count += this.expandColumnVisible ? 1 : 0;\r\n this.columns.toArray().forEach(column => {\r\n count += column.visible ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n private getRowColor(item: any, index: number, row: DataTableRow) {\r\n if (this.rowColors !== undefined) {\r\n return (this.rowColors)(item, row, index);\r\n }\r\n }\r\n\r\n // selection:\r\n\r\n selectedRow: DataTableRow;\r\n selectedRows: DataTableRow[] = [];\r\n\r\n private _selectAllCheckbox = false;\r\n\r\n get selectAllCheckbox() {\r\n return this._selectAllCheckbox;\r\n }\r\n\r\n set selectAllCheckbox(value) {\r\n this._selectAllCheckbox = value;\r\n this._onSelectAllChanged(value);\r\n }\r\n\r\n private _onSelectAllChanged(value: boolean) {\r\n this.rows.toArray().forEach(row => row.selected = value);\r\n }\r\n\r\n onRowSelectChanged(row: DataTableRow) {\r\n\r\n // maintain the selectedRow(s) view\r\n if (this.multiSelect) {\r\n let index = this.selectedRows.indexOf(row);\r\n if (row.selected && index < 0) {\r\n this.selectedRows.push(row);\r\n } else if (!row.selected && index >= 0) {\r\n this.selectedRows.splice(index, 1);\r\n }\r\n } else {\r\n if (row.selected) {\r\n this.selectedRow = row;\r\n } else if (this.selectedRow === row) {\r\n this.selectedRow = undefined;\r\n }\r\n }\r\n\r\n // unselect all other rows:\r\n if (row.selected && !this.multiSelect) {\r\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\r\n if (row_ !== row) { // avoid endless loop\r\n row_.selected = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // other:\r\n\r\n get substituteItems() {\r\n return Array.from({ length: this.displayParams.limit - this.items.length });\r\n }\r\n\r\n // column resizing:\r\n\r\n private _resizeInProgress = false;\r\n\r\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\r\n this._resizeInProgress = true;\r\n\r\n drag(event, {\r\n move: (moveEvent: MouseEvent, dx: number) => {\r\n if (this._isResizeInLimit(columnElement, dx)) {\r\n column.width = columnElement.offsetWidth + dx;\r\n }\r\n },\r\n });\r\n }\r\n\r\n resizeLimit = 30;\r\n\r\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\r\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\r\n Without the limits, resizing can make the next column disappear completely,\r\n and even increase the table width. The current implementation suffers from the fact,\r\n that offsetWidth sometimes contains out-of-date values. */\r\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\r\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\r\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAGuB;AACvB,uDAAqD;AACrD,iDAA+C;AAI/C,gFAAyE;AACzE,sCAAqC;AACrC,mDAAkD;AAClD,6CAA4C;AAU5C,IAAa,SAAS;IANtB;QAQY,WAAM,GAAU,EAAE,CAAC;QAsBlB,WAAM,GAAG,IAAI,CAAC;QACd,eAAU,GAAG,IAAI,CAAC;QAClB,gBAAW,GAAG,IAAI,CAAC;QACnB,sBAAiB,GAAG,EAAE,CAAC;QAGvB,iBAAY,GAAG,KAAK,CAAC;QACrB,gBAAW,GAAG,IAAI,CAAC;QACnB,mBAAc,GAAG,IAAI,CAAC;QACtB,mBAAc,GAAG,KAAK,CAAC;QACvB,iBAAY,GAA0B,+CAAmB,CAAC;QAC1D,qBAAgB,GAAG,KAAK,CAAC;QACzB,eAAU,GAAG,IAAI,CAAC;QAClB,kBAAa,GAAG,KAAK,CAAC;QAWvB,aAAQ,GAAG,IAAI,CAAC;QAEhB,YAAO,GAAG,CAAC,CAAC;QACZ,WAAM,GAAG,EAAE,CAAC;QAyFpB,aAAa;QAEb,eAAU,GAAG,KAAK,CAAC;QAMT,WAAM,GAAG,IAAI,mBAAY,EAAE,CAAC;QActC,mBAAc,GAAoB,EAAE,CAAC,CAAC,qCAAqC;QAe3E,qBAAgB,GAAG,IAAI,CAAC;QAYxB,kBAAkB;QAER,aAAQ,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC9B,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QACpC,gBAAW,GAAG,IAAI,mBAAY,EAAE,CAAC;QACjC,cAAS,GAAG,IAAI,mBAAY,EAAE,CAAC;QAiEzC,iBAAY,GAAmB,EAAE,CAAC;QAE1B,uBAAkB,GAAG,KAAK,CAAC;QAiDnC,mBAAmB;QAEX,sBAAiB,GAAG,KAAK,CAAC;QAclC,gBAAW,GAAG,EAAE,CAAC;IAcrB,CAAC;IAhVY,sBAAI,4BAAK;aAAT;YACL,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;aAED,UAAU,KAAY;YAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC;;;OALA;IAgDD,sBAAI,6BAAM;aAAV;YACI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;aAED,UAAW,KAAK;YACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;;;OALA;IAQD,sBAAI,8BAAO;aAAX;YACI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;aAED,UAAY,KAAK;YACb,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;;;OALA;IAQD,sBAAI,6BAAM;aAAV;YACI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;aAED,UAAW,KAAK;YACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;;;OALA;IAQD,sBAAI,4BAAK;aAAT;YACI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;aAED,UAAU,KAAK;YACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;;;OALA;IAUD,sBAAI,2BAAI;QAHR,uBAAuB;aAGvB;YACI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;aAED,UAAS,KAAK;YACV,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3C,CAAC;;;OAJA;IAMD,sBAAI,+BAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;;;OAAA;IAED,wDAAwD;IAExD,wBAAI,GAAJ,UAAK,MAAc,EAAE,GAAY;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACvB,CAAC;IAED,OAAO;IAEP,4BAAQ,GAAR;QACI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;IACL,CAAC;IAEO,sCAAkB,GAA1B;QACI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC;IACnD,CAAC;IAEO,2CAAuB,GAA/B;QAAA,iBAKC;QAJG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAA,UAAU,IAAI,OAAA,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAlC,CAAkC,CAAC,CAAC;QAC7E,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAlD,CAAkD,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAMD,sBAAI,gCAAS;aAAb;YACI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;;;OAAA;IAID,+BAAW,GAAX;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAClD,CAAC;IAEO,qCAAiB,GAAzB;QACI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAID,sBAAI,oCAAa;aAAjB;YACI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;;;OAAA;IAED,wCAAoB,GAApB;QACI,IAAI,CAAC,cAAc,GAAG;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC;IACN,CAAC;IAID,qEAAqE;IACrE,kCAAc,GAAd;QAAA,iBAOC;QANG,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;YAC/B,KAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IASO,8BAAU,GAAlB,UAAmB,GAAiB,EAAE,KAAK;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAA,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,oCAAgB,GAAxB,UAAyB,GAAiB,EAAE,KAAK;QAC7C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,KAAA,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEO,iCAAa,GAArB,UAAsB,MAAuB,EAAE,KAAiB;QAC5D,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,QAAA,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC,oEAAoE;QACxG,CAAC;IACL,CAAC;IAEO,+BAAW,GAAnB,UAAoB,MAAuB,EAAE,GAAiB,EAAE,KAAiB;QAC7E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,aAAa;IAEL,wCAAoB,GAA5B;QACI,IAAI,MAAM,GAAoB,EAAE,CAAC;QAEjC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAClC,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAClB,CAAC;IAEO,8BAAU,GAAlB,UAAmB,MAAuB;QACtC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,sBAAI,kCAAW;aAAf;YACI,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,CAAC,CAAC;YACzC,KAAK,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,KAAK,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,UAAA,MAAM;gBACjC,KAAK,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAEO,+BAAW,GAAnB,UAAoB,IAAS,EAAE,KAAa,EAAE,GAAiB;QAC3D,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAe,IAAI,CAAC,SAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IASD,sBAAI,wCAAiB;aAArB;YACI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACnC,CAAC;aAED,UAAsB,KAAK;YACvB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;;;OALA;IAOO,uCAAmB,GAA3B,UAA4B,KAAc;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,QAAQ,GAAG,KAAK,EAApB,CAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,sCAAkB,GAAlB,UAAmB,GAAiB;QAEhC,mCAAmC;QACnC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACnB,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YAC3B,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YACjC,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,QAAQ,EAAb,CAAa,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI;gBAC1D,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC1B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAID,sBAAI,sCAAe;QAFnB,SAAS;aAET;YACI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAChF,CAAC;;;OAAA;IAMO,qCAAiB,GAAzB,UAA0B,KAAiB,EAAE,MAAuB,EAAE,aAA0B;QAAhG,iBAUC;QATG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,WAAI,CAAC,KAAK,EAAE;YACR,IAAI,EAAE,UAAC,SAAqB,EAAE,EAAU;gBACpC,EAAE,CAAC,CAAC,KAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC3C,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;gBAClD,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAIO,oCAAgB,GAAxB,UAAyB,aAA0B,EAAE,EAAU;QAC3D;;;mEAG2D;QAC3D,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;YAChE,CAAC,aAAa,CAAC,kBAAkB;YACjC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAgB,aAAa,CAAC,kBAAmB,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvG,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IACL,gBAAC;AAAD,CAAC,AApVD,IAoVC;AAhVY;IAAR,YAAK,EAAE;;;sCAEP;AAOQ;IAAR,YAAK,EAAE;;4CAAmB;AAIO;IAAjC,sBAAe,CAAC,kCAAe,CAAC;8BAAU,gBAAS;0CAAkB;AAC1C;IAA3B,mBAAY,CAAC,4BAAY,CAAC;8BAAO,gBAAS;uCAAe;AACzB;IAAhC,mBAAY,CAAC,iBAAiB,CAAC;8BAAiB,kBAAW;iDAAM;AAIzD;IAAR,YAAK,EAAE;;8CAAqB;AACpB;IAAR,YAAK,EAAE;;yCAAe;AACd;IAAR,YAAK,EAAE;;6CAAmB;AAClB;IAAR,YAAK,EAAE;;8CAAoB;AACnB;IAAR,YAAK,EAAE;;oDAAwB;AACvB;IAAR,YAAK,EAAE;;4CAAwB;AACvB;IAAR,YAAK,EAAE;;6CAAyB;AACxB;IAAR,YAAK,EAAE;;+CAAsB;AACrB;IAAR,YAAK,EAAE;;8CAAoB;AACnB;IAAR,YAAK,EAAE;;iDAAuB;AACtB;IAAR,YAAK,EAAE;;iDAAwB;AACvB;IAAR,YAAK,EAAE;;+CAA2D;AAC1D;IAAR,YAAK,EAAE;;mDAA0B;AACzB;IAAR,YAAK,EAAE;;6CAAmB;AAClB;IAAR,YAAK,EAAE;;gDAAuB;AAiB/B;IADC,YAAK,EAAE;;;uCAGP;AAQD;IADC,YAAK,EAAE;;;wCAGP;AAQD;IADC,YAAK,EAAE;;;uCAGP;AAQD;IADC,YAAK,EAAE;;;sCAGP;AAUD;IADC,YAAK,EAAE;;;qCAGP;AAkDS;IAAT,aAAM,EAAE;;yCAA6B;AA2C5B;IAAT,aAAM,EAAE;;2CAA+B;AAC9B;IAAT,aAAM,EAAE;;iDAAqC;AACpC;IAAT,aAAM,EAAE;;8CAAkC;AACjC;IAAT,aAAM,EAAE;;4CAAgC;AAlMhC,SAAS;IANrB,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACrB,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,+BAAc;QACxB,MAAM,EAAE,CAAC,yBAAW,CAAC;KACtB,CAAC;GACW,SAAS,CAoVrB;AApVY,8BAAS","sourcesContent":["import {\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\n TemplateRef, ContentChild, ViewChildren, OnInit\n} from '@angular/core';\nimport { DataTableColumn } from './column.component';\nimport { DataTableRow } from './row.component';\nimport { DataTableParams } from '../types/data-table-params.type';\nimport { RowCallback } from '../types/row-callback.type';\nimport { DataTableTranslations } from '../types/data-table-translations.type';\nimport { defaultTranslations } from '../types/default-translations.type';\nimport { drag } from '../utils/drag';\nimport { TABLE_TEMPLATE } from './table.template';\nimport { TABLE_STYLE } from \"./table.style\";\n\n\n\n@Component({\n moduleId: module.id,\n selector: 'data-table',\n template: TABLE_TEMPLATE,\n styles: [TABLE_STYLE]\n})\nexport class DataTable implements DataTableParams, OnInit {\n\n private _items: any[] = [];\n\n @Input() get items() {\n return this._items;\n }\n\n set items(items: any[]) {\n this._items = items;\n this._onReloadFinished();\n }\n\n @Input() itemCount: number;\n\n // UI components:\n\n @ContentChildren(DataTableColumn) columns: QueryList;\n @ViewChildren(DataTableRow) rows: QueryList;\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\n\n // One-time optional bindings with default values:\n\n @Input() headerTitle: string;\n @Input() header = true;\n @Input() pagination = true;\n @Input() indexColumn = true;\n @Input() indexColumnHeader = '';\n @Input() rowColors: RowCallback;\n @Input() rowTooltip: RowCallback;\n @Input() selectColumn = false;\n @Input() multiSelect = true;\n @Input() substituteRows = true;\n @Input() expandableRows = false;\n @Input() translations: DataTableTranslations = defaultTranslations;\n @Input() selectOnRowClick = false;\n @Input() autoReload = true;\n @Input() showReloading = false;\n\n // UI state without input:\n\n indexColumnVisible: boolean;\n selectColumnVisible: boolean;\n expandColumnVisible: boolean;\n\n // UI state: visible ge/set for the outside with @Input for one-time initial values\n\n private _sortBy: string;\n private _sortAsc = true;\n\n private _offset = 0;\n private _limit = 10;\n\n @Input()\n get sortBy() {\n return this._sortBy;\n }\n\n set sortBy(value) {\n this._sortBy = value;\n this._triggerReload();\n }\n\n @Input()\n get sortAsc() {\n return this._sortAsc;\n }\n\n set sortAsc(value) {\n this._sortAsc = value;\n this._triggerReload();\n }\n\n @Input()\n get offset() {\n return this._offset;\n }\n\n set offset(value) {\n this._offset = value;\n this._triggerReload();\n }\n\n @Input()\n get limit() {\n return this._limit;\n }\n\n set limit(value) {\n this._limit = value;\n this._triggerReload();\n }\n\n // calculated property:\n\n @Input()\n get page() {\n return Math.floor(this.offset / this.limit) + 1;\n }\n\n set page(value) {\n this.offset = (value - 1) * this.limit;\n }\n\n get lastPage() {\n return Math.ceil(this.itemCount / this.limit);\n }\n\n // setting multiple observable properties simultaneously\n\n sort(sortBy: string, asc: boolean) {\n this.sortBy = sortBy;\n this.sortAsc = asc;\n }\n\n // init\n\n ngOnInit() {\n this._initDefaultValues();\n this._initDefaultClickEvents();\n this._updateDisplayParams();\n\n if (this.autoReload && this._scheduledReload == null) {\n this.reloadItems();\n }\n }\n\n private _initDefaultValues() {\n this.indexColumnVisible = this.indexColumn;\n this.selectColumnVisible = this.selectColumn;\n this.expandColumnVisible = this.expandableRows;\n }\n\n private _initDefaultClickEvents() {\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\n if (this.selectOnRowClick) {\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\n }\n }\n\n // Reloading:\n\n _reloading = false;\n\n get reloading() {\n return this._reloading;\n }\n\n @Output() reload = new EventEmitter();\n\n reloadItems() {\n this._reloading = true;\n this.reload.emit(this._getRemoteParameters());\n }\n\n private _onReloadFinished() {\n this._updateDisplayParams();\n\n this._selectAllCheckbox = false;\n this._reloading = false;\n }\n\n _displayParams = {}; // params of the last finished reload\n\n get displayParams() {\n return this._displayParams;\n }\n\n _updateDisplayParams() {\n this._displayParams = {\n sortBy: this.sortBy,\n sortAsc: this.sortAsc,\n offset: this.offset,\n limit: this.limit\n };\n }\n\n _scheduledReload = null;\n\n // for avoiding cascading reloads if multiple params are set at once:\n _triggerReload() {\n if (this._scheduledReload) {\n clearTimeout(this._scheduledReload);\n }\n this._scheduledReload = setTimeout(() => {\n this.reloadItems();\n });\n }\n\n // event handlers:\n\n @Output() rowClick = new EventEmitter();\n @Output() rowDoubleClick = new EventEmitter();\n @Output() headerClick = new EventEmitter();\n @Output() cellClick = new EventEmitter();\n\n private rowClicked(row: DataTableRow, event) {\n this.rowClick.emit({ row, event });\n }\n\n private rowDoubleClicked(row: DataTableRow, event) {\n this.rowDoubleClick.emit({ row, event });\n }\n\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\n if (!this._resizeInProgress) {\n this.headerClick.emit({ column, event });\n } else {\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\n }\n }\n\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\n this.cellClick.emit({ row, column, event });\n }\n\n // functions:\n\n private _getRemoteParameters(): DataTableParams {\n let params = {};\n\n if (this.sortBy) {\n params.sortBy = this.sortBy;\n params.sortAsc = this.sortAsc;\n }\n if (this.pagination) {\n params.offset = this.offset;\n params.limit = this.limit;\n }\n return params;\n }\n\n private sortColumn(column: DataTableColumn) {\n if (column.sortable) {\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\n this.sort(column.property, ascending);\n }\n }\n\n get columnCount() {\n let count = 0;\n count += this.indexColumnVisible ? 1 : 0;\n count += this.selectColumnVisible ? 1 : 0;\n count += this.expandColumnVisible ? 1 : 0;\n this.columns.toArray().forEach(column => {\n count += column.visible ? 1 : 0;\n });\n return count;\n }\n\n private getRowColor(item: any, index: number, row: DataTableRow) {\n if (this.rowColors !== undefined) {\n return (this.rowColors)(item, row, index);\n }\n }\n\n // selection:\n\n selectedRow: DataTableRow;\n selectedRows: DataTableRow[] = [];\n\n private _selectAllCheckbox = false;\n\n get selectAllCheckbox() {\n return this._selectAllCheckbox;\n }\n\n set selectAllCheckbox(value) {\n this._selectAllCheckbox = value;\n this._onSelectAllChanged(value);\n }\n\n private _onSelectAllChanged(value: boolean) {\n this.rows.toArray().forEach(row => row.selected = value);\n }\n\n onRowSelectChanged(row: DataTableRow) {\n\n // maintain the selectedRow(s) view\n if (this.multiSelect) {\n let index = this.selectedRows.indexOf(row);\n if (row.selected && index < 0) {\n this.selectedRows.push(row);\n } else if (!row.selected && index >= 0) {\n this.selectedRows.splice(index, 1);\n }\n } else {\n if (row.selected) {\n this.selectedRow = row;\n } else if (this.selectedRow === row) {\n this.selectedRow = undefined;\n }\n }\n\n // unselect all other rows:\n if (row.selected && !this.multiSelect) {\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\n if (row_ !== row) { // avoid endless loop\n row_.selected = false;\n }\n });\n }\n }\n\n // other:\n\n get substituteItems() {\n return Array.from({ length: this.displayParams.limit - this.items.length });\n }\n\n // column resizing:\n\n private _resizeInProgress = false;\n\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\n this._resizeInProgress = true;\n\n drag(event, {\n move: (moveEvent: MouseEvent, dx: number) => {\n if (this._isResizeInLimit(columnElement, dx)) {\n column.width = columnElement.offsetWidth + dx;\n }\n },\n });\n }\n\n resizeLimit = 30;\n\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\n Without the limits, resizing can make the next column disappear completely,\n and even increase the table width. The current implementation suffers from the fact,\n that offsetWidth sometimes contains out-of-date values. */\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\n return false;\n }\n return true;\n }\n}\n"]} \ No newline at end of file diff --git a/dist/components/table.style.js b/dist/components/table.style.js index e2ce937..9e40dfc 100644 --- a/dist/components/table.style.js +++ b/dist/components/table.style.js @@ -1,4 +1,3 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); exports.TABLE_STYLE = "\n/* bootstrap override: */\n\n:host /deep/ .data-table.table > tbody+tbody {\n border-top: none;\n}\n:host /deep/ .data-table.table td {\n vertical-align: middle;\n}\n\n:host /deep/ .data-table > thead > tr > th,\n:host /deep/ .data-table > tbody > tr > td {\n\toverflow: hidden;\n}\n\n/* I can't use the bootstrap striped table, because of the expandable rows */\n:host /deep/ .row-odd {\n background-color: #F6F6F6;\n}\n:host /deep/ .row-even {\n}\n\n.data-table .substitute-rows > tr:hover,\n:host /deep/ .data-table .data-table-row:hover {\n background-color: #ECECEC;\n}\n/* table itself: */\n\n.data-table {\n box-shadow: 0 0 15px rgb(236, 236, 236);\n table-layout: fixed;\n}\n\n/* header cells: */\n\n.column-header {\n position: relative;\n}\n.expand-column-header {\n\twidth: 50px;\n}\n.select-column-header {\n\twidth: 50px;\n\ttext-align: center;\n}\n.index-column-header {\n\twidth: 40px;\n}\n.column-header.sortable {\n cursor: pointer;\n}\n.column-header .column-sort-icon {\n\tfloat: right;\n}\n.column-header.resizable .column-sort-icon {\n margin-right: 8px;\n}\n.column-header .column-sort-icon .column-sortable-icon {\n color: lightgray;\n}\n.column-header .column-resize-handle {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n padding: 0;\n width: 8px;\n height: 100%;\n cursor: col-resize;\n}\n\n/* cover: */\n\n.data-table-box {\n position: relative;\n}\n\n.loading-cover {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.3);\n top: 0;\n}\n"; //# sourceMappingURL=/components/table.style.js.map \ No newline at end of file diff --git a/dist/components/table.style.js.map b/dist/components/table.style.js.map index b600f41..a969fdd 100644 --- a/dist/components/table.style.js.map +++ b/dist/components/table.style.js.map @@ -1 +1 @@ -{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.template.js b/dist/components/table.template.js index 1684a9b..90086fd 100644 --- a/dist/components/table.template.js +++ b/dist/components/table.template.js @@ -1,4 +1,3 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); exports.TABLE_TEMPLATE = "\n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 \n
\n
\n
\n\n \n
\n"; //# sourceMappingURL=/components/table.template.js.map \ No newline at end of file diff --git a/dist/components/table.template.js.map b/dist/components/table.template.js.map index 4902a07..c0d7978 100644 --- a/dist/components/table.template.js.map +++ b/dist/components/table.template.js.map @@ -1 +1 @@ -{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";;AAAa,QAAA,cAAc,GAAG,qtGAmD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file +{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";AAAa,QAAA,cAAc,GAAG,qtGAmD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 1d702ef..1bc79b0 100644 --- a/dist/index.js +++ b/dist/index.js @@ -8,7 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } -Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var common_1 = require("@angular/common"); var forms_1 = require("@angular/forms"); @@ -32,18 +31,18 @@ exports.DATA_TABLE_DIRECTIVES = [table_component_1.DataTable, column_component_1 var DataTableModule = (function () { function DataTableModule() { } - DataTableModule = __decorate([ - core_1.NgModule({ - imports: [common_1.CommonModule, forms_1.FormsModule], - declarations: [ - table_component_1.DataTable, column_component_1.DataTableColumn, - row_component_1.DataTableRow, pagination_component_1.DataTablePagination, header_component_1.DataTableHeader, - px_1.PixelConverter, hide_1.Hide, min_1.MinPipe - ], - exports: [table_component_1.DataTable, column_component_1.DataTableColumn] - }) - ], DataTableModule); return DataTableModule; }()); +DataTableModule = __decorate([ + core_1.NgModule({ + imports: [common_1.CommonModule, forms_1.FormsModule], + declarations: [ + table_component_1.DataTable, column_component_1.DataTableColumn, + row_component_1.DataTableRow, pagination_component_1.DataTablePagination, header_component_1.DataTableHeader, + px_1.PixelConverter, hide_1.Hide, min_1.MinPipe + ], + exports: [table_component_1.DataTable, column_component_1.DataTableColumn] + }) +], DataTableModule); exports.DataTableModule = DataTableModule; //# sourceMappingURL=/index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map index 2cadc8c..f646964 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,oBAfA,2BAAS,CAeA;AAdlB,kEAAgE;AAc5C,0BAdX,kCAAe,CAcW;AAbnC,4DAA0D;AAarB,uBAb5B,4BAAY,CAa4B;AAZjD,0EAAwE;AAYrB,8BAZ1C,0CAAmB,CAY0C;AAXtE,kEAAgE;AAYtD,0BAZD,kCAAe,CAYC;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8BAHrF,+CAAmB,CAGqF;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE;IAAA;IAA+B,CAAC;IAAnB,eAAe;QAT3B,eAAQ,CAAC;YACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;YACtC,YAAY,EAAE;gBACV,2BAAS,EAAE,kCAAe;gBAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;gBAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;aAChC;YACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;SAC1C,CAAC;OACW,eAAe,CAAI;IAAD,sBAAC;CAAA,AAAhC,IAAgC;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DataTable} from './components/table.component';\r\nimport { DataTableColumn } from './components/column.component';\r\nimport { DataTableRow } from './components/row.component';\r\nimport { DataTablePagination } from './components/pagination.component';\r\nimport { DataTableHeader } from './components/header.component';\r\n\r\nimport { PixelConverter } from './utils/px';\r\nimport { Hide } from './utils/hide';\r\nimport { MinPipe } from './utils/min';\r\nimport { DataTableTranslations } from './types/data-table-translations.type';\r\nimport { CellCallback } from './types/cell-callback.type';\r\nimport { RowCallback } from './types/row-callback.type';\r\nimport { DataTableParams } from './types/data-table-params.type';\r\nimport { defaultTranslations } from './types/default-translations.type';\r\nexport * from './tools/data-table-resource';\r\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\r\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\r\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\r\n\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule ],\r\n declarations: [\r\n DataTable, DataTableColumn,\r\n DataTableRow, DataTablePagination, DataTableHeader,\r\n PixelConverter, Hide, MinPipe\r\n ],\r\n exports: [ DataTable, DataTableColumn ]\r\n})\r\nexport class DataTableModule { }\r\n"]} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,gDAAS;AAdlB,kEAAgE;AAc5C,6DAAe;AAbnC,4DAA0D;AAarB,oDAAY;AAZjD,0EAAwE;AAYrB,yEAAmB;AAXtE,kEAAgE;AAYtD,6DAAe;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8EAAmB;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE,IAAa,eAAe;IAA5B;IAA+B,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAhC,IAAgC;AAAnB,eAAe;IAT3B,eAAQ,CAAC;QACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;QACtC,YAAY,EAAE;YACV,2BAAS,EAAE,kCAAe;YAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;YAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;SAChC;QACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;KAC1C,CAAC;GACW,eAAe,CAAI;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DataTable} from './components/table.component';\r\nimport { DataTableColumn } from './components/column.component';\r\nimport { DataTableRow } from './components/row.component';\r\nimport { DataTablePagination } from './components/pagination.component';\r\nimport { DataTableHeader } from './components/header.component';\r\n\r\nimport { PixelConverter } from './utils/px';\r\nimport { Hide } from './utils/hide';\r\nimport { MinPipe } from './utils/min';\r\nimport { DataTableTranslations } from './types/data-table-translations.type';\r\nimport { CellCallback } from './types/cell-callback.type';\r\nimport { RowCallback } from './types/row-callback.type';\r\nimport { DataTableParams } from './types/data-table-params.type';\r\nimport { defaultTranslations } from './types/default-translations.type';\r\nexport * from './tools/data-table-resource';\r\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\r\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\r\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\r\n\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule ],\r\n declarations: [\r\n DataTable, DataTableColumn,\r\n DataTableRow, DataTablePagination, DataTableHeader,\r\n PixelConverter, Hide, MinPipe\r\n ],\r\n exports: [ DataTable, DataTableColumn ]\r\n})\r\nexport class DataTableModule { }\r\n"]} \ No newline at end of file diff --git a/dist/tools/data-table-resource.js b/dist/tools/data-table-resource.js index f24576b..a9ae8b8 100644 --- a/dist/tools/data-table-resource.js +++ b/dist/tools/data-table-resource.js @@ -1,5 +1,4 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); var DataTableResource = (function () { function DataTableResource(items) { this.items = items; diff --git a/dist/tools/data-table-resource.js.map b/dist/tools/data-table-resource.js.map index 9956dea..8e4b13f 100644 --- a/dist/tools/data-table-resource.js.map +++ b/dist/tools/data-table-resource.js.map @@ -1 +1 @@ -{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";;AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\r\n\r\n\r\nexport class DataTableResource {\r\n\r\n constructor(private items: T[]) {}\r\n\r\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\r\n\r\n let result: T[] = [];\r\n if (filter) {\r\n result = this.items.filter(filter);\r\n } else {\r\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\r\n }\r\n\r\n if (params.sortBy) {\r\n result.sort((a, b) => {\r\n if (typeof a[params.sortBy] === 'string') {\r\n return a[params.sortBy].localeCompare(b[params.sortBy]);\r\n } else {\r\n return a[params.sortBy] - b[params.sortBy];\r\n }\r\n });\r\n if (params.sortAsc === false) {\r\n result.reverse();\r\n }\r\n }\r\n if (params.offset !== undefined) {\r\n if (params.limit === undefined) {\r\n result = result.slice(params.offset, result.length);\r\n } else {\r\n result = result.slice(params.offset, params.offset + params.limit);\r\n }\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(result));\r\n });\r\n }\r\n\r\n count(): Promise {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(this.items.length));\r\n });\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\r\n\r\n\r\nexport class DataTableResource {\r\n\r\n constructor(private items: T[]) {}\r\n\r\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\r\n\r\n let result: T[] = [];\r\n if (filter) {\r\n result = this.items.filter(filter);\r\n } else {\r\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\r\n }\r\n\r\n if (params.sortBy) {\r\n result.sort((a, b) => {\r\n if (typeof a[params.sortBy] === 'string') {\r\n return a[params.sortBy].localeCompare(b[params.sortBy]);\r\n } else {\r\n return a[params.sortBy] - b[params.sortBy];\r\n }\r\n });\r\n if (params.sortAsc === false) {\r\n result.reverse();\r\n }\r\n }\r\n if (params.offset !== undefined) {\r\n if (params.limit === undefined) {\r\n result = result.slice(params.offset, result.length);\r\n } else {\r\n result = result.slice(params.offset, params.offset + params.limit);\r\n }\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(result));\r\n });\r\n }\r\n\r\n count(): Promise {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(this.items.length));\r\n });\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/cell-callback.type.js b/dist/types/cell-callback.type.js index d038872..6dca955 100644 --- a/dist/types/cell-callback.type.js +++ b/dist/types/cell-callback.type.js @@ -1,3 +1,2 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/cell-callback.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-params.type.js b/dist/types/data-table-params.type.js index 84d6b65..f017da5 100644 --- a/dist/types/data-table-params.type.js +++ b/dist/types/data-table-params.type.js @@ -1,3 +1,2 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/data-table-params.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-translations.type.js b/dist/types/data-table-translations.type.js index 4c2d1f7..bf0eb79 100644 --- a/dist/types/data-table-translations.type.js +++ b/dist/types/data-table-translations.type.js @@ -1,3 +1,2 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/data-table-translations.type.js.map \ No newline at end of file diff --git a/dist/types/default-translations.type.js b/dist/types/default-translations.type.js index 15392c9..75d64cc 100644 --- a/dist/types/default-translations.type.js +++ b/dist/types/default-translations.type.js @@ -1,5 +1,4 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultTranslations = { indexColumn: 'index', selectColumn: 'select', diff --git a/dist/types/default-translations.type.js.map b/dist/types/default-translations.type.js.map index 18a8d10..20a7f23 100644 --- a/dist/types/default-translations.type.js.map +++ b/dist/types/default-translations.type.js.map @@ -1 +1 @@ -{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";;AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file +{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file diff --git a/dist/types/row-callback.type.js b/dist/types/row-callback.type.js index d340a99..1283a95 100644 --- a/dist/types/row-callback.type.js +++ b/dist/types/row-callback.type.js @@ -1,3 +1,2 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/row-callback.type.js.map \ No newline at end of file diff --git a/dist/utils/drag.js b/dist/utils/drag.js index 089185c..2c72536 100644 --- a/dist/utils/drag.js +++ b/dist/utils/drag.js @@ -1,5 +1,4 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); function drag(event, _a) { var move = _a.move, up = _a.up; var startX = event.pageX; diff --git a/dist/utils/drag.js.map b/dist/utils/drag.js.map index e60c7be..e89d4d2 100644 --- a/dist/utils/drag.js.map +++ b/dist/utils/drag.js.map @@ -1 +1 @@ -{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";;AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/hide.js b/dist/utils/hide.js index 13778b7..b7557e8 100644 --- a/dist/utils/hide.js +++ b/dist/utils/hide.js @@ -8,7 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; -Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); function isBlank(obj) { return obj === undefined || obj === null; @@ -42,11 +41,11 @@ var Hide = (function () { } } }; - Hide = __decorate([ - core_1.Directive({ selector: '[hide]', inputs: ['hide'] }), - __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer]) - ], Hide); return Hide; }()); +Hide = __decorate([ + core_1.Directive({ selector: '[hide]', inputs: ['hide'] }), + __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer]) +], Hide); exports.Hide = Hide; //# sourceMappingURL=/utils/hide.js.map \ No newline at end of file diff --git a/dist/utils/hide.js.map b/dist/utils/hide.js.map index 032f22f..b10ffc3 100644 --- a/dist/utils/hide.js.map +++ b/dist/utils/hide.js.map @@ -1 +1 @@ -{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD;IAKE,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IA1BU,IAAI;QADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;yCAMjB,iBAAU,EAAqB,eAAQ;OAL7D,IAAI,CA2BhB;IAAD,WAAC;CAAA,AA3BD,IA2BC;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD,IAAa,IAAI;IAKf,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,IAAI;IADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;qCAMjB,iBAAU,EAAqB,eAAQ;GAL7D,IAAI,CA2BhB;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/min.js b/dist/utils/min.js index 4825b63..0da7f92 100644 --- a/dist/utils/min.js +++ b/dist/utils/min.js @@ -5,7 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; -Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var MinPipe = (function () { function MinPipe() { @@ -13,12 +12,12 @@ var MinPipe = (function () { MinPipe.prototype.transform = function (value, args) { return Math.min.apply(null, value); }; - MinPipe = __decorate([ - core_1.Pipe({ - name: 'min' - }) - ], MinPipe); return MinPipe; }()); +MinPipe = __decorate([ + core_1.Pipe({ + name: 'min' + }) +], MinPipe); exports.MinPipe = MinPipe; //# sourceMappingURL=/utils/min.js.map \ No newline at end of file diff --git a/dist/utils/min.js.map b/dist/utils/min.js.map index 94cc744..2219c9a 100644 --- a/dist/utils/min.js.map +++ b/dist/utils/min.js.map @@ -1 +1 @@ -{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD;IAAA;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAHU,OAAO;QAHnB,WAAI,CAAC;YACJ,IAAI,EAAE,KAAK;SACZ,CAAC;OACW,OAAO,CAInB;IAAD,cAAC;CAAA,AAJD,IAIC;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;AAAA,sCAAoD;AAMpD,IAAa,OAAO;IAApB;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACH,cAAC;AAAD,CAAC,AAJD,IAIC;AAJY,OAAO;IAHnB,WAAI,CAAC;QACJ,IAAI,EAAE,KAAK;KACZ,CAAC;GACW,OAAO,CAInB;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/px.js b/dist/utils/px.js index 765c32f..d33c1db 100644 --- a/dist/utils/px.js +++ b/dist/utils/px.js @@ -5,7 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; -Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var PixelConverter = (function () { function PixelConverter() { @@ -21,12 +20,12 @@ var PixelConverter = (function () { return value + 'px'; } }; - PixelConverter = __decorate([ - core_1.Pipe({ - name: 'px' - }) - ], PixelConverter); return PixelConverter; }()); +PixelConverter = __decorate([ + core_1.Pipe({ + name: 'px' + }) +], PixelConverter); exports.PixelConverter = PixelConverter; //# sourceMappingURL=/utils/px.js.map \ No newline at end of file diff --git a/dist/utils/px.js.map b/dist/utils/px.js.map index 70a3ef4..bd1ccf2 100644 --- a/dist/utils/px.js.map +++ b/dist/utils/px.js.map @@ -1 +1 @@ -{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD;IAAA;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAXU,cAAc;QAH1B,WAAI,CAAC;YACJ,IAAI,EAAE,IAAI;SACX,CAAC;OACW,cAAc,CAY1B;IAAD,qBAAC;CAAA,AAZD,IAYC;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;AAAA,sCAAoD;AAMpD,IAAa,cAAc;IAA3B;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,cAAc;IAH1B,WAAI,CAAC;QACJ,IAAI,EAAE,IAAI;KACX,CAAC;GACW,cAAc,CAY1B;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/src/components/header.component.ts b/src/components/header.component.ts index 5ba988e..6644b3b 100644 --- a/src/components/header.component.ts +++ b/src/components/header.component.ts @@ -5,6 +5,7 @@ import { HEADER_STYLE } from "./header.style"; @Component({ + moduleId: module.id, selector: 'data-table-header', template: HEADER_TEMPLATE, styles: [HEADER_STYLE], diff --git a/src/components/pagination.component.ts b/src/components/pagination.component.ts index 4850be8..1698765 100644 --- a/src/components/pagination.component.ts +++ b/src/components/pagination.component.ts @@ -5,6 +5,7 @@ import { PAGINATION_STYLE } from "./pagination.style"; @Component({ + moduleId: module.id, selector: 'data-table-pagination', template: PAGINATION_TEMPLATE, styles: [PAGINATION_STYLE] diff --git a/src/components/row.component.ts b/src/components/row.component.ts index 96da1c8..ea03572 100644 --- a/src/components/row.component.ts +++ b/src/components/row.component.ts @@ -7,6 +7,7 @@ import { ROW_STYLE } from "./row.style"; @Component({ + moduleId: module.id, selector: '[dataTableRow]', template: ROW_TEMPLATE, styles: [ROW_STYLE] diff --git a/src/components/table.component.ts b/src/components/table.component.ts index 3ae7d8f..feb968d 100644 --- a/src/components/table.component.ts +++ b/src/components/table.component.ts @@ -15,6 +15,7 @@ import { TABLE_STYLE } from "./table.style"; @Component({ + moduleId: module.id, selector: 'data-table', template: TABLE_TEMPLATE, styles: [TABLE_STYLE] diff --git a/tsconfig.json b/tsconfig.json index 0148fd1..8962384 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,6 +12,7 @@ "preserveConstEnums": true, "outDir": "dist/", "rootDir": "src/", + "types" : ["node"], "sourceMap": true, "target": "es5", "typeRoots": [ From d9c52686d09e0a1881e0485ecb05c294fc2caea3 Mon Sep 17 00:00:00 2001 From: "siniidrozd@gmail.com" Date: Wed, 2 Aug 2017 07:29:45 +0300 Subject: [PATCH 07/41] module id fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 623c0bf..156bff5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.2.002", + "version": "0.2.003", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", From cbb5334b7a9fadb5c50c411fbf1e81ad8540381e Mon Sep 17 00:00:00 2001 From: MIt9 Date: Fri, 22 Sep 2017 06:34:21 +0300 Subject: [PATCH 08/41] Update README.md --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ff9962d..7560281 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,22 @@ The component can be used not just with local data, but remote resources too: fo The templates use bootstrap CSS class names, so the component requires a bootstrap .css file to be present in the application using it. -Check out the [demo](https://ggmod.github.io/angular-2-data-table-demo) and its [code](https://github.com/ggmod/angular-2-data-table-demo) for examples of how to use it. +Check out the [demo](https://ggmod.github.io/angular-2-data-table-demo) and its [code](https://github.com/MIt9/angular-4-data-table-demo) for examples of how to use it. ## Installing: `npm install angular-4-data-table --save` +## Prodaction (Minification) +Some times can be some problam with it. to fix it +use import like this +`import { DataTableModule } from 'angular-4-data-table/src/index';` +add in .angular-cli.json +`"scripts": [ + "../node_modules/angular-4-data-table/dist/index.js" +],` +and for prodaction build use +`ng build --prod` + #### Licensing MIT License From 8865df349279afdd8148433dd796499ce3eb91be Mon Sep 17 00:00:00 2001 From: MIt9 Date: Fri, 22 Sep 2017 06:35:01 +0300 Subject: [PATCH 09/41] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7560281..e0a8c9c 100644 --- a/README.md +++ b/README.md @@ -23,14 +23,18 @@ Check out the [demo](https://ggmod.github.io/angular-2-data-table-demo) and its ## Prodaction (Minification) Some times can be some problam with it. to fix it use import like this + `import { DataTableModule } from 'angular-4-data-table/src/index';` + add in .angular-cli.json + `"scripts": [ "../node_modules/angular-4-data-table/dist/index.js" ],` + and for prodaction build use + `ng build --prod` - #### Licensing MIT License From f21c85bbb80f6764b1a993becf1697ccd90549d4 Mon Sep 17 00:00:00 2001 From: MIt9 Date: Fri, 22 Sep 2017 06:45:14 +0300 Subject: [PATCH 10/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e0a8c9c..cc11b82 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ add in .angular-cli.json and for prodaction build use -`ng build --prod` +`ng build --prod --aot=false` #### Licensing MIT License From a5cf345bc9210eb0bd2564f45b2a245938b72aa6 Mon Sep 17 00:00:00 2001 From: Shashank Shekhar Date: Mon, 9 Oct 2017 13:56:43 -0700 Subject: [PATCH 11/41] Fixed typos --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cc11b82..6badd76 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## Angular 4 Data Table -It is fork of this package [https://github.com/ggmod/angular-2-data-table] (https://github.com/ggmod/angular-2-data-table) +This is fork of package [https://github.com/ggmod/angular-2-data-table] (https://github.com/ggmod/angular-2-data-table) A simple Angular 4 data table, with built-in solutions for features including: @@ -20,9 +20,9 @@ Check out the [demo](https://ggmod.github.io/angular-2-data-table-demo) and its ## Installing: `npm install angular-4-data-table --save` -## Prodaction (Minification) -Some times can be some problam with it. to fix it -use import like this +## Production (Minification) +Some times this can cause problems. +To fix it use import like this `import { DataTableModule } from 'angular-4-data-table/src/index';` @@ -32,7 +32,7 @@ add in .angular-cli.json "../node_modules/angular-4-data-table/dist/index.js" ],` -and for prodaction build use +and for production build use `ng build --prod --aot=false` From da5cae43118f0d7162ff05d74abf72fba30cf458 Mon Sep 17 00:00:00 2001 From: Faisal Iqbal Date: Thu, 9 Nov 2017 13:22:58 +0500 Subject: [PATCH 12/41] Adding page numbers and making range, limit and input optional --- src/components/pagination.component.ts | 17 ++++++++++++++++- src/components/pagination.template.ts | 11 ++++++++--- src/components/table.component.ts | 4 ++++ src/components/table.template.ts | 7 ++++++- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/components/pagination.component.ts b/src/components/pagination.component.ts index 1698765..bb29c30 100644 --- a/src/components/pagination.component.ts +++ b/src/components/pagination.component.ts @@ -1,4 +1,4 @@ -import { Component, Inject, forwardRef } from '@angular/core'; +import { Component, Inject, forwardRef, Input } from '@angular/core'; import { DataTable } from './table.component'; import { PAGINATION_TEMPLATE } from './pagination.template'; import { PAGINATION_STYLE } from "./pagination.style"; @@ -12,6 +12,11 @@ import { PAGINATION_STYLE } from "./pagination.style"; }) export class DataTablePagination { + @Input() show_range = false; + @Input() show_limit = false; + @Input() show_input = false; + @Input() show_numbers = true; + constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {} pageBack() { @@ -49,4 +54,14 @@ export class DataTablePagination { set page(value) { this.dataTable.page = Number(value); } + + createPageRange(number): any[] { + let items: number[] = []; + if (number > 1) { + for (let i = 1; i <= number; i++) { + items.push(i); + } + } + return items; + } } diff --git a/src/components/pagination.template.ts b/src/components/pagination.template.ts index 65824fb..3d9d717 100644 --- a/src/components/pagination.template.ts +++ b/src/components/pagination.template.ts @@ -1,6 +1,6 @@ export const PAGINATION_TEMPLATE = `
-
+
{{dataTable.translations.paginationRange}}: - @@ -9,7 +9,7 @@ export const PAGINATION_TEMPLATE = `
-
+
{{dataTable.translations.paginationLimit}}: -
+
+
diff --git a/src/components/table.component.ts b/src/components/table.component.ts index feb968d..9094e12 100644 --- a/src/components/table.component.ts +++ b/src/components/table.component.ts @@ -46,6 +46,10 @@ export class DataTable implements DataTableParams, OnInit { @Input() headerTitle: string; @Input() header = true; @Input() pagination = true; + @Input() pagination_range = false; + @Input() pagination_limit = false; + @Input() pagination_input = false; + @Input() pagination_numbers = true; @Input() indexColumn = true; @Input() indexColumnHeader = ''; @Input() rowColors: RowCallback; diff --git a/src/components/table.template.ts b/src/components/table.template.ts index 14cdd8c..793d7e9 100644 --- a/src/components/table.template.ts +++ b/src/components/table.template.ts @@ -47,6 +47,11 @@ export const TABLE_TEMPLATE = `
- +
`; \ No newline at end of file From bfa3d65634554b98010635aa8bccee6c645bc0b2 Mon Sep 17 00:00:00 2001 From: Faisal Iqbal Date: Thu, 9 Nov 2017 13:29:31 +0500 Subject: [PATCH 13/41] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cc11b82..7331264 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## Angular 4 Data Table -It is fork of this package [https://github.com/ggmod/angular-2-data-table] (https://github.com/ggmod/angular-2-data-table) +It is fork of this package [https://github.com/MIt9/angular-4-data-table] (https://github.com/MIt9/angular-4-data-table) A simple Angular 4 data table, with built-in solutions for features including: @@ -17,8 +17,10 @@ The templates use bootstrap CSS class names, so the component requires a bootstr Check out the [demo](https://ggmod.github.io/angular-2-data-table-demo) and its [code](https://github.com/MIt9/angular-4-data-table-demo) for examples of how to use it. +Demo for pagination with seperate page numbers will be added soon + ## Installing: -`npm install angular-4-data-table --save` +`npm install faisal-iqbal/angular-4-data-table --save` ## Prodaction (Minification) Some times can be some problam with it. to fix it From 29f938a2376bba96eb9cc7a45f234e398402e515 Mon Sep 17 00:00:00 2001 From: Faisal Iqbal Date: Thu, 9 Nov 2017 13:53:08 +0500 Subject: [PATCH 14/41] seperating template binding into two elements --- src/components/pagination.template.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/components/pagination.template.ts b/src/components/pagination.template.ts index 3d9d717..fadb107 100644 --- a/src/components/pagination.template.ts +++ b/src/components/pagination.template.ts @@ -31,11 +31,12 @@ export const PAGINATION_TEMPLATE = `
- +
+ +
From 2a6edf5a84354d15f1070011a5ce8c448e5aafa7 Mon Sep 17 00:00:00 2001 From: Faisal Iqbal Date: Thu, 9 Nov 2017 14:14:27 +0500 Subject: [PATCH 15/41] using maxPage from component rather then dataTable --- src/components/pagination.template.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/pagination.template.ts b/src/components/pagination.template.ts index fadb107..6470188 100644 --- a/src/components/pagination.template.ts +++ b/src/components/pagination.template.ts @@ -32,7 +32,7 @@ export const PAGINATION_TEMPLATE = `
- From 5329d7cc809e449d5226d46e550d0594cc02fa5b Mon Sep 17 00:00:00 2001 From: "FOLIO3PK\\kjunaid" Date: Mon, 13 Nov 2017 10:39:05 +0500 Subject: [PATCH 16/41] Pagination updated --- src/components/pagination.component.ts | 29 +++++++++++++++++--------- src/components/pagination.template.ts | 2 +- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/components/pagination.component.ts b/src/components/pagination.component.ts index bb29c30..3dd63f0 100644 --- a/src/components/pagination.component.ts +++ b/src/components/pagination.component.ts @@ -1,14 +1,14 @@ -import { Component, Inject, forwardRef, Input } from '@angular/core'; -import { DataTable } from './table.component'; -import { PAGINATION_TEMPLATE } from './pagination.template'; -import { PAGINATION_STYLE } from "./pagination.style"; +import {Component, Inject, forwardRef, Input} from '@angular/core'; +import {DataTable} from './table.component'; +import {PAGINATION_TEMPLATE} from './pagination.template'; +import {PAGINATION_STYLE} from "./pagination.style"; @Component({ moduleId: module.id, - selector: 'data-table-pagination', - template: PAGINATION_TEMPLATE, - styles: [PAGINATION_STYLE] + selector: 'data-table-pagination', + template: PAGINATION_TEMPLATE, + styles: [PAGINATION_STYLE] }) export class DataTablePagination { @@ -17,7 +17,8 @@ export class DataTablePagination { @Input() show_input = false; @Input() show_numbers = true; - constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {} + constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) { + } pageBack() { this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset); @@ -55,10 +56,18 @@ export class DataTablePagination { this.dataTable.page = Number(value); } - createPageRange(number): any[] { + createPageRange(number, page): any[] { let items: number[] = []; if (number > 1) { - for (let i = 1; i <= number; i++) { + let maxPage = number; + let minPage = 1; + if ((number - page) >= 3) { + maxPage = page + 3; + } + if ((page - 3) >= 1) { + minPage = page - 3; + } + for (let i = minPage; i <= maxPage; i++) { items.push(i); } } diff --git a/src/components/pagination.template.ts b/src/components/pagination.template.ts index 6470188..20cca49 100644 --- a/src/components/pagination.template.ts +++ b/src/components/pagination.template.ts @@ -32,7 +32,7 @@ export const PAGINATION_TEMPLATE = `
- From 4a8d913de44f4e0439d532ebbd4e1958da9a9639 Mon Sep 17 00:00:00 2001 From: "FOLIO3PK\\kjunaid" Date: Mon, 13 Nov 2017 11:02:30 +0500 Subject: [PATCH 17/41] Next prevuious dots --- src/components/pagination.component.ts | 30 ++++++++++++++++++++++---- src/components/pagination.template.ts | 2 ++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/components/pagination.component.ts b/src/components/pagination.component.ts index 3dd63f0..ca1d660 100644 --- a/src/components/pagination.component.ts +++ b/src/components/pagination.component.ts @@ -56,16 +56,38 @@ export class DataTablePagination { this.dataTable.page = Number(value); } + hasPrevious(number, page) { + const difference = this.getDifference(); + if ((page - difference) >= 1) { + return true; + } + return false; + } + + hasNext(number, page) { + const difference = this.getDifference(); + if ((number - page) > difference) { + return true; + } + return false; + } + + getDifference() { + const difference = 2; + return difference; + } + createPageRange(number, page): any[] { let items: number[] = []; if (number > 1) { + const difference = this.getDifference(); let maxPage = number; let minPage = 1; - if ((number - page) >= 3) { - maxPage = page + 3; + if ((number - page) >= difference) { + maxPage = page + difference; } - if ((page - 3) >= 1) { - minPage = page - 3; + if ((page - difference) >= 1) { + minPage = page - difference; } for (let i = minPage; i <= maxPage; i++) { items.push(i); diff --git a/src/components/pagination.template.ts b/src/components/pagination.template.ts index 20cca49..9a49c7d 100644 --- a/src/components/pagination.template.ts +++ b/src/components/pagination.template.ts @@ -31,12 +31,14 @@ export const PAGINATION_TEMPLATE = `
+
+ From 4fdc1fcf0ef9329f8188239b019f8d136012194d Mon Sep 17 00:00:00 2001 From: "FOLIO3PK\\kjunaid" Date: Mon, 13 Nov 2017 11:05:42 +0500 Subject: [PATCH 18/41] next previous --- src/components/pagination.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/pagination.component.ts b/src/components/pagination.component.ts index ca1d660..64e1a1e 100644 --- a/src/components/pagination.component.ts +++ b/src/components/pagination.component.ts @@ -58,7 +58,7 @@ export class DataTablePagination { hasPrevious(number, page) { const difference = this.getDifference(); - if ((page - difference) >= 1) { + if ((page - difference) > 1) { return true; } return false; From 3442ce5c2072587a433a3b293440c975747de6c1 Mon Sep 17 00:00:00 2001 From: "FOLIO3PK\\kjunaid" Date: Mon, 13 Nov 2017 11:09:13 +0500 Subject: [PATCH 19/41] added classes hasNext,hasPrevious --- src/components/pagination.template.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/pagination.template.ts b/src/components/pagination.template.ts index 9a49c7d..9ae491d 100644 --- a/src/components/pagination.template.ts +++ b/src/components/pagination.template.ts @@ -31,14 +31,14 @@ export const PAGINATION_TEMPLATE = ` - +
- + From fbc44bf61e5f5778df94cee84f2228c716f8a695 Mon Sep 17 00:00:00 2001 From: "FOLIO3PK\\kjunaid" Date: Mon, 13 Nov 2017 11:13:52 +0500 Subject: [PATCH 20/41] readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7331264..f4b09f6 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,8 @@ add in .angular-cli.json and for prodaction build use `ng build --prod --aot=false` - + + ### Added numerical pagination support with 2 next and previous links + #### Licensing MIT License From bbff28cfc3cb58d7f9aff18979069abd81803b3f Mon Sep 17 00:00:00 2001 From: Faisal Iqbal Qureshi Date: Thu, 23 Nov 2017 15:16:29 +0500 Subject: [PATCH 21/41] reverting unnessecery README.md changes --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f4b09f6..85a4499 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## Angular 4 Data Table -It is fork of this package [https://github.com/MIt9/angular-4-data-table] (https://github.com/MIt9/angular-4-data-table) +It is fork of this package [https://github.com/ggmod/angular-2-data-table] (https://github.com/ggmod/angular-2-data-table) A simple Angular 4 data table, with built-in solutions for features including: @@ -20,7 +20,7 @@ Check out the [demo](https://ggmod.github.io/angular-2-data-table-demo) and its Demo for pagination with seperate page numbers will be added soon ## Installing: -`npm install faisal-iqbal/angular-4-data-table --save` +`npm install angular-4-data-table --save` ## Prodaction (Minification) Some times can be some problam with it. to fix it From 9beddb3cda54997333e4a03b025408811765c597 Mon Sep 17 00:00:00 2001 From: Mit9 Date: Thu, 23 Nov 2017 14:55:13 +0200 Subject: [PATCH 22/41] update module.id fix --- .gitignore | 3 +- dist/components/column.component.js | 1 + dist/components/column.component.js.map | 2 +- dist/components/header.component.js | 1 + dist/components/header.component.js.map | 2 +- dist/components/header.style.js | 1 + dist/components/header.style.js.map | 2 +- dist/components/header.template.js | 1 + dist/components/header.template.js.map | 2 +- dist/components/pagination.component.d.ts | 8 + dist/components/pagination.component.js | 57 ++++ dist/components/pagination.component.js.map | 2 +- dist/components/pagination.style.js | 1 + dist/components/pagination.style.js.map | 2 +- dist/components/pagination.template.js | 3 +- dist/components/pagination.template.js.map | 2 +- dist/components/row.component.js | 1 + dist/components/row.component.js.map | 2 +- dist/components/row.style.js | 1 + dist/components/row.style.js.map | 2 +- dist/components/row.template.js | 1 + dist/components/row.template.js.map | 2 +- dist/components/table.component.d.ts | 4 + dist/components/table.component.js | 21 ++ dist/components/table.component.js.map | 2 +- dist/components/table.style.js | 1 + dist/components/table.style.js.map | 2 +- dist/components/table.template.js | 3 +- dist/components/table.template.js.map | 2 +- dist/index.d.ts | 2 - dist/index.js | 1 + dist/index.js.map | 2 +- dist/tools/data-table-resource.js | 1 + dist/tools/data-table-resource.js.map | 2 +- dist/types/cell-callback.type.js | 1 + dist/types/cell-callback.type.js.map | 2 +- dist/types/data-table-params.type.js | 1 + dist/types/data-table-params.type.js.map | 2 +- dist/types/data-table-translations.type.js | 1 + .../types/data-table-translations.type.js.map | 2 +- dist/types/default-translations.type.js | 1 + dist/types/default-translations.type.js.map | 2 +- dist/types/row-callback.type.js | 1 + dist/types/row-callback.type.js.map | 2 +- dist/utils/drag.js | 1 + dist/utils/drag.js.map | 2 +- dist/utils/hide.js | 1 + dist/utils/hide.js.map | 2 +- dist/utils/min.js | 1 + dist/utils/min.js.map | 2 +- dist/utils/px.js | 1 + dist/utils/px.js.map | 2 +- package-lock.json | 277 ++++++++++++++++++ package.json | 5 +- src/components/header.component.ts | 2 +- 55 files changed, 421 insertions(+), 32 deletions(-) create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index 5754d02..2179a3b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,4 @@ /node_modules /.idea /typings -npm-debug.log -package-lock.json \ No newline at end of file +npm-debug.log \ No newline at end of file diff --git a/dist/components/column.component.js b/dist/components/column.component.js index cffc126..c43a7b8 100644 --- a/dist/components/column.component.js +++ b/dist/components/column.component.js @@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var DataTableColumn = (function () { function DataTableColumn() { diff --git a/dist/components/column.component.js.map b/dist/components/column.component.js.map index 3fb1bd4..bdaf408 100644 --- a/dist/components/column.component.js.map +++ b/dist/components/column.component.js.map @@ -1 +1 @@ -{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAuE;AAQvE,IAAa,eAAe;IAH5B;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IACL,sBAAC;AAAD,CAAC,AA5CD,IA4CC;AAzCY;IAAR,YAAK,EAAE;;+CAAgB;AACf;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;kDAAmB;AAClB;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;mDAAoB;AACnB;IAAR,YAAK,EAAE;;mDAA0B;AAGzB;IAAR,YAAK,EAAE;;8CAAwB;AACvB;IAAR,YAAK,EAAE;;gDAAgB;AAEO;IAA9B,mBAAY,CAAC,eAAe,CAAC;;qDAAc;AACX;IAAhC,mBAAY,CAAC,iBAAiB,CAAC;;uDAAgB;AAfvC,eAAe;IAH3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;GACW,eAAe,CA4C3B;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\nimport { DataTableRow } from './row.component';\nimport { CellCallback } from '../types/cell-callback.type';\n\n\n@Directive({\n selector: 'data-table-column'\n})\nexport class DataTableColumn implements OnInit {\n\n // init:\n @Input() header: string;\n @Input() sortable = false;\n @Input() resizable = false;\n @Input() property: string;\n @Input() styleClass: string;\n @Input() cellColors: CellCallback;\n\n // init and state:\n @Input() width: number | string;\n @Input() visible = true;\n\n @ContentChild('dataTableCell') cellTemplate;\n @ContentChild('dataTableHeader') headerTemplate;\n\n getCellColor(row: DataTableRow, index: number) {\n if (this.cellColors !== undefined) {\n return (this.cellColors)(row.item, row, this, index);\n }\n }\n\n private styleClassObject = {}; // for [ngClass]\n\n ngOnInit() {\n this._initCellClass();\n }\n\n private _initCellClass() {\n if (!this.styleClass && this.property) {\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\n this.styleClass = 'column-' + this.property;\n } else {\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\n }\n }\n\n if (this.styleClass != null) {\n this.styleClassObject = {\n [this.styleClass]: true\n };\n }\n }\n}\n"]} \ No newline at end of file +{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAuE;AAQvE,IAAa,eAAe;IAH5B;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IACL,sBAAC;AAAD,CAAC,AA5CD,IA4CC;AAzCY;IAAR,YAAK,EAAE;;+CAAgB;AACf;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;kDAAmB;AAClB;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;mDAAoB;AACnB;IAAR,YAAK,EAAE;;mDAA0B;AAGzB;IAAR,YAAK,EAAE;;8CAAwB;AACvB;IAAR,YAAK,EAAE;;gDAAgB;AAEO;IAA9B,mBAAY,CAAC,eAAe,CAAC;;qDAAc;AACX;IAAhC,mBAAY,CAAC,iBAAiB,CAAC;;uDAAgB;AAfvC,eAAe;IAH3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;GACW,eAAe,CA4C3B;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\r\nimport { DataTableRow } from './row.component';\r\nimport { CellCallback } from '../types/cell-callback.type';\r\n\r\n\r\n@Directive({\r\n selector: 'data-table-column'\r\n})\r\nexport class DataTableColumn implements OnInit {\r\n\r\n // init:\r\n @Input() header: string;\r\n @Input() sortable = false;\r\n @Input() resizable = false;\r\n @Input() property: string;\r\n @Input() styleClass: string;\r\n @Input() cellColors: CellCallback;\r\n\r\n // init and state:\r\n @Input() width: number | string;\r\n @Input() visible = true;\r\n\r\n @ContentChild('dataTableCell') cellTemplate;\r\n @ContentChild('dataTableHeader') headerTemplate;\r\n\r\n getCellColor(row: DataTableRow, index: number) {\r\n if (this.cellColors !== undefined) {\r\n return (this.cellColors)(row.item, row, this, index);\r\n }\r\n }\r\n\r\n private styleClassObject = {}; // for [ngClass]\r\n\r\n ngOnInit() {\r\n this._initCellClass();\r\n }\r\n\r\n private _initCellClass() {\r\n if (!this.styleClass && this.property) {\r\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\r\n this.styleClass = 'column-' + this.property;\r\n } else {\r\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\r\n }\r\n }\r\n\r\n if (this.styleClass != null) {\r\n this.styleClassObject = {\r\n [this.styleClass]: true\r\n };\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.component.js b/dist/components/header.component.js index e20f8f4..b038dd6 100644 --- a/dist/components/header.component.js +++ b/dist/components/header.component.js @@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var table_component_1 = require("./table.component"); var header_template_1 = require("./header.template"); diff --git a/dist/components/header.component.js.map b/dist/components/header.component.js.map index 552c2bf..cd75439 100644 --- a/dist/components/header.component.js.map +++ b/dist/components/header.component.js.map @@ -1 +1 @@ -{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAY9C,IAAa,eAAe;IAQxB,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAGL,sBAAC;AAAD,CAAC,AATD,IASC;AATY,eAAe;IAT3B,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACrB,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,iCAAe;QACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;QACtB,IAAI,EAAE;YACJ,kBAAkB,EAAE,kBAAkB;SACvC;KACF,CAAC;IASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GARnE,eAAe,CAS3B;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\nimport { DataTable } from './table.component';\nimport { HEADER_TEMPLATE } from './header.template';\nimport { HEADER_STYLE } from \"./header.style\";\n\n\n@Component({\n moduleId: module.id,\n selector: 'data-table-header',\n template: HEADER_TEMPLATE,\n styles: [HEADER_STYLE],\n host: {\n '(document:click)': '_closeSelector()'\n }\n})\nexport class DataTableHeader {\n\n columnSelectorOpen = false;\n\n _closeSelector() {\n this.columnSelectorOpen = false;\n }\n\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\n}\n"]} \ No newline at end of file +{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAY9C,IAAa,eAAe;IAQxB,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAGL,sBAAC;AAAD,CAAC,AATD,IASC;AATY,eAAe;IAT3B,gBAAS,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,iCAAe;QACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;QACtB,IAAI,EAAE;YACJ,kBAAkB,EAAE,kBAAkB;SACvC;KACF,CAAC;IASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GARnE,eAAe,CAS3B;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { HEADER_TEMPLATE } from './header.template';\r\nimport { HEADER_STYLE } from \"./header.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table-header',\r\n template: HEADER_TEMPLATE,\r\n styles: [HEADER_STYLE],\r\n host: {\r\n '(document:click)': '_closeSelector()'\r\n }\r\n})\r\nexport class DataTableHeader {\r\n\r\n columnSelectorOpen = false;\r\n\r\n _closeSelector() {\r\n this.columnSelectorOpen = false;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.style.js b/dist/components/header.style.js index 26455b0..31662ea 100644 --- a/dist/components/header.style.js +++ b/dist/components/header.style.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.HEADER_STYLE = "\n.data-table-header {\n min-height: 25px;\n margin-bottom: 10px;\n}\n.title {\n display: inline-block;\n margin: 5px 0 0 5px;\n}\n.button-panel {\n float: right;\n}\n.button-panel button {\n outline: none !important;\n}\n\n.column-selector-wrapper {\n position: relative;\n}\n.column-selector-box {\n box-shadow: 0 0 10px lightgray;\n width: 150px;\n padding: 10px;\n position: absolute;\n right: 0;\n top: 1px;\n z-index: 1060;\n}\n.column-selector-box .checkbox {\n margin-bottom: 4px;\n}\n.column-selector-fixed-column {\n font-style: italic;\n}\n"; //# sourceMappingURL=/components/header.style.js.map \ No newline at end of file diff --git a/dist/components/header.style.js.map b/dist/components/header.style.js.map index ea1fdc9..19ce67f 100644 --- a/dist/components/header.style.js.map +++ b/dist/components/header.style.js.map @@ -1 +1 @@ -{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\n.data-table-header {\n min-height: 25px;\n margin-bottom: 10px;\n}\n.title {\n display: inline-block;\n margin: 5px 0 0 5px;\n}\n.button-panel {\n float: right;\n}\n.button-panel button {\n outline: none !important;\n}\n\n.column-selector-wrapper {\n position: relative;\n}\n.column-selector-box {\n box-shadow: 0 0 10px lightgray;\n width: 150px;\n padding: 10px;\n position: absolute;\n right: 0;\n top: 1px;\n z-index: 1060;\n}\n.column-selector-box .checkbox {\n margin-bottom: 4px;\n}\n.column-selector-fixed-column {\n font-style: italic;\n}\n`;"]} \ No newline at end of file +{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\r\n.data-table-header {\r\n min-height: 25px;\r\n margin-bottom: 10px;\r\n}\r\n.title {\r\n display: inline-block;\r\n margin: 5px 0 0 5px;\r\n}\r\n.button-panel {\r\n float: right;\r\n}\r\n.button-panel button {\r\n outline: none !important;\r\n}\r\n\r\n.column-selector-wrapper {\r\n position: relative;\r\n}\r\n.column-selector-box {\r\n box-shadow: 0 0 10px lightgray;\r\n width: 150px;\r\n padding: 10px;\r\n position: absolute;\r\n right: 0;\r\n top: 1px;\r\n z-index: 1060;\r\n}\r\n.column-selector-box .checkbox {\r\n margin-bottom: 4px;\r\n}\r\n.column-selector-fixed-column {\r\n font-style: italic;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/header.template.js b/dist/components/header.template.js index 08f1ff7..d69a350 100644 --- a/dist/components/header.template.js +++ b/dist/components/header.template.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.HEADER_TEMPLATE = "\n
\n

\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n"; //# sourceMappingURL=/components/header.template.js.map \ No newline at end of file diff --git a/dist/components/header.template.js.map b/dist/components/header.template.js.map index 3977d87..a2b6e76 100644 --- a/dist/components/header.template.js.map +++ b/dist/components/header.template.js.map @@ -1 +1 @@ -{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_TEMPLATE = `\n
\n

\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n`;"]} \ No newline at end of file +{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";;AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_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
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.component.d.ts b/dist/components/pagination.component.d.ts index 2a26bc6..99ec794 100644 --- a/dist/components/pagination.component.d.ts +++ b/dist/components/pagination.component.d.ts @@ -1,6 +1,10 @@ import { DataTable } from './table.component'; export declare class DataTablePagination { dataTable: DataTable; + show_range: boolean; + show_limit: boolean; + show_input: boolean; + show_numbers: boolean; constructor(dataTable: DataTable); pageBack(): void; pageForward(): void; @@ -9,4 +13,8 @@ export declare class DataTablePagination { readonly maxPage: number; limit: number; page: number; + hasPrevious(number: any, page: any): boolean; + hasNext(number: any, page: any): boolean; + getDifference(): number; + createPageRange(number: any, page: any): any[]; } diff --git a/dist/components/pagination.component.js b/dist/components/pagination.component.js index d9df44a..d632254 100644 --- a/dist/components/pagination.component.js +++ b/dist/components/pagination.component.js @@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var table_component_1 = require("./table.component"); var pagination_template_1 = require("./pagination.template"); @@ -18,6 +19,10 @@ var pagination_style_1 = require("./pagination.style"); var DataTablePagination = (function () { function DataTablePagination(dataTable) { this.dataTable = dataTable; + this.show_range = false; + this.show_limit = false; + this.show_input = false; + this.show_numbers = true; } DataTablePagination.prototype.pageBack = function () { this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset); @@ -58,8 +63,60 @@ var DataTablePagination = (function () { enumerable: true, configurable: true }); + DataTablePagination.prototype.hasPrevious = function (number, page) { + var difference = this.getDifference(); + if ((page - difference) > 1) { + return true; + } + return false; + }; + DataTablePagination.prototype.hasNext = function (number, page) { + var difference = this.getDifference(); + if ((number - page) > difference) { + return true; + } + return false; + }; + DataTablePagination.prototype.getDifference = function () { + var difference = 2; + return difference; + }; + DataTablePagination.prototype.createPageRange = function (number, page) { + var items = []; + if (number > 1) { + var difference = this.getDifference(); + var maxPage = number; + var minPage = 1; + if ((number - page) >= difference) { + maxPage = page + difference; + } + if ((page - difference) >= 1) { + minPage = page - difference; + } + for (var i = minPage; i <= maxPage; i++) { + items.push(i); + } + } + return items; + }; return DataTablePagination; }()); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTablePagination.prototype, "show_range", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTablePagination.prototype, "show_limit", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTablePagination.prototype, "show_input", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTablePagination.prototype, "show_numbers", void 0); DataTablePagination = __decorate([ core_1.Component({ moduleId: module.id, diff --git a/dist/components/pagination.component.js.map b/dist/components/pagination.component.js.map index 4a886c7..0adf3e0 100644 --- a/dist/components/pagination.component.js.map +++ b/dist/components/pagination.component.js.map @@ -1 +1 @@ -{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,6DAA4D;AAC5D,uDAAsD;AAStD,IAAa,mBAAmB;IAE5B,6BAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEhF,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,yCAAW,GAAX;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,uCAAS,GAAT;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACtE,CAAC;IAED,sBAAI,wCAAO;aAAX;YACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;;;OAAA;IAED,sBAAI,sCAAK;aAAT;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAChC,CAAC;aAED,UAAU,KAAK;YACX,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC,CAAC,oEAAoE;QACnH,CAAC;;;OAJA;IAMD,sBAAI,qCAAI;aAAR;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/B,CAAC;aAED,UAAS,KAAK;YACV,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAM,KAAK,CAAC,CAAC;QAC7C,CAAC;;;OAJA;IAKL,0BAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,mBAAmB;IAN/B,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACrB,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,yCAAmB;QAC7B,MAAM,EAAE,CAAC,mCAAgB,CAAC;KAC3B,CAAC;IAGe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAFnE,mBAAmB,CAuC/B;AAvCY,kDAAmB","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\nimport { DataTable } from './table.component';\nimport { PAGINATION_TEMPLATE } from './pagination.template';\nimport { PAGINATION_STYLE } from \"./pagination.style\";\n\n\n@Component({\n moduleId: module.id,\n selector: 'data-table-pagination',\n template: PAGINATION_TEMPLATE,\n styles: [PAGINATION_STYLE]\n})\nexport class DataTablePagination {\n\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\n\n pageBack() {\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\n }\n\n pageForward() {\n this.dataTable.offset += this.dataTable.limit;\n }\n\n pageFirst() {\n this.dataTable.offset = 0;\n }\n\n pageLast() {\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\n }\n\n get maxPage() {\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\n }\n\n get limit() {\n return this.dataTable.limit;\n }\n\n set limit(value) {\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\n }\n\n get page() {\n return this.dataTable.page;\n }\n\n set page(value) {\n this.dataTable.page = Number(value);\n }\n}\n"]} \ No newline at end of file +{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {Component, Inject, forwardRef, Input} from '@angular/core';\r\nimport {DataTable} from './table.component';\r\nimport {PAGINATION_TEMPLATE} from './pagination.template';\r\nimport {PAGINATION_STYLE} from \"./pagination.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table-pagination',\r\n template: PAGINATION_TEMPLATE,\r\n styles: [PAGINATION_STYLE]\r\n})\r\nexport class DataTablePagination {\r\n\r\n @Input() show_range = false;\r\n @Input() show_limit = false;\r\n @Input() show_input = false;\r\n @Input() show_numbers = true;\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {\r\n }\r\n\r\n pageBack() {\r\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\r\n }\r\n\r\n pageForward() {\r\n this.dataTable.offset += this.dataTable.limit;\r\n }\r\n\r\n pageFirst() {\r\n this.dataTable.offset = 0;\r\n }\r\n\r\n pageLast() {\r\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\r\n }\r\n\r\n get maxPage() {\r\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\r\n }\r\n\r\n get limit() {\r\n return this.dataTable.limit;\r\n }\r\n\r\n set limit(value) {\r\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\r\n }\r\n\r\n get page() {\r\n return this.dataTable.page;\r\n }\r\n\r\n set page(value) {\r\n this.dataTable.page = Number(value);\r\n }\r\n\r\n hasPrevious(number, page) {\r\n const difference = this.getDifference();\r\n if ((page - difference) > 1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n hasNext(number, page) {\r\n const difference = this.getDifference();\r\n if ((number - page) > difference) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getDifference() {\r\n const difference = 2;\r\n return difference;\r\n }\r\n\r\n createPageRange(number, page): any[] {\r\n let items: number[] = [];\r\n if (number > 1) {\r\n const difference = this.getDifference();\r\n let maxPage = number;\r\n let minPage = 1;\r\n if ((number - page) >= difference) {\r\n maxPage = page + difference;\r\n }\r\n if ((page - difference) >= 1) {\r\n minPage = page - difference;\r\n }\r\n for (let i = minPage; i <= maxPage; i++) {\r\n items.push(i);\r\n }\r\n }\r\n return items;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/pagination.style.js b/dist/components/pagination.style.js index 718e509..575da45 100644 --- a/dist/components/pagination.style.js +++ b/dist/components/pagination.style.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.PAGINATION_STYLE = "\n.pagination-box {\n position: relative;\n margin-top: -10px;\n}\n.pagination-range {\n margin-top: 7px;\n margin-left: 3px;\n display: inline-block;\n}\n.pagination-controllers {\n float: right;\n}\n.pagination-controllers input {\n min-width: 60px;\n /*padding: 1px 0px 0px 5px;*/\n text-align: right;\n}\n\n.pagination-limit {\n margin-right: 25px;\n display: inline-table;\n width: 150px;\n}\n.pagination-pages {\n display: inline-block;\n}\n.pagination-page {\n width: 110px;\n display: inline-table;\n}\n.pagination-box button {\n outline: none !important;\n}\n.pagination-prevpage,\n.pagination-nextpage,\n.pagination-firstpage,\n.pagination-lastpage {\n vertical-align: top;\n}\n.pagination-reload {\n color: gray;\n font-size: 12px;\n}\n"; //# sourceMappingURL=/components/pagination.style.js.map \ No newline at end of file diff --git a/dist/components/pagination.style.js.map b/dist/components/pagination.style.js.map index 8ed0ddc..ab2456f 100644 --- a/dist/components/pagination.style.js.map +++ b/dist/components/pagination.style.js.map @@ -1 +1 @@ -{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";;AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.template.js b/dist/components/pagination.template.js index 7826223..3b800fd 100644 --- a/dist/components/pagination.template.js +++ b/dist/components/pagination.template.js @@ -1,3 +1,4 @@ "use strict"; -exports.PAGINATION_TEMPLATE = "\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n \n
\n
\n
\n"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PAGINATION_TEMPLATE = "\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n
\n \n
\n \n \n \n
\n
\n
\n"; //# sourceMappingURL=/components/pagination.template.js.map \ No newline at end of file diff --git a/dist/components/pagination.template.js.map b/dist/components/pagination.template.js.map index 2d17488..d918159 100644 --- a/dist/components/pagination.template.js.map +++ b/dist/components/pagination.template.js.map @@ -1 +1 @@ -{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";AAAa,QAAA,mBAAmB,GAAG,kxEAsClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n \n
\n
\n
\n`;"]} \ No newline at end of file +{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";;AAAa,QAAA,mBAAmB,GAAG,w6FA8ClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\r\n
\r\n
\r\n {{dataTable.translations.paginationRange}}:\r\n \r\n -\r\n \r\n /\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{dataTable.translations.paginationLimit}}:\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n /\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.component.js b/dist/components/row.component.js index 70e9cfa..6be4999 100644 --- a/dist/components/row.component.js +++ b/dist/components/row.component.js @@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var table_component_1 = require("./table.component"); var row_template_1 = require("./row.template"); diff --git a/dist/components/row.component.js.map b/dist/components/row.component.js.map index df5b58b..6ffb8b1 100644 --- a/dist/components/row.component.js.map +++ b/dist/components/row.component.js.map @@ -1 +1 @@ -{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AASxC,IAAa,YAAY;IAuCrB,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAGL,mBAAC;AAAD,CAAC,AA9CD,IA8CC;AA5CY;IAAR,YAAK,EAAE;;0CAAW;AACV;IAAR,YAAK,EAAE;;2CAAe;AAQb;IAAT,aAAM,EAAE;;oDAAqC;AAXrC,YAAY;IANxB,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,2BAAY;QACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;KACtB,CAAC;IAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAvCnE,YAAY,CA8CxB;AA9CY,oCAAY","sourcesContent":["import {\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\n} from '@angular/core';\nimport { DataTable } from './table.component';\nimport { ROW_TEMPLATE } from './row.template';\nimport { ROW_STYLE } from \"./row.style\";\n\n\n@Component({\n moduleId: module.id,\n selector: '[dataTableRow]',\n template: ROW_TEMPLATE,\n styles: [ROW_STYLE]\n})\nexport class DataTableRow implements OnDestroy {\n\n @Input() item: any;\n @Input() index: number;\n\n expanded: boolean;\n\n // row selection:\n\n private _selected: boolean;\n\n @Output() selectedChange = new EventEmitter();\n\n get selected() {\n return this._selected;\n }\n\n set selected(selected) {\n this._selected = selected;\n this.selectedChange.emit(selected);\n }\n\n // other:\n\n get displayIndex() {\n if (this.dataTable.pagination) {\n return this.dataTable.displayParams.offset + this.index + 1;\n } else {\n return this.index + 1;\n }\n }\n\n getTooltip() {\n if (this.dataTable.rowTooltip) {\n return this.dataTable.rowTooltip(this.item, this, this.index);\n }\n return '';\n }\n\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\n\n ngOnDestroy() {\n this.selected = false;\n }\n\n private _this = this; // FIXME is there no template keyword for this in angular 2?\n}\n"]} \ No newline at end of file +{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AASxC,IAAa,YAAY;IAuCrB,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAGL,mBAAC;AAAD,CAAC,AA9CD,IA8CC;AA5CY;IAAR,YAAK,EAAE;;0CAAW;AACV;IAAR,YAAK,EAAE;;2CAAe;AAQb;IAAT,aAAM,EAAE;;oDAAqC;AAXrC,YAAY;IANxB,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,2BAAY;QACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;KACtB,CAAC;IAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAvCnE,YAAY,CA8CxB;AA9CY,oCAAY","sourcesContent":["import {\r\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\r\n} from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { ROW_TEMPLATE } from './row.template';\r\nimport { ROW_STYLE } from \"./row.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: '[dataTableRow]',\r\n template: ROW_TEMPLATE,\r\n styles: [ROW_STYLE]\r\n})\r\nexport class DataTableRow implements OnDestroy {\r\n\r\n @Input() item: any;\r\n @Input() index: number;\r\n\r\n expanded: boolean;\r\n\r\n // row selection:\r\n\r\n private _selected: boolean;\r\n\r\n @Output() selectedChange = new EventEmitter();\r\n\r\n get selected() {\r\n return this._selected;\r\n }\r\n\r\n set selected(selected) {\r\n this._selected = selected;\r\n this.selectedChange.emit(selected);\r\n }\r\n\r\n // other:\r\n\r\n get displayIndex() {\r\n if (this.dataTable.pagination) {\r\n return this.dataTable.displayParams.offset + this.index + 1;\r\n } else {\r\n return this.index + 1;\r\n }\r\n }\r\n\r\n getTooltip() {\r\n if (this.dataTable.rowTooltip) {\r\n return this.dataTable.rowTooltip(this.item, this, this.index);\r\n }\r\n return '';\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n ngOnDestroy() {\r\n this.selected = false;\r\n }\r\n\r\n private _this = this; // FIXME is there no template keyword for this in angular 2?\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/row.style.js b/dist/components/row.style.js index ac8067e..f1eaa30 100644 --- a/dist/components/row.style.js +++ b/dist/components/row.style.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.ROW_STYLE = "\n.select-column {\n text-align: center;\n}\n\n.row-expand-button {\n cursor: pointer;\n text-align: center;\n}\n\n.clickable {\n cursor: pointer;\n}\n"; //# sourceMappingURL=/components/row.style.js.map \ No newline at end of file diff --git a/dist/components/row.style.js.map b/dist/components/row.style.js.map index 5489e59..e936027 100644 --- a/dist/components/row.style.js.map +++ b/dist/components/row.style.js.map @@ -1 +1 @@ -{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";;AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.template.js b/dist/components/row.template.js index 1c119c6..d959c09 100644 --- a/dist/components/row.template.js +++ b/dist/components/row.template.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.ROW_TEMPLATE = "\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n\n\n \n
\n \n\n"; //# sourceMappingURL=/components/row.template.js.map \ No newline at end of file diff --git a/dist/components/row.template.js.map b/dist/components/row.template.js.map index 490a223..48a3fff 100644 --- a/dist/components/row.template.js.map +++ b/dist/components/row.template.js.map @@ -1 +1 @@ -{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_TEMPLATE = `\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n\n\n \n
\n \n\n`;"]} \ No newline at end of file +{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_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\r\n\r\n \r\n
\r\n \r\n\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.component.d.ts b/dist/components/table.component.d.ts index 6d69359..43b7bd3 100644 --- a/dist/components/table.component.d.ts +++ b/dist/components/table.component.d.ts @@ -14,6 +14,10 @@ export declare class DataTable implements DataTableParams, OnInit { headerTitle: string; header: boolean; pagination: boolean; + pagination_range: boolean; + pagination_limit: boolean; + pagination_input: boolean; + pagination_numbers: boolean; indexColumn: boolean; indexColumnHeader: string; rowColors: RowCallback; diff --git a/dist/components/table.component.js b/dist/components/table.component.js index c3ce322..c268489 100644 --- a/dist/components/table.component.js +++ b/dist/components/table.component.js @@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var column_component_1 = require("./column.component"); var row_component_1 = require("./row.component"); @@ -20,6 +21,10 @@ var DataTable = (function () { this._items = []; this.header = true; this.pagination = true; + this.pagination_range = false; + this.pagination_limit = false; + this.pagination_input = false; + this.pagination_numbers = true; this.indexColumn = true; this.indexColumnHeader = ''; this.selectColumn = false; @@ -352,6 +357,22 @@ __decorate([ core_1.Input(), __metadata("design:type", Object) ], DataTable.prototype, "pagination", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination_range", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination_limit", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination_input", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination_numbers", void 0); __decorate([ core_1.Input(), __metadata("design:type", Object) diff --git a/dist/components/table.component.js.map b/dist/components/table.component.js.map index a63747c..b4f4ccc 100644 --- a/dist/components/table.component.js.map +++ b/dist/components/table.component.js.map @@ -1 +1 @@ -{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\n TemplateRef, ContentChild, ViewChildren, OnInit\n} from '@angular/core';\nimport { DataTableColumn } from './column.component';\nimport { DataTableRow } from './row.component';\nimport { DataTableParams } from '../types/data-table-params.type';\nimport { RowCallback } from '../types/row-callback.type';\nimport { DataTableTranslations } from '../types/data-table-translations.type';\nimport { defaultTranslations } from '../types/default-translations.type';\nimport { drag } from '../utils/drag';\nimport { TABLE_TEMPLATE } from './table.template';\nimport { TABLE_STYLE } from \"./table.style\";\n\n\n\n@Component({\n moduleId: module.id,\n selector: 'data-table',\n template: TABLE_TEMPLATE,\n styles: [TABLE_STYLE]\n})\nexport class DataTable implements DataTableParams, OnInit {\n\n private _items: any[] = [];\n\n @Input() get items() {\n return this._items;\n }\n\n set items(items: any[]) {\n this._items = items;\n this._onReloadFinished();\n }\n\n @Input() itemCount: number;\n\n // UI components:\n\n @ContentChildren(DataTableColumn) columns: QueryList;\n @ViewChildren(DataTableRow) rows: QueryList;\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\n\n // One-time optional bindings with default values:\n\n @Input() headerTitle: string;\n @Input() header = true;\n @Input() pagination = true;\n @Input() indexColumn = true;\n @Input() indexColumnHeader = '';\n @Input() rowColors: RowCallback;\n @Input() rowTooltip: RowCallback;\n @Input() selectColumn = false;\n @Input() multiSelect = true;\n @Input() substituteRows = true;\n @Input() expandableRows = false;\n @Input() translations: DataTableTranslations = defaultTranslations;\n @Input() selectOnRowClick = false;\n @Input() autoReload = true;\n @Input() showReloading = false;\n\n // UI state without input:\n\n indexColumnVisible: boolean;\n selectColumnVisible: boolean;\n expandColumnVisible: boolean;\n\n // UI state: visible ge/set for the outside with @Input for one-time initial values\n\n private _sortBy: string;\n private _sortAsc = true;\n\n private _offset = 0;\n private _limit = 10;\n\n @Input()\n get sortBy() {\n return this._sortBy;\n }\n\n set sortBy(value) {\n this._sortBy = value;\n this._triggerReload();\n }\n\n @Input()\n get sortAsc() {\n return this._sortAsc;\n }\n\n set sortAsc(value) {\n this._sortAsc = value;\n this._triggerReload();\n }\n\n @Input()\n get offset() {\n return this._offset;\n }\n\n set offset(value) {\n this._offset = value;\n this._triggerReload();\n }\n\n @Input()\n get limit() {\n return this._limit;\n }\n\n set limit(value) {\n this._limit = value;\n this._triggerReload();\n }\n\n // calculated property:\n\n @Input()\n get page() {\n return Math.floor(this.offset / this.limit) + 1;\n }\n\n set page(value) {\n this.offset = (value - 1) * this.limit;\n }\n\n get lastPage() {\n return Math.ceil(this.itemCount / this.limit);\n }\n\n // setting multiple observable properties simultaneously\n\n sort(sortBy: string, asc: boolean) {\n this.sortBy = sortBy;\n this.sortAsc = asc;\n }\n\n // init\n\n ngOnInit() {\n this._initDefaultValues();\n this._initDefaultClickEvents();\n this._updateDisplayParams();\n\n if (this.autoReload && this._scheduledReload == null) {\n this.reloadItems();\n }\n }\n\n private _initDefaultValues() {\n this.indexColumnVisible = this.indexColumn;\n this.selectColumnVisible = this.selectColumn;\n this.expandColumnVisible = this.expandableRows;\n }\n\n private _initDefaultClickEvents() {\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\n if (this.selectOnRowClick) {\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\n }\n }\n\n // Reloading:\n\n _reloading = false;\n\n get reloading() {\n return this._reloading;\n }\n\n @Output() reload = new EventEmitter();\n\n reloadItems() {\n this._reloading = true;\n this.reload.emit(this._getRemoteParameters());\n }\n\n private _onReloadFinished() {\n this._updateDisplayParams();\n\n this._selectAllCheckbox = false;\n this._reloading = false;\n }\n\n _displayParams = {}; // params of the last finished reload\n\n get displayParams() {\n return this._displayParams;\n }\n\n _updateDisplayParams() {\n this._displayParams = {\n sortBy: this.sortBy,\n sortAsc: this.sortAsc,\n offset: this.offset,\n limit: this.limit\n };\n }\n\n _scheduledReload = null;\n\n // for avoiding cascading reloads if multiple params are set at once:\n _triggerReload() {\n if (this._scheduledReload) {\n clearTimeout(this._scheduledReload);\n }\n this._scheduledReload = setTimeout(() => {\n this.reloadItems();\n });\n }\n\n // event handlers:\n\n @Output() rowClick = new EventEmitter();\n @Output() rowDoubleClick = new EventEmitter();\n @Output() headerClick = new EventEmitter();\n @Output() cellClick = new EventEmitter();\n\n private rowClicked(row: DataTableRow, event) {\n this.rowClick.emit({ row, event });\n }\n\n private rowDoubleClicked(row: DataTableRow, event) {\n this.rowDoubleClick.emit({ row, event });\n }\n\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\n if (!this._resizeInProgress) {\n this.headerClick.emit({ column, event });\n } else {\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\n }\n }\n\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\n this.cellClick.emit({ row, column, event });\n }\n\n // functions:\n\n private _getRemoteParameters(): DataTableParams {\n let params = {};\n\n if (this.sortBy) {\n params.sortBy = this.sortBy;\n params.sortAsc = this.sortAsc;\n }\n if (this.pagination) {\n params.offset = this.offset;\n params.limit = this.limit;\n }\n return params;\n }\n\n private sortColumn(column: DataTableColumn) {\n if (column.sortable) {\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\n this.sort(column.property, ascending);\n }\n }\n\n get columnCount() {\n let count = 0;\n count += this.indexColumnVisible ? 1 : 0;\n count += this.selectColumnVisible ? 1 : 0;\n count += this.expandColumnVisible ? 1 : 0;\n this.columns.toArray().forEach(column => {\n count += column.visible ? 1 : 0;\n });\n return count;\n }\n\n private getRowColor(item: any, index: number, row: DataTableRow) {\n if (this.rowColors !== undefined) {\n return (this.rowColors)(item, row, index);\n }\n }\n\n // selection:\n\n selectedRow: DataTableRow;\n selectedRows: DataTableRow[] = [];\n\n private _selectAllCheckbox = false;\n\n get selectAllCheckbox() {\n return this._selectAllCheckbox;\n }\n\n set selectAllCheckbox(value) {\n this._selectAllCheckbox = value;\n this._onSelectAllChanged(value);\n }\n\n private _onSelectAllChanged(value: boolean) {\n this.rows.toArray().forEach(row => row.selected = value);\n }\n\n onRowSelectChanged(row: DataTableRow) {\n\n // maintain the selectedRow(s) view\n if (this.multiSelect) {\n let index = this.selectedRows.indexOf(row);\n if (row.selected && index < 0) {\n this.selectedRows.push(row);\n } else if (!row.selected && index >= 0) {\n this.selectedRows.splice(index, 1);\n }\n } else {\n if (row.selected) {\n this.selectedRow = row;\n } else if (this.selectedRow === row) {\n this.selectedRow = undefined;\n }\n }\n\n // unselect all other rows:\n if (row.selected && !this.multiSelect) {\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\n if (row_ !== row) { // avoid endless loop\n row_.selected = false;\n }\n });\n }\n }\n\n // other:\n\n get substituteItems() {\n return Array.from({ length: this.displayParams.limit - this.items.length });\n }\n\n // column resizing:\n\n private _resizeInProgress = false;\n\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\n this._resizeInProgress = true;\n\n drag(event, {\n move: (moveEvent: MouseEvent, dx: number) => {\n if (this._isResizeInLimit(columnElement, dx)) {\n column.width = columnElement.offsetWidth + dx;\n }\n },\n });\n }\n\n resizeLimit = 30;\n\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\n Without the limits, resizing can make the next column disappear completely,\n and even increase the table width. The current implementation suffers from the fact,\n that offsetWidth sometimes contains out-of-date values. */\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\n return false;\n }\n return true;\n }\n}\n"]} \ No newline at end of file +{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\r\n TemplateRef, ContentChild, ViewChildren, OnInit\r\n} from '@angular/core';\r\nimport { DataTableColumn } from './column.component';\r\nimport { DataTableRow } from './row.component';\r\nimport { DataTableParams } from '../types/data-table-params.type';\r\nimport { RowCallback } from '../types/row-callback.type';\r\nimport { DataTableTranslations } from '../types/data-table-translations.type';\r\nimport { defaultTranslations } from '../types/default-translations.type';\r\nimport { drag } from '../utils/drag';\r\nimport { TABLE_TEMPLATE } from './table.template';\r\nimport { TABLE_STYLE } from \"./table.style\";\r\n\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table',\r\n template: TABLE_TEMPLATE,\r\n styles: [TABLE_STYLE]\r\n})\r\nexport class DataTable implements DataTableParams, OnInit {\r\n\r\n private _items: any[] = [];\r\n\r\n @Input() get items() {\r\n return this._items;\r\n }\r\n\r\n set items(items: any[]) {\r\n this._items = items;\r\n this._onReloadFinished();\r\n }\r\n\r\n @Input() itemCount: number;\r\n\r\n // UI components:\r\n\r\n @ContentChildren(DataTableColumn) columns: QueryList;\r\n @ViewChildren(DataTableRow) rows: QueryList;\r\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\r\n\r\n // One-time optional bindings with default values:\r\n\r\n @Input() headerTitle: string;\r\n @Input() header = true;\r\n @Input() pagination = true;\r\n @Input() pagination_range = false;\r\n @Input() pagination_limit = false;\r\n @Input() pagination_input = false;\r\n @Input() pagination_numbers = true;\r\n @Input() indexColumn = true;\r\n @Input() indexColumnHeader = '';\r\n @Input() rowColors: RowCallback;\r\n @Input() rowTooltip: RowCallback;\r\n @Input() selectColumn = false;\r\n @Input() multiSelect = true;\r\n @Input() substituteRows = true;\r\n @Input() expandableRows = false;\r\n @Input() translations: DataTableTranslations = defaultTranslations;\r\n @Input() selectOnRowClick = false;\r\n @Input() autoReload = true;\r\n @Input() showReloading = false;\r\n\r\n // UI state without input:\r\n\r\n indexColumnVisible: boolean;\r\n selectColumnVisible: boolean;\r\n expandColumnVisible: boolean;\r\n\r\n // UI state: visible ge/set for the outside with @Input for one-time initial values\r\n\r\n private _sortBy: string;\r\n private _sortAsc = true;\r\n\r\n private _offset = 0;\r\n private _limit = 10;\r\n\r\n @Input()\r\n get sortBy() {\r\n return this._sortBy;\r\n }\r\n\r\n set sortBy(value) {\r\n this._sortBy = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get sortAsc() {\r\n return this._sortAsc;\r\n }\r\n\r\n set sortAsc(value) {\r\n this._sortAsc = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get offset() {\r\n return this._offset;\r\n }\r\n\r\n set offset(value) {\r\n this._offset = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get limit() {\r\n return this._limit;\r\n }\r\n\r\n set limit(value) {\r\n this._limit = value;\r\n this._triggerReload();\r\n }\r\n\r\n // calculated property:\r\n\r\n @Input()\r\n get page() {\r\n return Math.floor(this.offset / this.limit) + 1;\r\n }\r\n\r\n set page(value) {\r\n this.offset = (value - 1) * this.limit;\r\n }\r\n\r\n get lastPage() {\r\n return Math.ceil(this.itemCount / this.limit);\r\n }\r\n\r\n // setting multiple observable properties simultaneously\r\n\r\n sort(sortBy: string, asc: boolean) {\r\n this.sortBy = sortBy;\r\n this.sortAsc = asc;\r\n }\r\n\r\n // init\r\n\r\n ngOnInit() {\r\n this._initDefaultValues();\r\n this._initDefaultClickEvents();\r\n this._updateDisplayParams();\r\n\r\n if (this.autoReload && this._scheduledReload == null) {\r\n this.reloadItems();\r\n }\r\n }\r\n\r\n private _initDefaultValues() {\r\n this.indexColumnVisible = this.indexColumn;\r\n this.selectColumnVisible = this.selectColumn;\r\n this.expandColumnVisible = this.expandableRows;\r\n }\r\n\r\n private _initDefaultClickEvents() {\r\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\r\n if (this.selectOnRowClick) {\r\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\r\n }\r\n }\r\n\r\n // Reloading:\r\n\r\n _reloading = false;\r\n\r\n get reloading() {\r\n return this._reloading;\r\n }\r\n\r\n @Output() reload = new EventEmitter();\r\n\r\n reloadItems() {\r\n this._reloading = true;\r\n this.reload.emit(this._getRemoteParameters());\r\n }\r\n\r\n private _onReloadFinished() {\r\n this._updateDisplayParams();\r\n\r\n this._selectAllCheckbox = false;\r\n this._reloading = false;\r\n }\r\n\r\n _displayParams = {}; // params of the last finished reload\r\n\r\n get displayParams() {\r\n return this._displayParams;\r\n }\r\n\r\n _updateDisplayParams() {\r\n this._displayParams = {\r\n sortBy: this.sortBy,\r\n sortAsc: this.sortAsc,\r\n offset: this.offset,\r\n limit: this.limit\r\n };\r\n }\r\n\r\n _scheduledReload = null;\r\n\r\n // for avoiding cascading reloads if multiple params are set at once:\r\n _triggerReload() {\r\n if (this._scheduledReload) {\r\n clearTimeout(this._scheduledReload);\r\n }\r\n this._scheduledReload = setTimeout(() => {\r\n this.reloadItems();\r\n });\r\n }\r\n\r\n // event handlers:\r\n\r\n @Output() rowClick = new EventEmitter();\r\n @Output() rowDoubleClick = new EventEmitter();\r\n @Output() headerClick = new EventEmitter();\r\n @Output() cellClick = new EventEmitter();\r\n\r\n private rowClicked(row: DataTableRow, event) {\r\n this.rowClick.emit({ row, event });\r\n }\r\n\r\n private rowDoubleClicked(row: DataTableRow, event) {\r\n this.rowDoubleClick.emit({ row, event });\r\n }\r\n\r\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\r\n if (!this._resizeInProgress) {\r\n this.headerClick.emit({ column, event });\r\n } else {\r\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\r\n }\r\n }\r\n\r\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\r\n this.cellClick.emit({ row, column, event });\r\n }\r\n\r\n // functions:\r\n\r\n private _getRemoteParameters(): DataTableParams {\r\n let params = {};\r\n\r\n if (this.sortBy) {\r\n params.sortBy = this.sortBy;\r\n params.sortAsc = this.sortAsc;\r\n }\r\n if (this.pagination) {\r\n params.offset = this.offset;\r\n params.limit = this.limit;\r\n }\r\n return params;\r\n }\r\n\r\n private sortColumn(column: DataTableColumn) {\r\n if (column.sortable) {\r\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\r\n this.sort(column.property, ascending);\r\n }\r\n }\r\n\r\n get columnCount() {\r\n let count = 0;\r\n count += this.indexColumnVisible ? 1 : 0;\r\n count += this.selectColumnVisible ? 1 : 0;\r\n count += this.expandColumnVisible ? 1 : 0;\r\n this.columns.toArray().forEach(column => {\r\n count += column.visible ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n private getRowColor(item: any, index: number, row: DataTableRow) {\r\n if (this.rowColors !== undefined) {\r\n return (this.rowColors)(item, row, index);\r\n }\r\n }\r\n\r\n // selection:\r\n\r\n selectedRow: DataTableRow;\r\n selectedRows: DataTableRow[] = [];\r\n\r\n private _selectAllCheckbox = false;\r\n\r\n get selectAllCheckbox() {\r\n return this._selectAllCheckbox;\r\n }\r\n\r\n set selectAllCheckbox(value) {\r\n this._selectAllCheckbox = value;\r\n this._onSelectAllChanged(value);\r\n }\r\n\r\n private _onSelectAllChanged(value: boolean) {\r\n this.rows.toArray().forEach(row => row.selected = value);\r\n }\r\n\r\n onRowSelectChanged(row: DataTableRow) {\r\n\r\n // maintain the selectedRow(s) view\r\n if (this.multiSelect) {\r\n let index = this.selectedRows.indexOf(row);\r\n if (row.selected && index < 0) {\r\n this.selectedRows.push(row);\r\n } else if (!row.selected && index >= 0) {\r\n this.selectedRows.splice(index, 1);\r\n }\r\n } else {\r\n if (row.selected) {\r\n this.selectedRow = row;\r\n } else if (this.selectedRow === row) {\r\n this.selectedRow = undefined;\r\n }\r\n }\r\n\r\n // unselect all other rows:\r\n if (row.selected && !this.multiSelect) {\r\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\r\n if (row_ !== row) { // avoid endless loop\r\n row_.selected = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // other:\r\n\r\n get substituteItems() {\r\n return Array.from({ length: this.displayParams.limit - this.items.length });\r\n }\r\n\r\n // column resizing:\r\n\r\n private _resizeInProgress = false;\r\n\r\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\r\n this._resizeInProgress = true;\r\n\r\n drag(event, {\r\n move: (moveEvent: MouseEvent, dx: number) => {\r\n if (this._isResizeInLimit(columnElement, dx)) {\r\n column.width = columnElement.offsetWidth + dx;\r\n }\r\n },\r\n });\r\n }\r\n\r\n resizeLimit = 30;\r\n\r\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\r\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\r\n Without the limits, resizing can make the next column disappear completely,\r\n and even increase the table width. The current implementation suffers from the fact,\r\n that offsetWidth sometimes contains out-of-date values. */\r\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\r\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\r\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/table.style.js b/dist/components/table.style.js index 9e40dfc..e2ce937 100644 --- a/dist/components/table.style.js +++ b/dist/components/table.style.js @@ -1,3 +1,4 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.TABLE_STYLE = "\n/* bootstrap override: */\n\n:host /deep/ .data-table.table > tbody+tbody {\n border-top: none;\n}\n:host /deep/ .data-table.table td {\n vertical-align: middle;\n}\n\n:host /deep/ .data-table > thead > tr > th,\n:host /deep/ .data-table > tbody > tr > td {\n\toverflow: hidden;\n}\n\n/* I can't use the bootstrap striped table, because of the expandable rows */\n:host /deep/ .row-odd {\n background-color: #F6F6F6;\n}\n:host /deep/ .row-even {\n}\n\n.data-table .substitute-rows > tr:hover,\n:host /deep/ .data-table .data-table-row:hover {\n background-color: #ECECEC;\n}\n/* table itself: */\n\n.data-table {\n box-shadow: 0 0 15px rgb(236, 236, 236);\n table-layout: fixed;\n}\n\n/* header cells: */\n\n.column-header {\n position: relative;\n}\n.expand-column-header {\n\twidth: 50px;\n}\n.select-column-header {\n\twidth: 50px;\n\ttext-align: center;\n}\n.index-column-header {\n\twidth: 40px;\n}\n.column-header.sortable {\n cursor: pointer;\n}\n.column-header .column-sort-icon {\n\tfloat: right;\n}\n.column-header.resizable .column-sort-icon {\n margin-right: 8px;\n}\n.column-header .column-sort-icon .column-sortable-icon {\n color: lightgray;\n}\n.column-header .column-resize-handle {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n padding: 0;\n width: 8px;\n height: 100%;\n cursor: col-resize;\n}\n\n/* cover: */\n\n.data-table-box {\n position: relative;\n}\n\n.loading-cover {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.3);\n top: 0;\n}\n"; //# sourceMappingURL=/components/table.style.js.map \ No newline at end of file diff --git a/dist/components/table.style.js.map b/dist/components/table.style.js.map index a969fdd..d182f3f 100644 --- a/dist/components/table.style.js.map +++ b/dist/components/table.style.js.map @@ -1 +1 @@ -{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file +{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.template.js b/dist/components/table.template.js index 90086fd..905d8a0 100644 --- a/dist/components/table.template.js +++ b/dist/components/table.template.js @@ -1,3 +1,4 @@ "use strict"; -exports.TABLE_TEMPLATE = "\n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 \n
\n
\n
\n\n \n
\n"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TABLE_TEMPLATE = "\n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 \n
\n
\n
\n\n \n
\n"; //# sourceMappingURL=/components/table.template.js.map \ No newline at end of file diff --git a/dist/components/table.template.js.map b/dist/components/table.template.js.map index c0d7978..677275c 100644 --- a/dist/components/table.template.js.map +++ b/dist/components/table.template.js.map @@ -1 +1 @@ -{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";AAAa,QAAA,cAAc,GAAG,qtGAmD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file +{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";;AAAa,QAAA,cAAc,GAAG,84GAwD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index 4fae7a2..1b41018 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,4 +1,3 @@ -import { NgModule } from '@angular/core'; import { DataTable } from './components/table.component'; import { DataTableColumn } from './components/column.component'; import { DataTableRow } from './components/row.component'; @@ -12,6 +11,5 @@ import { defaultTranslations } from './types/default-translations.type'; export * from './tools/data-table-resource'; export { DataTable, DataTableColumn, DataTableRow, DataTablePagination, DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations }; export declare const DATA_TABLE_DIRECTIVES: (typeof DataTable | typeof DataTableColumn)[]; -@NgModule() export declare class DataTableModule { } diff --git a/dist/index.js b/dist/index.js index 1bc79b0..ed9fdd6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var common_1 = require("@angular/common"); var forms_1 = require("@angular/forms"); diff --git a/dist/index.js.map b/dist/index.js.map index f646964..6db4dcc 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,gDAAS;AAdlB,kEAAgE;AAc5C,6DAAe;AAbnC,4DAA0D;AAarB,oDAAY;AAZjD,0EAAwE;AAYrB,yEAAmB;AAXtE,kEAAgE;AAYtD,6DAAe;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8EAAmB;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE,IAAa,eAAe;IAA5B;IAA+B,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAhC,IAAgC;AAAnB,eAAe;IAT3B,eAAQ,CAAC;QACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;QACtC,YAAY,EAAE;YACV,2BAAS,EAAE,kCAAe;YAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;YAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;SAChC;QACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;KAC1C,CAAC;GACW,eAAe,CAAI;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DataTable} from './components/table.component';\r\nimport { DataTableColumn } from './components/column.component';\r\nimport { DataTableRow } from './components/row.component';\r\nimport { DataTablePagination } from './components/pagination.component';\r\nimport { DataTableHeader } from './components/header.component';\r\n\r\nimport { PixelConverter } from './utils/px';\r\nimport { Hide } from './utils/hide';\r\nimport { MinPipe } from './utils/min';\r\nimport { DataTableTranslations } from './types/data-table-translations.type';\r\nimport { CellCallback } from './types/cell-callback.type';\r\nimport { RowCallback } from './types/row-callback.type';\r\nimport { DataTableParams } from './types/data-table-params.type';\r\nimport { defaultTranslations } from './types/default-translations.type';\r\nexport * from './tools/data-table-resource';\r\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\r\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\r\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\r\n\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule ],\r\n declarations: [\r\n DataTable, DataTableColumn,\r\n DataTableRow, DataTablePagination, DataTableHeader,\r\n PixelConverter, Hide, MinPipe\r\n ],\r\n exports: [ DataTable, DataTableColumn ]\r\n})\r\nexport class DataTableModule { }\r\n"]} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,oBAfA,2BAAS,CAeA;AAdlB,kEAAgE;AAc5C,0BAdX,kCAAe,CAcW;AAbnC,4DAA0D;AAarB,uBAb5B,4BAAY,CAa4B;AAZjD,0EAAwE;AAYrB,8BAZ1C,0CAAmB,CAY0C;AAXtE,kEAAgE;AAYtD,0BAZD,kCAAe,CAYC;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8BAHrF,+CAAmB,CAGqF;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE,IAAa,eAAe;IAA5B;IAA+B,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAhC,IAAgC;AAAnB,eAAe;IAT3B,eAAQ,CAAC;QACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;QACtC,YAAY,EAAE;YACV,2BAAS,EAAE,kCAAe;YAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;YAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;SAChC;QACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;KAC1C,CAAC;GACW,eAAe,CAAI;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DataTable} from './components/table.component';\r\nimport { DataTableColumn } from './components/column.component';\r\nimport { DataTableRow } from './components/row.component';\r\nimport { DataTablePagination } from './components/pagination.component';\r\nimport { DataTableHeader } from './components/header.component';\r\n\r\nimport { PixelConverter } from './utils/px';\r\nimport { Hide } from './utils/hide';\r\nimport { MinPipe } from './utils/min';\r\nimport { DataTableTranslations } from './types/data-table-translations.type';\r\nimport { CellCallback } from './types/cell-callback.type';\r\nimport { RowCallback } from './types/row-callback.type';\r\nimport { DataTableParams } from './types/data-table-params.type';\r\nimport { defaultTranslations } from './types/default-translations.type';\r\nexport * from './tools/data-table-resource';\r\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\r\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\r\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\r\n\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule ],\r\n declarations: [\r\n DataTable, DataTableColumn,\r\n DataTableRow, DataTablePagination, DataTableHeader,\r\n PixelConverter, Hide, MinPipe\r\n ],\r\n exports: [ DataTable, DataTableColumn ]\r\n})\r\nexport class DataTableModule { }\r\n"]} \ No newline at end of file diff --git a/dist/tools/data-table-resource.js b/dist/tools/data-table-resource.js index a9ae8b8..f24576b 100644 --- a/dist/tools/data-table-resource.js +++ b/dist/tools/data-table-resource.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); var DataTableResource = (function () { function DataTableResource(items) { this.items = items; diff --git a/dist/tools/data-table-resource.js.map b/dist/tools/data-table-resource.js.map index 8e4b13f..0805801 100644 --- a/dist/tools/data-table-resource.js.map +++ b/dist/tools/data-table-resource.js.map @@ -1 +1 @@ -{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\r\n\r\n\r\nexport class DataTableResource {\r\n\r\n constructor(private items: T[]) {}\r\n\r\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\r\n\r\n let result: T[] = [];\r\n if (filter) {\r\n result = this.items.filter(filter);\r\n } else {\r\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\r\n }\r\n\r\n if (params.sortBy) {\r\n result.sort((a, b) => {\r\n if (typeof a[params.sortBy] === 'string') {\r\n return a[params.sortBy].localeCompare(b[params.sortBy]);\r\n } else {\r\n return a[params.sortBy] - b[params.sortBy];\r\n }\r\n });\r\n if (params.sortAsc === false) {\r\n result.reverse();\r\n }\r\n }\r\n if (params.offset !== undefined) {\r\n if (params.limit === undefined) {\r\n result = result.slice(params.offset, result.length);\r\n } else {\r\n result = result.slice(params.offset, params.offset + params.limit);\r\n }\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(result));\r\n });\r\n }\r\n\r\n count(): Promise {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(this.items.length));\r\n });\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";;AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\r\n\r\n\r\nexport class DataTableResource {\r\n\r\n constructor(private items: T[]) {}\r\n\r\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\r\n\r\n let result: T[] = [];\r\n if (filter) {\r\n result = this.items.filter(filter);\r\n } else {\r\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\r\n }\r\n\r\n if (params.sortBy) {\r\n result.sort((a, b) => {\r\n if (typeof a[params.sortBy] === 'string') {\r\n return a[params.sortBy].localeCompare(b[params.sortBy]);\r\n } else {\r\n return a[params.sortBy] - b[params.sortBy];\r\n }\r\n });\r\n if (params.sortAsc === false) {\r\n result.reverse();\r\n }\r\n }\r\n if (params.offset !== undefined) {\r\n if (params.limit === undefined) {\r\n result = result.slice(params.offset, result.length);\r\n } else {\r\n result = result.slice(params.offset, params.offset + params.limit);\r\n }\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(result));\r\n });\r\n }\r\n\r\n count(): Promise {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(this.items.length));\r\n });\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/cell-callback.type.js b/dist/types/cell-callback.type.js index 6dca955..d038872 100644 --- a/dist/types/cell-callback.type.js +++ b/dist/types/cell-callback.type.js @@ -1,2 +1,3 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/cell-callback.type.js.map \ No newline at end of file diff --git a/dist/types/cell-callback.type.js.map b/dist/types/cell-callback.type.js.map index 9da68eb..3a5977f 100644 --- a/dist/types/cell-callback.type.js.map +++ b/dist/types/cell-callback.type.js.map @@ -1 +1 @@ -{"version":3,"file":"cell-callback.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/cell-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\nimport { DataTableColumn } from '../components/column.component';\r\n\r\nexport type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string;\r\n"]} \ No newline at end of file +{"version":3,"file":"cell-callback.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/cell-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\nimport { DataTableColumn } from '../components/column.component';\r\n\r\nexport type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-params.type.js b/dist/types/data-table-params.type.js index f017da5..84d6b65 100644 --- a/dist/types/data-table-params.type.js +++ b/dist/types/data-table-params.type.js @@ -1,2 +1,3 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/data-table-params.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-params.type.js.map b/dist/types/data-table-params.type.js.map index 04ce667..aa24bf1 100644 --- a/dist/types/data-table-params.type.js.map +++ b/dist/types/data-table-params.type.js.map @@ -1 +1 @@ -{"version":3,"file":"data-table-params.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/data-table-params.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableParams {\r\n offset?: number;\r\n limit?: number;\r\n sortBy?: string;\r\n sortAsc?: boolean;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"data-table-params.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/data-table-params.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableParams {\r\n offset?: number;\r\n limit?: number;\r\n sortBy?: string;\r\n sortAsc?: boolean;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-translations.type.js b/dist/types/data-table-translations.type.js index bf0eb79..4c2d1f7 100644 --- a/dist/types/data-table-translations.type.js +++ b/dist/types/data-table-translations.type.js @@ -1,2 +1,3 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/data-table-translations.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-translations.type.js.map b/dist/types/data-table-translations.type.js.map index a91d54e..eb7779d 100644 --- a/dist/types/data-table-translations.type.js.map +++ b/dist/types/data-table-translations.type.js.map @@ -1 +1 @@ -{"version":3,"file":"data-table-translations.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/data-table-translations.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableTranslations {\r\n indexColumn: string;\r\n selectColumn: string;\r\n expandColumn: string;\r\n paginationLimit: string;\r\n paginationRange: string;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"data-table-translations.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/data-table-translations.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableTranslations {\r\n indexColumn: string;\r\n selectColumn: string;\r\n expandColumn: string;\r\n paginationLimit: string;\r\n paginationRange: string;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/default-translations.type.js b/dist/types/default-translations.type.js index 75d64cc..15392c9 100644 --- a/dist/types/default-translations.type.js +++ b/dist/types/default-translations.type.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultTranslations = { indexColumn: 'index', selectColumn: 'select', diff --git a/dist/types/default-translations.type.js.map b/dist/types/default-translations.type.js.map index 20a7f23..48b6d4a 100644 --- a/dist/types/default-translations.type.js.map +++ b/dist/types/default-translations.type.js.map @@ -1 +1 @@ -{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file +{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";;AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file diff --git a/dist/types/row-callback.type.js b/dist/types/row-callback.type.js index 1283a95..d340a99 100644 --- a/dist/types/row-callback.type.js +++ b/dist/types/row-callback.type.js @@ -1,2 +1,3 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=/types/row-callback.type.js.map \ No newline at end of file diff --git a/dist/types/row-callback.type.js.map b/dist/types/row-callback.type.js.map index 8bd7958..211514d 100644 --- a/dist/types/row-callback.type.js.map +++ b/dist/types/row-callback.type.js.map @@ -1 +1 @@ -{"version":3,"file":"row-callback.type.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/types/row-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\n\r\nexport type RowCallback = (item: any, row: DataTableRow, index: number) => string;\r\n"]} \ No newline at end of file +{"version":3,"file":"row-callback.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/row-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\n\r\nexport type RowCallback = (item: any, row: DataTableRow, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/utils/drag.js b/dist/utils/drag.js index 2c72536..089185c 100644 --- a/dist/utils/drag.js +++ b/dist/utils/drag.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); function drag(event, _a) { var move = _a.move, up = _a.up; var startX = event.pageX; diff --git a/dist/utils/drag.js.map b/dist/utils/drag.js.map index e89d4d2..1a7a2f6 100644 --- a/dist/utils/drag.js.map +++ b/dist/utils/drag.js.map @@ -1 +1 @@ -{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";;AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/hide.js b/dist/utils/hide.js index b7557e8..5cbd3ad 100644 --- a/dist/utils/hide.js +++ b/dist/utils/hide.js @@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); function isBlank(obj) { return obj === undefined || obj === null; diff --git a/dist/utils/hide.js.map b/dist/utils/hide.js.map index b10ffc3..9beaa4d 100644 --- a/dist/utils/hide.js.map +++ b/dist/utils/hide.js.map @@ -1 +1 @@ -{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD,IAAa,IAAI;IAKf,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,IAAI;IADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;qCAMjB,iBAAU,EAAqB,eAAQ;GAL7D,IAAI,CA2BhB;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD,IAAa,IAAI;IAKf,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,IAAI;IADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;qCAMjB,iBAAU,EAAqB,eAAQ;GAL7D,IAAI,CA2BhB;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/min.js b/dist/utils/min.js index 0da7f92..6cafcf5 100644 --- a/dist/utils/min.js +++ b/dist/utils/min.js @@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var MinPipe = (function () { function MinPipe() { diff --git a/dist/utils/min.js.map b/dist/utils/min.js.map index 2219c9a..11a168f 100644 --- a/dist/utils/min.js.map +++ b/dist/utils/min.js.map @@ -1 +1 @@ -{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;AAAA,sCAAoD;AAMpD,IAAa,OAAO;IAApB;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACH,cAAC;AAAD,CAAC,AAJD,IAIC;AAJY,OAAO;IAHnB,WAAI,CAAC;QACJ,IAAI,EAAE,KAAK;KACZ,CAAC;GACW,OAAO,CAInB;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD,IAAa,OAAO;IAApB;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACH,cAAC;AAAD,CAAC,AAJD,IAIC;AAJY,OAAO;IAHnB,WAAI,CAAC;QACJ,IAAI,EAAE,KAAK;KACZ,CAAC;GACW,OAAO,CAInB;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/px.js b/dist/utils/px.js index d33c1db..6bc3077 100644 --- a/dist/utils/px.js +++ b/dist/utils/px.js @@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; +Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var PixelConverter = (function () { function PixelConverter() { diff --git a/dist/utils/px.js.map b/dist/utils/px.js.map index bd1ccf2..ecd2733 100644 --- a/dist/utils/px.js.map +++ b/dist/utils/px.js.map @@ -1 +1 @@ -{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/projects/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;AAAA,sCAAoD;AAMpD,IAAa,cAAc;IAA3B;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,cAAc;IAH1B,WAAI,CAAC;QACJ,IAAI,EAAE,IAAI;KACX,CAAC;GACW,cAAc,CAY1B;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD,IAAa,cAAc;IAA3B;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,cAAc;IAH1B,WAAI,CAAC;QACJ,IAAI,EAAE,IAAI;KACX,CAAC;GACW,cAAc,CAY1B;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..5ee377f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,277 @@ +{ + "name": "angular-4-data-table", + "version": "0.2.003", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular/common": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.4.6.tgz", + "integrity": "sha1-S4FCByTggooOg5uVpV6xp+g5GPI=", + "requires": { + "tslib": "1.8.0" + } + }, + "@angular/core": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.4.6.tgz", + "integrity": "sha1-EwMf0Q3P5DiHVBmzjyESCVi8I1Q=", + "requires": { + "tslib": "1.8.0" + } + }, + "@angular/forms": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.4.6.tgz", + "integrity": "sha1-/mSs5CQ1wbgPSQNLfEHOjK8UpEo=", + "requires": { + "tslib": "1.8.0" + } + }, + "@angular/platform-browser": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.4.6.tgz", + "integrity": "sha1-qYOcVH4bZU+h0kqJeAyLpquNzOA=", + "requires": { + "tslib": "1.8.0" + } + }, + "@types/node": { + "version": "6.0.92", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.92.tgz", + "integrity": "sha512-awEYSSTn7dauwVCYSx2CJaPTu0Z1Ht2oR1b2AD3CYao6ZRb+opb6EL43fzmD7eMFgMHzTBWSUzlWSD+S8xN0Nw==" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "diff": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==" + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "make-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", + "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=" + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "rxjs": { + "version": "http://registry.npmjs.org/rxjs/-/rxjs-5.4.2.tgz", + "integrity": "sha1-KjI2/L8D31e64G/Wly/ZnlwI/Pc=", + "requires": { + "symbol-observable": "http://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "0.5.7" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "symbol-observable": { + "version": "http://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" + }, + "ts-node": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-2.0.0.tgz", + "integrity": "sha1-FuT+zJSQiCOLTL8cOclYJSa2b3Q=", + "requires": { + "arrify": "1.0.1", + "chalk": "1.1.3", + "diff": "3.4.0", + "make-error": "1.3.0", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "pinkie": "2.0.4", + "source-map-support": "0.4.18", + "tsconfig": "5.0.3", + "v8flags": "2.1.1", + "xtend": "4.0.1", + "yn": "1.3.0" + } + }, + "tsconfig": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", + "integrity": "sha1-X0J45wGACWeo/Dg/0ZZIh48qbjo=", + "requires": { + "any-promise": "1.3.0", + "parse-json": "2.2.0", + "strip-bom": "2.0.0", + "strip-json-comments": "2.0.1" + } + }, + "tslib": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.8.0.tgz", + "integrity": "sha512-ymKWWZJST0/CkgduC2qkzjMOWr4bouhuURNXCn/inEX0L57BnRG6FhX76o7FOnsjHazCjfU2LKeSrlS2sIKQJg==" + }, + "typescript": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.1.5.tgz", + "integrity": "sha1-b+lHngDgGFUkfOohbnVhuvzbzUo=" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "1.1.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "yn": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-1.3.0.tgz", + "integrity": "sha1-GwgSq7jYBdSJZvjfOF3J2syaGdg=", + "requires": { + "object-assign": "4.1.1" + } + }, + "zone.js": { + "version": "0.8.18", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.18.tgz", + "integrity": "sha512-knKOBQM0oea3/x9pdyDuDi7RhxDlJhOIkeixXSiTKWLgs4LpK37iBc+1HaHwzlciHUKT172CymJFKo8Xgh+44Q==" + } + } +} diff --git a/package.json b/package.json index 156bff5..8f7111c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.2.003", + "version": "0.2.004", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", @@ -27,6 +27,9 @@ "devDependencies": {}, "dependencies": { "@angular/core": "^4.0.0", + "@angular/common": "^4.0.1", + "@angular/forms": "^4.0.1", + "@angular/platform-browser": "^4.0.1", "@types/node": "~6.0.60", "rxjs": "^5.1.0", "ts-node": "~2.0.0", diff --git a/src/components/header.component.ts b/src/components/header.component.ts index 6644b3b..b4591fe 100644 --- a/src/components/header.component.ts +++ b/src/components/header.component.ts @@ -5,7 +5,7 @@ import { HEADER_STYLE } from "./header.style"; @Component({ - moduleId: module.id, + moduleId: module.id, selector: 'data-table-header', template: HEADER_TEMPLATE, styles: [HEADER_STYLE], From 6d7dfed6a37b40d17b367a50b686b616aa7433cf Mon Sep 17 00:00:00 2001 From: Mit9 Date: Thu, 23 Nov 2017 14:56:09 +0200 Subject: [PATCH 23/41] update git ignore --- .gitignore | 3 +- package-lock.json | 277 ---------------------------------------------- 2 files changed, 2 insertions(+), 278 deletions(-) delete mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index 2179a3b..5754d02 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ /node_modules /.idea /typings -npm-debug.log \ No newline at end of file +npm-debug.log +package-lock.json \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 5ee377f..0000000 --- a/package-lock.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "name": "angular-4-data-table", - "version": "0.2.003", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@angular/common": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.4.6.tgz", - "integrity": "sha1-S4FCByTggooOg5uVpV6xp+g5GPI=", - "requires": { - "tslib": "1.8.0" - } - }, - "@angular/core": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.4.6.tgz", - "integrity": "sha1-EwMf0Q3P5DiHVBmzjyESCVi8I1Q=", - "requires": { - "tslib": "1.8.0" - } - }, - "@angular/forms": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.4.6.tgz", - "integrity": "sha1-/mSs5CQ1wbgPSQNLfEHOjK8UpEo=", - "requires": { - "tslib": "1.8.0" - } - }, - "@angular/platform-browser": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.4.6.tgz", - "integrity": "sha1-qYOcVH4bZU+h0kqJeAyLpquNzOA=", - "requires": { - "tslib": "1.8.0" - } - }, - "@types/node": { - "version": "6.0.92", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.92.tgz", - "integrity": "sha512-awEYSSTn7dauwVCYSx2CJaPTu0Z1Ht2oR1b2AD3CYao6ZRb+opb6EL43fzmD7eMFgMHzTBWSUzlWSD+S8xN0Nw==" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "diff": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", - "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==" - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "requires": { - "is-arrayish": "0.2.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "make-error": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", - "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=" - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "1.3.1" - } - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "rxjs": { - "version": "http://registry.npmjs.org/rxjs/-/rxjs-5.4.2.tgz", - "integrity": "sha1-KjI2/L8D31e64G/Wly/ZnlwI/Pc=", - "requires": { - "symbol-observable": "http://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "0.5.7" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "symbol-observable": { - "version": "http://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", - "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" - }, - "ts-node": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-2.0.0.tgz", - "integrity": "sha1-FuT+zJSQiCOLTL8cOclYJSa2b3Q=", - "requires": { - "arrify": "1.0.1", - "chalk": "1.1.3", - "diff": "3.4.0", - "make-error": "1.3.0", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "pinkie": "2.0.4", - "source-map-support": "0.4.18", - "tsconfig": "5.0.3", - "v8flags": "2.1.1", - "xtend": "4.0.1", - "yn": "1.3.0" - } - }, - "tsconfig": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", - "integrity": "sha1-X0J45wGACWeo/Dg/0ZZIh48qbjo=", - "requires": { - "any-promise": "1.3.0", - "parse-json": "2.2.0", - "strip-bom": "2.0.0", - "strip-json-comments": "2.0.1" - } - }, - "tslib": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.8.0.tgz", - "integrity": "sha512-ymKWWZJST0/CkgduC2qkzjMOWr4bouhuURNXCn/inEX0L57BnRG6FhX76o7FOnsjHazCjfU2LKeSrlS2sIKQJg==" - }, - "typescript": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.1.5.tgz", - "integrity": "sha1-b+lHngDgGFUkfOohbnVhuvzbzUo=" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "1.1.1" - } - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "yn": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-1.3.0.tgz", - "integrity": "sha1-GwgSq7jYBdSJZvjfOF3J2syaGdg=", - "requires": { - "object-assign": "4.1.1" - } - }, - "zone.js": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.18.tgz", - "integrity": "sha512-knKOBQM0oea3/x9pdyDuDi7RhxDlJhOIkeixXSiTKWLgs4LpK37iBc+1HaHwzlciHUKT172CymJFKo8Xgh+44Q==" - } - } -} From 6edaae3c0d699c146ddc7b2247d983f4ba01b114 Mon Sep 17 00:00:00 2001 From: Mit9 Date: Mon, 27 Nov 2017 12:21:53 +0200 Subject: [PATCH 24/41] update dist --- dist/components/column.component.d.ts | 19 - dist/components/column.component.js | 92 ---- dist/components/column.component.js.map | 1 - dist/components/header.component.d.ts | 7 - dist/components/header.component.js | 43 -- dist/components/header.component.js.map | 1 - dist/components/header.style.d.ts | 1 - dist/components/header.style.js | 4 - dist/components/header.style.js.map | 1 - dist/components/header.template.d.ts | 1 - dist/components/header.template.js | 4 - dist/components/header.template.js.map | 1 - dist/components/pagination.component.d.ts | 20 - dist/components/pagination.component.js | 131 ----- dist/components/pagination.component.js.map | 1 - dist/components/pagination.style.d.ts | 1 - dist/components/pagination.style.js | 4 - dist/components/pagination.style.js.map | 1 - dist/components/pagination.template.d.ts | 1 - dist/components/pagination.template.js | 4 - dist/components/pagination.template.js.map | 1 - dist/components/row.component.d.ts | 16 - dist/components/row.component.js | 83 --- dist/components/row.component.js.map | 1 - dist/components/row.style.d.ts | 1 - dist/components/row.style.js | 4 - dist/components/row.style.js.map | 1 - dist/components/row.template.d.ts | 1 - dist/components/row.template.js | 4 - dist/components/row.template.js.map | 1 - dist/components/table.component.d.ts | 83 --- dist/components/table.component.js | 478 ------------------ dist/components/table.component.js.map | 1 - dist/components/table.style.d.ts | 1 - dist/components/table.style.js | 4 - dist/components/table.style.js.map | 1 - dist/components/table.template.d.ts | 1 - dist/components/table.template.js | 4 - dist/components/table.template.js.map | 1 - dist/index.d.ts | 15 - dist/index.js | 49 -- dist/index.js.map | 1 - dist/tools/data-table-resource.d.ts | 7 - dist/tools/data-table-resource.js | 49 -- dist/tools/data-table-resource.js.map | 1 - dist/types/cell-callback.type.d.ts | 3 - dist/types/cell-callback.type.js | 3 - dist/types/cell-callback.type.js.map | 1 - dist/types/data-table-params.type.d.ts | 6 - dist/types/data-table-params.type.js | 3 - dist/types/data-table-params.type.js.map | 1 - dist/types/data-table-translations.type.d.ts | 7 - dist/types/data-table-translations.type.js | 3 - .../types/data-table-translations.type.js.map | 1 - dist/types/default-translations.type.d.ts | 2 - dist/types/default-translations.type.js | 10 - dist/types/default-translations.type.js.map | 1 - dist/types/row-callback.type.d.ts | 2 - dist/types/row-callback.type.js | 3 - dist/types/row-callback.type.js.map | 1 - dist/utils/drag.d.ts | 6 - dist/utils/drag.js | 32 -- dist/utils/drag.js.map | 1 - dist/utils/hide.d.ts | 10 - dist/utils/hide.js | 52 -- dist/utils/hide.js.map | 1 - dist/utils/min.d.ts | 4 - dist/utils/min.js | 24 - dist/utils/min.js.map | 1 - dist/utils/px.d.ts | 4 - dist/utils/px.js | 32 -- dist/utils/px.js.map | 1 - 72 files changed, 1362 deletions(-) delete mode 100644 dist/components/column.component.d.ts delete mode 100644 dist/components/column.component.js delete mode 100644 dist/components/column.component.js.map delete mode 100644 dist/components/header.component.d.ts delete mode 100644 dist/components/header.component.js delete mode 100644 dist/components/header.component.js.map delete mode 100644 dist/components/header.style.d.ts delete mode 100644 dist/components/header.style.js delete mode 100644 dist/components/header.style.js.map delete mode 100644 dist/components/header.template.d.ts delete mode 100644 dist/components/header.template.js delete mode 100644 dist/components/header.template.js.map delete mode 100644 dist/components/pagination.component.d.ts delete mode 100644 dist/components/pagination.component.js delete mode 100644 dist/components/pagination.component.js.map delete mode 100644 dist/components/pagination.style.d.ts delete mode 100644 dist/components/pagination.style.js delete mode 100644 dist/components/pagination.style.js.map delete mode 100644 dist/components/pagination.template.d.ts delete mode 100644 dist/components/pagination.template.js delete mode 100644 dist/components/pagination.template.js.map delete mode 100644 dist/components/row.component.d.ts delete mode 100644 dist/components/row.component.js delete mode 100644 dist/components/row.component.js.map delete mode 100644 dist/components/row.style.d.ts delete mode 100644 dist/components/row.style.js delete mode 100644 dist/components/row.style.js.map delete mode 100644 dist/components/row.template.d.ts delete mode 100644 dist/components/row.template.js delete mode 100644 dist/components/row.template.js.map delete mode 100644 dist/components/table.component.d.ts delete mode 100644 dist/components/table.component.js delete mode 100644 dist/components/table.component.js.map delete mode 100644 dist/components/table.style.d.ts delete mode 100644 dist/components/table.style.js delete mode 100644 dist/components/table.style.js.map delete mode 100644 dist/components/table.template.d.ts delete mode 100644 dist/components/table.template.js delete mode 100644 dist/components/table.template.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 dist/tools/data-table-resource.d.ts delete mode 100644 dist/tools/data-table-resource.js delete mode 100644 dist/tools/data-table-resource.js.map delete mode 100644 dist/types/cell-callback.type.d.ts delete mode 100644 dist/types/cell-callback.type.js delete mode 100644 dist/types/cell-callback.type.js.map delete mode 100644 dist/types/data-table-params.type.d.ts delete mode 100644 dist/types/data-table-params.type.js delete mode 100644 dist/types/data-table-params.type.js.map delete mode 100644 dist/types/data-table-translations.type.d.ts delete mode 100644 dist/types/data-table-translations.type.js delete mode 100644 dist/types/data-table-translations.type.js.map delete mode 100644 dist/types/default-translations.type.d.ts delete mode 100644 dist/types/default-translations.type.js delete mode 100644 dist/types/default-translations.type.js.map delete mode 100644 dist/types/row-callback.type.d.ts delete mode 100644 dist/types/row-callback.type.js delete mode 100644 dist/types/row-callback.type.js.map delete mode 100644 dist/utils/drag.d.ts delete mode 100644 dist/utils/drag.js delete mode 100644 dist/utils/drag.js.map delete mode 100644 dist/utils/hide.d.ts delete mode 100644 dist/utils/hide.js delete mode 100644 dist/utils/hide.js.map delete mode 100644 dist/utils/min.d.ts delete mode 100644 dist/utils/min.js delete mode 100644 dist/utils/min.js.map delete mode 100644 dist/utils/px.d.ts delete mode 100644 dist/utils/px.js delete mode 100644 dist/utils/px.js.map diff --git a/dist/components/column.component.d.ts b/dist/components/column.component.d.ts deleted file mode 100644 index f71c9ef..0000000 --- a/dist/components/column.component.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { OnInit } from '@angular/core'; -import { DataTableRow } from './row.component'; -import { CellCallback } from '../types/cell-callback.type'; -export declare class DataTableColumn implements OnInit { - header: string; - sortable: boolean; - resizable: boolean; - property: string; - styleClass: string; - cellColors: CellCallback; - width: number | string; - visible: boolean; - cellTemplate: any; - headerTemplate: any; - getCellColor(row: DataTableRow, index: number): string; - private styleClassObject; - ngOnInit(): void; - private _initCellClass(); -} diff --git a/dist/components/column.component.js b/dist/components/column.component.js deleted file mode 100644 index c43a7b8..0000000 --- a/dist/components/column.component.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var DataTableColumn = (function () { - function DataTableColumn() { - this.sortable = false; - this.resizable = false; - this.visible = true; - this.styleClassObject = {}; // for [ngClass] - } - DataTableColumn.prototype.getCellColor = function (row, index) { - if (this.cellColors !== undefined) { - return this.cellColors(row.item, row, this, index); - } - }; - DataTableColumn.prototype.ngOnInit = function () { - this._initCellClass(); - }; - DataTableColumn.prototype._initCellClass = function () { - if (!this.styleClass && this.property) { - if (/^[a-zA-Z0-9_]+$/.test(this.property)) { - this.styleClass = 'column-' + this.property; - } - else { - this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, ''); - } - } - if (this.styleClass != null) { - this.styleClassObject = (_a = {}, - _a[this.styleClass] = true, - _a); - } - var _a; - }; - return DataTableColumn; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTableColumn.prototype, "header", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "sortable", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "resizable", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTableColumn.prototype, "property", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTableColumn.prototype, "styleClass", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Function) -], DataTableColumn.prototype, "cellColors", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "visible", void 0); -__decorate([ - core_1.ContentChild('dataTableCell'), - __metadata("design:type", Object) -], DataTableColumn.prototype, "cellTemplate", void 0); -__decorate([ - core_1.ContentChild('dataTableHeader'), - __metadata("design:type", Object) -], DataTableColumn.prototype, "headerTemplate", void 0); -DataTableColumn = __decorate([ - core_1.Directive({ - selector: 'data-table-column' - }) -], DataTableColumn); -exports.DataTableColumn = DataTableColumn; -//# sourceMappingURL=/components/column.component.js.map \ No newline at end of file diff --git a/dist/components/column.component.js.map b/dist/components/column.component.js.map deleted file mode 100644 index bdaf408..0000000 --- a/dist/components/column.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAuE;AAQvE,IAAa,eAAe;IAH5B;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IACL,sBAAC;AAAD,CAAC,AA5CD,IA4CC;AAzCY;IAAR,YAAK,EAAE;;+CAAgB;AACf;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;kDAAmB;AAClB;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;mDAAoB;AACnB;IAAR,YAAK,EAAE;;mDAA0B;AAGzB;IAAR,YAAK,EAAE;;8CAAwB;AACvB;IAAR,YAAK,EAAE;;gDAAgB;AAEO;IAA9B,mBAAY,CAAC,eAAe,CAAC;;qDAAc;AACX;IAAhC,mBAAY,CAAC,iBAAiB,CAAC;;uDAAgB;AAfvC,eAAe;IAH3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;GACW,eAAe,CA4C3B;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\r\nimport { DataTableRow } from './row.component';\r\nimport { CellCallback } from '../types/cell-callback.type';\r\n\r\n\r\n@Directive({\r\n selector: 'data-table-column'\r\n})\r\nexport class DataTableColumn implements OnInit {\r\n\r\n // init:\r\n @Input() header: string;\r\n @Input() sortable = false;\r\n @Input() resizable = false;\r\n @Input() property: string;\r\n @Input() styleClass: string;\r\n @Input() cellColors: CellCallback;\r\n\r\n // init and state:\r\n @Input() width: number | string;\r\n @Input() visible = true;\r\n\r\n @ContentChild('dataTableCell') cellTemplate;\r\n @ContentChild('dataTableHeader') headerTemplate;\r\n\r\n getCellColor(row: DataTableRow, index: number) {\r\n if (this.cellColors !== undefined) {\r\n return (this.cellColors)(row.item, row, this, index);\r\n }\r\n }\r\n\r\n private styleClassObject = {}; // for [ngClass]\r\n\r\n ngOnInit() {\r\n this._initCellClass();\r\n }\r\n\r\n private _initCellClass() {\r\n if (!this.styleClass && this.property) {\r\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\r\n this.styleClass = 'column-' + this.property;\r\n } else {\r\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\r\n }\r\n }\r\n\r\n if (this.styleClass != null) {\r\n this.styleClassObject = {\r\n [this.styleClass]: true\r\n };\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.component.d.ts b/dist/components/header.component.d.ts deleted file mode 100644 index 775b7e3..0000000 --- a/dist/components/header.component.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { DataTable } from './table.component'; -export declare class DataTableHeader { - dataTable: DataTable; - columnSelectorOpen: boolean; - _closeSelector(): void; - constructor(dataTable: DataTable); -} diff --git a/dist/components/header.component.js b/dist/components/header.component.js deleted file mode 100644 index b038dd6..0000000 --- a/dist/components/header.component.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -var __param = (this && this.__param) || function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var table_component_1 = require("./table.component"); -var header_template_1 = require("./header.template"); -var header_style_1 = require("./header.style"); -var DataTableHeader = (function () { - function DataTableHeader(dataTable) { - this.dataTable = dataTable; - this.columnSelectorOpen = false; - } - DataTableHeader.prototype._closeSelector = function () { - this.columnSelectorOpen = false; - }; - return DataTableHeader; -}()); -DataTableHeader = __decorate([ - core_1.Component({ - moduleId: module.id, - selector: 'data-table-header', - template: header_template_1.HEADER_TEMPLATE, - styles: [header_style_1.HEADER_STYLE], - host: { - '(document:click)': '_closeSelector()' - } - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) -], DataTableHeader); -exports.DataTableHeader = DataTableHeader; -//# sourceMappingURL=/components/header.component.js.map \ No newline at end of file diff --git a/dist/components/header.component.js.map b/dist/components/header.component.js.map deleted file mode 100644 index cd75439..0000000 --- a/dist/components/header.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAY9C,IAAa,eAAe;IAQxB,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAGL,sBAAC;AAAD,CAAC,AATD,IASC;AATY,eAAe;IAT3B,gBAAS,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,iCAAe;QACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;QACtB,IAAI,EAAE;YACJ,kBAAkB,EAAE,kBAAkB;SACvC;KACF,CAAC;IASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GARnE,eAAe,CAS3B;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { HEADER_TEMPLATE } from './header.template';\r\nimport { HEADER_STYLE } from \"./header.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table-header',\r\n template: HEADER_TEMPLATE,\r\n styles: [HEADER_STYLE],\r\n host: {\r\n '(document:click)': '_closeSelector()'\r\n }\r\n})\r\nexport class DataTableHeader {\r\n\r\n columnSelectorOpen = false;\r\n\r\n _closeSelector() {\r\n this.columnSelectorOpen = false;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.style.d.ts b/dist/components/header.style.d.ts deleted file mode 100644 index 33d53a7..0000000 --- a/dist/components/header.style.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const HEADER_STYLE: string; diff --git a/dist/components/header.style.js b/dist/components/header.style.js deleted file mode 100644 index 31662ea..0000000 --- a/dist/components/header.style.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HEADER_STYLE = "\n.data-table-header {\n min-height: 25px;\n margin-bottom: 10px;\n}\n.title {\n display: inline-block;\n margin: 5px 0 0 5px;\n}\n.button-panel {\n float: right;\n}\n.button-panel button {\n outline: none !important;\n}\n\n.column-selector-wrapper {\n position: relative;\n}\n.column-selector-box {\n box-shadow: 0 0 10px lightgray;\n width: 150px;\n padding: 10px;\n position: absolute;\n right: 0;\n top: 1px;\n z-index: 1060;\n}\n.column-selector-box .checkbox {\n margin-bottom: 4px;\n}\n.column-selector-fixed-column {\n font-style: italic;\n}\n"; -//# sourceMappingURL=/components/header.style.js.map \ No newline at end of file diff --git a/dist/components/header.style.js.map b/dist/components/header.style.js.map deleted file mode 100644 index 19ce67f..0000000 --- a/dist/components/header.style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\r\n.data-table-header {\r\n min-height: 25px;\r\n margin-bottom: 10px;\r\n}\r\n.title {\r\n display: inline-block;\r\n margin: 5px 0 0 5px;\r\n}\r\n.button-panel {\r\n float: right;\r\n}\r\n.button-panel button {\r\n outline: none !important;\r\n}\r\n\r\n.column-selector-wrapper {\r\n position: relative;\r\n}\r\n.column-selector-box {\r\n box-shadow: 0 0 10px lightgray;\r\n width: 150px;\r\n padding: 10px;\r\n position: absolute;\r\n right: 0;\r\n top: 1px;\r\n z-index: 1060;\r\n}\r\n.column-selector-box .checkbox {\r\n margin-bottom: 4px;\r\n}\r\n.column-selector-fixed-column {\r\n font-style: italic;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/header.template.d.ts b/dist/components/header.template.d.ts deleted file mode 100644 index 5564ae5..0000000 --- a/dist/components/header.template.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const HEADER_TEMPLATE: string; diff --git a/dist/components/header.template.js b/dist/components/header.template.js deleted file mode 100644 index d69a350..0000000 --- a/dist/components/header.template.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HEADER_TEMPLATE = "\n
\n

\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n"; -//# sourceMappingURL=/components/header.template.js.map \ No newline at end of file diff --git a/dist/components/header.template.js.map b/dist/components/header.template.js.map deleted file mode 100644 index a2b6e76..0000000 --- a/dist/components/header.template.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";;AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_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
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.component.d.ts b/dist/components/pagination.component.d.ts deleted file mode 100644 index 99ec794..0000000 --- a/dist/components/pagination.component.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { DataTable } from './table.component'; -export declare class DataTablePagination { - dataTable: DataTable; - show_range: boolean; - show_limit: boolean; - show_input: boolean; - show_numbers: boolean; - constructor(dataTable: DataTable); - pageBack(): void; - pageForward(): void; - pageFirst(): void; - pageLast(): void; - readonly maxPage: number; - limit: number; - page: number; - hasPrevious(number: any, page: any): boolean; - hasNext(number: any, page: any): boolean; - getDifference(): number; - createPageRange(number: any, page: any): any[]; -} diff --git a/dist/components/pagination.component.js b/dist/components/pagination.component.js deleted file mode 100644 index d632254..0000000 --- a/dist/components/pagination.component.js +++ /dev/null @@ -1,131 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -var __param = (this && this.__param) || function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var table_component_1 = require("./table.component"); -var pagination_template_1 = require("./pagination.template"); -var pagination_style_1 = require("./pagination.style"); -var DataTablePagination = (function () { - function DataTablePagination(dataTable) { - this.dataTable = dataTable; - this.show_range = false; - this.show_limit = false; - this.show_input = false; - this.show_numbers = true; - } - DataTablePagination.prototype.pageBack = function () { - this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset); - }; - DataTablePagination.prototype.pageForward = function () { - this.dataTable.offset += this.dataTable.limit; - }; - DataTablePagination.prototype.pageFirst = function () { - this.dataTable.offset = 0; - }; - DataTablePagination.prototype.pageLast = function () { - this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit; - }; - Object.defineProperty(DataTablePagination.prototype, "maxPage", { - get: function () { - return Math.ceil(this.dataTable.itemCount / this.dataTable.limit); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTablePagination.prototype, "limit", { - get: function () { - return this.dataTable.limit; - }, - set: function (value) { - this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string? - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTablePagination.prototype, "page", { - get: function () { - return this.dataTable.page; - }, - set: function (value) { - this.dataTable.page = Number(value); - }, - enumerable: true, - configurable: true - }); - DataTablePagination.prototype.hasPrevious = function (number, page) { - var difference = this.getDifference(); - if ((page - difference) > 1) { - return true; - } - return false; - }; - DataTablePagination.prototype.hasNext = function (number, page) { - var difference = this.getDifference(); - if ((number - page) > difference) { - return true; - } - return false; - }; - DataTablePagination.prototype.getDifference = function () { - var difference = 2; - return difference; - }; - DataTablePagination.prototype.createPageRange = function (number, page) { - var items = []; - if (number > 1) { - var difference = this.getDifference(); - var maxPage = number; - var minPage = 1; - if ((number - page) >= difference) { - maxPage = page + difference; - } - if ((page - difference) >= 1) { - minPage = page - difference; - } - for (var i = minPage; i <= maxPage; i++) { - items.push(i); - } - } - return items; - }; - return DataTablePagination; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTablePagination.prototype, "show_range", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTablePagination.prototype, "show_limit", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTablePagination.prototype, "show_input", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTablePagination.prototype, "show_numbers", void 0); -DataTablePagination = __decorate([ - core_1.Component({ - moduleId: module.id, - selector: 'data-table-pagination', - template: pagination_template_1.PAGINATION_TEMPLATE, - styles: [pagination_style_1.PAGINATION_STYLE] - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) -], DataTablePagination); -exports.DataTablePagination = DataTablePagination; -//# sourceMappingURL=/components/pagination.component.js.map \ No newline at end of file diff --git a/dist/components/pagination.component.js.map b/dist/components/pagination.component.js.map deleted file mode 100644 index 0adf3e0..0000000 --- a/dist/components/pagination.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {Component, Inject, forwardRef, Input} from '@angular/core';\r\nimport {DataTable} from './table.component';\r\nimport {PAGINATION_TEMPLATE} from './pagination.template';\r\nimport {PAGINATION_STYLE} from \"./pagination.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table-pagination',\r\n template: PAGINATION_TEMPLATE,\r\n styles: [PAGINATION_STYLE]\r\n})\r\nexport class DataTablePagination {\r\n\r\n @Input() show_range = false;\r\n @Input() show_limit = false;\r\n @Input() show_input = false;\r\n @Input() show_numbers = true;\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {\r\n }\r\n\r\n pageBack() {\r\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\r\n }\r\n\r\n pageForward() {\r\n this.dataTable.offset += this.dataTable.limit;\r\n }\r\n\r\n pageFirst() {\r\n this.dataTable.offset = 0;\r\n }\r\n\r\n pageLast() {\r\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\r\n }\r\n\r\n get maxPage() {\r\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\r\n }\r\n\r\n get limit() {\r\n return this.dataTable.limit;\r\n }\r\n\r\n set limit(value) {\r\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\r\n }\r\n\r\n get page() {\r\n return this.dataTable.page;\r\n }\r\n\r\n set page(value) {\r\n this.dataTable.page = Number(value);\r\n }\r\n\r\n hasPrevious(number, page) {\r\n const difference = this.getDifference();\r\n if ((page - difference) > 1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n hasNext(number, page) {\r\n const difference = this.getDifference();\r\n if ((number - page) > difference) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getDifference() {\r\n const difference = 2;\r\n return difference;\r\n }\r\n\r\n createPageRange(number, page): any[] {\r\n let items: number[] = [];\r\n if (number > 1) {\r\n const difference = this.getDifference();\r\n let maxPage = number;\r\n let minPage = 1;\r\n if ((number - page) >= difference) {\r\n maxPage = page + difference;\r\n }\r\n if ((page - difference) >= 1) {\r\n minPage = page - difference;\r\n }\r\n for (let i = minPage; i <= maxPage; i++) {\r\n items.push(i);\r\n }\r\n }\r\n return items;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/pagination.style.d.ts b/dist/components/pagination.style.d.ts deleted file mode 100644 index 6817e0c..0000000 --- a/dist/components/pagination.style.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const PAGINATION_STYLE: string; diff --git a/dist/components/pagination.style.js b/dist/components/pagination.style.js deleted file mode 100644 index 575da45..0000000 --- a/dist/components/pagination.style.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PAGINATION_STYLE = "\n.pagination-box {\n position: relative;\n margin-top: -10px;\n}\n.pagination-range {\n margin-top: 7px;\n margin-left: 3px;\n display: inline-block;\n}\n.pagination-controllers {\n float: right;\n}\n.pagination-controllers input {\n min-width: 60px;\n /*padding: 1px 0px 0px 5px;*/\n text-align: right;\n}\n\n.pagination-limit {\n margin-right: 25px;\n display: inline-table;\n width: 150px;\n}\n.pagination-pages {\n display: inline-block;\n}\n.pagination-page {\n width: 110px;\n display: inline-table;\n}\n.pagination-box button {\n outline: none !important;\n}\n.pagination-prevpage,\n.pagination-nextpage,\n.pagination-firstpage,\n.pagination-lastpage {\n vertical-align: top;\n}\n.pagination-reload {\n color: gray;\n font-size: 12px;\n}\n"; -//# sourceMappingURL=/components/pagination.style.js.map \ No newline at end of file diff --git a/dist/components/pagination.style.js.map b/dist/components/pagination.style.js.map deleted file mode 100644 index ab2456f..0000000 --- a/dist/components/pagination.style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";;AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.template.d.ts b/dist/components/pagination.template.d.ts deleted file mode 100644 index f3b5d1c..0000000 --- a/dist/components/pagination.template.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const PAGINATION_TEMPLATE: string; diff --git a/dist/components/pagination.template.js b/dist/components/pagination.template.js deleted file mode 100644 index 3b800fd..0000000 --- a/dist/components/pagination.template.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PAGINATION_TEMPLATE = "\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n
\n \n
\n \n \n \n
\n
\n
\n"; -//# sourceMappingURL=/components/pagination.template.js.map \ No newline at end of file diff --git a/dist/components/pagination.template.js.map b/dist/components/pagination.template.js.map deleted file mode 100644 index d918159..0000000 --- a/dist/components/pagination.template.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";;AAAa,QAAA,mBAAmB,GAAG,w6FA8ClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\r\n
\r\n
\r\n {{dataTable.translations.paginationRange}}:\r\n \r\n -\r\n \r\n /\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{dataTable.translations.paginationLimit}}:\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n /\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.component.d.ts b/dist/components/row.component.d.ts deleted file mode 100644 index 44dfa8e..0000000 --- a/dist/components/row.component.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { EventEmitter, OnDestroy } from '@angular/core'; -import { DataTable } from './table.component'; -export declare class DataTableRow implements OnDestroy { - dataTable: DataTable; - item: any; - index: number; - expanded: boolean; - private _selected; - selectedChange: EventEmitter<{}>; - selected: boolean; - readonly displayIndex: number; - getTooltip(): string; - constructor(dataTable: DataTable); - ngOnDestroy(): void; - private _this; -} diff --git a/dist/components/row.component.js b/dist/components/row.component.js deleted file mode 100644 index 6be4999..0000000 --- a/dist/components/row.component.js +++ /dev/null @@ -1,83 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -var __param = (this && this.__param) || function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var table_component_1 = require("./table.component"); -var row_template_1 = require("./row.template"); -var row_style_1 = require("./row.style"); -var DataTableRow = (function () { - function DataTableRow(dataTable) { - this.dataTable = dataTable; - this.selectedChange = new core_1.EventEmitter(); - this._this = this; // FIXME is there no template keyword for this in angular 2? - } - Object.defineProperty(DataTableRow.prototype, "selected", { - get: function () { - return this._selected; - }, - set: function (selected) { - this._selected = selected; - this.selectedChange.emit(selected); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTableRow.prototype, "displayIndex", { - // other: - get: function () { - if (this.dataTable.pagination) { - return this.dataTable.displayParams.offset + this.index + 1; - } - else { - return this.index + 1; - } - }, - enumerable: true, - configurable: true - }); - DataTableRow.prototype.getTooltip = function () { - if (this.dataTable.rowTooltip) { - return this.dataTable.rowTooltip(this.item, this, this.index); - } - return ''; - }; - DataTableRow.prototype.ngOnDestroy = function () { - this.selected = false; - }; - return DataTableRow; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableRow.prototype, "item", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], DataTableRow.prototype, "index", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTableRow.prototype, "selectedChange", void 0); -DataTableRow = __decorate([ - core_1.Component({ - moduleId: module.id, - selector: '[dataTableRow]', - template: row_template_1.ROW_TEMPLATE, - styles: [row_style_1.ROW_STYLE] - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) -], DataTableRow); -exports.DataTableRow = DataTableRow; -//# sourceMappingURL=/components/row.component.js.map \ No newline at end of file diff --git a/dist/components/row.component.js.map b/dist/components/row.component.js.map deleted file mode 100644 index 6ffb8b1..0000000 --- a/dist/components/row.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AASxC,IAAa,YAAY;IAuCrB,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAGL,mBAAC;AAAD,CAAC,AA9CD,IA8CC;AA5CY;IAAR,YAAK,EAAE;;0CAAW;AACV;IAAR,YAAK,EAAE;;2CAAe;AAQb;IAAT,aAAM,EAAE;;oDAAqC;AAXrC,YAAY;IANxB,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,2BAAY;QACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;KACtB,CAAC;IAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAvCnE,YAAY,CA8CxB;AA9CY,oCAAY","sourcesContent":["import {\r\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\r\n} from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { ROW_TEMPLATE } from './row.template';\r\nimport { ROW_STYLE } from \"./row.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: '[dataTableRow]',\r\n template: ROW_TEMPLATE,\r\n styles: [ROW_STYLE]\r\n})\r\nexport class DataTableRow implements OnDestroy {\r\n\r\n @Input() item: any;\r\n @Input() index: number;\r\n\r\n expanded: boolean;\r\n\r\n // row selection:\r\n\r\n private _selected: boolean;\r\n\r\n @Output() selectedChange = new EventEmitter();\r\n\r\n get selected() {\r\n return this._selected;\r\n }\r\n\r\n set selected(selected) {\r\n this._selected = selected;\r\n this.selectedChange.emit(selected);\r\n }\r\n\r\n // other:\r\n\r\n get displayIndex() {\r\n if (this.dataTable.pagination) {\r\n return this.dataTable.displayParams.offset + this.index + 1;\r\n } else {\r\n return this.index + 1;\r\n }\r\n }\r\n\r\n getTooltip() {\r\n if (this.dataTable.rowTooltip) {\r\n return this.dataTable.rowTooltip(this.item, this, this.index);\r\n }\r\n return '';\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n ngOnDestroy() {\r\n this.selected = false;\r\n }\r\n\r\n private _this = this; // FIXME is there no template keyword for this in angular 2?\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/row.style.d.ts b/dist/components/row.style.d.ts deleted file mode 100644 index 8024ce7..0000000 --- a/dist/components/row.style.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const ROW_STYLE: string; diff --git a/dist/components/row.style.js b/dist/components/row.style.js deleted file mode 100644 index f1eaa30..0000000 --- a/dist/components/row.style.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ROW_STYLE = "\n.select-column {\n text-align: center;\n}\n\n.row-expand-button {\n cursor: pointer;\n text-align: center;\n}\n\n.clickable {\n cursor: pointer;\n}\n"; -//# sourceMappingURL=/components/row.style.js.map \ No newline at end of file diff --git a/dist/components/row.style.js.map b/dist/components/row.style.js.map deleted file mode 100644 index e936027..0000000 --- a/dist/components/row.style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";;AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.template.d.ts b/dist/components/row.template.d.ts deleted file mode 100644 index 04ff0ae..0000000 --- a/dist/components/row.template.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const ROW_TEMPLATE: string; diff --git a/dist/components/row.template.js b/dist/components/row.template.js deleted file mode 100644 index d959c09..0000000 --- a/dist/components/row.template.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ROW_TEMPLATE = "\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n\n\n \n
\n \n\n"; -//# sourceMappingURL=/components/row.template.js.map \ No newline at end of file diff --git a/dist/components/row.template.js.map b/dist/components/row.template.js.map deleted file mode 100644 index 48a3fff..0000000 --- a/dist/components/row.template.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_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\r\n\r\n \r\n
\r\n \r\n\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.component.d.ts b/dist/components/table.component.d.ts deleted file mode 100644 index 43b7bd3..0000000 --- a/dist/components/table.component.d.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { EventEmitter, QueryList, TemplateRef, OnInit } from '@angular/core'; -import { DataTableColumn } from './column.component'; -import { DataTableRow } from './row.component'; -import { DataTableParams } from '../types/data-table-params.type'; -import { RowCallback } from '../types/row-callback.type'; -import { DataTableTranslations } from '../types/data-table-translations.type'; -export declare class DataTable implements DataTableParams, OnInit { - private _items; - items: any[]; - itemCount: number; - columns: QueryList; - rows: QueryList; - expandTemplate: TemplateRef; - headerTitle: string; - header: boolean; - pagination: boolean; - pagination_range: boolean; - pagination_limit: boolean; - pagination_input: boolean; - pagination_numbers: boolean; - indexColumn: boolean; - indexColumnHeader: string; - rowColors: RowCallback; - rowTooltip: RowCallback; - selectColumn: boolean; - multiSelect: boolean; - substituteRows: boolean; - expandableRows: boolean; - translations: DataTableTranslations; - selectOnRowClick: boolean; - autoReload: boolean; - showReloading: boolean; - indexColumnVisible: boolean; - selectColumnVisible: boolean; - expandColumnVisible: boolean; - private _sortBy; - private _sortAsc; - private _offset; - private _limit; - sortBy: string; - sortAsc: boolean; - offset: number; - limit: number; - page: number; - readonly lastPage: number; - sort(sortBy: string, asc: boolean): void; - ngOnInit(): void; - private _initDefaultValues(); - private _initDefaultClickEvents(); - _reloading: boolean; - readonly reloading: boolean; - reload: EventEmitter<{}>; - reloadItems(): void; - private _onReloadFinished(); - _displayParams: DataTableParams; - readonly displayParams: DataTableParams; - _updateDisplayParams(): void; - _scheduledReload: any; - _triggerReload(): void; - rowClick: EventEmitter<{}>; - rowDoubleClick: EventEmitter<{}>; - headerClick: EventEmitter<{}>; - cellClick: EventEmitter<{}>; - private rowClicked(row, event); - private rowDoubleClicked(row, event); - private headerClicked(column, event); - private cellClicked(column, row, event); - private _getRemoteParameters(); - private sortColumn(column); - readonly columnCount: number; - private getRowColor(item, index, row); - selectedRow: DataTableRow; - selectedRows: DataTableRow[]; - private _selectAllCheckbox; - selectAllCheckbox: boolean; - private _onSelectAllChanged(value); - onRowSelectChanged(row: DataTableRow): void; - readonly substituteItems: {}[]; - private _resizeInProgress; - private resizeColumnStart(event, column, columnElement); - resizeLimit: number; - private _isResizeInLimit(columnElement, dx); -} diff --git a/dist/components/table.component.js b/dist/components/table.component.js deleted file mode 100644 index c268489..0000000 --- a/dist/components/table.component.js +++ /dev/null @@ -1,478 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var column_component_1 = require("./column.component"); -var row_component_1 = require("./row.component"); -var default_translations_type_1 = require("../types/default-translations.type"); -var drag_1 = require("../utils/drag"); -var table_template_1 = require("./table.template"); -var table_style_1 = require("./table.style"); -var DataTable = (function () { - function DataTable() { - this._items = []; - this.header = true; - this.pagination = true; - this.pagination_range = false; - this.pagination_limit = false; - this.pagination_input = false; - this.pagination_numbers = true; - this.indexColumn = true; - this.indexColumnHeader = ''; - this.selectColumn = false; - this.multiSelect = true; - this.substituteRows = true; - this.expandableRows = false; - this.translations = default_translations_type_1.defaultTranslations; - this.selectOnRowClick = false; - this.autoReload = true; - this.showReloading = false; - this._sortAsc = true; - this._offset = 0; - this._limit = 10; - // Reloading: - this._reloading = false; - this.reload = new core_1.EventEmitter(); - this._displayParams = {}; // params of the last finished reload - this._scheduledReload = null; - // event handlers: - this.rowClick = new core_1.EventEmitter(); - this.rowDoubleClick = new core_1.EventEmitter(); - this.headerClick = new core_1.EventEmitter(); - this.cellClick = new core_1.EventEmitter(); - this.selectedRows = []; - this._selectAllCheckbox = false; - // column resizing: - this._resizeInProgress = false; - this.resizeLimit = 30; - } - Object.defineProperty(DataTable.prototype, "items", { - get: function () { - return this._items; - }, - set: function (items) { - this._items = items; - this._onReloadFinished(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "sortBy", { - get: function () { - return this._sortBy; - }, - set: function (value) { - this._sortBy = value; - this._triggerReload(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "sortAsc", { - get: function () { - return this._sortAsc; - }, - set: function (value) { - this._sortAsc = value; - this._triggerReload(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "offset", { - get: function () { - return this._offset; - }, - set: function (value) { - this._offset = value; - this._triggerReload(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "limit", { - get: function () { - return this._limit; - }, - set: function (value) { - this._limit = value; - this._triggerReload(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "page", { - // calculated property: - get: function () { - return Math.floor(this.offset / this.limit) + 1; - }, - set: function (value) { - this.offset = (value - 1) * this.limit; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "lastPage", { - get: function () { - return Math.ceil(this.itemCount / this.limit); - }, - enumerable: true, - configurable: true - }); - // setting multiple observable properties simultaneously - DataTable.prototype.sort = function (sortBy, asc) { - this.sortBy = sortBy; - this.sortAsc = asc; - }; - // init - DataTable.prototype.ngOnInit = function () { - this._initDefaultValues(); - this._initDefaultClickEvents(); - this._updateDisplayParams(); - if (this.autoReload && this._scheduledReload == null) { - this.reloadItems(); - } - }; - DataTable.prototype._initDefaultValues = function () { - this.indexColumnVisible = this.indexColumn; - this.selectColumnVisible = this.selectColumn; - this.expandColumnVisible = this.expandableRows; - }; - DataTable.prototype._initDefaultClickEvents = function () { - var _this = this; - this.headerClick.subscribe(function (tableEvent) { return _this.sortColumn(tableEvent.column); }); - if (this.selectOnRowClick) { - this.rowClick.subscribe(function (tableEvent) { return tableEvent.row.selected = !tableEvent.row.selected; }); - } - }; - Object.defineProperty(DataTable.prototype, "reloading", { - get: function () { - return this._reloading; - }, - enumerable: true, - configurable: true - }); - DataTable.prototype.reloadItems = function () { - this._reloading = true; - this.reload.emit(this._getRemoteParameters()); - }; - DataTable.prototype._onReloadFinished = function () { - this._updateDisplayParams(); - this._selectAllCheckbox = false; - this._reloading = false; - }; - Object.defineProperty(DataTable.prototype, "displayParams", { - get: function () { - return this._displayParams; - }, - enumerable: true, - configurable: true - }); - DataTable.prototype._updateDisplayParams = function () { - this._displayParams = { - sortBy: this.sortBy, - sortAsc: this.sortAsc, - offset: this.offset, - limit: this.limit - }; - }; - // for avoiding cascading reloads if multiple params are set at once: - DataTable.prototype._triggerReload = function () { - var _this = this; - if (this._scheduledReload) { - clearTimeout(this._scheduledReload); - } - this._scheduledReload = setTimeout(function () { - _this.reloadItems(); - }); - }; - DataTable.prototype.rowClicked = function (row, event) { - this.rowClick.emit({ row: row, event: event }); - }; - DataTable.prototype.rowDoubleClicked = function (row, event) { - this.rowDoubleClick.emit({ row: row, event: event }); - }; - DataTable.prototype.headerClicked = function (column, event) { - if (!this._resizeInProgress) { - this.headerClick.emit({ column: column, event: event }); - } - else { - this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end - } - }; - DataTable.prototype.cellClicked = function (column, row, event) { - this.cellClick.emit({ row: row, column: column, event: event }); - }; - // functions: - DataTable.prototype._getRemoteParameters = function () { - var params = {}; - if (this.sortBy) { - params.sortBy = this.sortBy; - params.sortAsc = this.sortAsc; - } - if (this.pagination) { - params.offset = this.offset; - params.limit = this.limit; - } - return params; - }; - DataTable.prototype.sortColumn = function (column) { - if (column.sortable) { - var ascending = this.sortBy === column.property ? !this.sortAsc : true; - this.sort(column.property, ascending); - } - }; - Object.defineProperty(DataTable.prototype, "columnCount", { - get: function () { - var count = 0; - count += this.indexColumnVisible ? 1 : 0; - count += this.selectColumnVisible ? 1 : 0; - count += this.expandColumnVisible ? 1 : 0; - this.columns.toArray().forEach(function (column) { - count += column.visible ? 1 : 0; - }); - return count; - }, - enumerable: true, - configurable: true - }); - DataTable.prototype.getRowColor = function (item, index, row) { - if (this.rowColors !== undefined) { - return this.rowColors(item, row, index); - } - }; - Object.defineProperty(DataTable.prototype, "selectAllCheckbox", { - get: function () { - return this._selectAllCheckbox; - }, - set: function (value) { - this._selectAllCheckbox = value; - this._onSelectAllChanged(value); - }, - enumerable: true, - configurable: true - }); - DataTable.prototype._onSelectAllChanged = function (value) { - this.rows.toArray().forEach(function (row) { return row.selected = value; }); - }; - DataTable.prototype.onRowSelectChanged = function (row) { - // maintain the selectedRow(s) view - if (this.multiSelect) { - var index = this.selectedRows.indexOf(row); - if (row.selected && index < 0) { - this.selectedRows.push(row); - } - else if (!row.selected && index >= 0) { - this.selectedRows.splice(index, 1); - } - } - else { - if (row.selected) { - this.selectedRow = row; - } - else if (this.selectedRow === row) { - this.selectedRow = undefined; - } - } - // unselect all other rows: - if (row.selected && !this.multiSelect) { - this.rows.toArray().filter(function (row_) { return row_.selected; }).forEach(function (row_) { - if (row_ !== row) { - row_.selected = false; - } - }); - } - }; - Object.defineProperty(DataTable.prototype, "substituteItems", { - // other: - get: function () { - return Array.from({ length: this.displayParams.limit - this.items.length }); - }, - enumerable: true, - configurable: true - }); - DataTable.prototype.resizeColumnStart = function (event, column, columnElement) { - var _this = this; - this._resizeInProgress = true; - drag_1.drag(event, { - move: function (moveEvent, dx) { - if (_this._isResizeInLimit(columnElement, dx)) { - column.width = columnElement.offsetWidth + dx; - } - }, - }); - }; - DataTable.prototype._isResizeInLimit = function (columnElement, dx) { - /* This is needed because CSS min-width didn't work on table-layout: fixed. - Without the limits, resizing can make the next column disappear completely, - and even increase the table width. The current implementation suffers from the fact, - that offsetWidth sometimes contains out-of-date values. */ - if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) || - !columnElement.nextElementSibling || - (dx >= 0 && (columnElement.nextElementSibling.offsetWidth + dx) <= this.resizeLimit)) { - return false; - } - return true; - }; - return DataTable; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Array]) -], DataTable.prototype, "items", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], DataTable.prototype, "itemCount", void 0); -__decorate([ - core_1.ContentChildren(column_component_1.DataTableColumn), - __metadata("design:type", core_1.QueryList) -], DataTable.prototype, "columns", void 0); -__decorate([ - core_1.ViewChildren(row_component_1.DataTableRow), - __metadata("design:type", core_1.QueryList) -], DataTable.prototype, "rows", void 0); -__decorate([ - core_1.ContentChild('dataTableExpand'), - __metadata("design:type", core_1.TemplateRef) -], DataTable.prototype, "expandTemplate", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTable.prototype, "headerTitle", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "header", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination_range", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination_limit", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination_input", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination_numbers", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "indexColumn", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "indexColumnHeader", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Function) -], DataTable.prototype, "rowColors", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Function) -], DataTable.prototype, "rowTooltip", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "selectColumn", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "multiSelect", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "substituteRows", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "expandableRows", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "translations", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "selectOnRowClick", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "autoReload", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "showReloading", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "sortBy", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "sortAsc", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "offset", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "limit", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "page", null); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "reload", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "rowClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "rowDoubleClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "headerClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "cellClick", void 0); -DataTable = __decorate([ - core_1.Component({ - moduleId: module.id, - selector: 'data-table', - template: table_template_1.TABLE_TEMPLATE, - styles: [table_style_1.TABLE_STYLE] - }) -], DataTable); -exports.DataTable = DataTable; -//# sourceMappingURL=/components/table.component.js.map \ No newline at end of file diff --git a/dist/components/table.component.js.map b/dist/components/table.component.js.map deleted file mode 100644 index b4f4ccc..0000000 --- a/dist/components/table.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\r\n TemplateRef, ContentChild, ViewChildren, OnInit\r\n} from '@angular/core';\r\nimport { DataTableColumn } from './column.component';\r\nimport { DataTableRow } from './row.component';\r\nimport { DataTableParams } from '../types/data-table-params.type';\r\nimport { RowCallback } from '../types/row-callback.type';\r\nimport { DataTableTranslations } from '../types/data-table-translations.type';\r\nimport { defaultTranslations } from '../types/default-translations.type';\r\nimport { drag } from '../utils/drag';\r\nimport { TABLE_TEMPLATE } from './table.template';\r\nimport { TABLE_STYLE } from \"./table.style\";\r\n\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table',\r\n template: TABLE_TEMPLATE,\r\n styles: [TABLE_STYLE]\r\n})\r\nexport class DataTable implements DataTableParams, OnInit {\r\n\r\n private _items: any[] = [];\r\n\r\n @Input() get items() {\r\n return this._items;\r\n }\r\n\r\n set items(items: any[]) {\r\n this._items = items;\r\n this._onReloadFinished();\r\n }\r\n\r\n @Input() itemCount: number;\r\n\r\n // UI components:\r\n\r\n @ContentChildren(DataTableColumn) columns: QueryList;\r\n @ViewChildren(DataTableRow) rows: QueryList;\r\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\r\n\r\n // One-time optional bindings with default values:\r\n\r\n @Input() headerTitle: string;\r\n @Input() header = true;\r\n @Input() pagination = true;\r\n @Input() pagination_range = false;\r\n @Input() pagination_limit = false;\r\n @Input() pagination_input = false;\r\n @Input() pagination_numbers = true;\r\n @Input() indexColumn = true;\r\n @Input() indexColumnHeader = '';\r\n @Input() rowColors: RowCallback;\r\n @Input() rowTooltip: RowCallback;\r\n @Input() selectColumn = false;\r\n @Input() multiSelect = true;\r\n @Input() substituteRows = true;\r\n @Input() expandableRows = false;\r\n @Input() translations: DataTableTranslations = defaultTranslations;\r\n @Input() selectOnRowClick = false;\r\n @Input() autoReload = true;\r\n @Input() showReloading = false;\r\n\r\n // UI state without input:\r\n\r\n indexColumnVisible: boolean;\r\n selectColumnVisible: boolean;\r\n expandColumnVisible: boolean;\r\n\r\n // UI state: visible ge/set for the outside with @Input for one-time initial values\r\n\r\n private _sortBy: string;\r\n private _sortAsc = true;\r\n\r\n private _offset = 0;\r\n private _limit = 10;\r\n\r\n @Input()\r\n get sortBy() {\r\n return this._sortBy;\r\n }\r\n\r\n set sortBy(value) {\r\n this._sortBy = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get sortAsc() {\r\n return this._sortAsc;\r\n }\r\n\r\n set sortAsc(value) {\r\n this._sortAsc = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get offset() {\r\n return this._offset;\r\n }\r\n\r\n set offset(value) {\r\n this._offset = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get limit() {\r\n return this._limit;\r\n }\r\n\r\n set limit(value) {\r\n this._limit = value;\r\n this._triggerReload();\r\n }\r\n\r\n // calculated property:\r\n\r\n @Input()\r\n get page() {\r\n return Math.floor(this.offset / this.limit) + 1;\r\n }\r\n\r\n set page(value) {\r\n this.offset = (value - 1) * this.limit;\r\n }\r\n\r\n get lastPage() {\r\n return Math.ceil(this.itemCount / this.limit);\r\n }\r\n\r\n // setting multiple observable properties simultaneously\r\n\r\n sort(sortBy: string, asc: boolean) {\r\n this.sortBy = sortBy;\r\n this.sortAsc = asc;\r\n }\r\n\r\n // init\r\n\r\n ngOnInit() {\r\n this._initDefaultValues();\r\n this._initDefaultClickEvents();\r\n this._updateDisplayParams();\r\n\r\n if (this.autoReload && this._scheduledReload == null) {\r\n this.reloadItems();\r\n }\r\n }\r\n\r\n private _initDefaultValues() {\r\n this.indexColumnVisible = this.indexColumn;\r\n this.selectColumnVisible = this.selectColumn;\r\n this.expandColumnVisible = this.expandableRows;\r\n }\r\n\r\n private _initDefaultClickEvents() {\r\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\r\n if (this.selectOnRowClick) {\r\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\r\n }\r\n }\r\n\r\n // Reloading:\r\n\r\n _reloading = false;\r\n\r\n get reloading() {\r\n return this._reloading;\r\n }\r\n\r\n @Output() reload = new EventEmitter();\r\n\r\n reloadItems() {\r\n this._reloading = true;\r\n this.reload.emit(this._getRemoteParameters());\r\n }\r\n\r\n private _onReloadFinished() {\r\n this._updateDisplayParams();\r\n\r\n this._selectAllCheckbox = false;\r\n this._reloading = false;\r\n }\r\n\r\n _displayParams = {}; // params of the last finished reload\r\n\r\n get displayParams() {\r\n return this._displayParams;\r\n }\r\n\r\n _updateDisplayParams() {\r\n this._displayParams = {\r\n sortBy: this.sortBy,\r\n sortAsc: this.sortAsc,\r\n offset: this.offset,\r\n limit: this.limit\r\n };\r\n }\r\n\r\n _scheduledReload = null;\r\n\r\n // for avoiding cascading reloads if multiple params are set at once:\r\n _triggerReload() {\r\n if (this._scheduledReload) {\r\n clearTimeout(this._scheduledReload);\r\n }\r\n this._scheduledReload = setTimeout(() => {\r\n this.reloadItems();\r\n });\r\n }\r\n\r\n // event handlers:\r\n\r\n @Output() rowClick = new EventEmitter();\r\n @Output() rowDoubleClick = new EventEmitter();\r\n @Output() headerClick = new EventEmitter();\r\n @Output() cellClick = new EventEmitter();\r\n\r\n private rowClicked(row: DataTableRow, event) {\r\n this.rowClick.emit({ row, event });\r\n }\r\n\r\n private rowDoubleClicked(row: DataTableRow, event) {\r\n this.rowDoubleClick.emit({ row, event });\r\n }\r\n\r\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\r\n if (!this._resizeInProgress) {\r\n this.headerClick.emit({ column, event });\r\n } else {\r\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\r\n }\r\n }\r\n\r\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\r\n this.cellClick.emit({ row, column, event });\r\n }\r\n\r\n // functions:\r\n\r\n private _getRemoteParameters(): DataTableParams {\r\n let params = {};\r\n\r\n if (this.sortBy) {\r\n params.sortBy = this.sortBy;\r\n params.sortAsc = this.sortAsc;\r\n }\r\n if (this.pagination) {\r\n params.offset = this.offset;\r\n params.limit = this.limit;\r\n }\r\n return params;\r\n }\r\n\r\n private sortColumn(column: DataTableColumn) {\r\n if (column.sortable) {\r\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\r\n this.sort(column.property, ascending);\r\n }\r\n }\r\n\r\n get columnCount() {\r\n let count = 0;\r\n count += this.indexColumnVisible ? 1 : 0;\r\n count += this.selectColumnVisible ? 1 : 0;\r\n count += this.expandColumnVisible ? 1 : 0;\r\n this.columns.toArray().forEach(column => {\r\n count += column.visible ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n private getRowColor(item: any, index: number, row: DataTableRow) {\r\n if (this.rowColors !== undefined) {\r\n return (this.rowColors)(item, row, index);\r\n }\r\n }\r\n\r\n // selection:\r\n\r\n selectedRow: DataTableRow;\r\n selectedRows: DataTableRow[] = [];\r\n\r\n private _selectAllCheckbox = false;\r\n\r\n get selectAllCheckbox() {\r\n return this._selectAllCheckbox;\r\n }\r\n\r\n set selectAllCheckbox(value) {\r\n this._selectAllCheckbox = value;\r\n this._onSelectAllChanged(value);\r\n }\r\n\r\n private _onSelectAllChanged(value: boolean) {\r\n this.rows.toArray().forEach(row => row.selected = value);\r\n }\r\n\r\n onRowSelectChanged(row: DataTableRow) {\r\n\r\n // maintain the selectedRow(s) view\r\n if (this.multiSelect) {\r\n let index = this.selectedRows.indexOf(row);\r\n if (row.selected && index < 0) {\r\n this.selectedRows.push(row);\r\n } else if (!row.selected && index >= 0) {\r\n this.selectedRows.splice(index, 1);\r\n }\r\n } else {\r\n if (row.selected) {\r\n this.selectedRow = row;\r\n } else if (this.selectedRow === row) {\r\n this.selectedRow = undefined;\r\n }\r\n }\r\n\r\n // unselect all other rows:\r\n if (row.selected && !this.multiSelect) {\r\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\r\n if (row_ !== row) { // avoid endless loop\r\n row_.selected = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // other:\r\n\r\n get substituteItems() {\r\n return Array.from({ length: this.displayParams.limit - this.items.length });\r\n }\r\n\r\n // column resizing:\r\n\r\n private _resizeInProgress = false;\r\n\r\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\r\n this._resizeInProgress = true;\r\n\r\n drag(event, {\r\n move: (moveEvent: MouseEvent, dx: number) => {\r\n if (this._isResizeInLimit(columnElement, dx)) {\r\n column.width = columnElement.offsetWidth + dx;\r\n }\r\n },\r\n });\r\n }\r\n\r\n resizeLimit = 30;\r\n\r\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\r\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\r\n Without the limits, resizing can make the next column disappear completely,\r\n and even increase the table width. The current implementation suffers from the fact,\r\n that offsetWidth sometimes contains out-of-date values. */\r\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\r\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\r\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/table.style.d.ts b/dist/components/table.style.d.ts deleted file mode 100644 index ab363e7..0000000 --- a/dist/components/table.style.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const TABLE_STYLE: string; diff --git a/dist/components/table.style.js b/dist/components/table.style.js deleted file mode 100644 index e2ce937..0000000 --- a/dist/components/table.style.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TABLE_STYLE = "\n/* bootstrap override: */\n\n:host /deep/ .data-table.table > tbody+tbody {\n border-top: none;\n}\n:host /deep/ .data-table.table td {\n vertical-align: middle;\n}\n\n:host /deep/ .data-table > thead > tr > th,\n:host /deep/ .data-table > tbody > tr > td {\n\toverflow: hidden;\n}\n\n/* I can't use the bootstrap striped table, because of the expandable rows */\n:host /deep/ .row-odd {\n background-color: #F6F6F6;\n}\n:host /deep/ .row-even {\n}\n\n.data-table .substitute-rows > tr:hover,\n:host /deep/ .data-table .data-table-row:hover {\n background-color: #ECECEC;\n}\n/* table itself: */\n\n.data-table {\n box-shadow: 0 0 15px rgb(236, 236, 236);\n table-layout: fixed;\n}\n\n/* header cells: */\n\n.column-header {\n position: relative;\n}\n.expand-column-header {\n\twidth: 50px;\n}\n.select-column-header {\n\twidth: 50px;\n\ttext-align: center;\n}\n.index-column-header {\n\twidth: 40px;\n}\n.column-header.sortable {\n cursor: pointer;\n}\n.column-header .column-sort-icon {\n\tfloat: right;\n}\n.column-header.resizable .column-sort-icon {\n margin-right: 8px;\n}\n.column-header .column-sort-icon .column-sortable-icon {\n color: lightgray;\n}\n.column-header .column-resize-handle {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n padding: 0;\n width: 8px;\n height: 100%;\n cursor: col-resize;\n}\n\n/* cover: */\n\n.data-table-box {\n position: relative;\n}\n\n.loading-cover {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.3);\n top: 0;\n}\n"; -//# sourceMappingURL=/components/table.style.js.map \ No newline at end of file diff --git a/dist/components/table.style.js.map b/dist/components/table.style.js.map deleted file mode 100644 index d182f3f..0000000 --- a/dist/components/table.style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.template.d.ts b/dist/components/table.template.d.ts deleted file mode 100644 index cc04eb4..0000000 --- a/dist/components/table.template.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const TABLE_TEMPLATE: string; diff --git a/dist/components/table.template.js b/dist/components/table.template.js deleted file mode 100644 index 905d8a0..0000000 --- a/dist/components/table.template.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TABLE_TEMPLATE = "\n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 \n
\n
\n
\n\n \n
\n"; -//# sourceMappingURL=/components/table.template.js.map \ No newline at end of file diff --git a/dist/components/table.template.js.map b/dist/components/table.template.js.map deleted file mode 100644 index 677275c..0000000 --- a/dist/components/table.template.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";;AAAa,QAAA,cAAc,GAAG,84GAwD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 1b41018..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { DataTable } from './components/table.component'; -import { DataTableColumn } from './components/column.component'; -import { DataTableRow } from './components/row.component'; -import { DataTablePagination } from './components/pagination.component'; -import { DataTableHeader } from './components/header.component'; -import { DataTableTranslations } from './types/data-table-translations.type'; -import { CellCallback } from './types/cell-callback.type'; -import { RowCallback } from './types/row-callback.type'; -import { DataTableParams } from './types/data-table-params.type'; -import { defaultTranslations } from './types/default-translations.type'; -export * from './tools/data-table-resource'; -export { DataTable, DataTableColumn, DataTableRow, DataTablePagination, DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations }; -export declare const DATA_TABLE_DIRECTIVES: (typeof DataTable | typeof DataTableColumn)[]; -export declare class DataTableModule { -} diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ed9fdd6..0000000 --- a/dist/index.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var common_1 = require("@angular/common"); -var forms_1 = require("@angular/forms"); -var table_component_1 = require("./components/table.component"); -exports.DataTable = table_component_1.DataTable; -var column_component_1 = require("./components/column.component"); -exports.DataTableColumn = column_component_1.DataTableColumn; -var row_component_1 = require("./components/row.component"); -exports.DataTableRow = row_component_1.DataTableRow; -var pagination_component_1 = require("./components/pagination.component"); -exports.DataTablePagination = pagination_component_1.DataTablePagination; -var header_component_1 = require("./components/header.component"); -exports.DataTableHeader = header_component_1.DataTableHeader; -var px_1 = require("./utils/px"); -var hide_1 = require("./utils/hide"); -var min_1 = require("./utils/min"); -var default_translations_type_1 = require("./types/default-translations.type"); -exports.defaultTranslations = default_translations_type_1.defaultTranslations; -__export(require("./tools/data-table-resource")); -exports.DATA_TABLE_DIRECTIVES = [table_component_1.DataTable, column_component_1.DataTableColumn]; -var DataTableModule = (function () { - function DataTableModule() { - } - return DataTableModule; -}()); -DataTableModule = __decorate([ - core_1.NgModule({ - imports: [common_1.CommonModule, forms_1.FormsModule], - declarations: [ - table_component_1.DataTable, column_component_1.DataTableColumn, - row_component_1.DataTableRow, pagination_component_1.DataTablePagination, header_component_1.DataTableHeader, - px_1.PixelConverter, hide_1.Hide, min_1.MinPipe - ], - exports: [table_component_1.DataTable, column_component_1.DataTableColumn] - }) -], DataTableModule); -exports.DataTableModule = DataTableModule; -//# sourceMappingURL=/index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 6db4dcc..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,oBAfA,2BAAS,CAeA;AAdlB,kEAAgE;AAc5C,0BAdX,kCAAe,CAcW;AAbnC,4DAA0D;AAarB,uBAb5B,4BAAY,CAa4B;AAZjD,0EAAwE;AAYrB,8BAZ1C,0CAAmB,CAY0C;AAXtE,kEAAgE;AAYtD,0BAZD,kCAAe,CAYC;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8BAHrF,+CAAmB,CAGqF;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE,IAAa,eAAe;IAA5B;IAA+B,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAhC,IAAgC;AAAnB,eAAe;IAT3B,eAAQ,CAAC;QACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;QACtC,YAAY,EAAE;YACV,2BAAS,EAAE,kCAAe;YAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;YAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;SAChC;QACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;KAC1C,CAAC;GACW,eAAe,CAAI;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DataTable} from './components/table.component';\r\nimport { DataTableColumn } from './components/column.component';\r\nimport { DataTableRow } from './components/row.component';\r\nimport { DataTablePagination } from './components/pagination.component';\r\nimport { DataTableHeader } from './components/header.component';\r\n\r\nimport { PixelConverter } from './utils/px';\r\nimport { Hide } from './utils/hide';\r\nimport { MinPipe } from './utils/min';\r\nimport { DataTableTranslations } from './types/data-table-translations.type';\r\nimport { CellCallback } from './types/cell-callback.type';\r\nimport { RowCallback } from './types/row-callback.type';\r\nimport { DataTableParams } from './types/data-table-params.type';\r\nimport { defaultTranslations } from './types/default-translations.type';\r\nexport * from './tools/data-table-resource';\r\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\r\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\r\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\r\n\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule ],\r\n declarations: [\r\n DataTable, DataTableColumn,\r\n DataTableRow, DataTablePagination, DataTableHeader,\r\n PixelConverter, Hide, MinPipe\r\n ],\r\n exports: [ DataTable, DataTableColumn ]\r\n})\r\nexport class DataTableModule { }\r\n"]} \ No newline at end of file diff --git a/dist/tools/data-table-resource.d.ts b/dist/tools/data-table-resource.d.ts deleted file mode 100644 index 6670e46..0000000 --- a/dist/tools/data-table-resource.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { DataTableParams } from '../types/data-table-params.type'; -export declare class DataTableResource { - private items; - constructor(items: T[]); - query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise; - count(): Promise; -} diff --git a/dist/tools/data-table-resource.js b/dist/tools/data-table-resource.js deleted file mode 100644 index f24576b..0000000 --- a/dist/tools/data-table-resource.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var DataTableResource = (function () { - function DataTableResource(items) { - this.items = items; - } - DataTableResource.prototype.query = function (params, filter) { - var result = []; - if (filter) { - result = this.items.filter(filter); - } - else { - result = this.items.slice(); // shallow copy to use for sorting instead of changing the original - } - if (params.sortBy) { - result.sort(function (a, b) { - if (typeof a[params.sortBy] === 'string') { - return a[params.sortBy].localeCompare(b[params.sortBy]); - } - else { - return a[params.sortBy] - b[params.sortBy]; - } - }); - if (params.sortAsc === false) { - result.reverse(); - } - } - if (params.offset !== undefined) { - if (params.limit === undefined) { - result = result.slice(params.offset, result.length); - } - else { - result = result.slice(params.offset, params.offset + params.limit); - } - } - return new Promise(function (resolve, reject) { - setTimeout(function () { return resolve(result); }); - }); - }; - DataTableResource.prototype.count = function () { - var _this = this; - return new Promise(function (resolve, reject) { - setTimeout(function () { return resolve(_this.items.length); }); - }); - }; - return DataTableResource; -}()); -exports.DataTableResource = DataTableResource; -//# sourceMappingURL=/tools/data-table-resource.js.map \ No newline at end of file diff --git a/dist/tools/data-table-resource.js.map b/dist/tools/data-table-resource.js.map deleted file mode 100644 index 0805801..0000000 --- a/dist/tools/data-table-resource.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";;AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\r\n\r\n\r\nexport class DataTableResource {\r\n\r\n constructor(private items: T[]) {}\r\n\r\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\r\n\r\n let result: T[] = [];\r\n if (filter) {\r\n result = this.items.filter(filter);\r\n } else {\r\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\r\n }\r\n\r\n if (params.sortBy) {\r\n result.sort((a, b) => {\r\n if (typeof a[params.sortBy] === 'string') {\r\n return a[params.sortBy].localeCompare(b[params.sortBy]);\r\n } else {\r\n return a[params.sortBy] - b[params.sortBy];\r\n }\r\n });\r\n if (params.sortAsc === false) {\r\n result.reverse();\r\n }\r\n }\r\n if (params.offset !== undefined) {\r\n if (params.limit === undefined) {\r\n result = result.slice(params.offset, result.length);\r\n } else {\r\n result = result.slice(params.offset, params.offset + params.limit);\r\n }\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(result));\r\n });\r\n }\r\n\r\n count(): Promise {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(this.items.length));\r\n });\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/cell-callback.type.d.ts b/dist/types/cell-callback.type.d.ts deleted file mode 100644 index 7c2a278..0000000 --- a/dist/types/cell-callback.type.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DataTableRow } from '../components/row.component'; -import { DataTableColumn } from '../components/column.component'; -export declare type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string; diff --git a/dist/types/cell-callback.type.js b/dist/types/cell-callback.type.js deleted file mode 100644 index d038872..0000000 --- a/dist/types/cell-callback.type.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=/types/cell-callback.type.js.map \ No newline at end of file diff --git a/dist/types/cell-callback.type.js.map b/dist/types/cell-callback.type.js.map deleted file mode 100644 index 3a5977f..0000000 --- a/dist/types/cell-callback.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cell-callback.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/cell-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\nimport { DataTableColumn } from '../components/column.component';\r\n\r\nexport type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-params.type.d.ts b/dist/types/data-table-params.type.d.ts deleted file mode 100644 index cece533..0000000 --- a/dist/types/data-table-params.type.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface DataTableParams { - offset?: number; - limit?: number; - sortBy?: string; - sortAsc?: boolean; -} diff --git a/dist/types/data-table-params.type.js b/dist/types/data-table-params.type.js deleted file mode 100644 index 84d6b65..0000000 --- a/dist/types/data-table-params.type.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=/types/data-table-params.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-params.type.js.map b/dist/types/data-table-params.type.js.map deleted file mode 100644 index aa24bf1..0000000 --- a/dist/types/data-table-params.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"data-table-params.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/data-table-params.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableParams {\r\n offset?: number;\r\n limit?: number;\r\n sortBy?: string;\r\n sortAsc?: boolean;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-translations.type.d.ts b/dist/types/data-table-translations.type.d.ts deleted file mode 100644 index 87b3967..0000000 --- a/dist/types/data-table-translations.type.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface DataTableTranslations { - indexColumn: string; - selectColumn: string; - expandColumn: string; - paginationLimit: string; - paginationRange: string; -} diff --git a/dist/types/data-table-translations.type.js b/dist/types/data-table-translations.type.js deleted file mode 100644 index 4c2d1f7..0000000 --- a/dist/types/data-table-translations.type.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=/types/data-table-translations.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-translations.type.js.map b/dist/types/data-table-translations.type.js.map deleted file mode 100644 index eb7779d..0000000 --- a/dist/types/data-table-translations.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"data-table-translations.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/data-table-translations.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableTranslations {\r\n indexColumn: string;\r\n selectColumn: string;\r\n expandColumn: string;\r\n paginationLimit: string;\r\n paginationRange: string;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/default-translations.type.d.ts b/dist/types/default-translations.type.d.ts deleted file mode 100644 index 0ee4b08..0000000 --- a/dist/types/default-translations.type.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { DataTableTranslations } from './data-table-translations.type'; -export declare const defaultTranslations: DataTableTranslations; diff --git a/dist/types/default-translations.type.js b/dist/types/default-translations.type.js deleted file mode 100644 index 15392c9..0000000 --- a/dist/types/default-translations.type.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultTranslations = { - indexColumn: 'index', - selectColumn: 'select', - expandColumn: 'expand', - paginationLimit: 'Limit', - paginationRange: 'Results' -}; -//# sourceMappingURL=/types/default-translations.type.js.map \ No newline at end of file diff --git a/dist/types/default-translations.type.js.map b/dist/types/default-translations.type.js.map deleted file mode 100644 index 48b6d4a..0000000 --- a/dist/types/default-translations.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";;AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file diff --git a/dist/types/row-callback.type.d.ts b/dist/types/row-callback.type.d.ts deleted file mode 100644 index a9d59b2..0000000 --- a/dist/types/row-callback.type.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { DataTableRow } from '../components/row.component'; -export declare type RowCallback = (item: any, row: DataTableRow, index: number) => string; diff --git a/dist/types/row-callback.type.js b/dist/types/row-callback.type.js deleted file mode 100644 index d340a99..0000000 --- a/dist/types/row-callback.type.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=/types/row-callback.type.js.map \ No newline at end of file diff --git a/dist/types/row-callback.type.js.map b/dist/types/row-callback.type.js.map deleted file mode 100644 index 211514d..0000000 --- a/dist/types/row-callback.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"row-callback.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/row-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\n\r\nexport type RowCallback = (item: any, row: DataTableRow, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/utils/drag.d.ts b/dist/utils/drag.d.ts deleted file mode 100644 index 58c168b..0000000 --- a/dist/utils/drag.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export declare type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void; -export declare type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void; -export declare function drag(event: MouseEvent, {move: move, up: up}: { - move: MoveHandler; - up?: UpHandler; -}): void; diff --git a/dist/utils/drag.js b/dist/utils/drag.js deleted file mode 100644 index 089185c..0000000 --- a/dist/utils/drag.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function drag(event, _a) { - var move = _a.move, up = _a.up; - var startX = event.pageX; - var startY = event.pageY; - var x = startX; - var y = startY; - var moved = false; - function mouseMoveHandler(event) { - var dx = event.pageX - x; - var dy = event.pageY - y; - x = event.pageX; - y = event.pageY; - if (dx || dy) - moved = true; - move(event, dx, dy, x, y); - event.preventDefault(); // to avoid text selection - } - function mouseUpHandler(event) { - x = event.pageX; - y = event.pageY; - document.removeEventListener('mousemove', mouseMoveHandler); - document.removeEventListener('mouseup', mouseUpHandler); - if (up) - up(event, x, y, moved); - } - document.addEventListener('mousemove', mouseMoveHandler); - document.addEventListener('mouseup', mouseUpHandler); -} -exports.drag = drag; -//# sourceMappingURL=/utils/drag.js.map \ No newline at end of file diff --git a/dist/utils/drag.js.map b/dist/utils/drag.js.map deleted file mode 100644 index 1a7a2f6..0000000 --- a/dist/utils/drag.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";;AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/hide.d.ts b/dist/utils/hide.d.ts deleted file mode 100644 index ef6bccd..0000000 --- a/dist/utils/hide.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ElementRef, Renderer } from '@angular/core'; -export declare class Hide { - private _elementRef; - private _renderer; - private _prevCondition; - private _displayStyle; - constructor(_elementRef: ElementRef, _renderer: Renderer); - hide: boolean; - private initDisplayStyle(); -} diff --git a/dist/utils/hide.js b/dist/utils/hide.js deleted file mode 100644 index 5cbd3ad..0000000 --- a/dist/utils/hide.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -function isBlank(obj) { - return obj === undefined || obj === null; -} -var Hide = (function () { - function Hide(_elementRef, _renderer) { - this._elementRef = _elementRef; - this._renderer = _renderer; - this._prevCondition = null; - } - Object.defineProperty(Hide.prototype, "hide", { - set: function (newCondition) { - this.initDisplayStyle(); - if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) { - this._prevCondition = true; - this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none'); - } - else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) { - this._prevCondition = false; - this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle); - } - }, - enumerable: true, - configurable: true - }); - Hide.prototype.initDisplayStyle = function () { - if (this._displayStyle === undefined) { - var displayStyle = this._elementRef.nativeElement.style.display; - if (displayStyle && displayStyle !== 'none') { - this._displayStyle = displayStyle; - } - } - }; - return Hide; -}()); -Hide = __decorate([ - core_1.Directive({ selector: '[hide]', inputs: ['hide'] }), - __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer]) -], Hide); -exports.Hide = Hide; -//# sourceMappingURL=/utils/hide.js.map \ No newline at end of file diff --git a/dist/utils/hide.js.map b/dist/utils/hide.js.map deleted file mode 100644 index 9beaa4d..0000000 --- a/dist/utils/hide.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD,IAAa,IAAI;IAKf,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,IAAI;IADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;qCAMjB,iBAAU,EAAqB,eAAQ;GAL7D,IAAI,CA2BhB;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/min.d.ts b/dist/utils/min.d.ts deleted file mode 100644 index c352717..0000000 --- a/dist/utils/min.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PipeTransform } from '@angular/core'; -export declare class MinPipe implements PipeTransform { - transform(value: number[], args: string[]): any; -} diff --git a/dist/utils/min.js b/dist/utils/min.js deleted file mode 100644 index 6cafcf5..0000000 --- a/dist/utils/min.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var MinPipe = (function () { - function MinPipe() { - } - MinPipe.prototype.transform = function (value, args) { - return Math.min.apply(null, value); - }; - return MinPipe; -}()); -MinPipe = __decorate([ - core_1.Pipe({ - name: 'min' - }) -], MinPipe); -exports.MinPipe = MinPipe; -//# sourceMappingURL=/utils/min.js.map \ No newline at end of file diff --git a/dist/utils/min.js.map b/dist/utils/min.js.map deleted file mode 100644 index 11a168f..0000000 --- a/dist/utils/min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD,IAAa,OAAO;IAApB;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACH,cAAC;AAAD,CAAC,AAJD,IAIC;AAJY,OAAO;IAHnB,WAAI,CAAC;QACJ,IAAI,EAAE,KAAK;KACZ,CAAC;GACW,OAAO,CAInB;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/px.d.ts b/dist/utils/px.d.ts deleted file mode 100644 index 480100f..0000000 --- a/dist/utils/px.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PipeTransform } from '@angular/core'; -export declare class PixelConverter implements PipeTransform { - transform(value: string | number, args: string[]): any; -} diff --git a/dist/utils/px.js b/dist/utils/px.js deleted file mode 100644 index 6bc3077..0000000 --- a/dist/utils/px.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var PixelConverter = (function () { - function PixelConverter() { - } - PixelConverter.prototype.transform = function (value, args) { - if (value === undefined) { - return; - } - if (typeof value === 'string') { - return value; - } - if (typeof value === 'number') { - return value + 'px'; - } - }; - return PixelConverter; -}()); -PixelConverter = __decorate([ - core_1.Pipe({ - name: 'px' - }) -], PixelConverter); -exports.PixelConverter = PixelConverter; -//# sourceMappingURL=/utils/px.js.map \ No newline at end of file diff --git a/dist/utils/px.js.map b/dist/utils/px.js.map deleted file mode 100644 index ecd2733..0000000 --- a/dist/utils/px.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD,IAAa,cAAc;IAA3B;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,cAAc;IAH1B,WAAI,CAAC;QACJ,IAAI,EAAE,IAAI;KACX,CAAC;GACW,cAAc,CAY1B;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file From bcef79105f36e451e365942a7020ce6ffd6a7616 Mon Sep 17 00:00:00 2001 From: Mit9 Date: Mon, 27 Nov 2017 12:24:44 +0200 Subject: [PATCH 25/41] update dist --- dist/components/column.component.d.ts | 19 + dist/components/column.component.js | 92 ++++ dist/components/column.component.js.map | 1 + dist/components/header.component.d.ts | 7 + dist/components/header.component.js | 43 ++ dist/components/header.component.js.map | 1 + dist/components/header.style.d.ts | 1 + dist/components/header.style.js | 4 + dist/components/header.style.js.map | 1 + dist/components/header.template.d.ts | 1 + dist/components/header.template.js | 4 + dist/components/header.template.js.map | 1 + dist/components/pagination.component.d.ts | 20 + dist/components/pagination.component.js | 131 +++++ dist/components/pagination.component.js.map | 1 + dist/components/pagination.style.d.ts | 1 + dist/components/pagination.style.js | 4 + dist/components/pagination.style.js.map | 1 + dist/components/pagination.template.d.ts | 1 + dist/components/pagination.template.js | 4 + dist/components/pagination.template.js.map | 1 + dist/components/row.component.d.ts | 16 + dist/components/row.component.js | 83 +++ dist/components/row.component.js.map | 1 + dist/components/row.style.d.ts | 1 + dist/components/row.style.js | 4 + dist/components/row.style.js.map | 1 + dist/components/row.template.d.ts | 1 + dist/components/row.template.js | 4 + dist/components/row.template.js.map | 1 + dist/components/table.component.d.ts | 83 +++ dist/components/table.component.js | 478 ++++++++++++++++++ dist/components/table.component.js.map | 1 + dist/components/table.style.d.ts | 1 + dist/components/table.style.js | 4 + dist/components/table.style.js.map | 1 + dist/components/table.template.d.ts | 1 + dist/components/table.template.js | 4 + dist/components/table.template.js.map | 1 + dist/index.d.ts | 17 + dist/index.js | 49 ++ dist/index.js.map | 1 + dist/tools/data-table-resource.d.ts | 7 + dist/tools/data-table-resource.js | 49 ++ dist/tools/data-table-resource.js.map | 1 + dist/types/cell-callback.type.d.ts | 3 + dist/types/cell-callback.type.js | 3 + dist/types/cell-callback.type.js.map | 1 + dist/types/data-table-params.type.d.ts | 6 + dist/types/data-table-params.type.js | 3 + dist/types/data-table-params.type.js.map | 1 + dist/types/data-table-translations.type.d.ts | 7 + dist/types/data-table-translations.type.js | 3 + .../types/data-table-translations.type.js.map | 1 + dist/types/default-translations.type.d.ts | 2 + dist/types/default-translations.type.js | 10 + dist/types/default-translations.type.js.map | 1 + dist/types/row-callback.type.d.ts | 2 + dist/types/row-callback.type.js | 3 + dist/types/row-callback.type.js.map | 1 + dist/utils/drag.d.ts | 6 + dist/utils/drag.js | 32 ++ dist/utils/drag.js.map | 1 + dist/utils/hide.d.ts | 10 + dist/utils/hide.js | 52 ++ dist/utils/hide.js.map | 1 + dist/utils/min.d.ts | 4 + dist/utils/min.js | 24 + dist/utils/min.js.map | 1 + dist/utils/px.d.ts | 4 + dist/utils/px.js | 32 ++ dist/utils/px.js.map | 1 + 72 files changed, 1364 insertions(+) create mode 100644 dist/components/column.component.d.ts create mode 100644 dist/components/column.component.js create mode 100644 dist/components/column.component.js.map create mode 100644 dist/components/header.component.d.ts create mode 100644 dist/components/header.component.js create mode 100644 dist/components/header.component.js.map create mode 100644 dist/components/header.style.d.ts create mode 100644 dist/components/header.style.js create mode 100644 dist/components/header.style.js.map create mode 100644 dist/components/header.template.d.ts create mode 100644 dist/components/header.template.js create mode 100644 dist/components/header.template.js.map create mode 100644 dist/components/pagination.component.d.ts create mode 100644 dist/components/pagination.component.js create mode 100644 dist/components/pagination.component.js.map create mode 100644 dist/components/pagination.style.d.ts create mode 100644 dist/components/pagination.style.js create mode 100644 dist/components/pagination.style.js.map create mode 100644 dist/components/pagination.template.d.ts create mode 100644 dist/components/pagination.template.js create mode 100644 dist/components/pagination.template.js.map create mode 100644 dist/components/row.component.d.ts create mode 100644 dist/components/row.component.js create mode 100644 dist/components/row.component.js.map create mode 100644 dist/components/row.style.d.ts create mode 100644 dist/components/row.style.js create mode 100644 dist/components/row.style.js.map create mode 100644 dist/components/row.template.d.ts create mode 100644 dist/components/row.template.js create mode 100644 dist/components/row.template.js.map create mode 100644 dist/components/table.component.d.ts create mode 100644 dist/components/table.component.js create mode 100644 dist/components/table.component.js.map create mode 100644 dist/components/table.style.d.ts create mode 100644 dist/components/table.style.js create mode 100644 dist/components/table.style.js.map create mode 100644 dist/components/table.template.d.ts create mode 100644 dist/components/table.template.js create mode 100644 dist/components/table.template.js.map create mode 100644 dist/index.d.ts create mode 100644 dist/index.js create mode 100644 dist/index.js.map create mode 100644 dist/tools/data-table-resource.d.ts create mode 100644 dist/tools/data-table-resource.js create mode 100644 dist/tools/data-table-resource.js.map create mode 100644 dist/types/cell-callback.type.d.ts create mode 100644 dist/types/cell-callback.type.js create mode 100644 dist/types/cell-callback.type.js.map create mode 100644 dist/types/data-table-params.type.d.ts create mode 100644 dist/types/data-table-params.type.js create mode 100644 dist/types/data-table-params.type.js.map create mode 100644 dist/types/data-table-translations.type.d.ts create mode 100644 dist/types/data-table-translations.type.js create mode 100644 dist/types/data-table-translations.type.js.map create mode 100644 dist/types/default-translations.type.d.ts create mode 100644 dist/types/default-translations.type.js create mode 100644 dist/types/default-translations.type.js.map create mode 100644 dist/types/row-callback.type.d.ts create mode 100644 dist/types/row-callback.type.js create mode 100644 dist/types/row-callback.type.js.map create mode 100644 dist/utils/drag.d.ts create mode 100644 dist/utils/drag.js create mode 100644 dist/utils/drag.js.map create mode 100644 dist/utils/hide.d.ts create mode 100644 dist/utils/hide.js create mode 100644 dist/utils/hide.js.map create mode 100644 dist/utils/min.d.ts create mode 100644 dist/utils/min.js create mode 100644 dist/utils/min.js.map create mode 100644 dist/utils/px.d.ts create mode 100644 dist/utils/px.js create mode 100644 dist/utils/px.js.map diff --git a/dist/components/column.component.d.ts b/dist/components/column.component.d.ts new file mode 100644 index 0000000..f71c9ef --- /dev/null +++ b/dist/components/column.component.d.ts @@ -0,0 +1,19 @@ +import { OnInit } from '@angular/core'; +import { DataTableRow } from './row.component'; +import { CellCallback } from '../types/cell-callback.type'; +export declare class DataTableColumn implements OnInit { + header: string; + sortable: boolean; + resizable: boolean; + property: string; + styleClass: string; + cellColors: CellCallback; + width: number | string; + visible: boolean; + cellTemplate: any; + headerTemplate: any; + getCellColor(row: DataTableRow, index: number): string; + private styleClassObject; + ngOnInit(): void; + private _initCellClass(); +} diff --git a/dist/components/column.component.js b/dist/components/column.component.js new file mode 100644 index 0000000..c43a7b8 --- /dev/null +++ b/dist/components/column.component.js @@ -0,0 +1,92 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require("@angular/core"); +var DataTableColumn = (function () { + function DataTableColumn() { + this.sortable = false; + this.resizable = false; + this.visible = true; + this.styleClassObject = {}; // for [ngClass] + } + DataTableColumn.prototype.getCellColor = function (row, index) { + if (this.cellColors !== undefined) { + return this.cellColors(row.item, row, this, index); + } + }; + DataTableColumn.prototype.ngOnInit = function () { + this._initCellClass(); + }; + DataTableColumn.prototype._initCellClass = function () { + if (!this.styleClass && this.property) { + if (/^[a-zA-Z0-9_]+$/.test(this.property)) { + this.styleClass = 'column-' + this.property; + } + else { + this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, ''); + } + } + if (this.styleClass != null) { + this.styleClassObject = (_a = {}, + _a[this.styleClass] = true, + _a); + } + var _a; + }; + return DataTableColumn; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTableColumn.prototype, "header", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "sortable", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "resizable", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTableColumn.prototype, "property", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTableColumn.prototype, "styleClass", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Function) +], DataTableColumn.prototype, "cellColors", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "width", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableColumn.prototype, "visible", void 0); +__decorate([ + core_1.ContentChild('dataTableCell'), + __metadata("design:type", Object) +], DataTableColumn.prototype, "cellTemplate", void 0); +__decorate([ + core_1.ContentChild('dataTableHeader'), + __metadata("design:type", Object) +], DataTableColumn.prototype, "headerTemplate", void 0); +DataTableColumn = __decorate([ + core_1.Directive({ + selector: 'data-table-column' + }) +], DataTableColumn); +exports.DataTableColumn = DataTableColumn; +//# sourceMappingURL=/components/column.component.js.map \ No newline at end of file diff --git a/dist/components/column.component.js.map b/dist/components/column.component.js.map new file mode 100644 index 0000000..bdaf408 --- /dev/null +++ b/dist/components/column.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAuE;AAQvE,IAAa,eAAe;IAH5B;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IACL,sBAAC;AAAD,CAAC,AA5CD,IA4CC;AAzCY;IAAR,YAAK,EAAE;;+CAAgB;AACf;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;kDAAmB;AAClB;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;mDAAoB;AACnB;IAAR,YAAK,EAAE;;mDAA0B;AAGzB;IAAR,YAAK,EAAE;;8CAAwB;AACvB;IAAR,YAAK,EAAE;;gDAAgB;AAEO;IAA9B,mBAAY,CAAC,eAAe,CAAC;;qDAAc;AACX;IAAhC,mBAAY,CAAC,iBAAiB,CAAC;;uDAAgB;AAfvC,eAAe;IAH3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;GACW,eAAe,CA4C3B;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\r\nimport { DataTableRow } from './row.component';\r\nimport { CellCallback } from '../types/cell-callback.type';\r\n\r\n\r\n@Directive({\r\n selector: 'data-table-column'\r\n})\r\nexport class DataTableColumn implements OnInit {\r\n\r\n // init:\r\n @Input() header: string;\r\n @Input() sortable = false;\r\n @Input() resizable = false;\r\n @Input() property: string;\r\n @Input() styleClass: string;\r\n @Input() cellColors: CellCallback;\r\n\r\n // init and state:\r\n @Input() width: number | string;\r\n @Input() visible = true;\r\n\r\n @ContentChild('dataTableCell') cellTemplate;\r\n @ContentChild('dataTableHeader') headerTemplate;\r\n\r\n getCellColor(row: DataTableRow, index: number) {\r\n if (this.cellColors !== undefined) {\r\n return (this.cellColors)(row.item, row, this, index);\r\n }\r\n }\r\n\r\n private styleClassObject = {}; // for [ngClass]\r\n\r\n ngOnInit() {\r\n this._initCellClass();\r\n }\r\n\r\n private _initCellClass() {\r\n if (!this.styleClass && this.property) {\r\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\r\n this.styleClass = 'column-' + this.property;\r\n } else {\r\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\r\n }\r\n }\r\n\r\n if (this.styleClass != null) {\r\n this.styleClassObject = {\r\n [this.styleClass]: true\r\n };\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.component.d.ts b/dist/components/header.component.d.ts new file mode 100644 index 0000000..775b7e3 --- /dev/null +++ b/dist/components/header.component.d.ts @@ -0,0 +1,7 @@ +import { DataTable } from './table.component'; +export declare class DataTableHeader { + dataTable: DataTable; + columnSelectorOpen: boolean; + _closeSelector(): void; + constructor(dataTable: DataTable); +} diff --git a/dist/components/header.component.js b/dist/components/header.component.js new file mode 100644 index 0000000..b038dd6 --- /dev/null +++ b/dist/components/header.component.js @@ -0,0 +1,43 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require("@angular/core"); +var table_component_1 = require("./table.component"); +var header_template_1 = require("./header.template"); +var header_style_1 = require("./header.style"); +var DataTableHeader = (function () { + function DataTableHeader(dataTable) { + this.dataTable = dataTable; + this.columnSelectorOpen = false; + } + DataTableHeader.prototype._closeSelector = function () { + this.columnSelectorOpen = false; + }; + return DataTableHeader; +}()); +DataTableHeader = __decorate([ + core_1.Component({ + moduleId: module.id, + selector: 'data-table-header', + template: header_template_1.HEADER_TEMPLATE, + styles: [header_style_1.HEADER_STYLE], + host: { + '(document:click)': '_closeSelector()' + } + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) +], DataTableHeader); +exports.DataTableHeader = DataTableHeader; +//# sourceMappingURL=/components/header.component.js.map \ No newline at end of file diff --git a/dist/components/header.component.js.map b/dist/components/header.component.js.map new file mode 100644 index 0000000..cd75439 --- /dev/null +++ b/dist/components/header.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAY9C,IAAa,eAAe;IAQxB,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAGL,sBAAC;AAAD,CAAC,AATD,IASC;AATY,eAAe;IAT3B,gBAAS,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,iCAAe;QACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;QACtB,IAAI,EAAE;YACJ,kBAAkB,EAAE,kBAAkB;SACvC;KACF,CAAC;IASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GARnE,eAAe,CAS3B;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { HEADER_TEMPLATE } from './header.template';\r\nimport { HEADER_STYLE } from \"./header.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table-header',\r\n template: HEADER_TEMPLATE,\r\n styles: [HEADER_STYLE],\r\n host: {\r\n '(document:click)': '_closeSelector()'\r\n }\r\n})\r\nexport class DataTableHeader {\r\n\r\n columnSelectorOpen = false;\r\n\r\n _closeSelector() {\r\n this.columnSelectorOpen = false;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.style.d.ts b/dist/components/header.style.d.ts new file mode 100644 index 0000000..33d53a7 --- /dev/null +++ b/dist/components/header.style.d.ts @@ -0,0 +1 @@ +export declare const HEADER_STYLE: string; diff --git a/dist/components/header.style.js b/dist/components/header.style.js new file mode 100644 index 0000000..31662ea --- /dev/null +++ b/dist/components/header.style.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HEADER_STYLE = "\n.data-table-header {\n min-height: 25px;\n margin-bottom: 10px;\n}\n.title {\n display: inline-block;\n margin: 5px 0 0 5px;\n}\n.button-panel {\n float: right;\n}\n.button-panel button {\n outline: none !important;\n}\n\n.column-selector-wrapper {\n position: relative;\n}\n.column-selector-box {\n box-shadow: 0 0 10px lightgray;\n width: 150px;\n padding: 10px;\n position: absolute;\n right: 0;\n top: 1px;\n z-index: 1060;\n}\n.column-selector-box .checkbox {\n margin-bottom: 4px;\n}\n.column-selector-fixed-column {\n font-style: italic;\n}\n"; +//# sourceMappingURL=/components/header.style.js.map \ No newline at end of file diff --git a/dist/components/header.style.js.map b/dist/components/header.style.js.map new file mode 100644 index 0000000..19ce67f --- /dev/null +++ b/dist/components/header.style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\r\n.data-table-header {\r\n min-height: 25px;\r\n margin-bottom: 10px;\r\n}\r\n.title {\r\n display: inline-block;\r\n margin: 5px 0 0 5px;\r\n}\r\n.button-panel {\r\n float: right;\r\n}\r\n.button-panel button {\r\n outline: none !important;\r\n}\r\n\r\n.column-selector-wrapper {\r\n position: relative;\r\n}\r\n.column-selector-box {\r\n box-shadow: 0 0 10px lightgray;\r\n width: 150px;\r\n padding: 10px;\r\n position: absolute;\r\n right: 0;\r\n top: 1px;\r\n z-index: 1060;\r\n}\r\n.column-selector-box .checkbox {\r\n margin-bottom: 4px;\r\n}\r\n.column-selector-fixed-column {\r\n font-style: italic;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/header.template.d.ts b/dist/components/header.template.d.ts new file mode 100644 index 0000000..5564ae5 --- /dev/null +++ b/dist/components/header.template.d.ts @@ -0,0 +1 @@ +export declare const HEADER_TEMPLATE: string; diff --git a/dist/components/header.template.js b/dist/components/header.template.js new file mode 100644 index 0000000..d69a350 --- /dev/null +++ b/dist/components/header.template.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HEADER_TEMPLATE = "\n
\n

\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n"; +//# sourceMappingURL=/components/header.template.js.map \ No newline at end of file diff --git a/dist/components/header.template.js.map b/dist/components/header.template.js.map new file mode 100644 index 0000000..a2b6e76 --- /dev/null +++ b/dist/components/header.template.js.map @@ -0,0 +1 @@ +{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";;AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_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
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.component.d.ts b/dist/components/pagination.component.d.ts new file mode 100644 index 0000000..99ec794 --- /dev/null +++ b/dist/components/pagination.component.d.ts @@ -0,0 +1,20 @@ +import { DataTable } from './table.component'; +export declare class DataTablePagination { + dataTable: DataTable; + show_range: boolean; + show_limit: boolean; + show_input: boolean; + show_numbers: boolean; + constructor(dataTable: DataTable); + pageBack(): void; + pageForward(): void; + pageFirst(): void; + pageLast(): void; + readonly maxPage: number; + limit: number; + page: number; + hasPrevious(number: any, page: any): boolean; + hasNext(number: any, page: any): boolean; + getDifference(): number; + createPageRange(number: any, page: any): any[]; +} diff --git a/dist/components/pagination.component.js b/dist/components/pagination.component.js new file mode 100644 index 0000000..d632254 --- /dev/null +++ b/dist/components/pagination.component.js @@ -0,0 +1,131 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require("@angular/core"); +var table_component_1 = require("./table.component"); +var pagination_template_1 = require("./pagination.template"); +var pagination_style_1 = require("./pagination.style"); +var DataTablePagination = (function () { + function DataTablePagination(dataTable) { + this.dataTable = dataTable; + this.show_range = false; + this.show_limit = false; + this.show_input = false; + this.show_numbers = true; + } + DataTablePagination.prototype.pageBack = function () { + this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset); + }; + DataTablePagination.prototype.pageForward = function () { + this.dataTable.offset += this.dataTable.limit; + }; + DataTablePagination.prototype.pageFirst = function () { + this.dataTable.offset = 0; + }; + DataTablePagination.prototype.pageLast = function () { + this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit; + }; + Object.defineProperty(DataTablePagination.prototype, "maxPage", { + get: function () { + return Math.ceil(this.dataTable.itemCount / this.dataTable.limit); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTablePagination.prototype, "limit", { + get: function () { + return this.dataTable.limit; + }, + set: function (value) { + this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string? + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTablePagination.prototype, "page", { + get: function () { + return this.dataTable.page; + }, + set: function (value) { + this.dataTable.page = Number(value); + }, + enumerable: true, + configurable: true + }); + DataTablePagination.prototype.hasPrevious = function (number, page) { + var difference = this.getDifference(); + if ((page - difference) > 1) { + return true; + } + return false; + }; + DataTablePagination.prototype.hasNext = function (number, page) { + var difference = this.getDifference(); + if ((number - page) > difference) { + return true; + } + return false; + }; + DataTablePagination.prototype.getDifference = function () { + var difference = 2; + return difference; + }; + DataTablePagination.prototype.createPageRange = function (number, page) { + var items = []; + if (number > 1) { + var difference = this.getDifference(); + var maxPage = number; + var minPage = 1; + if ((number - page) >= difference) { + maxPage = page + difference; + } + if ((page - difference) >= 1) { + minPage = page - difference; + } + for (var i = minPage; i <= maxPage; i++) { + items.push(i); + } + } + return items; + }; + return DataTablePagination; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTablePagination.prototype, "show_range", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTablePagination.prototype, "show_limit", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTablePagination.prototype, "show_input", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTablePagination.prototype, "show_numbers", void 0); +DataTablePagination = __decorate([ + core_1.Component({ + moduleId: module.id, + selector: 'data-table-pagination', + template: pagination_template_1.PAGINATION_TEMPLATE, + styles: [pagination_style_1.PAGINATION_STYLE] + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) +], DataTablePagination); +exports.DataTablePagination = DataTablePagination; +//# sourceMappingURL=/components/pagination.component.js.map \ No newline at end of file diff --git a/dist/components/pagination.component.js.map b/dist/components/pagination.component.js.map new file mode 100644 index 0000000..0adf3e0 --- /dev/null +++ b/dist/components/pagination.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {Component, Inject, forwardRef, Input} from '@angular/core';\r\nimport {DataTable} from './table.component';\r\nimport {PAGINATION_TEMPLATE} from './pagination.template';\r\nimport {PAGINATION_STYLE} from \"./pagination.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table-pagination',\r\n template: PAGINATION_TEMPLATE,\r\n styles: [PAGINATION_STYLE]\r\n})\r\nexport class DataTablePagination {\r\n\r\n @Input() show_range = false;\r\n @Input() show_limit = false;\r\n @Input() show_input = false;\r\n @Input() show_numbers = true;\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {\r\n }\r\n\r\n pageBack() {\r\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\r\n }\r\n\r\n pageForward() {\r\n this.dataTable.offset += this.dataTable.limit;\r\n }\r\n\r\n pageFirst() {\r\n this.dataTable.offset = 0;\r\n }\r\n\r\n pageLast() {\r\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\r\n }\r\n\r\n get maxPage() {\r\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\r\n }\r\n\r\n get limit() {\r\n return this.dataTable.limit;\r\n }\r\n\r\n set limit(value) {\r\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\r\n }\r\n\r\n get page() {\r\n return this.dataTable.page;\r\n }\r\n\r\n set page(value) {\r\n this.dataTable.page = Number(value);\r\n }\r\n\r\n hasPrevious(number, page) {\r\n const difference = this.getDifference();\r\n if ((page - difference) > 1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n hasNext(number, page) {\r\n const difference = this.getDifference();\r\n if ((number - page) > difference) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getDifference() {\r\n const difference = 2;\r\n return difference;\r\n }\r\n\r\n createPageRange(number, page): any[] {\r\n let items: number[] = [];\r\n if (number > 1) {\r\n const difference = this.getDifference();\r\n let maxPage = number;\r\n let minPage = 1;\r\n if ((number - page) >= difference) {\r\n maxPage = page + difference;\r\n }\r\n if ((page - difference) >= 1) {\r\n minPage = page - difference;\r\n }\r\n for (let i = minPage; i <= maxPage; i++) {\r\n items.push(i);\r\n }\r\n }\r\n return items;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/pagination.style.d.ts b/dist/components/pagination.style.d.ts new file mode 100644 index 0000000..6817e0c --- /dev/null +++ b/dist/components/pagination.style.d.ts @@ -0,0 +1 @@ +export declare const PAGINATION_STYLE: string; diff --git a/dist/components/pagination.style.js b/dist/components/pagination.style.js new file mode 100644 index 0000000..575da45 --- /dev/null +++ b/dist/components/pagination.style.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PAGINATION_STYLE = "\n.pagination-box {\n position: relative;\n margin-top: -10px;\n}\n.pagination-range {\n margin-top: 7px;\n margin-left: 3px;\n display: inline-block;\n}\n.pagination-controllers {\n float: right;\n}\n.pagination-controllers input {\n min-width: 60px;\n /*padding: 1px 0px 0px 5px;*/\n text-align: right;\n}\n\n.pagination-limit {\n margin-right: 25px;\n display: inline-table;\n width: 150px;\n}\n.pagination-pages {\n display: inline-block;\n}\n.pagination-page {\n width: 110px;\n display: inline-table;\n}\n.pagination-box button {\n outline: none !important;\n}\n.pagination-prevpage,\n.pagination-nextpage,\n.pagination-firstpage,\n.pagination-lastpage {\n vertical-align: top;\n}\n.pagination-reload {\n color: gray;\n font-size: 12px;\n}\n"; +//# sourceMappingURL=/components/pagination.style.js.map \ No newline at end of file diff --git a/dist/components/pagination.style.js.map b/dist/components/pagination.style.js.map new file mode 100644 index 0000000..ab2456f --- /dev/null +++ b/dist/components/pagination.style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";;AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.template.d.ts b/dist/components/pagination.template.d.ts new file mode 100644 index 0000000..f3b5d1c --- /dev/null +++ b/dist/components/pagination.template.d.ts @@ -0,0 +1 @@ +export declare const PAGINATION_TEMPLATE: string; diff --git a/dist/components/pagination.template.js b/dist/components/pagination.template.js new file mode 100644 index 0000000..3b800fd --- /dev/null +++ b/dist/components/pagination.template.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PAGINATION_TEMPLATE = "\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n
\n \n
\n \n \n \n
\n
\n
\n"; +//# sourceMappingURL=/components/pagination.template.js.map \ No newline at end of file diff --git a/dist/components/pagination.template.js.map b/dist/components/pagination.template.js.map new file mode 100644 index 0000000..d918159 --- /dev/null +++ b/dist/components/pagination.template.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";;AAAa,QAAA,mBAAmB,GAAG,w6FA8ClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\r\n
\r\n
\r\n {{dataTable.translations.paginationRange}}:\r\n \r\n -\r\n \r\n /\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{dataTable.translations.paginationLimit}}:\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n /\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.component.d.ts b/dist/components/row.component.d.ts new file mode 100644 index 0000000..44dfa8e --- /dev/null +++ b/dist/components/row.component.d.ts @@ -0,0 +1,16 @@ +import { EventEmitter, OnDestroy } from '@angular/core'; +import { DataTable } from './table.component'; +export declare class DataTableRow implements OnDestroy { + dataTable: DataTable; + item: any; + index: number; + expanded: boolean; + private _selected; + selectedChange: EventEmitter<{}>; + selected: boolean; + readonly displayIndex: number; + getTooltip(): string; + constructor(dataTable: DataTable); + ngOnDestroy(): void; + private _this; +} diff --git a/dist/components/row.component.js b/dist/components/row.component.js new file mode 100644 index 0000000..6be4999 --- /dev/null +++ b/dist/components/row.component.js @@ -0,0 +1,83 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require("@angular/core"); +var table_component_1 = require("./table.component"); +var row_template_1 = require("./row.template"); +var row_style_1 = require("./row.style"); +var DataTableRow = (function () { + function DataTableRow(dataTable) { + this.dataTable = dataTable; + this.selectedChange = new core_1.EventEmitter(); + this._this = this; // FIXME is there no template keyword for this in angular 2? + } + Object.defineProperty(DataTableRow.prototype, "selected", { + get: function () { + return this._selected; + }, + set: function (selected) { + this._selected = selected; + this.selectedChange.emit(selected); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTableRow.prototype, "displayIndex", { + // other: + get: function () { + if (this.dataTable.pagination) { + return this.dataTable.displayParams.offset + this.index + 1; + } + else { + return this.index + 1; + } + }, + enumerable: true, + configurable: true + }); + DataTableRow.prototype.getTooltip = function () { + if (this.dataTable.rowTooltip) { + return this.dataTable.rowTooltip(this.item, this, this.index); + } + return ''; + }; + DataTableRow.prototype.ngOnDestroy = function () { + this.selected = false; + }; + return DataTableRow; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTableRow.prototype, "item", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Number) +], DataTableRow.prototype, "index", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTableRow.prototype, "selectedChange", void 0); +DataTableRow = __decorate([ + core_1.Component({ + moduleId: module.id, + selector: '[dataTableRow]', + template: row_template_1.ROW_TEMPLATE, + styles: [row_style_1.ROW_STYLE] + }), + __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), + __metadata("design:paramtypes", [table_component_1.DataTable]) +], DataTableRow); +exports.DataTableRow = DataTableRow; +//# sourceMappingURL=/components/row.component.js.map \ No newline at end of file diff --git a/dist/components/row.component.js.map b/dist/components/row.component.js.map new file mode 100644 index 0000000..6ffb8b1 --- /dev/null +++ b/dist/components/row.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AASxC,IAAa,YAAY;IAuCrB,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAGL,mBAAC;AAAD,CAAC,AA9CD,IA8CC;AA5CY;IAAR,YAAK,EAAE;;0CAAW;AACV;IAAR,YAAK,EAAE;;2CAAe;AAQb;IAAT,aAAM,EAAE;;oDAAqC;AAXrC,YAAY;IANxB,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,2BAAY;QACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;KACtB,CAAC;IAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAvCnE,YAAY,CA8CxB;AA9CY,oCAAY","sourcesContent":["import {\r\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\r\n} from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { ROW_TEMPLATE } from './row.template';\r\nimport { ROW_STYLE } from \"./row.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: '[dataTableRow]',\r\n template: ROW_TEMPLATE,\r\n styles: [ROW_STYLE]\r\n})\r\nexport class DataTableRow implements OnDestroy {\r\n\r\n @Input() item: any;\r\n @Input() index: number;\r\n\r\n expanded: boolean;\r\n\r\n // row selection:\r\n\r\n private _selected: boolean;\r\n\r\n @Output() selectedChange = new EventEmitter();\r\n\r\n get selected() {\r\n return this._selected;\r\n }\r\n\r\n set selected(selected) {\r\n this._selected = selected;\r\n this.selectedChange.emit(selected);\r\n }\r\n\r\n // other:\r\n\r\n get displayIndex() {\r\n if (this.dataTable.pagination) {\r\n return this.dataTable.displayParams.offset + this.index + 1;\r\n } else {\r\n return this.index + 1;\r\n }\r\n }\r\n\r\n getTooltip() {\r\n if (this.dataTable.rowTooltip) {\r\n return this.dataTable.rowTooltip(this.item, this, this.index);\r\n }\r\n return '';\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n ngOnDestroy() {\r\n this.selected = false;\r\n }\r\n\r\n private _this = this; // FIXME is there no template keyword for this in angular 2?\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/row.style.d.ts b/dist/components/row.style.d.ts new file mode 100644 index 0000000..8024ce7 --- /dev/null +++ b/dist/components/row.style.d.ts @@ -0,0 +1 @@ +export declare const ROW_STYLE: string; diff --git a/dist/components/row.style.js b/dist/components/row.style.js new file mode 100644 index 0000000..f1eaa30 --- /dev/null +++ b/dist/components/row.style.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ROW_STYLE = "\n.select-column {\n text-align: center;\n}\n\n.row-expand-button {\n cursor: pointer;\n text-align: center;\n}\n\n.clickable {\n cursor: pointer;\n}\n"; +//# sourceMappingURL=/components/row.style.js.map \ No newline at end of file diff --git a/dist/components/row.style.js.map b/dist/components/row.style.js.map new file mode 100644 index 0000000..e936027 --- /dev/null +++ b/dist/components/row.style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";;AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.template.d.ts b/dist/components/row.template.d.ts new file mode 100644 index 0000000..04ff0ae --- /dev/null +++ b/dist/components/row.template.d.ts @@ -0,0 +1 @@ +export declare const ROW_TEMPLATE: string; diff --git a/dist/components/row.template.js b/dist/components/row.template.js new file mode 100644 index 0000000..d959c09 --- /dev/null +++ b/dist/components/row.template.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ROW_TEMPLATE = "\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n\n\n \n
\n \n\n"; +//# sourceMappingURL=/components/row.template.js.map \ No newline at end of file diff --git a/dist/components/row.template.js.map b/dist/components/row.template.js.map new file mode 100644 index 0000000..48a3fff --- /dev/null +++ b/dist/components/row.template.js.map @@ -0,0 +1 @@ +{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_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\r\n\r\n \r\n
\r\n \r\n\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.component.d.ts b/dist/components/table.component.d.ts new file mode 100644 index 0000000..43b7bd3 --- /dev/null +++ b/dist/components/table.component.d.ts @@ -0,0 +1,83 @@ +import { EventEmitter, QueryList, TemplateRef, OnInit } from '@angular/core'; +import { DataTableColumn } from './column.component'; +import { DataTableRow } from './row.component'; +import { DataTableParams } from '../types/data-table-params.type'; +import { RowCallback } from '../types/row-callback.type'; +import { DataTableTranslations } from '../types/data-table-translations.type'; +export declare class DataTable implements DataTableParams, OnInit { + private _items; + items: any[]; + itemCount: number; + columns: QueryList; + rows: QueryList; + expandTemplate: TemplateRef; + headerTitle: string; + header: boolean; + pagination: boolean; + pagination_range: boolean; + pagination_limit: boolean; + pagination_input: boolean; + pagination_numbers: boolean; + indexColumn: boolean; + indexColumnHeader: string; + rowColors: RowCallback; + rowTooltip: RowCallback; + selectColumn: boolean; + multiSelect: boolean; + substituteRows: boolean; + expandableRows: boolean; + translations: DataTableTranslations; + selectOnRowClick: boolean; + autoReload: boolean; + showReloading: boolean; + indexColumnVisible: boolean; + selectColumnVisible: boolean; + expandColumnVisible: boolean; + private _sortBy; + private _sortAsc; + private _offset; + private _limit; + sortBy: string; + sortAsc: boolean; + offset: number; + limit: number; + page: number; + readonly lastPage: number; + sort(sortBy: string, asc: boolean): void; + ngOnInit(): void; + private _initDefaultValues(); + private _initDefaultClickEvents(); + _reloading: boolean; + readonly reloading: boolean; + reload: EventEmitter<{}>; + reloadItems(): void; + private _onReloadFinished(); + _displayParams: DataTableParams; + readonly displayParams: DataTableParams; + _updateDisplayParams(): void; + _scheduledReload: any; + _triggerReload(): void; + rowClick: EventEmitter<{}>; + rowDoubleClick: EventEmitter<{}>; + headerClick: EventEmitter<{}>; + cellClick: EventEmitter<{}>; + private rowClicked(row, event); + private rowDoubleClicked(row, event); + private headerClicked(column, event); + private cellClicked(column, row, event); + private _getRemoteParameters(); + private sortColumn(column); + readonly columnCount: number; + private getRowColor(item, index, row); + selectedRow: DataTableRow; + selectedRows: DataTableRow[]; + private _selectAllCheckbox; + selectAllCheckbox: boolean; + private _onSelectAllChanged(value); + onRowSelectChanged(row: DataTableRow): void; + readonly substituteItems: {}[]; + private _resizeInProgress; + private resizeColumnStart(event, column, columnElement); + resizeLimit: number; + private _isResizeInLimit(columnElement, dx); +} diff --git a/dist/components/table.component.js b/dist/components/table.component.js new file mode 100644 index 0000000..c268489 --- /dev/null +++ b/dist/components/table.component.js @@ -0,0 +1,478 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require("@angular/core"); +var column_component_1 = require("./column.component"); +var row_component_1 = require("./row.component"); +var default_translations_type_1 = require("../types/default-translations.type"); +var drag_1 = require("../utils/drag"); +var table_template_1 = require("./table.template"); +var table_style_1 = require("./table.style"); +var DataTable = (function () { + function DataTable() { + this._items = []; + this.header = true; + this.pagination = true; + this.pagination_range = false; + this.pagination_limit = false; + this.pagination_input = false; + this.pagination_numbers = true; + this.indexColumn = true; + this.indexColumnHeader = ''; + this.selectColumn = false; + this.multiSelect = true; + this.substituteRows = true; + this.expandableRows = false; + this.translations = default_translations_type_1.defaultTranslations; + this.selectOnRowClick = false; + this.autoReload = true; + this.showReloading = false; + this._sortAsc = true; + this._offset = 0; + this._limit = 10; + // Reloading: + this._reloading = false; + this.reload = new core_1.EventEmitter(); + this._displayParams = {}; // params of the last finished reload + this._scheduledReload = null; + // event handlers: + this.rowClick = new core_1.EventEmitter(); + this.rowDoubleClick = new core_1.EventEmitter(); + this.headerClick = new core_1.EventEmitter(); + this.cellClick = new core_1.EventEmitter(); + this.selectedRows = []; + this._selectAllCheckbox = false; + // column resizing: + this._resizeInProgress = false; + this.resizeLimit = 30; + } + Object.defineProperty(DataTable.prototype, "items", { + get: function () { + return this._items; + }, + set: function (items) { + this._items = items; + this._onReloadFinished(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "sortBy", { + get: function () { + return this._sortBy; + }, + set: function (value) { + this._sortBy = value; + this._triggerReload(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "sortAsc", { + get: function () { + return this._sortAsc; + }, + set: function (value) { + this._sortAsc = value; + this._triggerReload(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "offset", { + get: function () { + return this._offset; + }, + set: function (value) { + this._offset = value; + this._triggerReload(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "limit", { + get: function () { + return this._limit; + }, + set: function (value) { + this._limit = value; + this._triggerReload(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "page", { + // calculated property: + get: function () { + return Math.floor(this.offset / this.limit) + 1; + }, + set: function (value) { + this.offset = (value - 1) * this.limit; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "lastPage", { + get: function () { + return Math.ceil(this.itemCount / this.limit); + }, + enumerable: true, + configurable: true + }); + // setting multiple observable properties simultaneously + DataTable.prototype.sort = function (sortBy, asc) { + this.sortBy = sortBy; + this.sortAsc = asc; + }; + // init + DataTable.prototype.ngOnInit = function () { + this._initDefaultValues(); + this._initDefaultClickEvents(); + this._updateDisplayParams(); + if (this.autoReload && this._scheduledReload == null) { + this.reloadItems(); + } + }; + DataTable.prototype._initDefaultValues = function () { + this.indexColumnVisible = this.indexColumn; + this.selectColumnVisible = this.selectColumn; + this.expandColumnVisible = this.expandableRows; + }; + DataTable.prototype._initDefaultClickEvents = function () { + var _this = this; + this.headerClick.subscribe(function (tableEvent) { return _this.sortColumn(tableEvent.column); }); + if (this.selectOnRowClick) { + this.rowClick.subscribe(function (tableEvent) { return tableEvent.row.selected = !tableEvent.row.selected; }); + } + }; + Object.defineProperty(DataTable.prototype, "reloading", { + get: function () { + return this._reloading; + }, + enumerable: true, + configurable: true + }); + DataTable.prototype.reloadItems = function () { + this._reloading = true; + this.reload.emit(this._getRemoteParameters()); + }; + DataTable.prototype._onReloadFinished = function () { + this._updateDisplayParams(); + this._selectAllCheckbox = false; + this._reloading = false; + }; + Object.defineProperty(DataTable.prototype, "displayParams", { + get: function () { + return this._displayParams; + }, + enumerable: true, + configurable: true + }); + DataTable.prototype._updateDisplayParams = function () { + this._displayParams = { + sortBy: this.sortBy, + sortAsc: this.sortAsc, + offset: this.offset, + limit: this.limit + }; + }; + // for avoiding cascading reloads if multiple params are set at once: + DataTable.prototype._triggerReload = function () { + var _this = this; + if (this._scheduledReload) { + clearTimeout(this._scheduledReload); + } + this._scheduledReload = setTimeout(function () { + _this.reloadItems(); + }); + }; + DataTable.prototype.rowClicked = function (row, event) { + this.rowClick.emit({ row: row, event: event }); + }; + DataTable.prototype.rowDoubleClicked = function (row, event) { + this.rowDoubleClick.emit({ row: row, event: event }); + }; + DataTable.prototype.headerClicked = function (column, event) { + if (!this._resizeInProgress) { + this.headerClick.emit({ column: column, event: event }); + } + else { + this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end + } + }; + DataTable.prototype.cellClicked = function (column, row, event) { + this.cellClick.emit({ row: row, column: column, event: event }); + }; + // functions: + DataTable.prototype._getRemoteParameters = function () { + var params = {}; + if (this.sortBy) { + params.sortBy = this.sortBy; + params.sortAsc = this.sortAsc; + } + if (this.pagination) { + params.offset = this.offset; + params.limit = this.limit; + } + return params; + }; + DataTable.prototype.sortColumn = function (column) { + if (column.sortable) { + var ascending = this.sortBy === column.property ? !this.sortAsc : true; + this.sort(column.property, ascending); + } + }; + Object.defineProperty(DataTable.prototype, "columnCount", { + get: function () { + var count = 0; + count += this.indexColumnVisible ? 1 : 0; + count += this.selectColumnVisible ? 1 : 0; + count += this.expandColumnVisible ? 1 : 0; + this.columns.toArray().forEach(function (column) { + count += column.visible ? 1 : 0; + }); + return count; + }, + enumerable: true, + configurable: true + }); + DataTable.prototype.getRowColor = function (item, index, row) { + if (this.rowColors !== undefined) { + return this.rowColors(item, row, index); + } + }; + Object.defineProperty(DataTable.prototype, "selectAllCheckbox", { + get: function () { + return this._selectAllCheckbox; + }, + set: function (value) { + this._selectAllCheckbox = value; + this._onSelectAllChanged(value); + }, + enumerable: true, + configurable: true + }); + DataTable.prototype._onSelectAllChanged = function (value) { + this.rows.toArray().forEach(function (row) { return row.selected = value; }); + }; + DataTable.prototype.onRowSelectChanged = function (row) { + // maintain the selectedRow(s) view + if (this.multiSelect) { + var index = this.selectedRows.indexOf(row); + if (row.selected && index < 0) { + this.selectedRows.push(row); + } + else if (!row.selected && index >= 0) { + this.selectedRows.splice(index, 1); + } + } + else { + if (row.selected) { + this.selectedRow = row; + } + else if (this.selectedRow === row) { + this.selectedRow = undefined; + } + } + // unselect all other rows: + if (row.selected && !this.multiSelect) { + this.rows.toArray().filter(function (row_) { return row_.selected; }).forEach(function (row_) { + if (row_ !== row) { + row_.selected = false; + } + }); + } + }; + Object.defineProperty(DataTable.prototype, "substituteItems", { + // other: + get: function () { + return Array.from({ length: this.displayParams.limit - this.items.length }); + }, + enumerable: true, + configurable: true + }); + DataTable.prototype.resizeColumnStart = function (event, column, columnElement) { + var _this = this; + this._resizeInProgress = true; + drag_1.drag(event, { + move: function (moveEvent, dx) { + if (_this._isResizeInLimit(columnElement, dx)) { + column.width = columnElement.offsetWidth + dx; + } + }, + }); + }; + DataTable.prototype._isResizeInLimit = function (columnElement, dx) { + /* This is needed because CSS min-width didn't work on table-layout: fixed. + Without the limits, resizing can make the next column disappear completely, + and even increase the table width. The current implementation suffers from the fact, + that offsetWidth sometimes contains out-of-date values. */ + if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) || + !columnElement.nextElementSibling || + (dx >= 0 && (columnElement.nextElementSibling.offsetWidth + dx) <= this.resizeLimit)) { + return false; + } + return true; + }; + return DataTable; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Array]) +], DataTable.prototype, "items", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Number) +], DataTable.prototype, "itemCount", void 0); +__decorate([ + core_1.ContentChildren(column_component_1.DataTableColumn), + __metadata("design:type", core_1.QueryList) +], DataTable.prototype, "columns", void 0); +__decorate([ + core_1.ViewChildren(row_component_1.DataTableRow), + __metadata("design:type", core_1.QueryList) +], DataTable.prototype, "rows", void 0); +__decorate([ + core_1.ContentChild('dataTableExpand'), + __metadata("design:type", core_1.TemplateRef) +], DataTable.prototype, "expandTemplate", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], DataTable.prototype, "headerTitle", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "header", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination_range", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination_limit", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination_input", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "pagination_numbers", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "indexColumn", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "indexColumnHeader", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Function) +], DataTable.prototype, "rowColors", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Function) +], DataTable.prototype, "rowTooltip", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "selectColumn", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "multiSelect", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "substituteRows", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "expandableRows", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "translations", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "selectOnRowClick", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "autoReload", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], DataTable.prototype, "showReloading", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "sortBy", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "sortAsc", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "offset", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "limit", null); +__decorate([ + core_1.Input(), + __metadata("design:type", Object), + __metadata("design:paramtypes", [Object]) +], DataTable.prototype, "page", null); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "reload", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "rowClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "rowDoubleClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "headerClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], DataTable.prototype, "cellClick", void 0); +DataTable = __decorate([ + core_1.Component({ + moduleId: module.id, + selector: 'data-table', + template: table_template_1.TABLE_TEMPLATE, + styles: [table_style_1.TABLE_STYLE] + }) +], DataTable); +exports.DataTable = DataTable; +//# sourceMappingURL=/components/table.component.js.map \ No newline at end of file diff --git a/dist/components/table.component.js.map b/dist/components/table.component.js.map new file mode 100644 index 0000000..b4f4ccc --- /dev/null +++ b/dist/components/table.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\r\n TemplateRef, ContentChild, ViewChildren, OnInit\r\n} from '@angular/core';\r\nimport { DataTableColumn } from './column.component';\r\nimport { DataTableRow } from './row.component';\r\nimport { DataTableParams } from '../types/data-table-params.type';\r\nimport { RowCallback } from '../types/row-callback.type';\r\nimport { DataTableTranslations } from '../types/data-table-translations.type';\r\nimport { defaultTranslations } from '../types/default-translations.type';\r\nimport { drag } from '../utils/drag';\r\nimport { TABLE_TEMPLATE } from './table.template';\r\nimport { TABLE_STYLE } from \"./table.style\";\r\n\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table',\r\n template: TABLE_TEMPLATE,\r\n styles: [TABLE_STYLE]\r\n})\r\nexport class DataTable implements DataTableParams, OnInit {\r\n\r\n private _items: any[] = [];\r\n\r\n @Input() get items() {\r\n return this._items;\r\n }\r\n\r\n set items(items: any[]) {\r\n this._items = items;\r\n this._onReloadFinished();\r\n }\r\n\r\n @Input() itemCount: number;\r\n\r\n // UI components:\r\n\r\n @ContentChildren(DataTableColumn) columns: QueryList;\r\n @ViewChildren(DataTableRow) rows: QueryList;\r\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\r\n\r\n // One-time optional bindings with default values:\r\n\r\n @Input() headerTitle: string;\r\n @Input() header = true;\r\n @Input() pagination = true;\r\n @Input() pagination_range = false;\r\n @Input() pagination_limit = false;\r\n @Input() pagination_input = false;\r\n @Input() pagination_numbers = true;\r\n @Input() indexColumn = true;\r\n @Input() indexColumnHeader = '';\r\n @Input() rowColors: RowCallback;\r\n @Input() rowTooltip: RowCallback;\r\n @Input() selectColumn = false;\r\n @Input() multiSelect = true;\r\n @Input() substituteRows = true;\r\n @Input() expandableRows = false;\r\n @Input() translations: DataTableTranslations = defaultTranslations;\r\n @Input() selectOnRowClick = false;\r\n @Input() autoReload = true;\r\n @Input() showReloading = false;\r\n\r\n // UI state without input:\r\n\r\n indexColumnVisible: boolean;\r\n selectColumnVisible: boolean;\r\n expandColumnVisible: boolean;\r\n\r\n // UI state: visible ge/set for the outside with @Input for one-time initial values\r\n\r\n private _sortBy: string;\r\n private _sortAsc = true;\r\n\r\n private _offset = 0;\r\n private _limit = 10;\r\n\r\n @Input()\r\n get sortBy() {\r\n return this._sortBy;\r\n }\r\n\r\n set sortBy(value) {\r\n this._sortBy = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get sortAsc() {\r\n return this._sortAsc;\r\n }\r\n\r\n set sortAsc(value) {\r\n this._sortAsc = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get offset() {\r\n return this._offset;\r\n }\r\n\r\n set offset(value) {\r\n this._offset = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get limit() {\r\n return this._limit;\r\n }\r\n\r\n set limit(value) {\r\n this._limit = value;\r\n this._triggerReload();\r\n }\r\n\r\n // calculated property:\r\n\r\n @Input()\r\n get page() {\r\n return Math.floor(this.offset / this.limit) + 1;\r\n }\r\n\r\n set page(value) {\r\n this.offset = (value - 1) * this.limit;\r\n }\r\n\r\n get lastPage() {\r\n return Math.ceil(this.itemCount / this.limit);\r\n }\r\n\r\n // setting multiple observable properties simultaneously\r\n\r\n sort(sortBy: string, asc: boolean) {\r\n this.sortBy = sortBy;\r\n this.sortAsc = asc;\r\n }\r\n\r\n // init\r\n\r\n ngOnInit() {\r\n this._initDefaultValues();\r\n this._initDefaultClickEvents();\r\n this._updateDisplayParams();\r\n\r\n if (this.autoReload && this._scheduledReload == null) {\r\n this.reloadItems();\r\n }\r\n }\r\n\r\n private _initDefaultValues() {\r\n this.indexColumnVisible = this.indexColumn;\r\n this.selectColumnVisible = this.selectColumn;\r\n this.expandColumnVisible = this.expandableRows;\r\n }\r\n\r\n private _initDefaultClickEvents() {\r\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\r\n if (this.selectOnRowClick) {\r\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\r\n }\r\n }\r\n\r\n // Reloading:\r\n\r\n _reloading = false;\r\n\r\n get reloading() {\r\n return this._reloading;\r\n }\r\n\r\n @Output() reload = new EventEmitter();\r\n\r\n reloadItems() {\r\n this._reloading = true;\r\n this.reload.emit(this._getRemoteParameters());\r\n }\r\n\r\n private _onReloadFinished() {\r\n this._updateDisplayParams();\r\n\r\n this._selectAllCheckbox = false;\r\n this._reloading = false;\r\n }\r\n\r\n _displayParams = {}; // params of the last finished reload\r\n\r\n get displayParams() {\r\n return this._displayParams;\r\n }\r\n\r\n _updateDisplayParams() {\r\n this._displayParams = {\r\n sortBy: this.sortBy,\r\n sortAsc: this.sortAsc,\r\n offset: this.offset,\r\n limit: this.limit\r\n };\r\n }\r\n\r\n _scheduledReload = null;\r\n\r\n // for avoiding cascading reloads if multiple params are set at once:\r\n _triggerReload() {\r\n if (this._scheduledReload) {\r\n clearTimeout(this._scheduledReload);\r\n }\r\n this._scheduledReload = setTimeout(() => {\r\n this.reloadItems();\r\n });\r\n }\r\n\r\n // event handlers:\r\n\r\n @Output() rowClick = new EventEmitter();\r\n @Output() rowDoubleClick = new EventEmitter();\r\n @Output() headerClick = new EventEmitter();\r\n @Output() cellClick = new EventEmitter();\r\n\r\n private rowClicked(row: DataTableRow, event) {\r\n this.rowClick.emit({ row, event });\r\n }\r\n\r\n private rowDoubleClicked(row: DataTableRow, event) {\r\n this.rowDoubleClick.emit({ row, event });\r\n }\r\n\r\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\r\n if (!this._resizeInProgress) {\r\n this.headerClick.emit({ column, event });\r\n } else {\r\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\r\n }\r\n }\r\n\r\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\r\n this.cellClick.emit({ row, column, event });\r\n }\r\n\r\n // functions:\r\n\r\n private _getRemoteParameters(): DataTableParams {\r\n let params = {};\r\n\r\n if (this.sortBy) {\r\n params.sortBy = this.sortBy;\r\n params.sortAsc = this.sortAsc;\r\n }\r\n if (this.pagination) {\r\n params.offset = this.offset;\r\n params.limit = this.limit;\r\n }\r\n return params;\r\n }\r\n\r\n private sortColumn(column: DataTableColumn) {\r\n if (column.sortable) {\r\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\r\n this.sort(column.property, ascending);\r\n }\r\n }\r\n\r\n get columnCount() {\r\n let count = 0;\r\n count += this.indexColumnVisible ? 1 : 0;\r\n count += this.selectColumnVisible ? 1 : 0;\r\n count += this.expandColumnVisible ? 1 : 0;\r\n this.columns.toArray().forEach(column => {\r\n count += column.visible ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n private getRowColor(item: any, index: number, row: DataTableRow) {\r\n if (this.rowColors !== undefined) {\r\n return (this.rowColors)(item, row, index);\r\n }\r\n }\r\n\r\n // selection:\r\n\r\n selectedRow: DataTableRow;\r\n selectedRows: DataTableRow[] = [];\r\n\r\n private _selectAllCheckbox = false;\r\n\r\n get selectAllCheckbox() {\r\n return this._selectAllCheckbox;\r\n }\r\n\r\n set selectAllCheckbox(value) {\r\n this._selectAllCheckbox = value;\r\n this._onSelectAllChanged(value);\r\n }\r\n\r\n private _onSelectAllChanged(value: boolean) {\r\n this.rows.toArray().forEach(row => row.selected = value);\r\n }\r\n\r\n onRowSelectChanged(row: DataTableRow) {\r\n\r\n // maintain the selectedRow(s) view\r\n if (this.multiSelect) {\r\n let index = this.selectedRows.indexOf(row);\r\n if (row.selected && index < 0) {\r\n this.selectedRows.push(row);\r\n } else if (!row.selected && index >= 0) {\r\n this.selectedRows.splice(index, 1);\r\n }\r\n } else {\r\n if (row.selected) {\r\n this.selectedRow = row;\r\n } else if (this.selectedRow === row) {\r\n this.selectedRow = undefined;\r\n }\r\n }\r\n\r\n // unselect all other rows:\r\n if (row.selected && !this.multiSelect) {\r\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\r\n if (row_ !== row) { // avoid endless loop\r\n row_.selected = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // other:\r\n\r\n get substituteItems() {\r\n return Array.from({ length: this.displayParams.limit - this.items.length });\r\n }\r\n\r\n // column resizing:\r\n\r\n private _resizeInProgress = false;\r\n\r\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\r\n this._resizeInProgress = true;\r\n\r\n drag(event, {\r\n move: (moveEvent: MouseEvent, dx: number) => {\r\n if (this._isResizeInLimit(columnElement, dx)) {\r\n column.width = columnElement.offsetWidth + dx;\r\n }\r\n },\r\n });\r\n }\r\n\r\n resizeLimit = 30;\r\n\r\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\r\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\r\n Without the limits, resizing can make the next column disappear completely,\r\n and even increase the table width. The current implementation suffers from the fact,\r\n that offsetWidth sometimes contains out-of-date values. */\r\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\r\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\r\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/table.style.d.ts b/dist/components/table.style.d.ts new file mode 100644 index 0000000..ab363e7 --- /dev/null +++ b/dist/components/table.style.d.ts @@ -0,0 +1 @@ +export declare const TABLE_STYLE: string; diff --git a/dist/components/table.style.js b/dist/components/table.style.js new file mode 100644 index 0000000..e2ce937 --- /dev/null +++ b/dist/components/table.style.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TABLE_STYLE = "\n/* bootstrap override: */\n\n:host /deep/ .data-table.table > tbody+tbody {\n border-top: none;\n}\n:host /deep/ .data-table.table td {\n vertical-align: middle;\n}\n\n:host /deep/ .data-table > thead > tr > th,\n:host /deep/ .data-table > tbody > tr > td {\n\toverflow: hidden;\n}\n\n/* I can't use the bootstrap striped table, because of the expandable rows */\n:host /deep/ .row-odd {\n background-color: #F6F6F6;\n}\n:host /deep/ .row-even {\n}\n\n.data-table .substitute-rows > tr:hover,\n:host /deep/ .data-table .data-table-row:hover {\n background-color: #ECECEC;\n}\n/* table itself: */\n\n.data-table {\n box-shadow: 0 0 15px rgb(236, 236, 236);\n table-layout: fixed;\n}\n\n/* header cells: */\n\n.column-header {\n position: relative;\n}\n.expand-column-header {\n\twidth: 50px;\n}\n.select-column-header {\n\twidth: 50px;\n\ttext-align: center;\n}\n.index-column-header {\n\twidth: 40px;\n}\n.column-header.sortable {\n cursor: pointer;\n}\n.column-header .column-sort-icon {\n\tfloat: right;\n}\n.column-header.resizable .column-sort-icon {\n margin-right: 8px;\n}\n.column-header .column-sort-icon .column-sortable-icon {\n color: lightgray;\n}\n.column-header .column-resize-handle {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n padding: 0;\n width: 8px;\n height: 100%;\n cursor: col-resize;\n}\n\n/* cover: */\n\n.data-table-box {\n position: relative;\n}\n\n.loading-cover {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.3);\n top: 0;\n}\n"; +//# sourceMappingURL=/components/table.style.js.map \ No newline at end of file diff --git a/dist/components/table.style.js.map b/dist/components/table.style.js.map new file mode 100644 index 0000000..d182f3f --- /dev/null +++ b/dist/components/table.style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.template.d.ts b/dist/components/table.template.d.ts new file mode 100644 index 0000000..cc04eb4 --- /dev/null +++ b/dist/components/table.template.d.ts @@ -0,0 +1 @@ +export declare const TABLE_TEMPLATE: string; diff --git a/dist/components/table.template.js b/dist/components/table.template.js new file mode 100644 index 0000000..905d8a0 --- /dev/null +++ b/dist/components/table.template.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TABLE_TEMPLATE = "\n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 \n
\n
\n
\n\n \n
\n"; +//# sourceMappingURL=/components/table.template.js.map \ No newline at end of file diff --git a/dist/components/table.template.js.map b/dist/components/table.template.js.map new file mode 100644 index 0000000..677275c --- /dev/null +++ b/dist/components/table.template.js.map @@ -0,0 +1 @@ +{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";;AAAa,QAAA,cAAc,GAAG,84GAwD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 0000000..4fae7a2 --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { DataTable } from './components/table.component'; +import { DataTableColumn } from './components/column.component'; +import { DataTableRow } from './components/row.component'; +import { DataTablePagination } from './components/pagination.component'; +import { DataTableHeader } from './components/header.component'; +import { DataTableTranslations } from './types/data-table-translations.type'; +import { CellCallback } from './types/cell-callback.type'; +import { RowCallback } from './types/row-callback.type'; +import { DataTableParams } from './types/data-table-params.type'; +import { defaultTranslations } from './types/default-translations.type'; +export * from './tools/data-table-resource'; +export { DataTable, DataTableColumn, DataTableRow, DataTablePagination, DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations }; +export declare const DATA_TABLE_DIRECTIVES: (typeof DataTable | typeof DataTableColumn)[]; +@NgModule() +export declare class DataTableModule { +} diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..ed9fdd6 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,49 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require("@angular/core"); +var common_1 = require("@angular/common"); +var forms_1 = require("@angular/forms"); +var table_component_1 = require("./components/table.component"); +exports.DataTable = table_component_1.DataTable; +var column_component_1 = require("./components/column.component"); +exports.DataTableColumn = column_component_1.DataTableColumn; +var row_component_1 = require("./components/row.component"); +exports.DataTableRow = row_component_1.DataTableRow; +var pagination_component_1 = require("./components/pagination.component"); +exports.DataTablePagination = pagination_component_1.DataTablePagination; +var header_component_1 = require("./components/header.component"); +exports.DataTableHeader = header_component_1.DataTableHeader; +var px_1 = require("./utils/px"); +var hide_1 = require("./utils/hide"); +var min_1 = require("./utils/min"); +var default_translations_type_1 = require("./types/default-translations.type"); +exports.defaultTranslations = default_translations_type_1.defaultTranslations; +__export(require("./tools/data-table-resource")); +exports.DATA_TABLE_DIRECTIVES = [table_component_1.DataTable, column_component_1.DataTableColumn]; +var DataTableModule = (function () { + function DataTableModule() { + } + return DataTableModule; +}()); +DataTableModule = __decorate([ + core_1.NgModule({ + imports: [common_1.CommonModule, forms_1.FormsModule], + declarations: [ + table_component_1.DataTable, column_component_1.DataTableColumn, + row_component_1.DataTableRow, pagination_component_1.DataTablePagination, header_component_1.DataTableHeader, + px_1.PixelConverter, hide_1.Hide, min_1.MinPipe + ], + exports: [table_component_1.DataTable, column_component_1.DataTableColumn] + }) +], DataTableModule); +exports.DataTableModule = DataTableModule; +//# sourceMappingURL=/index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 0000000..6db4dcc --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,oBAfA,2BAAS,CAeA;AAdlB,kEAAgE;AAc5C,0BAdX,kCAAe,CAcW;AAbnC,4DAA0D;AAarB,uBAb5B,4BAAY,CAa4B;AAZjD,0EAAwE;AAYrB,8BAZ1C,0CAAmB,CAY0C;AAXtE,kEAAgE;AAYtD,0BAZD,kCAAe,CAYC;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8BAHrF,+CAAmB,CAGqF;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE,IAAa,eAAe;IAA5B;IAA+B,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAhC,IAAgC;AAAnB,eAAe;IAT3B,eAAQ,CAAC;QACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;QACtC,YAAY,EAAE;YACV,2BAAS,EAAE,kCAAe;YAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;YAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;SAChC;QACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;KAC1C,CAAC;GACW,eAAe,CAAI;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DataTable} from './components/table.component';\r\nimport { DataTableColumn } from './components/column.component';\r\nimport { DataTableRow } from './components/row.component';\r\nimport { DataTablePagination } from './components/pagination.component';\r\nimport { DataTableHeader } from './components/header.component';\r\n\r\nimport { PixelConverter } from './utils/px';\r\nimport { Hide } from './utils/hide';\r\nimport { MinPipe } from './utils/min';\r\nimport { DataTableTranslations } from './types/data-table-translations.type';\r\nimport { CellCallback } from './types/cell-callback.type';\r\nimport { RowCallback } from './types/row-callback.type';\r\nimport { DataTableParams } from './types/data-table-params.type';\r\nimport { defaultTranslations } from './types/default-translations.type';\r\nexport * from './tools/data-table-resource';\r\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\r\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\r\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\r\n\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule ],\r\n declarations: [\r\n DataTable, DataTableColumn,\r\n DataTableRow, DataTablePagination, DataTableHeader,\r\n PixelConverter, Hide, MinPipe\r\n ],\r\n exports: [ DataTable, DataTableColumn ]\r\n})\r\nexport class DataTableModule { }\r\n"]} \ No newline at end of file diff --git a/dist/tools/data-table-resource.d.ts b/dist/tools/data-table-resource.d.ts new file mode 100644 index 0000000..6670e46 --- /dev/null +++ b/dist/tools/data-table-resource.d.ts @@ -0,0 +1,7 @@ +import { DataTableParams } from '../types/data-table-params.type'; +export declare class DataTableResource { + private items; + constructor(items: T[]); + query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise; + count(): Promise; +} diff --git a/dist/tools/data-table-resource.js b/dist/tools/data-table-resource.js new file mode 100644 index 0000000..f24576b --- /dev/null +++ b/dist/tools/data-table-resource.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var DataTableResource = (function () { + function DataTableResource(items) { + this.items = items; + } + DataTableResource.prototype.query = function (params, filter) { + var result = []; + if (filter) { + result = this.items.filter(filter); + } + else { + result = this.items.slice(); // shallow copy to use for sorting instead of changing the original + } + if (params.sortBy) { + result.sort(function (a, b) { + if (typeof a[params.sortBy] === 'string') { + return a[params.sortBy].localeCompare(b[params.sortBy]); + } + else { + return a[params.sortBy] - b[params.sortBy]; + } + }); + if (params.sortAsc === false) { + result.reverse(); + } + } + if (params.offset !== undefined) { + if (params.limit === undefined) { + result = result.slice(params.offset, result.length); + } + else { + result = result.slice(params.offset, params.offset + params.limit); + } + } + return new Promise(function (resolve, reject) { + setTimeout(function () { return resolve(result); }); + }); + }; + DataTableResource.prototype.count = function () { + var _this = this; + return new Promise(function (resolve, reject) { + setTimeout(function () { return resolve(_this.items.length); }); + }); + }; + return DataTableResource; +}()); +exports.DataTableResource = DataTableResource; +//# sourceMappingURL=/tools/data-table-resource.js.map \ No newline at end of file diff --git a/dist/tools/data-table-resource.js.map b/dist/tools/data-table-resource.js.map new file mode 100644 index 0000000..0805801 --- /dev/null +++ b/dist/tools/data-table-resource.js.map @@ -0,0 +1 @@ +{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";;AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\r\n\r\n\r\nexport class DataTableResource {\r\n\r\n constructor(private items: T[]) {}\r\n\r\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\r\n\r\n let result: T[] = [];\r\n if (filter) {\r\n result = this.items.filter(filter);\r\n } else {\r\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\r\n }\r\n\r\n if (params.sortBy) {\r\n result.sort((a, b) => {\r\n if (typeof a[params.sortBy] === 'string') {\r\n return a[params.sortBy].localeCompare(b[params.sortBy]);\r\n } else {\r\n return a[params.sortBy] - b[params.sortBy];\r\n }\r\n });\r\n if (params.sortAsc === false) {\r\n result.reverse();\r\n }\r\n }\r\n if (params.offset !== undefined) {\r\n if (params.limit === undefined) {\r\n result = result.slice(params.offset, result.length);\r\n } else {\r\n result = result.slice(params.offset, params.offset + params.limit);\r\n }\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(result));\r\n });\r\n }\r\n\r\n count(): Promise {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(this.items.length));\r\n });\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/cell-callback.type.d.ts b/dist/types/cell-callback.type.d.ts new file mode 100644 index 0000000..7c2a278 --- /dev/null +++ b/dist/types/cell-callback.type.d.ts @@ -0,0 +1,3 @@ +import { DataTableRow } from '../components/row.component'; +import { DataTableColumn } from '../components/column.component'; +export declare type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string; diff --git a/dist/types/cell-callback.type.js b/dist/types/cell-callback.type.js new file mode 100644 index 0000000..d038872 --- /dev/null +++ b/dist/types/cell-callback.type.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=/types/cell-callback.type.js.map \ No newline at end of file diff --git a/dist/types/cell-callback.type.js.map b/dist/types/cell-callback.type.js.map new file mode 100644 index 0000000..3a5977f --- /dev/null +++ b/dist/types/cell-callback.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cell-callback.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/cell-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\nimport { DataTableColumn } from '../components/column.component';\r\n\r\nexport type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-params.type.d.ts b/dist/types/data-table-params.type.d.ts new file mode 100644 index 0000000..cece533 --- /dev/null +++ b/dist/types/data-table-params.type.d.ts @@ -0,0 +1,6 @@ +export interface DataTableParams { + offset?: number; + limit?: number; + sortBy?: string; + sortAsc?: boolean; +} diff --git a/dist/types/data-table-params.type.js b/dist/types/data-table-params.type.js new file mode 100644 index 0000000..84d6b65 --- /dev/null +++ b/dist/types/data-table-params.type.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=/types/data-table-params.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-params.type.js.map b/dist/types/data-table-params.type.js.map new file mode 100644 index 0000000..aa24bf1 --- /dev/null +++ b/dist/types/data-table-params.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"data-table-params.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/data-table-params.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableParams {\r\n offset?: number;\r\n limit?: number;\r\n sortBy?: string;\r\n sortAsc?: boolean;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-translations.type.d.ts b/dist/types/data-table-translations.type.d.ts new file mode 100644 index 0000000..87b3967 --- /dev/null +++ b/dist/types/data-table-translations.type.d.ts @@ -0,0 +1,7 @@ +export interface DataTableTranslations { + indexColumn: string; + selectColumn: string; + expandColumn: string; + paginationLimit: string; + paginationRange: string; +} diff --git a/dist/types/data-table-translations.type.js b/dist/types/data-table-translations.type.js new file mode 100644 index 0000000..4c2d1f7 --- /dev/null +++ b/dist/types/data-table-translations.type.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=/types/data-table-translations.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-translations.type.js.map b/dist/types/data-table-translations.type.js.map new file mode 100644 index 0000000..eb7779d --- /dev/null +++ b/dist/types/data-table-translations.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"data-table-translations.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/data-table-translations.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableTranslations {\r\n indexColumn: string;\r\n selectColumn: string;\r\n expandColumn: string;\r\n paginationLimit: string;\r\n paginationRange: string;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/default-translations.type.d.ts b/dist/types/default-translations.type.d.ts new file mode 100644 index 0000000..0ee4b08 --- /dev/null +++ b/dist/types/default-translations.type.d.ts @@ -0,0 +1,2 @@ +import { DataTableTranslations } from './data-table-translations.type'; +export declare const defaultTranslations: DataTableTranslations; diff --git a/dist/types/default-translations.type.js b/dist/types/default-translations.type.js new file mode 100644 index 0000000..15392c9 --- /dev/null +++ b/dist/types/default-translations.type.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.defaultTranslations = { + indexColumn: 'index', + selectColumn: 'select', + expandColumn: 'expand', + paginationLimit: 'Limit', + paginationRange: 'Results' +}; +//# sourceMappingURL=/types/default-translations.type.js.map \ No newline at end of file diff --git a/dist/types/default-translations.type.js.map b/dist/types/default-translations.type.js.map new file mode 100644 index 0000000..48b6d4a --- /dev/null +++ b/dist/types/default-translations.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";;AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file diff --git a/dist/types/row-callback.type.d.ts b/dist/types/row-callback.type.d.ts new file mode 100644 index 0000000..a9d59b2 --- /dev/null +++ b/dist/types/row-callback.type.d.ts @@ -0,0 +1,2 @@ +import { DataTableRow } from '../components/row.component'; +export declare type RowCallback = (item: any, row: DataTableRow, index: number) => string; diff --git a/dist/types/row-callback.type.js b/dist/types/row-callback.type.js new file mode 100644 index 0000000..d340a99 --- /dev/null +++ b/dist/types/row-callback.type.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=/types/row-callback.type.js.map \ No newline at end of file diff --git a/dist/types/row-callback.type.js.map b/dist/types/row-callback.type.js.map new file mode 100644 index 0000000..211514d --- /dev/null +++ b/dist/types/row-callback.type.js.map @@ -0,0 +1 @@ +{"version":3,"file":"row-callback.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/row-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\n\r\nexport type RowCallback = (item: any, row: DataTableRow, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/utils/drag.d.ts b/dist/utils/drag.d.ts new file mode 100644 index 0000000..58c168b --- /dev/null +++ b/dist/utils/drag.d.ts @@ -0,0 +1,6 @@ +export declare type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void; +export declare type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void; +export declare function drag(event: MouseEvent, {move: move, up: up}: { + move: MoveHandler; + up?: UpHandler; +}): void; diff --git a/dist/utils/drag.js b/dist/utils/drag.js new file mode 100644 index 0000000..089185c --- /dev/null +++ b/dist/utils/drag.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function drag(event, _a) { + var move = _a.move, up = _a.up; + var startX = event.pageX; + var startY = event.pageY; + var x = startX; + var y = startY; + var moved = false; + function mouseMoveHandler(event) { + var dx = event.pageX - x; + var dy = event.pageY - y; + x = event.pageX; + y = event.pageY; + if (dx || dy) + moved = true; + move(event, dx, dy, x, y); + event.preventDefault(); // to avoid text selection + } + function mouseUpHandler(event) { + x = event.pageX; + y = event.pageY; + document.removeEventListener('mousemove', mouseMoveHandler); + document.removeEventListener('mouseup', mouseUpHandler); + if (up) + up(event, x, y, moved); + } + document.addEventListener('mousemove', mouseMoveHandler); + document.addEventListener('mouseup', mouseUpHandler); +} +exports.drag = drag; +//# sourceMappingURL=/utils/drag.js.map \ No newline at end of file diff --git a/dist/utils/drag.js.map b/dist/utils/drag.js.map new file mode 100644 index 0000000..1a7a2f6 --- /dev/null +++ b/dist/utils/drag.js.map @@ -0,0 +1 @@ +{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";;AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/hide.d.ts b/dist/utils/hide.d.ts new file mode 100644 index 0000000..ef6bccd --- /dev/null +++ b/dist/utils/hide.d.ts @@ -0,0 +1,10 @@ +import { ElementRef, Renderer } from '@angular/core'; +export declare class Hide { + private _elementRef; + private _renderer; + private _prevCondition; + private _displayStyle; + constructor(_elementRef: ElementRef, _renderer: Renderer); + hide: boolean; + private initDisplayStyle(); +} diff --git a/dist/utils/hide.js b/dist/utils/hide.js new file mode 100644 index 0000000..5cbd3ad --- /dev/null +++ b/dist/utils/hide.js @@ -0,0 +1,52 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require("@angular/core"); +function isBlank(obj) { + return obj === undefined || obj === null; +} +var Hide = (function () { + function Hide(_elementRef, _renderer) { + this._elementRef = _elementRef; + this._renderer = _renderer; + this._prevCondition = null; + } + Object.defineProperty(Hide.prototype, "hide", { + set: function (newCondition) { + this.initDisplayStyle(); + if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) { + this._prevCondition = true; + this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none'); + } + else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) { + this._prevCondition = false; + this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle); + } + }, + enumerable: true, + configurable: true + }); + Hide.prototype.initDisplayStyle = function () { + if (this._displayStyle === undefined) { + var displayStyle = this._elementRef.nativeElement.style.display; + if (displayStyle && displayStyle !== 'none') { + this._displayStyle = displayStyle; + } + } + }; + return Hide; +}()); +Hide = __decorate([ + core_1.Directive({ selector: '[hide]', inputs: ['hide'] }), + __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer]) +], Hide); +exports.Hide = Hide; +//# sourceMappingURL=/utils/hide.js.map \ No newline at end of file diff --git a/dist/utils/hide.js.map b/dist/utils/hide.js.map new file mode 100644 index 0000000..9beaa4d --- /dev/null +++ b/dist/utils/hide.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD,IAAa,IAAI;IAKf,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,IAAI;IADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;qCAMjB,iBAAU,EAAqB,eAAQ;GAL7D,IAAI,CA2BhB;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/min.d.ts b/dist/utils/min.d.ts new file mode 100644 index 0000000..c352717 --- /dev/null +++ b/dist/utils/min.d.ts @@ -0,0 +1,4 @@ +import { PipeTransform } from '@angular/core'; +export declare class MinPipe implements PipeTransform { + transform(value: number[], args: string[]): any; +} diff --git a/dist/utils/min.js b/dist/utils/min.js new file mode 100644 index 0000000..6cafcf5 --- /dev/null +++ b/dist/utils/min.js @@ -0,0 +1,24 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require("@angular/core"); +var MinPipe = (function () { + function MinPipe() { + } + MinPipe.prototype.transform = function (value, args) { + return Math.min.apply(null, value); + }; + return MinPipe; +}()); +MinPipe = __decorate([ + core_1.Pipe({ + name: 'min' + }) +], MinPipe); +exports.MinPipe = MinPipe; +//# sourceMappingURL=/utils/min.js.map \ No newline at end of file diff --git a/dist/utils/min.js.map b/dist/utils/min.js.map new file mode 100644 index 0000000..11a168f --- /dev/null +++ b/dist/utils/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD,IAAa,OAAO;IAApB;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACH,cAAC;AAAD,CAAC,AAJD,IAIC;AAJY,OAAO;IAHnB,WAAI,CAAC;QACJ,IAAI,EAAE,KAAK;KACZ,CAAC;GACW,OAAO,CAInB;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/px.d.ts b/dist/utils/px.d.ts new file mode 100644 index 0000000..480100f --- /dev/null +++ b/dist/utils/px.d.ts @@ -0,0 +1,4 @@ +import { PipeTransform } from '@angular/core'; +export declare class PixelConverter implements PipeTransform { + transform(value: string | number, args: string[]): any; +} diff --git a/dist/utils/px.js b/dist/utils/px.js new file mode 100644 index 0000000..6bc3077 --- /dev/null +++ b/dist/utils/px.js @@ -0,0 +1,32 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require("@angular/core"); +var PixelConverter = (function () { + function PixelConverter() { + } + PixelConverter.prototype.transform = function (value, args) { + if (value === undefined) { + return; + } + if (typeof value === 'string') { + return value; + } + if (typeof value === 'number') { + return value + 'px'; + } + }; + return PixelConverter; +}()); +PixelConverter = __decorate([ + core_1.Pipe({ + name: 'px' + }) +], PixelConverter); +exports.PixelConverter = PixelConverter; +//# sourceMappingURL=/utils/px.js.map \ No newline at end of file diff --git a/dist/utils/px.js.map b/dist/utils/px.js.map new file mode 100644 index 0000000..ecd2733 --- /dev/null +++ b/dist/utils/px.js.map @@ -0,0 +1 @@ +{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD,IAAa,cAAc;IAA3B;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,cAAc;IAH1B,WAAI,CAAC;QACJ,IAAI,EAAE,IAAI;KACX,CAAC;GACW,cAAc,CAY1B;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file From c2c1216b408e628f4198dcc721f9124597c03730 Mon Sep 17 00:00:00 2001 From: Mit9 Date: Mon, 27 Nov 2017 12:27:31 +0200 Subject: [PATCH 26/41] update dist fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8f7111c..8453043 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.2.004", + "version": "0.3.0", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", From 091ebf5c8af0cef3573150fe062386546e4d835e Mon Sep 17 00:00:00 2001 From: Michael Jenkins Date: Wed, 6 Dec 2017 12:53:03 -0500 Subject: [PATCH 27/41] Added a new tbody tag where a message can be displayed if there is no data to display in the table. The column spans the full length of the table. It only displays when the itemCount is 0 and the user passed a noDataMessage to the component. There is a new Input to the table called noDataMessage. --- src/components/table.component.ts | 1 + src/components/table.template.ts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/components/table.component.ts b/src/components/table.component.ts index 9094e12..254c690 100644 --- a/src/components/table.component.ts +++ b/src/components/table.component.ts @@ -62,6 +62,7 @@ export class DataTable implements DataTableParams, OnInit { @Input() selectOnRowClick = false; @Input() autoReload = true; @Input() showReloading = false; + @Input() noDataMessage: string; // UI state without input: diff --git a/src/components/table.template.ts b/src/components/table.template.ts index 793d7e9..23aa4fe 100644 --- a/src/components/table.template.ts +++ b/src/components/table.template.ts @@ -32,6 +32,11 @@ export const TABLE_TEMPLATE = ` + + + {{ noDataMessage }} + + Date: Mon, 18 Dec 2017 10:26:08 +0200 Subject: [PATCH 28/41] update dist fix --- dist/components/column.component.d.ts | 19 - dist/components/column.component.js | 92 ---- dist/components/column.component.js.map | 1 - dist/components/header.component.d.ts | 7 - dist/components/header.component.js | 43 -- dist/components/header.component.js.map | 1 - dist/components/header.style.d.ts | 1 - dist/components/header.style.js | 4 - dist/components/header.style.js.map | 1 - dist/components/header.template.d.ts | 1 - dist/components/header.template.js | 4 - dist/components/header.template.js.map | 1 - dist/components/pagination.component.d.ts | 20 - dist/components/pagination.component.js | 131 ----- dist/components/pagination.component.js.map | 1 - dist/components/pagination.style.d.ts | 1 - dist/components/pagination.style.js | 4 - dist/components/pagination.style.js.map | 1 - dist/components/pagination.template.d.ts | 1 - dist/components/pagination.template.js | 4 - dist/components/pagination.template.js.map | 1 - dist/components/row.component.d.ts | 16 - dist/components/row.component.js | 83 --- dist/components/row.component.js.map | 1 - dist/components/row.style.d.ts | 1 - dist/components/row.style.js | 4 - dist/components/row.style.js.map | 1 - dist/components/row.template.d.ts | 1 - dist/components/row.template.js | 4 - dist/components/row.template.js.map | 1 - dist/components/table.component.d.ts | 83 --- dist/components/table.component.js | 478 ------------------ dist/components/table.component.js.map | 1 - dist/components/table.style.d.ts | 1 - dist/components/table.style.js | 4 - dist/components/table.style.js.map | 1 - dist/components/table.template.d.ts | 1 - dist/components/table.template.js | 4 - dist/components/table.template.js.map | 1 - dist/index.d.ts | 17 - dist/index.js | 49 -- dist/index.js.map | 1 - dist/tools/data-table-resource.d.ts | 7 - dist/tools/data-table-resource.js | 49 -- dist/tools/data-table-resource.js.map | 1 - dist/types/cell-callback.type.d.ts | 3 - dist/types/cell-callback.type.js | 3 - dist/types/cell-callback.type.js.map | 1 - dist/types/data-table-params.type.d.ts | 6 - dist/types/data-table-params.type.js | 3 - dist/types/data-table-params.type.js.map | 1 - dist/types/data-table-translations.type.d.ts | 7 - dist/types/data-table-translations.type.js | 3 - .../types/data-table-translations.type.js.map | 1 - dist/types/default-translations.type.d.ts | 2 - dist/types/default-translations.type.js | 10 - dist/types/default-translations.type.js.map | 1 - dist/types/row-callback.type.d.ts | 2 - dist/types/row-callback.type.js | 3 - dist/types/row-callback.type.js.map | 1 - dist/utils/drag.d.ts | 6 - dist/utils/drag.js | 32 -- dist/utils/drag.js.map | 1 - dist/utils/hide.d.ts | 10 - dist/utils/hide.js | 52 -- dist/utils/hide.js.map | 1 - dist/utils/min.d.ts | 4 - dist/utils/min.js | 24 - dist/utils/min.js.map | 1 - dist/utils/px.d.ts | 4 - dist/utils/px.js | 32 -- dist/utils/px.js.map | 1 - package.json | 6 +- 73 files changed, 3 insertions(+), 1367 deletions(-) delete mode 100644 dist/components/column.component.d.ts delete mode 100644 dist/components/column.component.js delete mode 100644 dist/components/column.component.js.map delete mode 100644 dist/components/header.component.d.ts delete mode 100644 dist/components/header.component.js delete mode 100644 dist/components/header.component.js.map delete mode 100644 dist/components/header.style.d.ts delete mode 100644 dist/components/header.style.js delete mode 100644 dist/components/header.style.js.map delete mode 100644 dist/components/header.template.d.ts delete mode 100644 dist/components/header.template.js delete mode 100644 dist/components/header.template.js.map delete mode 100644 dist/components/pagination.component.d.ts delete mode 100644 dist/components/pagination.component.js delete mode 100644 dist/components/pagination.component.js.map delete mode 100644 dist/components/pagination.style.d.ts delete mode 100644 dist/components/pagination.style.js delete mode 100644 dist/components/pagination.style.js.map delete mode 100644 dist/components/pagination.template.d.ts delete mode 100644 dist/components/pagination.template.js delete mode 100644 dist/components/pagination.template.js.map delete mode 100644 dist/components/row.component.d.ts delete mode 100644 dist/components/row.component.js delete mode 100644 dist/components/row.component.js.map delete mode 100644 dist/components/row.style.d.ts delete mode 100644 dist/components/row.style.js delete mode 100644 dist/components/row.style.js.map delete mode 100644 dist/components/row.template.d.ts delete mode 100644 dist/components/row.template.js delete mode 100644 dist/components/row.template.js.map delete mode 100644 dist/components/table.component.d.ts delete mode 100644 dist/components/table.component.js delete mode 100644 dist/components/table.component.js.map delete mode 100644 dist/components/table.style.d.ts delete mode 100644 dist/components/table.style.js delete mode 100644 dist/components/table.style.js.map delete mode 100644 dist/components/table.template.d.ts delete mode 100644 dist/components/table.template.js delete mode 100644 dist/components/table.template.js.map delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 dist/tools/data-table-resource.d.ts delete mode 100644 dist/tools/data-table-resource.js delete mode 100644 dist/tools/data-table-resource.js.map delete mode 100644 dist/types/cell-callback.type.d.ts delete mode 100644 dist/types/cell-callback.type.js delete mode 100644 dist/types/cell-callback.type.js.map delete mode 100644 dist/types/data-table-params.type.d.ts delete mode 100644 dist/types/data-table-params.type.js delete mode 100644 dist/types/data-table-params.type.js.map delete mode 100644 dist/types/data-table-translations.type.d.ts delete mode 100644 dist/types/data-table-translations.type.js delete mode 100644 dist/types/data-table-translations.type.js.map delete mode 100644 dist/types/default-translations.type.d.ts delete mode 100644 dist/types/default-translations.type.js delete mode 100644 dist/types/default-translations.type.js.map delete mode 100644 dist/types/row-callback.type.d.ts delete mode 100644 dist/types/row-callback.type.js delete mode 100644 dist/types/row-callback.type.js.map delete mode 100644 dist/utils/drag.d.ts delete mode 100644 dist/utils/drag.js delete mode 100644 dist/utils/drag.js.map delete mode 100644 dist/utils/hide.d.ts delete mode 100644 dist/utils/hide.js delete mode 100644 dist/utils/hide.js.map delete mode 100644 dist/utils/min.d.ts delete mode 100644 dist/utils/min.js delete mode 100644 dist/utils/min.js.map delete mode 100644 dist/utils/px.d.ts delete mode 100644 dist/utils/px.js delete mode 100644 dist/utils/px.js.map diff --git a/dist/components/column.component.d.ts b/dist/components/column.component.d.ts deleted file mode 100644 index f71c9ef..0000000 --- a/dist/components/column.component.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { OnInit } from '@angular/core'; -import { DataTableRow } from './row.component'; -import { CellCallback } from '../types/cell-callback.type'; -export declare class DataTableColumn implements OnInit { - header: string; - sortable: boolean; - resizable: boolean; - property: string; - styleClass: string; - cellColors: CellCallback; - width: number | string; - visible: boolean; - cellTemplate: any; - headerTemplate: any; - getCellColor(row: DataTableRow, index: number): string; - private styleClassObject; - ngOnInit(): void; - private _initCellClass(); -} diff --git a/dist/components/column.component.js b/dist/components/column.component.js deleted file mode 100644 index c43a7b8..0000000 --- a/dist/components/column.component.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var DataTableColumn = (function () { - function DataTableColumn() { - this.sortable = false; - this.resizable = false; - this.visible = true; - this.styleClassObject = {}; // for [ngClass] - } - DataTableColumn.prototype.getCellColor = function (row, index) { - if (this.cellColors !== undefined) { - return this.cellColors(row.item, row, this, index); - } - }; - DataTableColumn.prototype.ngOnInit = function () { - this._initCellClass(); - }; - DataTableColumn.prototype._initCellClass = function () { - if (!this.styleClass && this.property) { - if (/^[a-zA-Z0-9_]+$/.test(this.property)) { - this.styleClass = 'column-' + this.property; - } - else { - this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, ''); - } - } - if (this.styleClass != null) { - this.styleClassObject = (_a = {}, - _a[this.styleClass] = true, - _a); - } - var _a; - }; - return DataTableColumn; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTableColumn.prototype, "header", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "sortable", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "resizable", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTableColumn.prototype, "property", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTableColumn.prototype, "styleClass", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Function) -], DataTableColumn.prototype, "cellColors", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableColumn.prototype, "visible", void 0); -__decorate([ - core_1.ContentChild('dataTableCell'), - __metadata("design:type", Object) -], DataTableColumn.prototype, "cellTemplate", void 0); -__decorate([ - core_1.ContentChild('dataTableHeader'), - __metadata("design:type", Object) -], DataTableColumn.prototype, "headerTemplate", void 0); -DataTableColumn = __decorate([ - core_1.Directive({ - selector: 'data-table-column' - }) -], DataTableColumn); -exports.DataTableColumn = DataTableColumn; -//# sourceMappingURL=/components/column.component.js.map \ No newline at end of file diff --git a/dist/components/column.component.js.map b/dist/components/column.component.js.map deleted file mode 100644 index bdaf408..0000000 --- a/dist/components/column.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"column.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/column.component.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAuE;AAQvE,IAAa,eAAe;IAH5B;QAOa,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAOlB,YAAO,GAAG,IAAI,CAAC;QAWhB,qBAAgB,GAAG,EAAE,CAAC,CAAC,gBAAgB;IAqBnD,CAAC;IA3BG,sCAAY,GAAZ,UAAa,GAAiB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAgB,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAID,kCAAQ,GAAR;QACI,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,wCAAc,GAAtB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB;gBACjB,GAAC,IAAI,CAAC,UAAU,IAAG,IAAI;mBAC1B,CAAC;QACN,CAAC;;IACL,CAAC;IACL,sBAAC;AAAD,CAAC,AA5CD,IA4CC;AAzCY;IAAR,YAAK,EAAE;;+CAAgB;AACf;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;kDAAmB;AAClB;IAAR,YAAK,EAAE;;iDAAkB;AACjB;IAAR,YAAK,EAAE;;mDAAoB;AACnB;IAAR,YAAK,EAAE;;mDAA0B;AAGzB;IAAR,YAAK,EAAE;;8CAAwB;AACvB;IAAR,YAAK,EAAE;;gDAAgB;AAEO;IAA9B,mBAAY,CAAC,eAAe,CAAC;;qDAAc;AACX;IAAhC,mBAAY,CAAC,iBAAiB,CAAC;;uDAAgB;AAfvC,eAAe;IAH3B,gBAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;GACW,eAAe,CA4C3B;AA5CY,0CAAe","sourcesContent":["import { Directive, Input, ContentChild, OnInit } from '@angular/core';\r\nimport { DataTableRow } from './row.component';\r\nimport { CellCallback } from '../types/cell-callback.type';\r\n\r\n\r\n@Directive({\r\n selector: 'data-table-column'\r\n})\r\nexport class DataTableColumn implements OnInit {\r\n\r\n // init:\r\n @Input() header: string;\r\n @Input() sortable = false;\r\n @Input() resizable = false;\r\n @Input() property: string;\r\n @Input() styleClass: string;\r\n @Input() cellColors: CellCallback;\r\n\r\n // init and state:\r\n @Input() width: number | string;\r\n @Input() visible = true;\r\n\r\n @ContentChild('dataTableCell') cellTemplate;\r\n @ContentChild('dataTableHeader') headerTemplate;\r\n\r\n getCellColor(row: DataTableRow, index: number) {\r\n if (this.cellColors !== undefined) {\r\n return (this.cellColors)(row.item, row, this, index);\r\n }\r\n }\r\n\r\n private styleClassObject = {}; // for [ngClass]\r\n\r\n ngOnInit() {\r\n this._initCellClass();\r\n }\r\n\r\n private _initCellClass() {\r\n if (!this.styleClass && this.property) {\r\n if (/^[a-zA-Z0-9_]+$/.test(this.property)) {\r\n this.styleClass = 'column-' + this.property;\r\n } else {\r\n this.styleClass = 'column-' + this.property.replace(/[^a-zA-Z0-9_]/g, '');\r\n }\r\n }\r\n\r\n if (this.styleClass != null) {\r\n this.styleClassObject = {\r\n [this.styleClass]: true\r\n };\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.component.d.ts b/dist/components/header.component.d.ts deleted file mode 100644 index 775b7e3..0000000 --- a/dist/components/header.component.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { DataTable } from './table.component'; -export declare class DataTableHeader { - dataTable: DataTable; - columnSelectorOpen: boolean; - _closeSelector(): void; - constructor(dataTable: DataTable); -} diff --git a/dist/components/header.component.js b/dist/components/header.component.js deleted file mode 100644 index b038dd6..0000000 --- a/dist/components/header.component.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -var __param = (this && this.__param) || function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var table_component_1 = require("./table.component"); -var header_template_1 = require("./header.template"); -var header_style_1 = require("./header.style"); -var DataTableHeader = (function () { - function DataTableHeader(dataTable) { - this.dataTable = dataTable; - this.columnSelectorOpen = false; - } - DataTableHeader.prototype._closeSelector = function () { - this.columnSelectorOpen = false; - }; - return DataTableHeader; -}()); -DataTableHeader = __decorate([ - core_1.Component({ - moduleId: module.id, - selector: 'data-table-header', - template: header_template_1.HEADER_TEMPLATE, - styles: [header_style_1.HEADER_STYLE], - host: { - '(document:click)': '_closeSelector()' - } - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) -], DataTableHeader); -exports.DataTableHeader = DataTableHeader; -//# sourceMappingURL=/components/header.component.js.map \ No newline at end of file diff --git a/dist/components/header.component.js.map b/dist/components/header.component.js.map deleted file mode 100644 index cd75439..0000000 --- a/dist/components/header.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"header.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAA8D;AAC9D,qDAA8C;AAC9C,qDAAoD;AACpD,+CAA8C;AAY9C,IAAa,eAAe;IAQxB,yBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAN5E,uBAAkB,GAAG,KAAK,CAAC;IAMoD,CAAC;IAJhF,wCAAc,GAAd;QACI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAGL,sBAAC;AAAD,CAAC,AATD,IASC;AATY,eAAe;IAT3B,gBAAS,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,iCAAe;QACzB,MAAM,EAAE,CAAC,2BAAY,CAAC;QACtB,IAAI,EAAE;YACJ,kBAAkB,EAAE,kBAAkB;SACvC;KACF,CAAC;IASe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GARnE,eAAe,CAS3B;AATY,0CAAe","sourcesContent":["import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { HEADER_TEMPLATE } from './header.template';\r\nimport { HEADER_STYLE } from \"./header.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table-header',\r\n template: HEADER_TEMPLATE,\r\n styles: [HEADER_STYLE],\r\n host: {\r\n '(document:click)': '_closeSelector()'\r\n }\r\n})\r\nexport class DataTableHeader {\r\n\r\n columnSelectorOpen = false;\r\n\r\n _closeSelector() {\r\n this.columnSelectorOpen = false;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/header.style.d.ts b/dist/components/header.style.d.ts deleted file mode 100644 index 33d53a7..0000000 --- a/dist/components/header.style.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const HEADER_STYLE: string; diff --git a/dist/components/header.style.js b/dist/components/header.style.js deleted file mode 100644 index 31662ea..0000000 --- a/dist/components/header.style.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HEADER_STYLE = "\n.data-table-header {\n min-height: 25px;\n margin-bottom: 10px;\n}\n.title {\n display: inline-block;\n margin: 5px 0 0 5px;\n}\n.button-panel {\n float: right;\n}\n.button-panel button {\n outline: none !important;\n}\n\n.column-selector-wrapper {\n position: relative;\n}\n.column-selector-box {\n box-shadow: 0 0 10px lightgray;\n width: 150px;\n padding: 10px;\n position: absolute;\n right: 0;\n top: 1px;\n z-index: 1060;\n}\n.column-selector-box .checkbox {\n margin-bottom: 4px;\n}\n.column-selector-fixed-column {\n font-style: italic;\n}\n"; -//# sourceMappingURL=/components/header.style.js.map \ No newline at end of file diff --git a/dist/components/header.style.js.map b/dist/components/header.style.js.map deleted file mode 100644 index 19ce67f..0000000 --- a/dist/components/header.style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"header.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.style.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,ylBAkC3B,CAAC","sourcesContent":["export const HEADER_STYLE = `\r\n.data-table-header {\r\n min-height: 25px;\r\n margin-bottom: 10px;\r\n}\r\n.title {\r\n display: inline-block;\r\n margin: 5px 0 0 5px;\r\n}\r\n.button-panel {\r\n float: right;\r\n}\r\n.button-panel button {\r\n outline: none !important;\r\n}\r\n\r\n.column-selector-wrapper {\r\n position: relative;\r\n}\r\n.column-selector-box {\r\n box-shadow: 0 0 10px lightgray;\r\n width: 150px;\r\n padding: 10px;\r\n position: absolute;\r\n right: 0;\r\n top: 1px;\r\n z-index: 1060;\r\n}\r\n.column-selector-box .checkbox {\r\n margin-bottom: 4px;\r\n}\r\n.column-selector-fixed-column {\r\n font-style: italic;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/header.template.d.ts b/dist/components/header.template.d.ts deleted file mode 100644 index 5564ae5..0000000 --- a/dist/components/header.template.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const HEADER_TEMPLATE: string; diff --git a/dist/components/header.template.js b/dist/components/header.template.js deleted file mode 100644 index d69a350..0000000 --- a/dist/components/header.template.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HEADER_TEMPLATE = "\n
\n

\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n"; -//# sourceMappingURL=/components/header.template.js.map \ No newline at end of file diff --git a/dist/components/header.template.js.map b/dist/components/header.template.js.map deleted file mode 100644 index a2b6e76..0000000 --- a/dist/components/header.template.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"header.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/header.template.ts"],"names":[],"mappings":";;AAAa,QAAA,eAAe,GAAG,8xEA0C9B,CAAC","sourcesContent":["export const HEADER_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
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.component.d.ts b/dist/components/pagination.component.d.ts deleted file mode 100644 index 99ec794..0000000 --- a/dist/components/pagination.component.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { DataTable } from './table.component'; -export declare class DataTablePagination { - dataTable: DataTable; - show_range: boolean; - show_limit: boolean; - show_input: boolean; - show_numbers: boolean; - constructor(dataTable: DataTable); - pageBack(): void; - pageForward(): void; - pageFirst(): void; - pageLast(): void; - readonly maxPage: number; - limit: number; - page: number; - hasPrevious(number: any, page: any): boolean; - hasNext(number: any, page: any): boolean; - getDifference(): number; - createPageRange(number: any, page: any): any[]; -} diff --git a/dist/components/pagination.component.js b/dist/components/pagination.component.js deleted file mode 100644 index d632254..0000000 --- a/dist/components/pagination.component.js +++ /dev/null @@ -1,131 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -var __param = (this && this.__param) || function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var table_component_1 = require("./table.component"); -var pagination_template_1 = require("./pagination.template"); -var pagination_style_1 = require("./pagination.style"); -var DataTablePagination = (function () { - function DataTablePagination(dataTable) { - this.dataTable = dataTable; - this.show_range = false; - this.show_limit = false; - this.show_input = false; - this.show_numbers = true; - } - DataTablePagination.prototype.pageBack = function () { - this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset); - }; - DataTablePagination.prototype.pageForward = function () { - this.dataTable.offset += this.dataTable.limit; - }; - DataTablePagination.prototype.pageFirst = function () { - this.dataTable.offset = 0; - }; - DataTablePagination.prototype.pageLast = function () { - this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit; - }; - Object.defineProperty(DataTablePagination.prototype, "maxPage", { - get: function () { - return Math.ceil(this.dataTable.itemCount / this.dataTable.limit); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTablePagination.prototype, "limit", { - get: function () { - return this.dataTable.limit; - }, - set: function (value) { - this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string? - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTablePagination.prototype, "page", { - get: function () { - return this.dataTable.page; - }, - set: function (value) { - this.dataTable.page = Number(value); - }, - enumerable: true, - configurable: true - }); - DataTablePagination.prototype.hasPrevious = function (number, page) { - var difference = this.getDifference(); - if ((page - difference) > 1) { - return true; - } - return false; - }; - DataTablePagination.prototype.hasNext = function (number, page) { - var difference = this.getDifference(); - if ((number - page) > difference) { - return true; - } - return false; - }; - DataTablePagination.prototype.getDifference = function () { - var difference = 2; - return difference; - }; - DataTablePagination.prototype.createPageRange = function (number, page) { - var items = []; - if (number > 1) { - var difference = this.getDifference(); - var maxPage = number; - var minPage = 1; - if ((number - page) >= difference) { - maxPage = page + difference; - } - if ((page - difference) >= 1) { - minPage = page - difference; - } - for (var i = minPage; i <= maxPage; i++) { - items.push(i); - } - } - return items; - }; - return DataTablePagination; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTablePagination.prototype, "show_range", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTablePagination.prototype, "show_limit", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTablePagination.prototype, "show_input", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTablePagination.prototype, "show_numbers", void 0); -DataTablePagination = __decorate([ - core_1.Component({ - moduleId: module.id, - selector: 'data-table-pagination', - template: pagination_template_1.PAGINATION_TEMPLATE, - styles: [pagination_style_1.PAGINATION_STYLE] - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) -], DataTablePagination); -exports.DataTablePagination = DataTablePagination; -//# sourceMappingURL=/components/pagination.component.js.map \ No newline at end of file diff --git a/dist/components/pagination.component.js.map b/dist/components/pagination.component.js.map deleted file mode 100644 index 0adf3e0..0000000 --- a/dist/components/pagination.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pagination.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {Component, Inject, forwardRef, Input} from '@angular/core';\r\nimport {DataTable} from './table.component';\r\nimport {PAGINATION_TEMPLATE} from './pagination.template';\r\nimport {PAGINATION_STYLE} from \"./pagination.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table-pagination',\r\n template: PAGINATION_TEMPLATE,\r\n styles: [PAGINATION_STYLE]\r\n})\r\nexport class DataTablePagination {\r\n\r\n @Input() show_range = false;\r\n @Input() show_limit = false;\r\n @Input() show_input = false;\r\n @Input() show_numbers = true;\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {\r\n }\r\n\r\n pageBack() {\r\n this.dataTable.offset -= Math.min(this.dataTable.limit, this.dataTable.offset);\r\n }\r\n\r\n pageForward() {\r\n this.dataTable.offset += this.dataTable.limit;\r\n }\r\n\r\n pageFirst() {\r\n this.dataTable.offset = 0;\r\n }\r\n\r\n pageLast() {\r\n this.dataTable.offset = (this.maxPage - 1) * this.dataTable.limit;\r\n }\r\n\r\n get maxPage() {\r\n return Math.ceil(this.dataTable.itemCount / this.dataTable.limit);\r\n }\r\n\r\n get limit() {\r\n return this.dataTable.limit;\r\n }\r\n\r\n set limit(value) {\r\n this.dataTable.limit = Number(value); // TODO better way to handle that value of number is string?\r\n }\r\n\r\n get page() {\r\n return this.dataTable.page;\r\n }\r\n\r\n set page(value) {\r\n this.dataTable.page = Number(value);\r\n }\r\n\r\n hasPrevious(number, page) {\r\n const difference = this.getDifference();\r\n if ((page - difference) > 1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n hasNext(number, page) {\r\n const difference = this.getDifference();\r\n if ((number - page) > difference) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getDifference() {\r\n const difference = 2;\r\n return difference;\r\n }\r\n\r\n createPageRange(number, page): any[] {\r\n let items: number[] = [];\r\n if (number > 1) {\r\n const difference = this.getDifference();\r\n let maxPage = number;\r\n let minPage = 1;\r\n if ((number - page) >= difference) {\r\n maxPage = page + difference;\r\n }\r\n if ((page - difference) >= 1) {\r\n minPage = page - difference;\r\n }\r\n for (let i = minPage; i <= maxPage; i++) {\r\n items.push(i);\r\n }\r\n }\r\n return items;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/pagination.style.d.ts b/dist/components/pagination.style.d.ts deleted file mode 100644 index 6817e0c..0000000 --- a/dist/components/pagination.style.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const PAGINATION_STYLE: string; diff --git a/dist/components/pagination.style.js b/dist/components/pagination.style.js deleted file mode 100644 index 575da45..0000000 --- a/dist/components/pagination.style.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PAGINATION_STYLE = "\n.pagination-box {\n position: relative;\n margin-top: -10px;\n}\n.pagination-range {\n margin-top: 7px;\n margin-left: 3px;\n display: inline-block;\n}\n.pagination-controllers {\n float: right;\n}\n.pagination-controllers input {\n min-width: 60px;\n /*padding: 1px 0px 0px 5px;*/\n text-align: right;\n}\n\n.pagination-limit {\n margin-right: 25px;\n display: inline-table;\n width: 150px;\n}\n.pagination-pages {\n display: inline-block;\n}\n.pagination-page {\n width: 110px;\n display: inline-table;\n}\n.pagination-box button {\n outline: none !important;\n}\n.pagination-prevpage,\n.pagination-nextpage,\n.pagination-firstpage,\n.pagination-lastpage {\n vertical-align: top;\n}\n.pagination-reload {\n color: gray;\n font-size: 12px;\n}\n"; -//# sourceMappingURL=/components/pagination.style.js.map \ No newline at end of file diff --git a/dist/components/pagination.style.js.map b/dist/components/pagination.style.js.map deleted file mode 100644 index ab2456f..0000000 --- a/dist/components/pagination.style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pagination.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.style.ts"],"names":[],"mappings":";;AAAa,QAAA,gBAAgB,GAAG,syBA4C/B,CAAC","sourcesContent":["export const PAGINATION_STYLE = `\r\n.pagination-box {\r\n position: relative;\r\n margin-top: -10px;\r\n}\r\n.pagination-range {\r\n margin-top: 7px;\r\n margin-left: 3px;\r\n display: inline-block;\r\n}\r\n.pagination-controllers {\r\n float: right;\r\n}\r\n.pagination-controllers input {\r\n min-width: 60px;\r\n /*padding: 1px 0px 0px 5px;*/\r\n text-align: right;\r\n}\r\n\r\n.pagination-limit {\r\n margin-right: 25px;\r\n display: inline-table;\r\n width: 150px;\r\n}\r\n.pagination-pages {\r\n display: inline-block;\r\n}\r\n.pagination-page {\r\n width: 110px;\r\n display: inline-table;\r\n}\r\n.pagination-box button {\r\n outline: none !important;\r\n}\r\n.pagination-prevpage,\r\n.pagination-nextpage,\r\n.pagination-firstpage,\r\n.pagination-lastpage {\r\n vertical-align: top;\r\n}\r\n.pagination-reload {\r\n color: gray;\r\n font-size: 12px;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/pagination.template.d.ts b/dist/components/pagination.template.d.ts deleted file mode 100644 index f3b5d1c..0000000 --- a/dist/components/pagination.template.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const PAGINATION_TEMPLATE: string; diff --git a/dist/components/pagination.template.js b/dist/components/pagination.template.js deleted file mode 100644 index 3b800fd..0000000 --- a/dist/components/pagination.template.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.PAGINATION_TEMPLATE = "\n
\n
\n {{dataTable.translations.paginationRange}}:\n \n -\n \n /\n \n
\n
\n
\n
\n {{dataTable.translations.paginationLimit}}:\n \n
\n
\n
\n \n \n
\n
\n \n
\n /\n \n
\n
\n
\n \n
\n \n
\n \n \n \n
\n
\n
\n"; -//# sourceMappingURL=/components/pagination.template.js.map \ No newline at end of file diff --git a/dist/components/pagination.template.js.map b/dist/components/pagination.template.js.map deleted file mode 100644 index d918159..0000000 --- a/dist/components/pagination.template.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pagination.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/pagination.template.ts"],"names":[],"mappings":";;AAAa,QAAA,mBAAmB,GAAG,w6FA8ClC,CAAC","sourcesContent":["export const PAGINATION_TEMPLATE = `\r\n
\r\n
\r\n {{dataTable.translations.paginationRange}}:\r\n \r\n -\r\n \r\n /\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{dataTable.translations.paginationLimit}}:\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n /\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.component.d.ts b/dist/components/row.component.d.ts deleted file mode 100644 index 44dfa8e..0000000 --- a/dist/components/row.component.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { EventEmitter, OnDestroy } from '@angular/core'; -import { DataTable } from './table.component'; -export declare class DataTableRow implements OnDestroy { - dataTable: DataTable; - item: any; - index: number; - expanded: boolean; - private _selected; - selectedChange: EventEmitter<{}>; - selected: boolean; - readonly displayIndex: number; - getTooltip(): string; - constructor(dataTable: DataTable); - ngOnDestroy(): void; - private _this; -} diff --git a/dist/components/row.component.js b/dist/components/row.component.js deleted file mode 100644 index 6be4999..0000000 --- a/dist/components/row.component.js +++ /dev/null @@ -1,83 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -var __param = (this && this.__param) || function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var table_component_1 = require("./table.component"); -var row_template_1 = require("./row.template"); -var row_style_1 = require("./row.style"); -var DataTableRow = (function () { - function DataTableRow(dataTable) { - this.dataTable = dataTable; - this.selectedChange = new core_1.EventEmitter(); - this._this = this; // FIXME is there no template keyword for this in angular 2? - } - Object.defineProperty(DataTableRow.prototype, "selected", { - get: function () { - return this._selected; - }, - set: function (selected) { - this._selected = selected; - this.selectedChange.emit(selected); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTableRow.prototype, "displayIndex", { - // other: - get: function () { - if (this.dataTable.pagination) { - return this.dataTable.displayParams.offset + this.index + 1; - } - else { - return this.index + 1; - } - }, - enumerable: true, - configurable: true - }); - DataTableRow.prototype.getTooltip = function () { - if (this.dataTable.rowTooltip) { - return this.dataTable.rowTooltip(this.item, this, this.index); - } - return ''; - }; - DataTableRow.prototype.ngOnDestroy = function () { - this.selected = false; - }; - return DataTableRow; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTableRow.prototype, "item", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], DataTableRow.prototype, "index", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTableRow.prototype, "selectedChange", void 0); -DataTableRow = __decorate([ - core_1.Component({ - moduleId: module.id, - selector: '[dataTableRow]', - template: row_template_1.ROW_TEMPLATE, - styles: [row_style_1.ROW_STYLE] - }), - __param(0, core_1.Inject(core_1.forwardRef(function () { return table_component_1.DataTable; }))), - __metadata("design:paramtypes", [table_component_1.DataTable]) -], DataTableRow); -exports.DataTableRow = DataTableRow; -//# sourceMappingURL=/components/row.component.js.map \ No newline at end of file diff --git a/dist/components/row.component.js.map b/dist/components/row.component.js.map deleted file mode 100644 index 6ffb8b1..0000000 --- a/dist/components/row.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"row.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sCAEuB;AACvB,qDAA8C;AAC9C,+CAA8C;AAC9C,yCAAwC;AASxC,IAAa,YAAY;IAuCrB,sBAAwD,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QA5BlE,mBAAc,GAAG,IAAI,mBAAY,EAAE,CAAC;QAkCtC,UAAK,GAAG,IAAI,CAAC,CAAC,4DAA4D;IANH,CAAC;IA1BhF,sBAAI,kCAAQ;aAAZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAa,QAAQ;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;;;OALA;IASD,sBAAI,sCAAY;QAFhB,SAAS;aAET;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;;;OAAA;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;IAID,kCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAGL,mBAAC;AAAD,CAAC,AA9CD,IA8CC;AA5CY;IAAR,YAAK,EAAE;;0CAAW;AACV;IAAR,YAAK,EAAE;;2CAAe;AAQb;IAAT,aAAM,EAAE;;oDAAqC;AAXrC,YAAY;IANxB,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,2BAAY;QACtB,MAAM,EAAE,CAAC,qBAAS,CAAC;KACtB,CAAC;IAwCe,WAAA,aAAM,CAAC,iBAAU,CAAC,cAAM,OAAA,2BAAS,EAAT,CAAS,CAAC,CAAC,CAAA;qCAAmB,2BAAS;GAvCnE,YAAY,CA8CxB;AA9CY,oCAAY","sourcesContent":["import {\r\n Component, Input, Inject, forwardRef, Output, EventEmitter, OnDestroy\r\n} from '@angular/core';\r\nimport { DataTable } from './table.component';\r\nimport { ROW_TEMPLATE } from './row.template';\r\nimport { ROW_STYLE } from \"./row.style\";\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: '[dataTableRow]',\r\n template: ROW_TEMPLATE,\r\n styles: [ROW_STYLE]\r\n})\r\nexport class DataTableRow implements OnDestroy {\r\n\r\n @Input() item: any;\r\n @Input() index: number;\r\n\r\n expanded: boolean;\r\n\r\n // row selection:\r\n\r\n private _selected: boolean;\r\n\r\n @Output() selectedChange = new EventEmitter();\r\n\r\n get selected() {\r\n return this._selected;\r\n }\r\n\r\n set selected(selected) {\r\n this._selected = selected;\r\n this.selectedChange.emit(selected);\r\n }\r\n\r\n // other:\r\n\r\n get displayIndex() {\r\n if (this.dataTable.pagination) {\r\n return this.dataTable.displayParams.offset + this.index + 1;\r\n } else {\r\n return this.index + 1;\r\n }\r\n }\r\n\r\n getTooltip() {\r\n if (this.dataTable.rowTooltip) {\r\n return this.dataTable.rowTooltip(this.item, this, this.index);\r\n }\r\n return '';\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DataTable)) public dataTable: DataTable) {}\r\n\r\n ngOnDestroy() {\r\n this.selected = false;\r\n }\r\n\r\n private _this = this; // FIXME is there no template keyword for this in angular 2?\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/row.style.d.ts b/dist/components/row.style.d.ts deleted file mode 100644 index 8024ce7..0000000 --- a/dist/components/row.style.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const ROW_STYLE: string; diff --git a/dist/components/row.style.js b/dist/components/row.style.js deleted file mode 100644 index f1eaa30..0000000 --- a/dist/components/row.style.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ROW_STYLE = "\n.select-column {\n text-align: center;\n}\n\n.row-expand-button {\n cursor: pointer;\n text-align: center;\n}\n\n.clickable {\n cursor: pointer;\n}\n"; -//# sourceMappingURL=/components/row.style.js.map \ No newline at end of file diff --git a/dist/components/row.style.js.map b/dist/components/row.style.js.map deleted file mode 100644 index e936027..0000000 --- a/dist/components/row.style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"row.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.style.ts"],"names":[],"mappings":";;AAAa,QAAA,SAAS,GAAG,qKAaxB,CAAC","sourcesContent":["export const ROW_STYLE = `\r\n.select-column {\r\n text-align: center;\r\n}\r\n\r\n.row-expand-button {\r\n cursor: pointer;\r\n text-align: center;\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/row.template.d.ts b/dist/components/row.template.d.ts deleted file mode 100644 index 04ff0ae..0000000 --- a/dist/components/row.template.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const ROW_TEMPLATE: string; diff --git a/dist/components/row.template.js b/dist/components/row.template.js deleted file mode 100644 index d959c09..0000000 --- a/dist/components/row.template.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ROW_TEMPLATE = "\n\n \n \n \n \n \n \n \n \n \n
\n
\n \n\n\n \n
\n \n\n"; -//# sourceMappingURL=/components/row.template.js.map \ No newline at end of file diff --git a/dist/components/row.template.js.map b/dist/components/row.template.js.map deleted file mode 100644 index 48a3fff..0000000 --- a/dist/components/row.template.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"row.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/row.template.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,2uDA8B3B,CAAC","sourcesContent":["export const ROW_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\r\n\r\n \r\n
\r\n \r\n\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.component.d.ts b/dist/components/table.component.d.ts deleted file mode 100644 index 43b7bd3..0000000 --- a/dist/components/table.component.d.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { EventEmitter, QueryList, TemplateRef, OnInit } from '@angular/core'; -import { DataTableColumn } from './column.component'; -import { DataTableRow } from './row.component'; -import { DataTableParams } from '../types/data-table-params.type'; -import { RowCallback } from '../types/row-callback.type'; -import { DataTableTranslations } from '../types/data-table-translations.type'; -export declare class DataTable implements DataTableParams, OnInit { - private _items; - items: any[]; - itemCount: number; - columns: QueryList; - rows: QueryList; - expandTemplate: TemplateRef; - headerTitle: string; - header: boolean; - pagination: boolean; - pagination_range: boolean; - pagination_limit: boolean; - pagination_input: boolean; - pagination_numbers: boolean; - indexColumn: boolean; - indexColumnHeader: string; - rowColors: RowCallback; - rowTooltip: RowCallback; - selectColumn: boolean; - multiSelect: boolean; - substituteRows: boolean; - expandableRows: boolean; - translations: DataTableTranslations; - selectOnRowClick: boolean; - autoReload: boolean; - showReloading: boolean; - indexColumnVisible: boolean; - selectColumnVisible: boolean; - expandColumnVisible: boolean; - private _sortBy; - private _sortAsc; - private _offset; - private _limit; - sortBy: string; - sortAsc: boolean; - offset: number; - limit: number; - page: number; - readonly lastPage: number; - sort(sortBy: string, asc: boolean): void; - ngOnInit(): void; - private _initDefaultValues(); - private _initDefaultClickEvents(); - _reloading: boolean; - readonly reloading: boolean; - reload: EventEmitter<{}>; - reloadItems(): void; - private _onReloadFinished(); - _displayParams: DataTableParams; - readonly displayParams: DataTableParams; - _updateDisplayParams(): void; - _scheduledReload: any; - _triggerReload(): void; - rowClick: EventEmitter<{}>; - rowDoubleClick: EventEmitter<{}>; - headerClick: EventEmitter<{}>; - cellClick: EventEmitter<{}>; - private rowClicked(row, event); - private rowDoubleClicked(row, event); - private headerClicked(column, event); - private cellClicked(column, row, event); - private _getRemoteParameters(); - private sortColumn(column); - readonly columnCount: number; - private getRowColor(item, index, row); - selectedRow: DataTableRow; - selectedRows: DataTableRow[]; - private _selectAllCheckbox; - selectAllCheckbox: boolean; - private _onSelectAllChanged(value); - onRowSelectChanged(row: DataTableRow): void; - readonly substituteItems: {}[]; - private _resizeInProgress; - private resizeColumnStart(event, column, columnElement); - resizeLimit: number; - private _isResizeInLimit(columnElement, dx); -} diff --git a/dist/components/table.component.js b/dist/components/table.component.js deleted file mode 100644 index c268489..0000000 --- a/dist/components/table.component.js +++ /dev/null @@ -1,478 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var column_component_1 = require("./column.component"); -var row_component_1 = require("./row.component"); -var default_translations_type_1 = require("../types/default-translations.type"); -var drag_1 = require("../utils/drag"); -var table_template_1 = require("./table.template"); -var table_style_1 = require("./table.style"); -var DataTable = (function () { - function DataTable() { - this._items = []; - this.header = true; - this.pagination = true; - this.pagination_range = false; - this.pagination_limit = false; - this.pagination_input = false; - this.pagination_numbers = true; - this.indexColumn = true; - this.indexColumnHeader = ''; - this.selectColumn = false; - this.multiSelect = true; - this.substituteRows = true; - this.expandableRows = false; - this.translations = default_translations_type_1.defaultTranslations; - this.selectOnRowClick = false; - this.autoReload = true; - this.showReloading = false; - this._sortAsc = true; - this._offset = 0; - this._limit = 10; - // Reloading: - this._reloading = false; - this.reload = new core_1.EventEmitter(); - this._displayParams = {}; // params of the last finished reload - this._scheduledReload = null; - // event handlers: - this.rowClick = new core_1.EventEmitter(); - this.rowDoubleClick = new core_1.EventEmitter(); - this.headerClick = new core_1.EventEmitter(); - this.cellClick = new core_1.EventEmitter(); - this.selectedRows = []; - this._selectAllCheckbox = false; - // column resizing: - this._resizeInProgress = false; - this.resizeLimit = 30; - } - Object.defineProperty(DataTable.prototype, "items", { - get: function () { - return this._items; - }, - set: function (items) { - this._items = items; - this._onReloadFinished(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "sortBy", { - get: function () { - return this._sortBy; - }, - set: function (value) { - this._sortBy = value; - this._triggerReload(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "sortAsc", { - get: function () { - return this._sortAsc; - }, - set: function (value) { - this._sortAsc = value; - this._triggerReload(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "offset", { - get: function () { - return this._offset; - }, - set: function (value) { - this._offset = value; - this._triggerReload(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "limit", { - get: function () { - return this._limit; - }, - set: function (value) { - this._limit = value; - this._triggerReload(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "page", { - // calculated property: - get: function () { - return Math.floor(this.offset / this.limit) + 1; - }, - set: function (value) { - this.offset = (value - 1) * this.limit; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "lastPage", { - get: function () { - return Math.ceil(this.itemCount / this.limit); - }, - enumerable: true, - configurable: true - }); - // setting multiple observable properties simultaneously - DataTable.prototype.sort = function (sortBy, asc) { - this.sortBy = sortBy; - this.sortAsc = asc; - }; - // init - DataTable.prototype.ngOnInit = function () { - this._initDefaultValues(); - this._initDefaultClickEvents(); - this._updateDisplayParams(); - if (this.autoReload && this._scheduledReload == null) { - this.reloadItems(); - } - }; - DataTable.prototype._initDefaultValues = function () { - this.indexColumnVisible = this.indexColumn; - this.selectColumnVisible = this.selectColumn; - this.expandColumnVisible = this.expandableRows; - }; - DataTable.prototype._initDefaultClickEvents = function () { - var _this = this; - this.headerClick.subscribe(function (tableEvent) { return _this.sortColumn(tableEvent.column); }); - if (this.selectOnRowClick) { - this.rowClick.subscribe(function (tableEvent) { return tableEvent.row.selected = !tableEvent.row.selected; }); - } - }; - Object.defineProperty(DataTable.prototype, "reloading", { - get: function () { - return this._reloading; - }, - enumerable: true, - configurable: true - }); - DataTable.prototype.reloadItems = function () { - this._reloading = true; - this.reload.emit(this._getRemoteParameters()); - }; - DataTable.prototype._onReloadFinished = function () { - this._updateDisplayParams(); - this._selectAllCheckbox = false; - this._reloading = false; - }; - Object.defineProperty(DataTable.prototype, "displayParams", { - get: function () { - return this._displayParams; - }, - enumerable: true, - configurable: true - }); - DataTable.prototype._updateDisplayParams = function () { - this._displayParams = { - sortBy: this.sortBy, - sortAsc: this.sortAsc, - offset: this.offset, - limit: this.limit - }; - }; - // for avoiding cascading reloads if multiple params are set at once: - DataTable.prototype._triggerReload = function () { - var _this = this; - if (this._scheduledReload) { - clearTimeout(this._scheduledReload); - } - this._scheduledReload = setTimeout(function () { - _this.reloadItems(); - }); - }; - DataTable.prototype.rowClicked = function (row, event) { - this.rowClick.emit({ row: row, event: event }); - }; - DataTable.prototype.rowDoubleClicked = function (row, event) { - this.rowDoubleClick.emit({ row: row, event: event }); - }; - DataTable.prototype.headerClicked = function (column, event) { - if (!this._resizeInProgress) { - this.headerClick.emit({ column: column, event: event }); - } - else { - this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end - } - }; - DataTable.prototype.cellClicked = function (column, row, event) { - this.cellClick.emit({ row: row, column: column, event: event }); - }; - // functions: - DataTable.prototype._getRemoteParameters = function () { - var params = {}; - if (this.sortBy) { - params.sortBy = this.sortBy; - params.sortAsc = this.sortAsc; - } - if (this.pagination) { - params.offset = this.offset; - params.limit = this.limit; - } - return params; - }; - DataTable.prototype.sortColumn = function (column) { - if (column.sortable) { - var ascending = this.sortBy === column.property ? !this.sortAsc : true; - this.sort(column.property, ascending); - } - }; - Object.defineProperty(DataTable.prototype, "columnCount", { - get: function () { - var count = 0; - count += this.indexColumnVisible ? 1 : 0; - count += this.selectColumnVisible ? 1 : 0; - count += this.expandColumnVisible ? 1 : 0; - this.columns.toArray().forEach(function (column) { - count += column.visible ? 1 : 0; - }); - return count; - }, - enumerable: true, - configurable: true - }); - DataTable.prototype.getRowColor = function (item, index, row) { - if (this.rowColors !== undefined) { - return this.rowColors(item, row, index); - } - }; - Object.defineProperty(DataTable.prototype, "selectAllCheckbox", { - get: function () { - return this._selectAllCheckbox; - }, - set: function (value) { - this._selectAllCheckbox = value; - this._onSelectAllChanged(value); - }, - enumerable: true, - configurable: true - }); - DataTable.prototype._onSelectAllChanged = function (value) { - this.rows.toArray().forEach(function (row) { return row.selected = value; }); - }; - DataTable.prototype.onRowSelectChanged = function (row) { - // maintain the selectedRow(s) view - if (this.multiSelect) { - var index = this.selectedRows.indexOf(row); - if (row.selected && index < 0) { - this.selectedRows.push(row); - } - else if (!row.selected && index >= 0) { - this.selectedRows.splice(index, 1); - } - } - else { - if (row.selected) { - this.selectedRow = row; - } - else if (this.selectedRow === row) { - this.selectedRow = undefined; - } - } - // unselect all other rows: - if (row.selected && !this.multiSelect) { - this.rows.toArray().filter(function (row_) { return row_.selected; }).forEach(function (row_) { - if (row_ !== row) { - row_.selected = false; - } - }); - } - }; - Object.defineProperty(DataTable.prototype, "substituteItems", { - // other: - get: function () { - return Array.from({ length: this.displayParams.limit - this.items.length }); - }, - enumerable: true, - configurable: true - }); - DataTable.prototype.resizeColumnStart = function (event, column, columnElement) { - var _this = this; - this._resizeInProgress = true; - drag_1.drag(event, { - move: function (moveEvent, dx) { - if (_this._isResizeInLimit(columnElement, dx)) { - column.width = columnElement.offsetWidth + dx; - } - }, - }); - }; - DataTable.prototype._isResizeInLimit = function (columnElement, dx) { - /* This is needed because CSS min-width didn't work on table-layout: fixed. - Without the limits, resizing can make the next column disappear completely, - and even increase the table width. The current implementation suffers from the fact, - that offsetWidth sometimes contains out-of-date values. */ - if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) || - !columnElement.nextElementSibling || - (dx >= 0 && (columnElement.nextElementSibling.offsetWidth + dx) <= this.resizeLimit)) { - return false; - } - return true; - }; - return DataTable; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Array]) -], DataTable.prototype, "items", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], DataTable.prototype, "itemCount", void 0); -__decorate([ - core_1.ContentChildren(column_component_1.DataTableColumn), - __metadata("design:type", core_1.QueryList) -], DataTable.prototype, "columns", void 0); -__decorate([ - core_1.ViewChildren(row_component_1.DataTableRow), - __metadata("design:type", core_1.QueryList) -], DataTable.prototype, "rows", void 0); -__decorate([ - core_1.ContentChild('dataTableExpand'), - __metadata("design:type", core_1.TemplateRef) -], DataTable.prototype, "expandTemplate", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], DataTable.prototype, "headerTitle", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "header", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination_range", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination_limit", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination_input", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "pagination_numbers", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "indexColumn", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "indexColumnHeader", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Function) -], DataTable.prototype, "rowColors", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Function) -], DataTable.prototype, "rowTooltip", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "selectColumn", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "multiSelect", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "substituteRows", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "expandableRows", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "translations", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "selectOnRowClick", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "autoReload", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], DataTable.prototype, "showReloading", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "sortBy", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "sortAsc", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "offset", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "limit", null); -__decorate([ - core_1.Input(), - __metadata("design:type", Object), - __metadata("design:paramtypes", [Object]) -], DataTable.prototype, "page", null); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "reload", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "rowClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "rowDoubleClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "headerClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], DataTable.prototype, "cellClick", void 0); -DataTable = __decorate([ - core_1.Component({ - moduleId: module.id, - selector: 'data-table', - template: table_template_1.TABLE_TEMPLATE, - styles: [table_style_1.TABLE_STYLE] - }) -], DataTable); -exports.DataTable = DataTable; -//# sourceMappingURL=/components/table.component.js.map \ No newline at end of file diff --git a/dist/components/table.component.js.map b/dist/components/table.component.js.map deleted file mode 100644 index b4f4ccc..0000000 --- a/dist/components/table.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"table.component.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component, Input, Output, EventEmitter, ContentChildren, QueryList,\r\n TemplateRef, ContentChild, ViewChildren, OnInit\r\n} from '@angular/core';\r\nimport { DataTableColumn } from './column.component';\r\nimport { DataTableRow } from './row.component';\r\nimport { DataTableParams } from '../types/data-table-params.type';\r\nimport { RowCallback } from '../types/row-callback.type';\r\nimport { DataTableTranslations } from '../types/data-table-translations.type';\r\nimport { defaultTranslations } from '../types/default-translations.type';\r\nimport { drag } from '../utils/drag';\r\nimport { TABLE_TEMPLATE } from './table.template';\r\nimport { TABLE_STYLE } from \"./table.style\";\r\n\r\n\r\n\r\n@Component({\r\n moduleId: module.id,\r\n selector: 'data-table',\r\n template: TABLE_TEMPLATE,\r\n styles: [TABLE_STYLE]\r\n})\r\nexport class DataTable implements DataTableParams, OnInit {\r\n\r\n private _items: any[] = [];\r\n\r\n @Input() get items() {\r\n return this._items;\r\n }\r\n\r\n set items(items: any[]) {\r\n this._items = items;\r\n this._onReloadFinished();\r\n }\r\n\r\n @Input() itemCount: number;\r\n\r\n // UI components:\r\n\r\n @ContentChildren(DataTableColumn) columns: QueryList;\r\n @ViewChildren(DataTableRow) rows: QueryList;\r\n @ContentChild('dataTableExpand') expandTemplate: TemplateRef;\r\n\r\n // One-time optional bindings with default values:\r\n\r\n @Input() headerTitle: string;\r\n @Input() header = true;\r\n @Input() pagination = true;\r\n @Input() pagination_range = false;\r\n @Input() pagination_limit = false;\r\n @Input() pagination_input = false;\r\n @Input() pagination_numbers = true;\r\n @Input() indexColumn = true;\r\n @Input() indexColumnHeader = '';\r\n @Input() rowColors: RowCallback;\r\n @Input() rowTooltip: RowCallback;\r\n @Input() selectColumn = false;\r\n @Input() multiSelect = true;\r\n @Input() substituteRows = true;\r\n @Input() expandableRows = false;\r\n @Input() translations: DataTableTranslations = defaultTranslations;\r\n @Input() selectOnRowClick = false;\r\n @Input() autoReload = true;\r\n @Input() showReloading = false;\r\n\r\n // UI state without input:\r\n\r\n indexColumnVisible: boolean;\r\n selectColumnVisible: boolean;\r\n expandColumnVisible: boolean;\r\n\r\n // UI state: visible ge/set for the outside with @Input for one-time initial values\r\n\r\n private _sortBy: string;\r\n private _sortAsc = true;\r\n\r\n private _offset = 0;\r\n private _limit = 10;\r\n\r\n @Input()\r\n get sortBy() {\r\n return this._sortBy;\r\n }\r\n\r\n set sortBy(value) {\r\n this._sortBy = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get sortAsc() {\r\n return this._sortAsc;\r\n }\r\n\r\n set sortAsc(value) {\r\n this._sortAsc = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get offset() {\r\n return this._offset;\r\n }\r\n\r\n set offset(value) {\r\n this._offset = value;\r\n this._triggerReload();\r\n }\r\n\r\n @Input()\r\n get limit() {\r\n return this._limit;\r\n }\r\n\r\n set limit(value) {\r\n this._limit = value;\r\n this._triggerReload();\r\n }\r\n\r\n // calculated property:\r\n\r\n @Input()\r\n get page() {\r\n return Math.floor(this.offset / this.limit) + 1;\r\n }\r\n\r\n set page(value) {\r\n this.offset = (value - 1) * this.limit;\r\n }\r\n\r\n get lastPage() {\r\n return Math.ceil(this.itemCount / this.limit);\r\n }\r\n\r\n // setting multiple observable properties simultaneously\r\n\r\n sort(sortBy: string, asc: boolean) {\r\n this.sortBy = sortBy;\r\n this.sortAsc = asc;\r\n }\r\n\r\n // init\r\n\r\n ngOnInit() {\r\n this._initDefaultValues();\r\n this._initDefaultClickEvents();\r\n this._updateDisplayParams();\r\n\r\n if (this.autoReload && this._scheduledReload == null) {\r\n this.reloadItems();\r\n }\r\n }\r\n\r\n private _initDefaultValues() {\r\n this.indexColumnVisible = this.indexColumn;\r\n this.selectColumnVisible = this.selectColumn;\r\n this.expandColumnVisible = this.expandableRows;\r\n }\r\n\r\n private _initDefaultClickEvents() {\r\n this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column));\r\n if (this.selectOnRowClick) {\r\n this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected);\r\n }\r\n }\r\n\r\n // Reloading:\r\n\r\n _reloading = false;\r\n\r\n get reloading() {\r\n return this._reloading;\r\n }\r\n\r\n @Output() reload = new EventEmitter();\r\n\r\n reloadItems() {\r\n this._reloading = true;\r\n this.reload.emit(this._getRemoteParameters());\r\n }\r\n\r\n private _onReloadFinished() {\r\n this._updateDisplayParams();\r\n\r\n this._selectAllCheckbox = false;\r\n this._reloading = false;\r\n }\r\n\r\n _displayParams = {}; // params of the last finished reload\r\n\r\n get displayParams() {\r\n return this._displayParams;\r\n }\r\n\r\n _updateDisplayParams() {\r\n this._displayParams = {\r\n sortBy: this.sortBy,\r\n sortAsc: this.sortAsc,\r\n offset: this.offset,\r\n limit: this.limit\r\n };\r\n }\r\n\r\n _scheduledReload = null;\r\n\r\n // for avoiding cascading reloads if multiple params are set at once:\r\n _triggerReload() {\r\n if (this._scheduledReload) {\r\n clearTimeout(this._scheduledReload);\r\n }\r\n this._scheduledReload = setTimeout(() => {\r\n this.reloadItems();\r\n });\r\n }\r\n\r\n // event handlers:\r\n\r\n @Output() rowClick = new EventEmitter();\r\n @Output() rowDoubleClick = new EventEmitter();\r\n @Output() headerClick = new EventEmitter();\r\n @Output() cellClick = new EventEmitter();\r\n\r\n private rowClicked(row: DataTableRow, event) {\r\n this.rowClick.emit({ row, event });\r\n }\r\n\r\n private rowDoubleClicked(row: DataTableRow, event) {\r\n this.rowDoubleClick.emit({ row, event });\r\n }\r\n\r\n private headerClicked(column: DataTableColumn, event: MouseEvent) {\r\n if (!this._resizeInProgress) {\r\n this.headerClick.emit({ column, event });\r\n } else {\r\n this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end\r\n }\r\n }\r\n\r\n private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) {\r\n this.cellClick.emit({ row, column, event });\r\n }\r\n\r\n // functions:\r\n\r\n private _getRemoteParameters(): DataTableParams {\r\n let params = {};\r\n\r\n if (this.sortBy) {\r\n params.sortBy = this.sortBy;\r\n params.sortAsc = this.sortAsc;\r\n }\r\n if (this.pagination) {\r\n params.offset = this.offset;\r\n params.limit = this.limit;\r\n }\r\n return params;\r\n }\r\n\r\n private sortColumn(column: DataTableColumn) {\r\n if (column.sortable) {\r\n let ascending = this.sortBy === column.property ? !this.sortAsc : true;\r\n this.sort(column.property, ascending);\r\n }\r\n }\r\n\r\n get columnCount() {\r\n let count = 0;\r\n count += this.indexColumnVisible ? 1 : 0;\r\n count += this.selectColumnVisible ? 1 : 0;\r\n count += this.expandColumnVisible ? 1 : 0;\r\n this.columns.toArray().forEach(column => {\r\n count += column.visible ? 1 : 0;\r\n });\r\n return count;\r\n }\r\n\r\n private getRowColor(item: any, index: number, row: DataTableRow) {\r\n if (this.rowColors !== undefined) {\r\n return (this.rowColors)(item, row, index);\r\n }\r\n }\r\n\r\n // selection:\r\n\r\n selectedRow: DataTableRow;\r\n selectedRows: DataTableRow[] = [];\r\n\r\n private _selectAllCheckbox = false;\r\n\r\n get selectAllCheckbox() {\r\n return this._selectAllCheckbox;\r\n }\r\n\r\n set selectAllCheckbox(value) {\r\n this._selectAllCheckbox = value;\r\n this._onSelectAllChanged(value);\r\n }\r\n\r\n private _onSelectAllChanged(value: boolean) {\r\n this.rows.toArray().forEach(row => row.selected = value);\r\n }\r\n\r\n onRowSelectChanged(row: DataTableRow) {\r\n\r\n // maintain the selectedRow(s) view\r\n if (this.multiSelect) {\r\n let index = this.selectedRows.indexOf(row);\r\n if (row.selected && index < 0) {\r\n this.selectedRows.push(row);\r\n } else if (!row.selected && index >= 0) {\r\n this.selectedRows.splice(index, 1);\r\n }\r\n } else {\r\n if (row.selected) {\r\n this.selectedRow = row;\r\n } else if (this.selectedRow === row) {\r\n this.selectedRow = undefined;\r\n }\r\n }\r\n\r\n // unselect all other rows:\r\n if (row.selected && !this.multiSelect) {\r\n this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => {\r\n if (row_ !== row) { // avoid endless loop\r\n row_.selected = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // other:\r\n\r\n get substituteItems() {\r\n return Array.from({ length: this.displayParams.limit - this.items.length });\r\n }\r\n\r\n // column resizing:\r\n\r\n private _resizeInProgress = false;\r\n\r\n private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) {\r\n this._resizeInProgress = true;\r\n\r\n drag(event, {\r\n move: (moveEvent: MouseEvent, dx: number) => {\r\n if (this._isResizeInLimit(columnElement, dx)) {\r\n column.width = columnElement.offsetWidth + dx;\r\n }\r\n },\r\n });\r\n }\r\n\r\n resizeLimit = 30;\r\n\r\n private _isResizeInLimit(columnElement: HTMLElement, dx: number) {\r\n /* This is needed because CSS min-width didn't work on table-layout: fixed.\r\n Without the limits, resizing can make the next column disappear completely,\r\n and even increase the table width. The current implementation suffers from the fact,\r\n that offsetWidth sometimes contains out-of-date values. */\r\n if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) ||\r\n !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column\r\n (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/components/table.style.d.ts b/dist/components/table.style.d.ts deleted file mode 100644 index ab363e7..0000000 --- a/dist/components/table.style.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const TABLE_STYLE: string; diff --git a/dist/components/table.style.js b/dist/components/table.style.js deleted file mode 100644 index e2ce937..0000000 --- a/dist/components/table.style.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TABLE_STYLE = "\n/* bootstrap override: */\n\n:host /deep/ .data-table.table > tbody+tbody {\n border-top: none;\n}\n:host /deep/ .data-table.table td {\n vertical-align: middle;\n}\n\n:host /deep/ .data-table > thead > tr > th,\n:host /deep/ .data-table > tbody > tr > td {\n\toverflow: hidden;\n}\n\n/* I can't use the bootstrap striped table, because of the expandable rows */\n:host /deep/ .row-odd {\n background-color: #F6F6F6;\n}\n:host /deep/ .row-even {\n}\n\n.data-table .substitute-rows > tr:hover,\n:host /deep/ .data-table .data-table-row:hover {\n background-color: #ECECEC;\n}\n/* table itself: */\n\n.data-table {\n box-shadow: 0 0 15px rgb(236, 236, 236);\n table-layout: fixed;\n}\n\n/* header cells: */\n\n.column-header {\n position: relative;\n}\n.expand-column-header {\n\twidth: 50px;\n}\n.select-column-header {\n\twidth: 50px;\n\ttext-align: center;\n}\n.index-column-header {\n\twidth: 40px;\n}\n.column-header.sortable {\n cursor: pointer;\n}\n.column-header .column-sort-icon {\n\tfloat: right;\n}\n.column-header.resizable .column-sort-icon {\n margin-right: 8px;\n}\n.column-header .column-sort-icon .column-sortable-icon {\n color: lightgray;\n}\n.column-header .column-resize-handle {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n padding: 0;\n width: 8px;\n height: 100%;\n cursor: col-resize;\n}\n\n/* cover: */\n\n.data-table-box {\n position: relative;\n}\n\n.loading-cover {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.3);\n top: 0;\n}\n"; -//# sourceMappingURL=/components/table.style.js.map \ No newline at end of file diff --git a/dist/components/table.style.js.map b/dist/components/table.style.js.map deleted file mode 100644 index d182f3f..0000000 --- a/dist/components/table.style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"table.style.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.style.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,wjDAoF1B,CAAC","sourcesContent":["export const TABLE_STYLE = `\r\n/* bootstrap override: */\r\n\r\n:host /deep/ .data-table.table > tbody+tbody {\r\n border-top: none;\r\n}\r\n:host /deep/ .data-table.table td {\r\n vertical-align: middle;\r\n}\r\n\r\n:host /deep/ .data-table > thead > tr > th,\r\n:host /deep/ .data-table > tbody > tr > td {\r\n\toverflow: hidden;\r\n}\r\n\r\n/* I can't use the bootstrap striped table, because of the expandable rows */\r\n:host /deep/ .row-odd {\r\n background-color: #F6F6F6;\r\n}\r\n:host /deep/ .row-even {\r\n}\r\n\r\n.data-table .substitute-rows > tr:hover,\r\n:host /deep/ .data-table .data-table-row:hover {\r\n background-color: #ECECEC;\r\n}\r\n/* table itself: */\r\n\r\n.data-table {\r\n box-shadow: 0 0 15px rgb(236, 236, 236);\r\n table-layout: fixed;\r\n}\r\n\r\n/* header cells: */\r\n\r\n.column-header {\r\n position: relative;\r\n}\r\n.expand-column-header {\r\n\twidth: 50px;\r\n}\r\n.select-column-header {\r\n\twidth: 50px;\r\n\ttext-align: center;\r\n}\r\n.index-column-header {\r\n\twidth: 40px;\r\n}\r\n.column-header.sortable {\r\n cursor: pointer;\r\n}\r\n.column-header .column-sort-icon {\r\n\tfloat: right;\r\n}\r\n.column-header.resizable .column-sort-icon {\r\n margin-right: 8px;\r\n}\r\n.column-header .column-sort-icon .column-sortable-icon {\r\n color: lightgray;\r\n}\r\n.column-header .column-resize-handle {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n margin: 0;\r\n padding: 0;\r\n width: 8px;\r\n height: 100%;\r\n cursor: col-resize;\r\n}\r\n\r\n/* cover: */\r\n\r\n.data-table-box {\r\n position: relative;\r\n}\r\n\r\n.loading-cover {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(255, 255, 255, 0.3);\r\n top: 0;\r\n}\r\n`;"]} \ No newline at end of file diff --git a/dist/components/table.template.d.ts b/dist/components/table.template.d.ts deleted file mode 100644 index cc04eb4..0000000 --- a/dist/components/table.template.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const TABLE_TEMPLATE: string; diff --git a/dist/components/table.template.js b/dist/components/table.template.js deleted file mode 100644 index 905d8a0..0000000 --- a/dist/components/table.template.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TABLE_TEMPLATE = "\n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 \n
\n
\n
\n\n \n
\n"; -//# sourceMappingURL=/components/table.template.js.map \ No newline at end of file diff --git a/dist/components/table.template.js.map b/dist/components/table.template.js.map deleted file mode 100644 index 677275c..0000000 --- a/dist/components/table.template.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"table.template.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/components/table.template.ts"],"names":[],"mappings":";;AAAa,QAAA,cAAc,GAAG,84GAwD7B,CAAC","sourcesContent":["export const TABLE_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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
 \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n`;"]} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 4fae7a2..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from '@angular/core'; -import { DataTable } from './components/table.component'; -import { DataTableColumn } from './components/column.component'; -import { DataTableRow } from './components/row.component'; -import { DataTablePagination } from './components/pagination.component'; -import { DataTableHeader } from './components/header.component'; -import { DataTableTranslations } from './types/data-table-translations.type'; -import { CellCallback } from './types/cell-callback.type'; -import { RowCallback } from './types/row-callback.type'; -import { DataTableParams } from './types/data-table-params.type'; -import { defaultTranslations } from './types/default-translations.type'; -export * from './tools/data-table-resource'; -export { DataTable, DataTableColumn, DataTableRow, DataTablePagination, DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations }; -export declare const DATA_TABLE_DIRECTIVES: (typeof DataTable | typeof DataTableColumn)[]; -@NgModule() -export declare class DataTableModule { -} diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ed9fdd6..0000000 --- a/dist/index.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var common_1 = require("@angular/common"); -var forms_1 = require("@angular/forms"); -var table_component_1 = require("./components/table.component"); -exports.DataTable = table_component_1.DataTable; -var column_component_1 = require("./components/column.component"); -exports.DataTableColumn = column_component_1.DataTableColumn; -var row_component_1 = require("./components/row.component"); -exports.DataTableRow = row_component_1.DataTableRow; -var pagination_component_1 = require("./components/pagination.component"); -exports.DataTablePagination = pagination_component_1.DataTablePagination; -var header_component_1 = require("./components/header.component"); -exports.DataTableHeader = header_component_1.DataTableHeader; -var px_1 = require("./utils/px"); -var hide_1 = require("./utils/hide"); -var min_1 = require("./utils/min"); -var default_translations_type_1 = require("./types/default-translations.type"); -exports.defaultTranslations = default_translations_type_1.defaultTranslations; -__export(require("./tools/data-table-resource")); -exports.DATA_TABLE_DIRECTIVES = [table_component_1.DataTable, column_component_1.DataTableColumn]; -var DataTableModule = (function () { - function DataTableModule() { - } - return DataTableModule; -}()); -DataTableModule = __decorate([ - core_1.NgModule({ - imports: [common_1.CommonModule, forms_1.FormsModule], - declarations: [ - table_component_1.DataTable, column_component_1.DataTableColumn, - row_component_1.DataTableRow, pagination_component_1.DataTablePagination, header_component_1.DataTableHeader, - px_1.PixelConverter, hide_1.Hide, min_1.MinPipe - ], - exports: [table_component_1.DataTable, column_component_1.DataTableColumn] - }) -], DataTableModule); -exports.DataTableModule = DataTableModule; -//# sourceMappingURL=/index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 6db4dcc..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAyC;AACzC,0CAA+C;AAC/C,wCAA6C;AAE7C,gEAAwD;AAe/C,oBAfA,2BAAS,CAeA;AAdlB,kEAAgE;AAc5C,0BAdX,kCAAe,CAcW;AAbnC,4DAA0D;AAarB,uBAb5B,4BAAY,CAa4B;AAZjD,0EAAwE;AAYrB,8BAZ1C,0CAAmB,CAY0C;AAXtE,kEAAgE;AAYtD,0BAZD,kCAAe,CAYC;AAVzB,iCAA4C;AAC5C,qCAAoC;AACpC,mCAAsC;AAKtC,+EAAwE;AAGsB,8BAHrF,+CAAmB,CAGqF;AAFjH,iDAA4C;AAG/B,QAAA,qBAAqB,GAAG,CAAE,2BAAS,EAAE,kCAAe,CAAE,CAAC;AAYpE,IAAa,eAAe;IAA5B;IAA+B,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAhC,IAAgC;AAAnB,eAAe;IAT3B,eAAQ,CAAC;QACN,OAAO,EAAE,CAAE,qBAAY,EAAE,mBAAW,CAAE;QACtC,YAAY,EAAE;YACV,2BAAS,EAAE,kCAAe;YAC1B,4BAAY,EAAE,0CAAmB,EAAE,kCAAe;YAClD,mBAAc,EAAE,WAAI,EAAE,aAAO;SAChC;QACD,OAAO,EAAE,CAAE,2BAAS,EAAE,kCAAe,CAAE;KAC1C,CAAC;GACW,eAAe,CAAI;AAAnB,0CAAe","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DataTable} from './components/table.component';\r\nimport { DataTableColumn } from './components/column.component';\r\nimport { DataTableRow } from './components/row.component';\r\nimport { DataTablePagination } from './components/pagination.component';\r\nimport { DataTableHeader } from './components/header.component';\r\n\r\nimport { PixelConverter } from './utils/px';\r\nimport { Hide } from './utils/hide';\r\nimport { MinPipe } from './utils/min';\r\nimport { DataTableTranslations } from './types/data-table-translations.type';\r\nimport { CellCallback } from './types/cell-callback.type';\r\nimport { RowCallback } from './types/row-callback.type';\r\nimport { DataTableParams } from './types/data-table-params.type';\r\nimport { defaultTranslations } from './types/default-translations.type';\r\nexport * from './tools/data-table-resource';\r\nexport { DataTable, DataTableColumn, DataTableRow, DataTablePagination,\r\n DataTableHeader, DataTableTranslations, CellCallback, RowCallback, DataTableParams, defaultTranslations};\r\nexport const DATA_TABLE_DIRECTIVES = [ DataTable, DataTableColumn ];\r\n\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule ],\r\n declarations: [\r\n DataTable, DataTableColumn,\r\n DataTableRow, DataTablePagination, DataTableHeader,\r\n PixelConverter, Hide, MinPipe\r\n ],\r\n exports: [ DataTable, DataTableColumn ]\r\n})\r\nexport class DataTableModule { }\r\n"]} \ No newline at end of file diff --git a/dist/tools/data-table-resource.d.ts b/dist/tools/data-table-resource.d.ts deleted file mode 100644 index 6670e46..0000000 --- a/dist/tools/data-table-resource.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { DataTableParams } from '../types/data-table-params.type'; -export declare class DataTableResource { - private items; - constructor(items: T[]); - query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise; - count(): Promise; -} diff --git a/dist/tools/data-table-resource.js b/dist/tools/data-table-resource.js deleted file mode 100644 index f24576b..0000000 --- a/dist/tools/data-table-resource.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var DataTableResource = (function () { - function DataTableResource(items) { - this.items = items; - } - DataTableResource.prototype.query = function (params, filter) { - var result = []; - if (filter) { - result = this.items.filter(filter); - } - else { - result = this.items.slice(); // shallow copy to use for sorting instead of changing the original - } - if (params.sortBy) { - result.sort(function (a, b) { - if (typeof a[params.sortBy] === 'string') { - return a[params.sortBy].localeCompare(b[params.sortBy]); - } - else { - return a[params.sortBy] - b[params.sortBy]; - } - }); - if (params.sortAsc === false) { - result.reverse(); - } - } - if (params.offset !== undefined) { - if (params.limit === undefined) { - result = result.slice(params.offset, result.length); - } - else { - result = result.slice(params.offset, params.offset + params.limit); - } - } - return new Promise(function (resolve, reject) { - setTimeout(function () { return resolve(result); }); - }); - }; - DataTableResource.prototype.count = function () { - var _this = this; - return new Promise(function (resolve, reject) { - setTimeout(function () { return resolve(_this.items.length); }); - }); - }; - return DataTableResource; -}()); -exports.DataTableResource = DataTableResource; -//# sourceMappingURL=/tools/data-table-resource.js.map \ No newline at end of file diff --git a/dist/tools/data-table-resource.js.map b/dist/tools/data-table-resource.js.map deleted file mode 100644 index 0805801..0000000 --- a/dist/tools/data-table-resource.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"data-table-resource.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/tools/data-table-resource.ts"],"names":[],"mappings":";;AAGA;IAEI,2BAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,iCAAK,GAAL,UAAM,MAAuB,EAAE,MAAwD;QAEnF,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,mEAAmE;QACpG,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACb,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;QACD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iCAAK,GAAL;QAAA,iBAKC;QAJG,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IAEP,CAAC;IACL,wBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,8CAAiB","sourcesContent":["import { DataTableParams } from '../types/data-table-params.type';\r\n\r\n\r\nexport class DataTableResource {\r\n\r\n constructor(private items: T[]) {}\r\n\r\n query(params: DataTableParams, filter?: (item: T, index: number, items: T[]) => boolean): Promise {\r\n\r\n let result: T[] = [];\r\n if (filter) {\r\n result = this.items.filter(filter);\r\n } else {\r\n result = this.items.slice(); // shallow copy to use for sorting instead of changing the original\r\n }\r\n\r\n if (params.sortBy) {\r\n result.sort((a, b) => {\r\n if (typeof a[params.sortBy] === 'string') {\r\n return a[params.sortBy].localeCompare(b[params.sortBy]);\r\n } else {\r\n return a[params.sortBy] - b[params.sortBy];\r\n }\r\n });\r\n if (params.sortAsc === false) {\r\n result.reverse();\r\n }\r\n }\r\n if (params.offset !== undefined) {\r\n if (params.limit === undefined) {\r\n result = result.slice(params.offset, result.length);\r\n } else {\r\n result = result.slice(params.offset, params.offset + params.limit);\r\n }\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(result));\r\n });\r\n }\r\n\r\n count(): Promise {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(this.items.length));\r\n });\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/cell-callback.type.d.ts b/dist/types/cell-callback.type.d.ts deleted file mode 100644 index 7c2a278..0000000 --- a/dist/types/cell-callback.type.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { DataTableRow } from '../components/row.component'; -import { DataTableColumn } from '../components/column.component'; -export declare type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string; diff --git a/dist/types/cell-callback.type.js b/dist/types/cell-callback.type.js deleted file mode 100644 index d038872..0000000 --- a/dist/types/cell-callback.type.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=/types/cell-callback.type.js.map \ No newline at end of file diff --git a/dist/types/cell-callback.type.js.map b/dist/types/cell-callback.type.js.map deleted file mode 100644 index 3a5977f..0000000 --- a/dist/types/cell-callback.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cell-callback.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/cell-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\nimport { DataTableColumn } from '../components/column.component';\r\n\r\nexport type CellCallback = (item: any, row: DataTableRow, column: DataTableColumn, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-params.type.d.ts b/dist/types/data-table-params.type.d.ts deleted file mode 100644 index cece533..0000000 --- a/dist/types/data-table-params.type.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface DataTableParams { - offset?: number; - limit?: number; - sortBy?: string; - sortAsc?: boolean; -} diff --git a/dist/types/data-table-params.type.js b/dist/types/data-table-params.type.js deleted file mode 100644 index 84d6b65..0000000 --- a/dist/types/data-table-params.type.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=/types/data-table-params.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-params.type.js.map b/dist/types/data-table-params.type.js.map deleted file mode 100644 index aa24bf1..0000000 --- a/dist/types/data-table-params.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"data-table-params.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/data-table-params.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableParams {\r\n offset?: number;\r\n limit?: number;\r\n sortBy?: string;\r\n sortAsc?: boolean;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/data-table-translations.type.d.ts b/dist/types/data-table-translations.type.d.ts deleted file mode 100644 index 87b3967..0000000 --- a/dist/types/data-table-translations.type.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface DataTableTranslations { - indexColumn: string; - selectColumn: string; - expandColumn: string; - paginationLimit: string; - paginationRange: string; -} diff --git a/dist/types/data-table-translations.type.js b/dist/types/data-table-translations.type.js deleted file mode 100644 index 4c2d1f7..0000000 --- a/dist/types/data-table-translations.type.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=/types/data-table-translations.type.js.map \ No newline at end of file diff --git a/dist/types/data-table-translations.type.js.map b/dist/types/data-table-translations.type.js.map deleted file mode 100644 index eb7779d..0000000 --- a/dist/types/data-table-translations.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"data-table-translations.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/data-table-translations.type.ts"],"names":[],"mappings":"","sourcesContent":["export interface DataTableTranslations {\r\n indexColumn: string;\r\n selectColumn: string;\r\n expandColumn: string;\r\n paginationLimit: string;\r\n paginationRange: string;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/types/default-translations.type.d.ts b/dist/types/default-translations.type.d.ts deleted file mode 100644 index 0ee4b08..0000000 --- a/dist/types/default-translations.type.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { DataTableTranslations } from './data-table-translations.type'; -export declare const defaultTranslations: DataTableTranslations; diff --git a/dist/types/default-translations.type.js b/dist/types/default-translations.type.js deleted file mode 100644 index 15392c9..0000000 --- a/dist/types/default-translations.type.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultTranslations = { - indexColumn: 'index', - selectColumn: 'select', - expandColumn: 'expand', - paginationLimit: 'Limit', - paginationRange: 'Results' -}; -//# sourceMappingURL=/types/default-translations.type.js.map \ No newline at end of file diff --git a/dist/types/default-translations.type.js.map b/dist/types/default-translations.type.js.map deleted file mode 100644 index 48b6d4a..0000000 --- a/dist/types/default-translations.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"default-translations.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/default-translations.type.ts"],"names":[],"mappings":";;AAEa,QAAA,mBAAmB,GAA0B;IACxD,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,SAAS;CAC3B,CAAC","sourcesContent":["import {DataTableTranslations} from'./data-table-translations.type'\r\n\r\nexport const defaultTranslations: DataTableTranslations = {\r\n indexColumn: 'index',\r\n selectColumn: 'select',\r\n expandColumn: 'expand',\r\n paginationLimit: 'Limit',\r\n paginationRange: 'Results'\r\n};\r\n"]} \ No newline at end of file diff --git a/dist/types/row-callback.type.d.ts b/dist/types/row-callback.type.d.ts deleted file mode 100644 index a9d59b2..0000000 --- a/dist/types/row-callback.type.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { DataTableRow } from '../components/row.component'; -export declare type RowCallback = (item: any, row: DataTableRow, index: number) => string; diff --git a/dist/types/row-callback.type.js b/dist/types/row-callback.type.js deleted file mode 100644 index d340a99..0000000 --- a/dist/types/row-callback.type.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=/types/row-callback.type.js.map \ No newline at end of file diff --git a/dist/types/row-callback.type.js.map b/dist/types/row-callback.type.js.map deleted file mode 100644 index 211514d..0000000 --- a/dist/types/row-callback.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"row-callback.type.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/types/row-callback.type.ts"],"names":[],"mappings":"","sourcesContent":["import { DataTableRow } from '../components/row.component';\r\n\r\nexport type RowCallback = (item: any, row: DataTableRow, index: number) => string;\r\n"]} \ No newline at end of file diff --git a/dist/utils/drag.d.ts b/dist/utils/drag.d.ts deleted file mode 100644 index 58c168b..0000000 --- a/dist/utils/drag.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export declare type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void; -export declare type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void; -export declare function drag(event: MouseEvent, {move: move, up: up}: { - move: MoveHandler; - up?: UpHandler; -}): void; diff --git a/dist/utils/drag.js b/dist/utils/drag.js deleted file mode 100644 index 089185c..0000000 --- a/dist/utils/drag.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function drag(event, _a) { - var move = _a.move, up = _a.up; - var startX = event.pageX; - var startY = event.pageY; - var x = startX; - var y = startY; - var moved = false; - function mouseMoveHandler(event) { - var dx = event.pageX - x; - var dy = event.pageY - y; - x = event.pageX; - y = event.pageY; - if (dx || dy) - moved = true; - move(event, dx, dy, x, y); - event.preventDefault(); // to avoid text selection - } - function mouseUpHandler(event) { - x = event.pageX; - y = event.pageY; - document.removeEventListener('mousemove', mouseMoveHandler); - document.removeEventListener('mouseup', mouseUpHandler); - if (up) - up(event, x, y, moved); - } - document.addEventListener('mousemove', mouseMoveHandler); - document.addEventListener('mouseup', mouseUpHandler); -} -exports.drag = drag; -//# sourceMappingURL=/utils/drag.js.map \ No newline at end of file diff --git a/dist/utils/drag.js.map b/dist/utils/drag.js.map deleted file mode 100644 index 1a7a2f6..0000000 --- a/dist/utils/drag.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"drag.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/drag.ts"],"names":[],"mappings":";;AAIA,cAAqB,KAAiB,EAAE,EAA0D;QAAxD,cAAU,EAAE,UAAM;IAExD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,0BAA0B,KAAiB;QACvC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACzB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC;QAC1B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,0BAA0B;IACtD,CAAC;IAED,wBAAwB,KAAiB;QACrC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAChB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAExD,EAAE,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAhCD,oBAgCC","sourcesContent":["\r\nexport type MoveHandler = (event: MouseEvent, dx: number, dy: number, x: number, y: number) => void;\r\nexport type UpHandler = (event: MouseEvent, x: number, y: number, moved: boolean) => void;\r\n\r\nexport function drag(event: MouseEvent, { move: move, up: up}: {move: MoveHandler, up?: UpHandler}) {\r\n\r\n let startX = event.pageX;\r\n let startY = event.pageY;\r\n let x = startX;\r\n let y = startY;\r\n let moved = false;\r\n\r\n function mouseMoveHandler(event: MouseEvent) {\r\n let dx = event.pageX - x;\r\n let dy = event.pageY - y;\r\n x = event.pageX;\r\n y = event.pageY;\r\n if (dx || dy) moved = true;\r\n\r\n move(event, dx, dy, x, y);\r\n\r\n event.preventDefault(); // to avoid text selection\r\n }\r\n\r\n function mouseUpHandler(event: MouseEvent) {\r\n x = event.pageX;\r\n y = event.pageY;\r\n\r\n document.removeEventListener('mousemove', mouseMoveHandler);\r\n document.removeEventListener('mouseup', mouseUpHandler);\r\n\r\n if (up) up(event, x, y, moved);\r\n }\r\n\r\n document.addEventListener('mousemove', mouseMoveHandler);\r\n document.addEventListener('mouseup', mouseUpHandler);\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/hide.d.ts b/dist/utils/hide.d.ts deleted file mode 100644 index ef6bccd..0000000 --- a/dist/utils/hide.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ElementRef, Renderer } from '@angular/core'; -export declare class Hide { - private _elementRef; - private _renderer; - private _prevCondition; - private _displayStyle; - constructor(_elementRef: ElementRef, _renderer: Renderer); - hide: boolean; - private initDisplayStyle(); -} diff --git a/dist/utils/hide.js b/dist/utils/hide.js deleted file mode 100644 index 5cbd3ad..0000000 --- a/dist/utils/hide.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -function isBlank(obj) { - return obj === undefined || obj === null; -} -var Hide = (function () { - function Hide(_elementRef, _renderer) { - this._elementRef = _elementRef; - this._renderer = _renderer; - this._prevCondition = null; - } - Object.defineProperty(Hide.prototype, "hide", { - set: function (newCondition) { - this.initDisplayStyle(); - if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) { - this._prevCondition = true; - this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none'); - } - else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) { - this._prevCondition = false; - this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle); - } - }, - enumerable: true, - configurable: true - }); - Hide.prototype.initDisplayStyle = function () { - if (this._displayStyle === undefined) { - var displayStyle = this._elementRef.nativeElement.style.display; - if (displayStyle && displayStyle !== 'none') { - this._displayStyle = displayStyle; - } - } - }; - return Hide; -}()); -Hide = __decorate([ - core_1.Directive({ selector: '[hide]', inputs: ['hide'] }), - __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer]) -], Hide); -exports.Hide = Hide; -//# sourceMappingURL=/utils/hide.js.map \ No newline at end of file diff --git a/dist/utils/hide.js.map b/dist/utils/hide.js.map deleted file mode 100644 index 9beaa4d..0000000 --- a/dist/utils/hide.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"hide.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/hide.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgE;AAGhE,iBAAiB,GAAQ;IACvB,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC;AAC3C,CAAC;AAGD,IAAa,IAAI;IAKf,cAAoB,WAAuB,EAAU,SAAmB;QAApD,gBAAW,GAAX,WAAW,CAAY;QAAU,cAAS,GAAT,SAAS,CAAU;QAHhE,mBAAc,GAAY,IAAI,CAAC;IAGqC,CAAC;IAE7E,sBAAI,sBAAI;aAAR,UAAS,YAAqB;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;;;OAAA;IAEO,+BAAgB,GAAxB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAChE,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACH,WAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,IAAI;IADhB,gBAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;qCAMjB,iBAAU,EAAqB,eAAQ;GAL7D,IAAI,CA2BhB;AA3BY,oBAAI","sourcesContent":["import { Directive, ElementRef, Renderer } from '@angular/core';\r\n\r\n\r\nfunction isBlank(obj: any): boolean {\r\n return obj === undefined || obj === null;\r\n}\r\n\r\n@Directive({ selector: '[hide]', inputs: ['hide'] })\r\nexport class Hide {\r\n\r\n private _prevCondition: boolean = null;\r\n private _displayStyle: string;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }\r\n\r\n set hide(newCondition: boolean) {\r\n this.initDisplayStyle();\r\n\r\n if (newCondition && (isBlank(this._prevCondition) || !this._prevCondition)) {\r\n this._prevCondition = true;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', 'none');\r\n } else if (!newCondition && (isBlank(this._prevCondition) || this._prevCondition)) {\r\n this._prevCondition = false;\r\n this._renderer.setElementStyle(this._elementRef.nativeElement, 'display', this._displayStyle);\r\n }\r\n }\r\n\r\n private initDisplayStyle() {\r\n if (this._displayStyle === undefined) {\r\n let displayStyle = this._elementRef.nativeElement.style.display;\r\n if (displayStyle && displayStyle !== 'none') {\r\n this._displayStyle = displayStyle;\r\n }\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/min.d.ts b/dist/utils/min.d.ts deleted file mode 100644 index c352717..0000000 --- a/dist/utils/min.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PipeTransform } from '@angular/core'; -export declare class MinPipe implements PipeTransform { - transform(value: number[], args: string[]): any; -} diff --git a/dist/utils/min.js b/dist/utils/min.js deleted file mode 100644 index 6cafcf5..0000000 --- a/dist/utils/min.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var MinPipe = (function () { - function MinPipe() { - } - MinPipe.prototype.transform = function (value, args) { - return Math.min.apply(null, value); - }; - return MinPipe; -}()); -MinPipe = __decorate([ - core_1.Pipe({ - name: 'min' - }) -], MinPipe); -exports.MinPipe = MinPipe; -//# sourceMappingURL=/utils/min.js.map \ No newline at end of file diff --git a/dist/utils/min.js.map b/dist/utils/min.js.map deleted file mode 100644 index 11a168f..0000000 --- a/dist/utils/min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"min.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/min.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD,IAAa,OAAO;IAApB;IAIA,CAAC;IAHC,2BAAS,GAAT,UAAU,KAAe,EAAE,IAAc;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACH,cAAC;AAAD,CAAC,AAJD,IAIC;AAJY,OAAO;IAHnB,WAAI,CAAC;QACJ,IAAI,EAAE,KAAK;KACZ,CAAC;GACW,OAAO,CAInB;AAJY,0BAAO","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'min'\r\n})\r\nexport class MinPipe implements PipeTransform {\r\n transform(value: number[], args: string[]): any {\r\n return Math.min.apply(null, value);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/utils/px.d.ts b/dist/utils/px.d.ts deleted file mode 100644 index 480100f..0000000 --- a/dist/utils/px.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PipeTransform } from '@angular/core'; -export declare class PixelConverter implements PipeTransform { - transform(value: string | number, args: string[]): any; -} diff --git a/dist/utils/px.js b/dist/utils/px.js deleted file mode 100644 index 6bc3077..0000000 --- a/dist/utils/px.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = require("@angular/core"); -var PixelConverter = (function () { - function PixelConverter() { - } - PixelConverter.prototype.transform = function (value, args) { - if (value === undefined) { - return; - } - if (typeof value === 'string') { - return value; - } - if (typeof value === 'number') { - return value + 'px'; - } - }; - return PixelConverter; -}()); -PixelConverter = __decorate([ - core_1.Pipe({ - name: 'px' - }) -], PixelConverter); -exports.PixelConverter = PixelConverter; -//# sourceMappingURL=/utils/px.js.map \ No newline at end of file diff --git a/dist/utils/px.js.map b/dist/utils/px.js.map deleted file mode 100644 index ecd2733..0000000 --- a/dist/utils/px.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"px.js","sourceRoot":"","sources":["file:///D:/Prodaction/angular-4-data-table/src/utils/px.ts"],"names":[],"mappings":";;;;;;;;AAAA,sCAAoD;AAMpD,IAAa,cAAc;IAA3B;IAYA,CAAC;IAXC,kCAAS,GAAT,UAAU,KAAsB,EAAE,IAAc;QAC9C,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC;QACX,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,cAAc;IAH1B,WAAI,CAAC;QACJ,IAAI,EAAE,IAAI;KACX,CAAC;GACW,cAAc,CAY1B;AAZY,wCAAc","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'px'\r\n})\r\nexport class PixelConverter implements PipeTransform {\r\n transform(value: string | number, args: string[]): any {\r\n if (value === undefined) {\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n if (typeof value === 'number') {\r\n return value + 'px';\r\n }\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/package.json b/package.json index 8453043..bd6a2ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.3.0", + "version": "0.4.0", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", @@ -12,8 +12,8 @@ "data table", "pagination" ], - "main": "dist/index.js", - "typings": "dist/index.d.ts", + "main": "src/index.ts", + "typings": "src/index.ts", "scripts": { "build": "tsc", "serve": "tsc -w" From 6b2b25a4d721995a67fcc823550baf7244da7772 Mon Sep 17 00:00:00 2001 From: Mit9 Date: Mon, 18 Dec 2017 11:45:19 +0200 Subject: [PATCH 29/41] update dist fix --- package.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index bd6a2ae..d707ab8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.4.0", + "version": "0.4.1", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", @@ -15,8 +15,6 @@ "main": "src/index.ts", "typings": "src/index.ts", "scripts": { - "build": "tsc", - "serve": "tsc -w" }, "repository": { "type": "git", From d1f163923d6066329806a1e6056c6a3cfc3d007c Mon Sep 17 00:00:00 2001 From: Mit9 Date: Mon, 18 Dec 2017 12:09:18 +0200 Subject: [PATCH 30/41] update document and dist fix --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index 85a4499..6cdac52 100644 --- a/README.md +++ b/README.md @@ -26,13 +26,7 @@ Demo for pagination with seperate page numbers will be added soon Some times can be some problam with it. to fix it use import like this -`import { DataTableModule } from 'angular-4-data-table/src/index';` - -add in .angular-cli.json - -`"scripts": [ - "../node_modules/angular-4-data-table/dist/index.js" -],` +`import { DataTableModule } from 'angular-4-data-table';` and for prodaction build use From d4014a014a4989db9593d5236508549c7a8b4f2f Mon Sep 17 00:00:00 2001 From: Bruno Bruzzano Date: Fri, 22 Dec 2017 09:31:17 +0100 Subject: [PATCH 31/41] add basic accessibility support. - sortable column headers have `tabIndex` set - sortable column headers have proper `aria-sorting` attribute - sorting can be triggered via `Space` or `Enter` keys --- src/components/table.component.ts | 702 +++++++++++++++--------------- src/components/table.template.ts | 12 +- 2 files changed, 358 insertions(+), 356 deletions(-) diff --git a/src/components/table.component.ts b/src/components/table.component.ts index 254c690..3129197 100644 --- a/src/components/table.component.ts +++ b/src/components/table.component.ts @@ -1,6 +1,6 @@ import { - Component, Input, Output, EventEmitter, ContentChildren, QueryList, - TemplateRef, ContentChild, ViewChildren, OnInit + Component, Input, Output, EventEmitter, ContentChildren, QueryList, + TemplateRef, ContentChild, ViewChildren, OnInit } from '@angular/core'; import { DataTableColumn } from './column.component'; import { DataTableRow } from './row.component'; @@ -12,357 +12,357 @@ import { drag } from '../utils/drag'; import { TABLE_TEMPLATE } from './table.template'; import { TABLE_STYLE } from "./table.style"; - - @Component({ - moduleId: module.id, - selector: 'data-table', - template: TABLE_TEMPLATE, - styles: [TABLE_STYLE] + moduleId: module.id, + selector: 'data-table', + template: TABLE_TEMPLATE, + styles: [TABLE_STYLE] }) export class DataTable implements DataTableParams, OnInit { - private _items: any[] = []; - - @Input() get items() { - return this._items; - } - - set items(items: any[]) { - this._items = items; - this._onReloadFinished(); - } - - @Input() itemCount: number; - - // UI components: - - @ContentChildren(DataTableColumn) columns: QueryList; - @ViewChildren(DataTableRow) rows: QueryList; - @ContentChild('dataTableExpand') expandTemplate: TemplateRef; - - // One-time optional bindings with default values: - - @Input() headerTitle: string; - @Input() header = true; - @Input() pagination = true; - @Input() pagination_range = false; - @Input() pagination_limit = false; - @Input() pagination_input = false; - @Input() pagination_numbers = true; - @Input() indexColumn = true; - @Input() indexColumnHeader = ''; - @Input() rowColors: RowCallback; - @Input() rowTooltip: RowCallback; - @Input() selectColumn = false; - @Input() multiSelect = true; - @Input() substituteRows = true; - @Input() expandableRows = false; - @Input() translations: DataTableTranslations = defaultTranslations; - @Input() selectOnRowClick = false; - @Input() autoReload = true; - @Input() showReloading = false; - @Input() noDataMessage: string; - - // UI state without input: - - indexColumnVisible: boolean; - selectColumnVisible: boolean; - expandColumnVisible: boolean; - - // UI state: visible ge/set for the outside with @Input for one-time initial values - - private _sortBy: string; - private _sortAsc = true; - - private _offset = 0; - private _limit = 10; - - @Input() - get sortBy() { - return this._sortBy; - } - - set sortBy(value) { - this._sortBy = value; - this._triggerReload(); - } - - @Input() - get sortAsc() { - return this._sortAsc; - } - - set sortAsc(value) { - this._sortAsc = value; - this._triggerReload(); - } - - @Input() - get offset() { - return this._offset; - } - - set offset(value) { - this._offset = value; - this._triggerReload(); - } - - @Input() - get limit() { - return this._limit; - } - - set limit(value) { - this._limit = value; - this._triggerReload(); - } - - // calculated property: - - @Input() - get page() { - return Math.floor(this.offset / this.limit) + 1; - } - - set page(value) { - this.offset = (value - 1) * this.limit; - } - - get lastPage() { - return Math.ceil(this.itemCount / this.limit); - } - - // setting multiple observable properties simultaneously - - sort(sortBy: string, asc: boolean) { - this.sortBy = sortBy; - this.sortAsc = asc; - } - - // init - - ngOnInit() { - this._initDefaultValues(); - this._initDefaultClickEvents(); - this._updateDisplayParams(); - - if (this.autoReload && this._scheduledReload == null) { - this.reloadItems(); - } - } - - private _initDefaultValues() { - this.indexColumnVisible = this.indexColumn; - this.selectColumnVisible = this.selectColumn; - this.expandColumnVisible = this.expandableRows; - } - - private _initDefaultClickEvents() { - this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column)); - if (this.selectOnRowClick) { - this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected); - } - } - - // Reloading: - - _reloading = false; - - get reloading() { - return this._reloading; - } - - @Output() reload = new EventEmitter(); - - reloadItems() { - this._reloading = true; - this.reload.emit(this._getRemoteParameters()); - } - - private _onReloadFinished() { - this._updateDisplayParams(); - - this._selectAllCheckbox = false; - this._reloading = false; - } - - _displayParams = {}; // params of the last finished reload - - get displayParams() { - return this._displayParams; - } - - _updateDisplayParams() { - this._displayParams = { - sortBy: this.sortBy, - sortAsc: this.sortAsc, - offset: this.offset, - limit: this.limit - }; - } - - _scheduledReload = null; - - // for avoiding cascading reloads if multiple params are set at once: - _triggerReload() { - if (this._scheduledReload) { - clearTimeout(this._scheduledReload); - } - this._scheduledReload = setTimeout(() => { - this.reloadItems(); - }); - } - - // event handlers: - - @Output() rowClick = new EventEmitter(); - @Output() rowDoubleClick = new EventEmitter(); - @Output() headerClick = new EventEmitter(); - @Output() cellClick = new EventEmitter(); - - private rowClicked(row: DataTableRow, event) { - this.rowClick.emit({ row, event }); - } - - private rowDoubleClicked(row: DataTableRow, event) { - this.rowDoubleClick.emit({ row, event }); - } - - private headerClicked(column: DataTableColumn, event: MouseEvent) { - if (!this._resizeInProgress) { - this.headerClick.emit({ column, event }); - } else { - this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end - } - } - - private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) { - this.cellClick.emit({ row, column, event }); - } - - // functions: - - private _getRemoteParameters(): DataTableParams { - let params = {}; - - if (this.sortBy) { - params.sortBy = this.sortBy; - params.sortAsc = this.sortAsc; - } - if (this.pagination) { - params.offset = this.offset; - params.limit = this.limit; - } - return params; - } - - private sortColumn(column: DataTableColumn) { - if (column.sortable) { - let ascending = this.sortBy === column.property ? !this.sortAsc : true; - this.sort(column.property, ascending); - } - } - - get columnCount() { - let count = 0; - count += this.indexColumnVisible ? 1 : 0; - count += this.selectColumnVisible ? 1 : 0; - count += this.expandColumnVisible ? 1 : 0; - this.columns.toArray().forEach(column => { - count += column.visible ? 1 : 0; - }); - return count; - } - - private getRowColor(item: any, index: number, row: DataTableRow) { - if (this.rowColors !== undefined) { - return (this.rowColors)(item, row, index); - } - } - - // selection: - - selectedRow: DataTableRow; - selectedRows: DataTableRow[] = []; - - private _selectAllCheckbox = false; - - get selectAllCheckbox() { - return this._selectAllCheckbox; - } - - set selectAllCheckbox(value) { - this._selectAllCheckbox = value; - this._onSelectAllChanged(value); - } - - private _onSelectAllChanged(value: boolean) { - this.rows.toArray().forEach(row => row.selected = value); - } - - onRowSelectChanged(row: DataTableRow) { - - // maintain the selectedRow(s) view - if (this.multiSelect) { - let index = this.selectedRows.indexOf(row); - if (row.selected && index < 0) { - this.selectedRows.push(row); - } else if (!row.selected && index >= 0) { - this.selectedRows.splice(index, 1); - } - } else { - if (row.selected) { - this.selectedRow = row; - } else if (this.selectedRow === row) { - this.selectedRow = undefined; - } - } - - // unselect all other rows: - if (row.selected && !this.multiSelect) { - this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => { - if (row_ !== row) { // avoid endless loop - row_.selected = false; - } - }); - } - } - - // other: - - get substituteItems() { - return Array.from({ length: this.displayParams.limit - this.items.length }); - } - - // column resizing: - - private _resizeInProgress = false; - - private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) { - this._resizeInProgress = true; - - drag(event, { - move: (moveEvent: MouseEvent, dx: number) => { - if (this._isResizeInLimit(columnElement, dx)) { - column.width = columnElement.offsetWidth + dx; - } - }, - }); - } - - resizeLimit = 30; - - private _isResizeInLimit(columnElement: HTMLElement, dx: number) { - /* This is needed because CSS min-width didn't work on table-layout: fixed. - Without the limits, resizing can make the next column disappear completely, - and even increase the table width. The current implementation suffers from the fact, - that offsetWidth sometimes contains out-of-date values. */ - if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) || - !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column - (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) { - return false; - } - return true; - } + private _items: any[] = []; + + @Input() get items() { + return this._items; + } + + set items(items: any[]) { + this._items = items; + this._onReloadFinished(); + } + + @Input() itemCount: number; + + // UI components: + + @ContentChildren(DataTableColumn) columns: QueryList; + @ViewChildren(DataTableRow) rows: QueryList; + @ContentChild('dataTableExpand') expandTemplate: TemplateRef; + + // One-time optional bindings with default values: + + @Input() headerTitle: string; + @Input() header = true; + @Input() pagination = true; + @Input() pagination_range = false; + @Input() pagination_limit = false; + @Input() pagination_input = false; + @Input() pagination_numbers = true; + @Input() indexColumn = true; + @Input() indexColumnHeader = ''; + @Input() rowColors: RowCallback; + @Input() rowTooltip: RowCallback; + @Input() selectColumn = false; + @Input() multiSelect = true; + @Input() substituteRows = true; + @Input() expandableRows = false; + @Input() translations: DataTableTranslations = defaultTranslations; + @Input() selectOnRowClick = false; + @Input() autoReload = true; + @Input() showReloading = false; + @Input() noDataMessage: string; + + // UI state without input: + + indexColumnVisible: boolean; + selectColumnVisible: boolean; + expandColumnVisible: boolean; + + // UI state: visible ge/set for the outside with @Input for one-time initial values + + private _sortBy: string; + private _sortAsc = true; + + private _offset = 0; + private _limit = 10; + + @Input() + get sortBy() { + return this._sortBy; + } + + set sortBy(value) { + this._sortBy = value; + this._triggerReload(); + } + + @Input() + get sortAsc() { + return this._sortAsc; + } + + set sortAsc(value) { + this._sortAsc = value; + this._triggerReload(); + } + + @Input() + get offset() { + return this._offset; + } + + set offset(value) { + this._offset = value; + this._triggerReload(); + } + + @Input() + get limit() { + return this._limit; + } + + set limit(value) { + this._limit = value; + this._triggerReload(); + } + + // calculated property: + + @Input() + get page() { + return Math.floor(this.offset / this.limit) + 1; + } + + set page(value) { + this.offset = (value - 1) * this.limit; + } + + get lastPage() { + return Math.ceil(this.itemCount / this.limit); + } + + // setting multiple observable properties simultaneously + + sort(sortBy: string, asc: boolean) { + this.sortBy = sortBy; + this.sortAsc = asc; + } + + // init + + ngOnInit() { + this._initDefaultValues(); + this._initDefaultClickEvents(); + this._updateDisplayParams(); + + if (this.autoReload && this._scheduledReload == null) { + this.reloadItems(); + } + } + + private _initDefaultValues() { + this.indexColumnVisible = this.indexColumn; + this.selectColumnVisible = this.selectColumn; + this.expandColumnVisible = this.expandableRows; + } + + private _initDefaultClickEvents() { + this.headerClick.subscribe(tableEvent => this.sortColumn(tableEvent.column)); + if (this.selectOnRowClick) { + this.rowClick.subscribe(tableEvent => tableEvent.row.selected = !tableEvent.row.selected); + } + } + + // Reloading: + + _reloading = false; + + get reloading() { + return this._reloading; + } + + @Output() reload = new EventEmitter(); + + reloadItems() { + this._reloading = true; + this.reload.emit(this._getRemoteParameters()); + } + + private _onReloadFinished() { + this._updateDisplayParams(); + + this._selectAllCheckbox = false; + this._reloading = false; + } + + _displayParams = {}; // params of the last finished reload + + get displayParams() { + return this._displayParams; + } + + _updateDisplayParams() { + this._displayParams = { + sortBy: this.sortBy, + sortAsc: this.sortAsc, + offset: this.offset, + limit: this.limit + }; + } + + _scheduledReload = null; + + // for avoiding cascading reloads if multiple params are set at once: + _triggerReload() { + if (this._scheduledReload) { + clearTimeout(this._scheduledReload); + } + this._scheduledReload = setTimeout(() => { + this.reloadItems(); + }); + } + + // event handlers: + + @Output() rowClick = new EventEmitter(); + @Output() rowDoubleClick = new EventEmitter(); + @Output() headerClick = new EventEmitter(); + @Output() cellClick = new EventEmitter(); + + private rowClicked(row: DataTableRow, event) { + this.rowClick.emit({ row, event }); + } + + private rowDoubleClicked(row: DataTableRow, event) { + this.rowDoubleClick.emit({ row, event }); + } + + private headerClicked(column: DataTableColumn, event: Event) { + if (!this._resizeInProgress) { + event.preventDefault(); + event.stopPropagation(); + this.headerClick.emit({ column, event }); + } else { + this._resizeInProgress = false; // this is because I can't prevent click from mousup of the drag end + } + } + + private cellClicked(column: DataTableColumn, row: DataTableRow, event: MouseEvent) { + this.cellClick.emit({ row, column, event }); + } + + // functions: + + private _getRemoteParameters(): DataTableParams { + let params = {}; + + if (this.sortBy) { + params.sortBy = this.sortBy; + params.sortAsc = this.sortAsc; + } + if (this.pagination) { + params.offset = this.offset; + params.limit = this.limit; + } + return params; + } + + private sortColumn(column: DataTableColumn) { + if (column.sortable) { + let ascending = this.sortBy === column.property ? !this.sortAsc : true; + this.sort(column.property, ascending); + } + } + + get columnCount() { + let count = 0; + count += this.indexColumnVisible ? 1 : 0; + count += this.selectColumnVisible ? 1 : 0; + count += this.expandColumnVisible ? 1 : 0; + this.columns.toArray().forEach(column => { + count += column.visible ? 1 : 0; + }); + return count; + } + + private getRowColor(item: any, index: number, row: DataTableRow) { + if (this.rowColors !== undefined) { + return (this.rowColors)(item, row, index); + } + } + + // selection: + + selectedRow: DataTableRow; + selectedRows: DataTableRow[] = []; + + private _selectAllCheckbox = false; + + get selectAllCheckbox() { + return this._selectAllCheckbox; + } + + set selectAllCheckbox(value) { + this._selectAllCheckbox = value; + this._onSelectAllChanged(value); + } + + private _onSelectAllChanged(value: boolean) { + this.rows.toArray().forEach(row => row.selected = value); + } + + onRowSelectChanged(row: DataTableRow) { + + // maintain the selectedRow(s) view + if (this.multiSelect) { + let index = this.selectedRows.indexOf(row); + if (row.selected && index < 0) { + this.selectedRows.push(row); + } else if (!row.selected && index >= 0) { + this.selectedRows.splice(index, 1); + } + } else { + if (row.selected) { + this.selectedRow = row; + } else if (this.selectedRow === row) { + this.selectedRow = undefined; + } + } + + // unselect all other rows: + if (row.selected && !this.multiSelect) { + this.rows.toArray().filter(row_ => row_.selected).forEach(row_ => { + if (row_ !== row) { // avoid endless loop + row_.selected = false; + } + }); + } + } + + // other: + + get substituteItems() { + return Array.from({ length: this.displayParams.limit - this.items.length }); + } + + // column resizing: + + private _resizeInProgress = false; + + private resizeColumnStart(event: MouseEvent, column: DataTableColumn, columnElement: HTMLElement) { + this._resizeInProgress = true; + + drag(event, { + move: (moveEvent: MouseEvent, dx: number) => { + if (this._isResizeInLimit(columnElement, dx)) { + column.width = columnElement.offsetWidth + dx; + } + }, + }); + } + + resizeLimit = 30; + + private _isResizeInLimit(columnElement: HTMLElement, dx: number) { + /* This is needed because CSS min-width didn't work on table-layout: fixed. + Without the limits, resizing can make the next column disappear completely, + and even increase the table width. The current implementation suffers from the fact, + that offsetWidth sometimes contains out-of-date values. */ + if ((dx < 0 && (columnElement.offsetWidth + dx) <= this.resizeLimit) || + !columnElement.nextElementSibling || // resizing doesn't make sense for the last visible column + (dx >= 0 && (( columnElement.nextElementSibling).offsetWidth + dx) <= this.resizeLimit)) { + return false; + } + return true; + } } diff --git a/src/components/table.template.ts b/src/components/table.template.ts index 23aa4fe..26c337f 100644 --- a/src/components/table.template.ts +++ b/src/components/table.template.ts @@ -13,16 +13,18 @@ export const TABLE_TEMPLATE = ` - + [ngClass]="column.styleClassObject" class="column-header" [style.width]="column.width | px" + [attr.aria-sort]="column.sortable ? (column.property === sortBy ? (sortAsc ? 'ascending' : 'descending') : 'none') : null" + [attr.tabindex]="column.sortable ? '0' : null"> - - + @@ -59,4 +61,4 @@ export const TABLE_TEMPLATE = ` [show_input]="pagination_input" [show_numbers]="pagination_numbers"> -`; \ No newline at end of file +`; From 405503b4f4b42a073e018f13561f9dc95492ef25 Mon Sep 17 00:00:00 2001 From: Bruno Bruzzano Date: Fri, 22 Dec 2017 12:40:29 +0100 Subject: [PATCH 32/41] more accessibility. - row.template's expand row is a focusable `button`. It includes `aria-expanded`, `title` and `aria-label` also. - header.template: added missing`aria-label`s and `title`s for buttons. - table.template: added `aria-label` attribute for _select_ column. - added missing translations (note: demo page should be fixed as well) --- src/components/header.template.ts | 8 +++++--- src/components/row.template.ts | 10 ++++++---- src/components/table.template.ts | 5 +++-- src/types/data-table-translations.type.ts | 15 ++++++++++----- src/types/default-translations.type.ts | 15 ++++++++++----- 5 files changed, 34 insertions(+), 19 deletions(-) diff --git a/src/components/header.template.ts b/src/components/header.template.ts index b299a86..5bdc0fd 100644 --- a/src/components/header.template.ts +++ b/src/components/header.template.ts @@ -3,11 +3,13 @@ export const HEADER_TEMPLATE = `

@@ -40,4 +42,4 @@ export const HEADER_TEMPLATE = `
-`; \ No newline at end of file +`; diff --git a/src/components/row.template.ts b/src/components/row.template.ts index 7e881ea..17b0353 100644 --- a/src/components/row.template.ts +++ b/src/components/row.template.ts @@ -9,9 +9,11 @@ export const ROW_TEMPLATE = ` (dblclick)="dataTable.rowDoubleClicked(_this, $event)" (click)="dataTable.rowClicked(_this, $event)" > - - - + +
+ +
@@ -28,4 +30,4 @@ export const ROW_TEMPLATE = `
-`; \ No newline at end of file +`; diff --git a/src/components/table.template.ts b/src/components/table.template.ts index 26c337f..52501d1 100644 --- a/src/components/table.template.ts +++ b/src/components/table.template.ts @@ -11,10 +11,11 @@ export const TABLE_TEMPLATE = ` - + Date: Fri, 22 Dec 2017 15:55:19 +0100 Subject: [PATCH 33/41] Added `scope` attribute to `th` tags. --- src/components/table.template.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/table.template.ts b/src/components/table.template.ts index 52501d1..4974b08 100644 --- a/src/components/table.template.ts +++ b/src/components/table.template.ts @@ -6,14 +6,14 @@ export const TABLE_TEMPLATE = ` - - -
- + + + Date: Sat, 23 Dec 2017 10:08:42 +0530 Subject: [PATCH 34/41] src/components/row.component.ts aot compatiable changes --- src/components/row.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/row.component.ts b/src/components/row.component.ts index ea03572..0793462 100644 --- a/src/components/row.component.ts +++ b/src/components/row.component.ts @@ -57,5 +57,5 @@ export class DataTableRow implements OnDestroy { this.selected = false; } - private _this = this; // FIXME is there no template keyword for this in angular 2? + public _this = this; // FIXME is there no template keyword for this in angular 2? } From e16f509310f6762ebcf6d1b43c0fdb956f00d731 Mon Sep 17 00:00:00 2001 From: jay-thanki <34687629+jay-thanki@users.noreply.github.com> Date: Thu, 28 Dec 2017 11:48:20 +0530 Subject: [PATCH 35/41] aot compatible changes aot compatible changes in table.component.ts --- src/components/table.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/table.component.ts b/src/components/table.component.ts index 3129197..bf85bec 100644 --- a/src/components/table.component.ts +++ b/src/components/table.component.ts @@ -219,11 +219,11 @@ export class DataTable implements DataTableParams, OnInit { @Output() headerClick = new EventEmitter(); @Output() cellClick = new EventEmitter(); - private rowClicked(row: DataTableRow, event) { + public rowClicked(row: DataTableRow, event) { this.rowClick.emit({ row, event }); } - private rowDoubleClicked(row: DataTableRow, event) { + public rowDoubleClicked(row: DataTableRow, event) { this.rowDoubleClick.emit({ row, event }); } From e7a1633b92a5b870697a1173bfa3e6fee16c5cdc Mon Sep 17 00:00:00 2001 From: Mit9 Date: Tue, 2 Jan 2018 05:18:51 +0200 Subject: [PATCH 36/41] change rowDoubleClicked and rowClicked to public --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d707ab8..3cf8e2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.4.1", + "version": "0.4.2", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", From 620492763655e3c8ce1cd9d768c7acca75e09d18 Mon Sep 17 00:00:00 2001 From: jay-thanki <34687629+jay-thanki@users.noreply.github.com> Date: Tue, 2 Jan 2018 10:50:54 +0530 Subject: [PATCH 37/41] aot changes in table.component.ts aot compatiable changes in getRowColor method. --- src/components/table.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/table.component.ts b/src/components/table.component.ts index bf85bec..a41f451 100644 --- a/src/components/table.component.ts +++ b/src/components/table.component.ts @@ -275,7 +275,7 @@ export class DataTable implements DataTableParams, OnInit { return count; } - private getRowColor(item: any, index: number, row: DataTableRow) { + public getRowColor(item: any, index: number, row: DataTableRow) { if (this.rowColors !== undefined) { return (this.rowColors)(item, row, index); } From 1904d2056a7eb246256c69621a54d295da24c8b1 Mon Sep 17 00:00:00 2001 From: Mit9 Date: Tue, 2 Jan 2018 09:51:38 +0200 Subject: [PATCH 38/41] change rowDoubleClicked and rowClicked to public --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3cf8e2d..c0c1521 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.4.2", + "version": "0.4.3", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", From 0085bef856de868ebaca1ecf129d7e41a822e8e9 Mon Sep 17 00:00:00 2001 From: Mit9 Date: Wed, 21 Feb 2018 07:59:04 +0200 Subject: [PATCH 39/41] change module.id to module.id string --- package.json | 2 +- src/components/header.component.ts | 2 +- src/components/pagination.component.ts | 2 +- src/components/row.component.ts | 2 +- src/components/table.component.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c0c1521..f9c41af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.4.3", + "version": "0.4.4", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", diff --git a/src/components/header.component.ts b/src/components/header.component.ts index b4591fe..3807325 100644 --- a/src/components/header.component.ts +++ b/src/components/header.component.ts @@ -5,7 +5,7 @@ import { HEADER_STYLE } from "./header.style"; @Component({ - moduleId: module.id, + moduleId: module.id +'', selector: 'data-table-header', template: HEADER_TEMPLATE, styles: [HEADER_STYLE], diff --git a/src/components/pagination.component.ts b/src/components/pagination.component.ts index 64e1a1e..c36fe74 100644 --- a/src/components/pagination.component.ts +++ b/src/components/pagination.component.ts @@ -5,7 +5,7 @@ import {PAGINATION_STYLE} from "./pagination.style"; @Component({ - moduleId: module.id, + moduleId: module.id +'', selector: 'data-table-pagination', template: PAGINATION_TEMPLATE, styles: [PAGINATION_STYLE] diff --git a/src/components/row.component.ts b/src/components/row.component.ts index 0793462..bce4008 100644 --- a/src/components/row.component.ts +++ b/src/components/row.component.ts @@ -7,7 +7,7 @@ import { ROW_STYLE } from "./row.style"; @Component({ - moduleId: module.id, + moduleId: module.id +'', selector: '[dataTableRow]', template: ROW_TEMPLATE, styles: [ROW_STYLE] diff --git a/src/components/table.component.ts b/src/components/table.component.ts index a41f451..e389b1a 100644 --- a/src/components/table.component.ts +++ b/src/components/table.component.ts @@ -13,7 +13,7 @@ import { TABLE_TEMPLATE } from './table.template'; import { TABLE_STYLE } from "./table.style"; @Component({ - moduleId: module.id, + moduleId: module.id +'', selector: 'data-table', template: TABLE_TEMPLATE, styles: [TABLE_STYLE] From 63eb4c2d3d28b5595d7ffa080b834ff48fbf5165 Mon Sep 17 00:00:00 2001 From: Mit9 Date: Thu, 1 Mar 2018 15:12:32 +0200 Subject: [PATCH 40/41] pagination fix style. removed dots. --- package.json | 2 +- src/components/pagination.component.ts | 39 ++++++++------------------ src/components/pagination.style.ts | 5 +++- src/components/pagination.template.ts | 4 +-- 4 files changed, 18 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index f9c41af..054f7aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.4.4", + "version": "0.4.5", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", diff --git a/src/components/pagination.component.ts b/src/components/pagination.component.ts index c36fe74..2c59fb9 100644 --- a/src/components/pagination.component.ts +++ b/src/components/pagination.component.ts @@ -56,38 +56,23 @@ export class DataTablePagination { this.dataTable.page = Number(value); } - hasPrevious(number, page) { - const difference = this.getDifference(); - if ((page - difference) > 1) { - return true; - } - return false; - } - - hasNext(number, page) { - const difference = this.getDifference(); - if ((number - page) > difference) { - return true; - } - return false; - } - - getDifference() { - const difference = 2; - return difference; - } - createPageRange(number, page): any[] { + const displayedPage = 3; let items: number[] = []; if (number > 1) { - const difference = this.getDifference(); let maxPage = number; let minPage = 1; - if ((number - page) >= difference) { - maxPage = page + difference; - } - if ((page - difference) >= 1) { - minPage = page - difference; + if (page === 1 && maxPage >= displayedPage) { + maxPage = 3; + } else if (page > 1 && maxPage > page + 1) { + minPage = page - 1; + maxPage = page + 1; + } else if (page > 2 && maxPage > page) { + minPage = page - 1; + maxPage = page + 1; + } else if (page > 2 && maxPage === page) { + minPage = page - 2; + maxPage = page; } for (let i = minPage; i <= maxPage; i++) { items.push(i); diff --git a/src/components/pagination.style.ts b/src/components/pagination.style.ts index 1fdb87d..d565fcf 100644 --- a/src/components/pagination.style.ts +++ b/src/components/pagination.style.ts @@ -2,6 +2,8 @@ export const PAGINATION_STYLE = ` .pagination-box { position: relative; margin-top: -10px; + display: block; + height: 30; } .pagination-range { margin-top: 7px; @@ -21,12 +23,13 @@ export const PAGINATION_STYLE = ` margin-right: 25px; display: inline-table; width: 150px; + float: left; } .pagination-pages { display: inline-block; } .pagination-page { - width: 110px; + width: 102px; display: inline-table; } .pagination-box button { diff --git a/src/components/pagination.template.ts b/src/components/pagination.template.ts index 9ae491d..1ba3a32 100644 --- a/src/components/pagination.template.ts +++ b/src/components/pagination.template.ts @@ -17,7 +17,7 @@ export const PAGINATION_TEMPLATE = ` (keyup.enter)="limit = limitInput.value" (keyup.esc)="limitInput.value = limit"/> -
+
@@ -31,14 +31,12 @@ export const PAGINATION_TEMPLATE = `
-
- From 6fb8d36edccd2f53876b888773e744653748fd17 Mon Sep 17 00:00:00 2001 From: Mit9 Date: Fri, 2 Mar 2018 05:35:56 +0200 Subject: [PATCH 41/41] pagination fix style --- package.json | 2 +- src/components/pagination.style.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 054f7aa..c3e875c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-4-data-table", - "version": "0.4.5", + "version": "0.4.6", "description": "An Angular 4 data table, with pagination, sorting, expandable rows etc.", "keywords": [ "angular", diff --git a/src/components/pagination.style.ts b/src/components/pagination.style.ts index d565fcf..34355eb 100644 --- a/src/components/pagination.style.ts +++ b/src/components/pagination.style.ts @@ -3,7 +3,7 @@ export const PAGINATION_STYLE = ` position: relative; margin-top: -10px; display: block; - height: 30; + height: 30px; } .pagination-range { margin-top: 7px;