@den4ik92/ng2-smart-table 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/den4ik92-ng2-smart-table.mjs +5 -0
- package/esm2020/lib/components/cell/cell-edit-mode/custom-edit.component.mjs +50 -0
- package/esm2020/lib/components/cell/cell-edit-mode/default-edit.component.mjs +84 -0
- package/esm2020/lib/components/cell/cell-edit-mode/edit-cell-default.mjs +35 -0
- package/esm2020/lib/components/cell/cell-edit-mode/edit-cell.component.mjs +75 -0
- package/esm2020/lib/components/cell/cell-editors/checkbox-editor.component.mjs +37 -0
- package/esm2020/lib/components/cell/cell-editors/completer-editor.component.mjs +38 -0
- package/esm2020/lib/components/cell/cell-editors/default-editor.mjs +29 -0
- package/esm2020/lib/components/cell/cell-editors/input-editor.component.mjs +33 -0
- package/esm2020/lib/components/cell/cell-editors/select-editor.component.mjs +55 -0
- package/esm2020/lib/components/cell/cell-editors/textarea-editor.component.mjs +35 -0
- package/esm2020/lib/components/cell/cell-view-mode/custom-view.component.mjs +63 -0
- package/esm2020/lib/components/cell/cell-view-mode/view-cell.component.mjs +59 -0
- package/esm2020/lib/components/cell/cell-view-mode/view-cell.mjs +2 -0
- package/esm2020/lib/components/cell/cell.component.mjs +82 -0
- package/esm2020/lib/components/cell/cell.module.mjs +80 -0
- package/esm2020/lib/components/filter/custom-filter.component.mjs +53 -0
- package/esm2020/lib/components/filter/default-filter.component.mjs +100 -0
- package/esm2020/lib/components/filter/filter-default.mjs +35 -0
- package/esm2020/lib/components/filter/filter-types/checkbox-filter.component.mjs +65 -0
- package/esm2020/lib/components/filter/filter-types/completer-filter.component.mjs +52 -0
- package/esm2020/lib/components/filter/filter-types/default-filter.mjs +34 -0
- package/esm2020/lib/components/filter/filter-types/input-filter.component.mjs +51 -0
- package/esm2020/lib/components/filter/filter-types/select-filter.component.mjs +71 -0
- package/esm2020/lib/components/filter/filter.component.mjs +91 -0
- package/esm2020/lib/components/filter/filter.module.mjs +67 -0
- package/esm2020/lib/components/pager/pager.component.mjs +284 -0
- package/esm2020/lib/components/pager/pager.module.mjs +29 -0
- package/esm2020/lib/components/tbody/cells/create-cancel.component.mjs +52 -0
- package/esm2020/lib/components/tbody/cells/custom.component.mjs +56 -0
- package/esm2020/lib/components/tbody/cells/edit-delete.component.mjs +103 -0
- package/esm2020/lib/components/tbody/tbody.component.mjs +206 -0
- package/esm2020/lib/components/tbody/tbody.module.mjs +48 -0
- package/esm2020/lib/components/thead/cells/actions-title.component.mjs +36 -0
- package/esm2020/lib/components/thead/cells/actions.component.mjs +44 -0
- package/esm2020/lib/components/thead/cells/add-button.component.mjs +63 -0
- package/esm2020/lib/components/thead/cells/checkbox-select-all.component.mjs +28 -0
- package/esm2020/lib/components/thead/cells/column-title.component.mjs +37 -0
- package/esm2020/lib/components/thead/cells/title/title.component.mjs +100 -0
- package/esm2020/lib/components/thead/rows/thead-filters-row.component.mjs +105 -0
- package/esm2020/lib/components/thead/rows/thead-form-row.component.mjs +108 -0
- package/esm2020/lib/components/thead/rows/thead-titles-row.component.mjs +103 -0
- package/esm2020/lib/components/thead/thead.component.mjs +76 -0
- package/esm2020/lib/components/thead/thead.module.mjs +76 -0
- package/esm2020/lib/lib/data-set/cell.mjs +41 -0
- package/esm2020/lib/lib/data-set/column.mjs +75 -0
- package/esm2020/lib/lib/data-set/data-set.mjs +98 -0
- package/esm2020/lib/lib/data-set/row.mjs +46 -0
- package/esm2020/lib/lib/data-source/data-source.mjs +101 -0
- package/esm2020/lib/lib/data-source/local/local.data-source.mjs +228 -0
- package/esm2020/lib/lib/data-source/local/local.filter.mjs +13 -0
- package/esm2020/lib/lib/data-source/local/local.pager.mjs +6 -0
- package/esm2020/lib/lib/data-source/local/local.sorter.mjs +19 -0
- package/esm2020/lib/lib/data-source/server/server-source.conf.mjs +20 -0
- package/esm2020/lib/lib/data-source/server/server.data-source.mjs +93 -0
- package/esm2020/lib/lib/grid.mjs +220 -0
- package/esm2020/lib/lib/helpers.mjs +84 -0
- package/esm2020/lib/lib/interfaces/smart-table.models.mjs +2 -0
- package/esm2020/lib/ng2-smart-table.component.mjs +203 -0
- package/esm2020/lib/ng2-smart-table.module.mjs +52 -0
- package/esm2020/public-api.mjs +8 -0
- package/fesm2015/den4ik92-ng2-smart-table.mjs +4329 -0
- package/fesm2015/den4ik92-ng2-smart-table.mjs.map +1 -0
- package/fesm2020/den4ik92-ng2-smart-table.mjs +3949 -0
- package/fesm2020/den4ik92-ng2-smart-table.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/cell/cell-edit-mode/custom-edit.component.d.ts +13 -0
- package/lib/components/cell/cell-edit-mode/default-edit.component.d.ts +8 -0
- package/lib/components/cell/cell-edit-mode/edit-cell-default.d.ts +13 -0
- package/lib/components/cell/cell-edit-mode/edit-cell.component.d.ts +12 -0
- package/lib/components/cell/cell-editors/checkbox-editor.component.d.ts +8 -0
- package/lib/components/cell/cell-editors/completer-editor.component.d.ts +13 -0
- package/lib/components/cell/cell-editors/default-editor.d.ts +19 -0
- package/lib/components/cell/cell-editors/input-editor.component.d.ts +7 -0
- package/lib/components/cell/cell-editors/select-editor.component.d.ts +7 -0
- package/lib/components/cell/cell-editors/textarea-editor.component.d.ts +7 -0
- package/lib/components/cell/cell-view-mode/custom-view.component.d.ts +19 -0
- package/lib/components/cell/cell-view-mode/view-cell.component.d.ts +7 -0
- package/lib/components/cell/cell-view-mode/view-cell.d.ts +4 -0
- package/lib/components/cell/cell.component.d.ts +20 -0
- package/lib/components/cell/cell.module.d.ts +21 -0
- package/lib/components/filter/custom-filter.component.d.ts +14 -0
- package/lib/components/filter/default-filter.component.d.ts +7 -0
- package/lib/components/filter/filter-default.d.ts +14 -0
- package/lib/components/filter/filter-types/checkbox-filter.component.d.ts +13 -0
- package/lib/components/filter/filter-types/completer-filter.component.d.ts +12 -0
- package/lib/components/filter/filter-types/default-filter.d.ts +24 -0
- package/lib/components/filter/filter-types/input-filter.component.d.ts +12 -0
- package/lib/components/filter/filter-types/select-filter.component.d.ts +11 -0
- package/lib/components/filter/filter.component.d.ts +11 -0
- package/lib/components/filter/filter.module.d.ts +17 -0
- package/lib/components/pager/pager.component.d.ts +35 -0
- package/lib/components/pager/pager.module.d.ts +9 -0
- package/lib/components/tbody/cells/create-cancel.component.d.ts +16 -0
- package/lib/components/tbody/cells/custom.component.d.ts +13 -0
- package/lib/components/tbody/cells/edit-delete.component.d.ts +24 -0
- package/lib/components/tbody/tbody.component.d.ts +37 -0
- package/lib/components/tbody/tbody.module.d.ts +13 -0
- package/lib/components/thead/cells/actions-title.component.d.ts +13 -0
- package/lib/components/thead/cells/actions.component.d.ts +12 -0
- package/lib/components/thead/cells/add-button.component.d.ts +18 -0
- package/lib/components/thead/cells/checkbox-select-all.component.d.ts +9 -0
- package/lib/components/thead/cells/column-title.component.d.ts +11 -0
- package/lib/components/thead/cells/title/title.component.d.ts +17 -0
- package/lib/components/thead/rows/thead-filters-row.component.d.ts +19 -0
- package/lib/components/thead/rows/thead-form-row.component.d.ts +20 -0
- package/lib/components/thead/rows/thead-titles-row.component.d.ts +18 -0
- package/lib/components/thead/thead.component.d.ts +18 -0
- package/lib/components/thead/thead.module.d.ts +20 -0
- package/lib/lib/data-set/cell.d.ts +20 -0
- package/lib/lib/data-set/column.d.ts +44 -0
- package/lib/lib/data-set/data-set.d.ts +37 -0
- package/lib/lib/data-set/row.d.ts +20 -0
- package/lib/lib/data-source/data-source.d.ts +35 -0
- package/lib/lib/data-source/local/local.data-source.d.ts +55 -0
- package/lib/lib/data-source/local/local.filter.d.ts +4 -0
- package/lib/lib/data-source/local/local.pager.d.ts +3 -0
- package/lib/lib/data-source/local/local.sorter.d.ts +4 -0
- package/lib/lib/data-source/server/server-source.conf.d.ts +27 -0
- package/lib/lib/data-source/server/server.data-source.d.ts +30 -0
- package/lib/lib/grid.d.ts +49 -0
- package/lib/lib/helpers.d.ts +18 -0
- package/lib/lib/interfaces/smart-table.models.d.ts +148 -0
- package/lib/ng2-smart-table.component.d.ts +43 -0
- package/lib/ng2-smart-table.module.d.ts +14 -0
- package/package.json +35 -0
- package/public-api.d.ts +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"den4ik92-ng2-smart-table.mjs","sources":["../../../projects/ng2-smart-table/src/lib/lib/helpers.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/cell.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/row.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/column.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/data-set.ts","../../../projects/ng2-smart-table/src/lib/lib/grid.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell-default.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/custom-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/default-editor.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/checkbox-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/completer-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/input-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/select-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/textarea-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.html","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/custom-view.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/view-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell.module.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/data-source.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-default.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/default-filter.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/checkbox-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/completer-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/input-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/select-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/default-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/custom-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter.module.ts","../../../projects/ng2-smart-table/src/lib/components/pager/pager.component.ts","../../../projects/ng2-smart-table/src/lib/components/pager/pager.module.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/create-cancel.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/edit-delete.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/custom.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.html","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.module.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/add-button.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-filters-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-form-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/checkbox-select-all.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/title/title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/column-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-titles-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.html","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.module.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.sorter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.filter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.pager.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.data-source.ts","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.html","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.ts","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.module.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/server/server-source.conf.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/server/server.data-source.ts","../../../projects/ng2-smart-table/src/den4ik92-ng2-smart-table.ts"],"sourcesContent":["/**\n * Extending object that entered in first argument.\n *\n * Returns extended object or false if have no target object or incorrect type.\n *\n * If you wish to clone source object (without modify it), just use empty new\n * object as first argument, like this:\n * deepExtend({}, yourObj_1, [yourObj_N]);\n */\nexport const deepExtend = function(...objects: Array<any>): any {\n if (arguments.length < 1 || typeof arguments[0] !== 'object') {\n return false;\n }\n\n if (arguments.length < 2) {\n return arguments[0];\n }\n\n const target = arguments[0];\n\n // convert arguments to array and cut off target object\n const args = Array.prototype.slice.call(arguments, 1);\n\n let val, src;\n\n args.forEach((obj: any) => {\n // skip argument if it is array or isn't object\n if (typeof obj !== 'object' || Array.isArray(obj)) {\n return;\n }\n\n Object.keys(obj).forEach(function (key) {\n src = target[key]; // source value\n val = obj[key]; // new value\n\n // recursion prevention\n if (val === target) {\n return;\n\n /**\n * if new value isn't object then just overwrite by new value\n * instead of extending.\n */\n } else if (typeof val !== 'object' || val === null) {\n target[key] = val;\n return;\n\n // just clone arrays (and recursive clone objects inside)\n } else if (Array.isArray(val)) {\n target[key] = [...val];\n return;\n\n // overwrite by new value if source isn't object or array\n } else if (typeof src !== 'object' || src === null || Array.isArray(src)) {\n target[key] = deepExtend({}, val);\n return;\n\n // source value and new value is objects both, extending...\n } else {\n target[key] = deepExtend(src, val);\n return;\n }\n });\n });\n\n return target;\n};\n\nexport class Deferred {\n\n promise: Promise<any>;\n\n resolve: any;\n reject: any;\n\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\n\n// getDeepFromObject({result: {data: 1}}, 'result.data', 2); // returns 1\nexport function getDeepFromObject(object = {}, name: string, defaultValue?: any) {\n const keys = name.split('.');\n // clone the object\n let level = deepExtend({}, object);\n keys.forEach((k) => {\n if (level && typeof level[k] !== 'undefined') {\n level = level[k];\n }\n });\n\n return typeof level === 'undefined' ? defaultValue : level;\n}\n\nexport function getPageForRowIndex(index: number, perPage: number): number {\n // we need to add 1 to convert 0-based index to 1-based page number.\n return Math.floor(index / perPage) + 1;\n}\n","import { Column } from './column';\nimport { DataSet } from './data-set';\nimport { Row } from './row';\n\nexport function prepareValue (value: any) { return value }\n\nexport class Cell {\n\n newValue: any = '';\n protected static PREPARE = prepareValue;\n\n constructor(protected value: any, protected row: Row, protected column: any, protected dataSet: DataSet) {\n this.newValue = value;\n }\n\n getColumn(): Column {\n return this.column;\n }\n\n getRow(): Row {\n return this.row;\n }\n\n getValue(): any {\n const valid = this.column.getValuePrepareFunction() instanceof Function;\n const prepare = valid ? this.column.getValuePrepareFunction() : Cell.PREPARE;\n return prepare.call(null, this.value, this.row.getData(), this);\n }\n\n setValue(value: any): any {\n this.newValue = value;\n }\n\n getId(): string {\n return this.getColumn().id;\n }\n\n getTitle(): string {\n return this.getColumn().title;\n }\n\n isEditable(): boolean {\n if (this.getRow().index === -1) {\n return this.getColumn().isAddable;\n }\n else {\n return this.getColumn().isEditable;\n }\n }\n\n}\n","import { Cell } from './cell';\nimport { Column } from './column';\nimport { DataSet } from './data-set';\n\nexport class Row {\n\n isSelected: boolean = false;\n isInEditing: boolean = false;\n cells: Array<Cell> = [];\n\n\n constructor(public index: number, protected data: any, protected _dataSet: DataSet) {\n this.process();\n }\n\n getCell(column: Column): Cell {\n return this.cells.find(el => el.getColumn() === column);\n }\n\n getCells() {\n return this.cells;\n }\n\n getData(): any {\n return this.data;\n }\n\n getIsSelected(): boolean {\n return this.isSelected;\n }\n\n getNewData(): any {\n const values = Object.assign({}, this.data);\n this.getCells().forEach((cell) => values[cell.getColumn().id] = cell.newValue);\n return values;\n }\n\n setData(data: any): any {\n this.data = data;\n this.process();\n }\n\n process() {\n this.cells = [];\n this._dataSet.getColumns().forEach((column: Column) => {\n const cell = this.createCell(column);\n this.cells.push(cell);\n });\n }\n\n createCell(column: Column): Cell {\n const defValue = (column as any).settings.defaultValue ? (column as any).settings.defaultValue : '';\n const value = typeof this.data[column.id] === 'undefined' ? defValue : this.data[column.id];\n return new Cell(value, this, column, this._dataSet);\n }\n}\n","import { DataSet } from './data-set';\n\nexport class Column {\n\n title: string = '';\n type: string = '';\n class: string = '';\n width: string = '';\n hide: boolean = false;\n isSortable: boolean = false;\n isEditable: boolean = true;\n isAddable: boolean = true;\n isFilterable: boolean = false;\n sortDirection: string = '';\n defaultSortDirection: string = '';\n editor: { type: string, config: any, component: any } = { type: '', config: {}, component: null };\n filter: { type: string, config: any, component: any } = { type: '', config: {}, component: null };\n renderComponent: any = null;\n compareFunction: Function;\n valuePrepareFunction: Function;\n filterFunction: Function;\n onComponentInitFunction: Function;\n\n constructor(public id: string, protected settings: any, protected dataSet: DataSet) {\n this.process();\n }\n\n getOnComponentInitFunction(): Function {\n return this.onComponentInitFunction;\n }\n\n getCompareFunction(): Function {\n return this.compareFunction;\n }\n\n getValuePrepareFunction(): Function {\n return this.valuePrepareFunction;\n }\n\n getFilterFunction(): Function {\n return this.filterFunction;\n }\n\n getConfig(): any {\n return this.editor && this.editor.config;\n }\n\n getFilterType(): any {\n return this.filter && this.filter.type;\n }\n\n getFilterConfig(): any {\n return this.filter && this.filter.config;\n }\n\n protected process() {\n this.title = this.settings['title'];\n this.class = this.settings['class'];\n this.width = this.settings['width'];\n this.hide = !!this.settings['hide'];\n this.type = this.prepareType();\n this.editor = this.settings['editor'];\n this.filter = this.settings['filter'];\n this.renderComponent = this.settings['renderComponent'];\n\n this.isFilterable = typeof this.settings['filter'] === 'undefined' ? true : !!this.settings['filter'];\n this.defaultSortDirection = ['asc', 'desc']\n .indexOf(this.settings['sortDirection']) !== -1 ? this.settings['sortDirection'] : '';\n this.isSortable = typeof this.settings['sort'] === 'undefined' ? true : !!this.settings['sort'];\n this.isEditable = typeof this.settings['editable'] === 'undefined' ? true : !!this.settings['editable'];\n this.isAddable=typeof this.settings['addable'] === 'undefined' ? true : !!this.settings['addable'];\n this.sortDirection = this.prepareSortDirection();\n\n this.compareFunction = this.settings['compareFunction'];\n this.valuePrepareFunction = this.settings['valuePrepareFunction'];\n this.filterFunction = this.settings['filterFunction'];\n this.onComponentInitFunction = this.settings['onComponentInitFunction'];\n }\n\n prepareType(): string {\n return this.settings['type'] || this.determineType();\n }\n\n prepareSortDirection(): string {\n return this.settings['sort'] === 'desc' ? 'desc' : 'asc';\n }\n\n determineType(): string {\n // TODO: determine type by data\n return 'text';\n }\n}\n","import { Row } from './row';\nimport { Column } from './column';\n\nexport class DataSet {\n newRow: Row;\n\n protected data: Array<any> = [];\n protected columns: Array<Column> = [];\n protected rows: Array<Row> = [];\n protected selectedRows = new Set<Row>();\n protected willSelect: string;\n\n constructor(data: Array<any> = [], protected columnSettings: Object) {\n this.createColumns(columnSettings);\n this.setData(data);\n\n this.createNewRow();\n }\n\n setData(data: Array<any>) {\n this.data = data;\n this.createRows();\n }\n\n getColumns(): Array<Column> {\n return this.columns;\n }\n\n getRows(): Array<Row> {\n return this.rows;\n }\n\n getFirstRow(): Row {\n return this.rows[0];\n }\n\n getLastRow(): Row {\n return this.rows[this.rows.length - 1];\n }\n\n findRowByData(data: any): Row {\n return this.rows.find((row: Row) => row.getData() === data);\n }\n\n setSelectAll(state: boolean): void {\n this.rows.forEach((row) => {\n row.isSelected = state;\n this.storeSelectedRow(row);\n });\n }\n\n deselectAll() {\n this.rows.forEach((row) => {\n row.isSelected = false;\n });\n // we need to clear selectedRow field because no one row selected\n this.selectedRows.clear();\n }\n\n selectRow(row: Row, state: boolean): void {\n row.isSelected = state;\n this.storeSelectedRow(row);\n }\n\n multipleSelectRow(row: Row): Row {\n row.isSelected = !row.isSelected;\n this.storeSelectedRow(row);\n\n return row;\n }\n\n getSelectedRowsData(): Array<any> {\n return [...this.selectedRows]\n }\n\n createNewRow() {\n this.newRow = new Row(-1, {}, this);\n this.newRow.isInEditing = true;\n }\n\n /**\n * Create columns by mapping from the settings\n * @param settings\n * @private\n */\n createColumns(settings: any) {\n for (const id in settings) {\n if (settings.hasOwnProperty(id)) {\n this.columns.push(new Column(id, settings[id], this));\n }\n }\n }\n\n /**\n * Create rows based on current data prepared in data source\n * @private\n */\n createRows() {\n this.rows = [];\n this.data.forEach((el, index) => {\n const row = new Row(index, el, this);\n row.isSelected = this.selectedRows.has(row.getData());\n this.rows.push(row);\n });\n }\n\n public get isAllSelected(): boolean {\n return this.rows.every((row) => row.isSelected)\n }\n\n private storeSelectedRow(row: Row): void {\n if(row.isSelected) {\n this.selectedRows.add(row.getData());\n } else {\n this.selectedRows.delete(row.getData());\n }\n }\n}\n","import { Subject, Subscription } from 'rxjs';\nimport { Observable } from 'rxjs';\nimport { EventEmitter } from '@angular/core';\n\nimport { Deferred, getDeepFromObject, getPageForRowIndex } from './helpers';\nimport { Column } from './data-set/column';\nimport { Row } from './data-set/row';\nimport { DataSet } from './data-set/data-set';\nimport { DataSource } from './data-source/data-source';\nimport { SmartTableSettings } from './interfaces/smart-table.models';\n\nexport class Grid {\n\n createFormShown: boolean = false;\n\n source: DataSource;\n settings: SmartTableSettings;\n dataSet: DataSet;\n\n onSelectRowSource = new Subject<any>();\n onDeselectRowSource = new Subject<any>();\n\n private sourceOnChangedSubscription: Subscription;\n private sourceOnUpdatedSubscription: Subscription;\n\n constructor(source: DataSource, settings: SmartTableSettings) {\n this.setSettings(settings);\n this.setSource(source);\n }\n\n detach(): void {\n if (this.sourceOnChangedSubscription) {\n this.sourceOnChangedSubscription.unsubscribe();\n }\n if (this.sourceOnUpdatedSubscription) {\n this.sourceOnUpdatedSubscription.unsubscribe();\n }\n }\n\n showActionColumn(position: string): boolean {\n return this.isCurrentActionsPosition(position) && this.isActionsVisible();\n }\n\n isCurrentActionsPosition(position: string): boolean {\n return position == this.getSetting('actions.position');\n }\n\n isActionsVisible(): boolean {\n return this.getSetting('actions.add') || this.getSetting('actions.edit') || this.getSetting('actions.delete') || this.getSetting('actions.custom').length;\n }\n\n isMultiSelectVisible(): boolean {\n return this.getSetting('selectMode') === 'multi';\n }\n\n getNewRow(): Row {\n return this.dataSet.newRow;\n }\n\n setSettings(settings: SmartTableSettings) {\n this.settings = settings;\n this.dataSet = new DataSet([], this.getSetting('columns'));\n\n if (this.source) {\n this.source.refresh();\n }\n }\n\n getDataSet(): DataSet {\n return this.dataSet;\n }\n\n setSource(source: DataSource) {\n this.source = this.prepareSource(source);\n this.detach();\n\n this.sourceOnChangedSubscription = this.source.onChanged().subscribe((changes: any) => this.processDataChange(changes));\n\n this.sourceOnUpdatedSubscription = this.source.onUpdated().subscribe((data: any) => {\n const changedRow = this.dataSet.findRowByData(data);\n changedRow.setData(data);\n });\n }\n\n getSetting(name: string, defaultValue?: any): any {\n return getDeepFromObject(this.settings, name, defaultValue);\n }\n\n getColumns(): Array<Column> {\n return this.dataSet.getColumns();\n }\n\n getRows(): Array<Row> {\n return this.dataSet.getRows();\n }\n\n selectRow(row: Row, state: boolean) {\n this.dataSet.selectRow(row, state);\n }\n\n multipleSelectRow(row: Row) {\n this.dataSet.multipleSelectRow(row);\n }\n\n onSelectRow(): Observable<any> {\n return this.onSelectRowSource.asObservable();\n }\n\n onDeselectRow(): Observable<any> {\n return this.onDeselectRowSource.asObservable();\n }\n\n edit(row: Row) {\n row.isInEditing = true;\n }\n\n create(row: Row, confirmEmitter: EventEmitter<any>) {\n\n const deferred = new Deferred();\n deferred.promise.then((newData) => {\n newData = newData ? newData : row.getNewData();\n if (deferred.resolve.skipAdd) {\n this.createFormShown = false;\n } else {\n this.source.prepend(newData).then(() => {\n this.createFormShown = false;\n this.dataSet.createNewRow();\n });\n }\n }).catch((err) => {\n // doing nothing\n });\n\n if (this.getSetting('add.confirmCreate')) {\n confirmEmitter.emit({\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve();\n }\n }\n\n save(row: Row, confirmEmitter: EventEmitter<any>) {\n\n const deferred = new Deferred();\n deferred.promise.then((newData) => {\n newData = newData ? newData : row.getNewData();\n if (deferred.resolve.skipEdit) {\n row.isInEditing = false;\n } else {\n this.source.update(row.getData(), newData).then(() => {\n row.isInEditing = false;\n });\n }\n }).catch((err) => {\n // doing nothing\n });\n\n if (this.getSetting('edit.confirmSave')) {\n confirmEmitter.emit({\n data: row.getData(),\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve();\n }\n }\n\n delete(row: Row, confirmEmitter: EventEmitter<any>) {\n const deferred = new Deferred();\n deferred.promise.then(() => {\n this.source.remove(row.getData());\n }).catch((err) => {\n // doing nothing\n });\n\n if (this.getSetting('delete.confirmDelete')) {\n confirmEmitter.emit({\n data: row.getData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve();\n }\n if(row.isSelected) {\n this.dataSet.selectRow(row, false);\n }\n }\n\n processDataChange(changes: any) {\n if (this.shouldProcessChange(changes)) {\n if(changes['action'] === 'load') {\n this.dataSet.deselectAll()\n }\n this.dataSet.setData(changes['elements']);\n }\n }\n\n shouldProcessChange(changes: any): boolean {\n if (['filter', 'sort', 'page', 'remove', 'refresh', 'load', 'paging'].indexOf(changes['action']) !== -1) {\n return true;\n } else if (['prepend', 'append'].indexOf(changes['action']) !== -1 && !this.getSetting('pager.display')) {\n return true;\n }\n return false;\n }\n\n prepareSource(source: any): DataSource {\n const initialSource: any = this.getInitialSort();\n if (initialSource && initialSource['field'] && initialSource['direction']) {\n source.setSort([initialSource], false);\n }\n if (this.getSetting('pager.display') === true) {\n source.setPaging(this.getPageToSelect(source), this.getSetting('pager.perPage'), false);\n }\n\n source.refresh();\n return source;\n }\n\n getInitialSort() {\n const sortConf: any = {};\n this.getColumns().forEach((column: Column) => {\n if (column.isSortable && column.defaultSortDirection) {\n sortConf['field'] = column.id;\n sortConf['direction'] = column.defaultSortDirection;\n sortConf['compare'] = column.getCompareFunction();\n }\n });\n return sortConf;\n }\n\n getSelectedRowsData(): Array<any> {\n return this.dataSet.getRows()\n }\n\n selectAllRows(status: boolean) {\n this.dataSet.setSelectAll(status);\n }\n\n getFirstRow(): Row {\n return this.dataSet.getFirstRow();\n }\n\n getLastRow(): Row {\n return this.dataSet.getLastRow();\n }\n\n private getSelectionInfo(): { perPage: number, page: number, selectedRowIndex: number, switchPageToSelectedRowPage: boolean } {\n const switchPageToSelectedRowPage: boolean = this.getSetting('switchPageToSelectedRowPage');\n const selectedRowIndex: number = Number(this.getSetting('selectedRowIndex', 0)) || 0;\n const { perPage, page }: { perPage: number, page: number } = this.getSetting('pager');\n return { perPage, page, selectedRowIndex, switchPageToSelectedRowPage };\n }\n\n private getPageToSelect(source: DataSource): number {\n const { switchPageToSelectedRowPage, selectedRowIndex, perPage, page } = this.getSelectionInfo();\n let pageToSelect: number = Math.max(1, page);\n if (switchPageToSelectedRowPage && selectedRowIndex >= 0) {\n pageToSelect = getPageForRowIndex(selectedRowIndex, perPage);\n }\n const maxPageAmount: number = Math.ceil(source.count() / perPage);\n return maxPageAmount ? Math.min(pageToSelect, maxPageAmount) : pageToSelect;\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n template: ''\n})\nexport class EditCellDefault {\n\n @Input() cell: Cell;\n @Input() inputClass: string = '';\n\n @Output() edited = new EventEmitter<any>();\n\n onEdited(event: any): boolean {\n this.edited.next(event);\n return false;\n }\n\n onStopEditing(): boolean {\n this.cell.getRow().isInEditing = false;\n return false;\n }\n\n onClick(event: any) {\n event.stopPropagation();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n SimpleChanges,\n OnChanges,\n OnDestroy,\n} from '@angular/core';\n\nimport { EditCellDefault } from './edit-cell-default';\n\n@Component({\n selector: 'table-cell-custom-editor',\n template: `\n <ng-template #dynamicTarget></ng-template>\n `,\n})\nexport class CustomEditComponent extends EditCellDefault implements OnChanges, OnDestroy {\n\n customComponent: any;\n @ViewChild('dynamicTarget', { read: ViewContainerRef, static: true }) dynamicTarget: any;\n\n constructor(private resolver: ComponentFactoryResolver) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.cell && !this.customComponent) {\n const componentFactory = this.resolver.resolveComponentFactory(this.cell.getColumn().editor.component);\n this.customComponent = this.dynamicTarget.createComponent(componentFactory);\n\n // set @Inputs and @Outputs of custom component\n this.customComponent.instance.cell = this.cell;\n this.customComponent.instance.inputClass = this.inputClass;\n this.customComponent.instance.onStopEditing.subscribe(() => this.onStopEditing());\n this.customComponent.instance.onEdited.subscribe((event: any) => this.onEdited(event));\n this.customComponent.instance.onClick.subscribe((event: any) => this.onClick(event));\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n template: '',\n})\nexport class DefaultEditor implements Editor {\n @Input() cell: Cell;\n @Input() inputClass: string;\n\n @Output() onStopEditing = new EventEmitter<any>();\n @Output() onEdited = new EventEmitter<any>();\n @Output() onClick = new EventEmitter<any>();\n}\n\nexport interface Editor {\n cell: Cell;\n inputClass: string;\n onStopEditing: EventEmitter<any>;\n onEdited: EventEmitter<any>;\n onClick: EventEmitter<any>;\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'checkbox-editor',\n styleUrls: ['./editor.component.scss'],\n template: `\n <input [ngClass]=\"inputClass\"\n type=\"checkbox\"\n class=\"form-control\"\n [name]=\"cell.getId()\"\n [disabled]=\"!cell.isEditable()\"\n [checked]=\"cell.getValue() == (cell.getColumn().getConfig()?.true || true)\"\n (click)=\"onClick.emit($event)\"\n (change)=\"onChange($event)\">\n `,\n})\nexport class CheckboxEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n\n onChange(event: any) {\n const trueVal = (this.cell.getColumn().getConfig() && this.cell.getColumn().getConfig().true) || true;\n const falseVal = (this.cell.getColumn().getConfig() && this.cell.getColumn().getConfig().false) || false;\n this.cell.newValue = event.target.checked ? trueVal : falseVal;\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'completer-editor',\n template: `\n <!-- <ng2-completer [(ngModel)]=\"completerStr\"\n [dataService]=\"cell.getColumn().getConfig().completer.dataService\"\n [minSearchLength]=\"cell.getColumn().getConfig().completer.minSearchLength || 0\"\n [pause]=\"cell.getColumn().getConfig().completer.pause || 0\"\n [placeholder]=\"cell.getColumn().getConfig().completer.placeholder || 'Start typing...'\"\n (selected)=\"onEditedCompleter($event)\">\n </ng2-completer> -->\n `,\n})\nexport class CompleterEditorComponent extends DefaultEditor implements OnInit {\n\n completerStr: string = '';\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n // if (this.cell.getColumn().editor && this.cell.getColumn().editor.type === 'completer') {\n // const config = this.cell.getColumn().getConfig().completer;\n // config.dataService = this.completerService.local(config.data, config.searchFields, config.titleField);\n // config.dataService.descriptionField(config.descriptionField);\n // }\n }\n\n onEditedCompleter(event: { title: '' }): boolean {\n this.cell.newValue = event.title;\n return false;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'input-editor',\n styleUrls: ['./editor.component.scss'],\n template: `\n <input [ngClass]=\"inputClass\"\n class=\"form-control\"\n [(ngModel)]=\"cell.newValue\"\n [name]=\"cell.getId()\"\n [placeholder]=\"cell.getTitle()\"\n [disabled]=\"!cell.isEditable()\"\n (click)=\"onClick.emit($event)\"\n (keydown.enter)=\"onEdited.emit($event)\"\n (keydown.esc)=\"onStopEditing.emit()\">\n `,\n})\nexport class InputEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'select-editor',\n template: `\n <select [ngClass]=\"inputClass\"\n class=\"form-control\"\n [(ngModel)]=\"cell.newValue\"\n [name]=\"cell.getId()\"\n [disabled]=\"!cell.isEditable()\"\n (click)=\"onClick.emit($event)\"\n (keydown.enter)=\"onEdited.emit($event)\"\n (keydown.esc)=\"onStopEditing.emit()\">\n\n <option *ngFor=\"let option of cell.getColumn().getConfig()?.list\" [value]=\"option.value\"\n [selected]=\"option.value === cell.getValue()\">{{ option.title }}\n </option>\n </select>\n `,\n})\nexport class SelectEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'textarea-editor',\n styleUrls: ['./editor.component.scss'],\n template: `\n <textarea [ngClass]=\"inputClass\"\n class=\"form-control\"\n [(ngModel)]=\"cell.newValue\"\n [name]=\"cell.getId()\"\n [disabled]=\"!cell.isEditable()\"\n [placeholder]=\"cell.getTitle()\"\n (click)=\"onClick.emit($event)\"\n (keydown.enter)=\"onEdited.emit($event)\"\n (keydown.esc)=\"onStopEditing.emit()\">\n </textarea>\n `,\n})\nexport class TextareaEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n}\n","<div [ngSwitch]=\"getEditorType()\">\n <select-editor *ngSwitchCase=\"'list'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </select-editor>\n\n <textarea-editor *ngSwitchCase=\"'textarea'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </textarea-editor>\n\n <checkbox-editor *ngSwitchCase=\"'checkbox'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\">\n </checkbox-editor>\n\n <completer-editor *ngSwitchCase=\"'completer'\"\n [cell]=\"cell\">\n </completer-editor>\n\n <input-editor *ngSwitchDefault\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </input-editor>\n</div>","import { Component } from '@angular/core';\n\nimport { EditCellDefault } from './edit-cell-default';\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n selector: 'table-cell-default-editor',\n templateUrl: './default-edit.component.html',\n})\nexport class DefaultEditComponent extends EditCellDefault {\n\n constructor() {\n super();\n }\n\n getEditorType(): string {\n return this.cell.getColumn().editor && this.cell.getColumn().editor.type;\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n selector: 'table-cell-edit-mode',\n template: `\n <div [ngSwitch]=\"getEditorType()\">\n <table-cell-custom-editor *ngSwitchCase=\"'custom'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (edited)=\"onEdited($event)\">\n </table-cell-custom-editor>\n <table-cell-default-editor *ngSwitchDefault\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (edited)=\"onEdited($event)\">\n </table-cell-default-editor>\n </div>\n `,\n})\nexport class EditCellComponent {\n\n @Input() cell: Cell;\n @Input() inputClass: string = '';\n\n @Output() edited = new EventEmitter<any>();\n\n onEdited(event: any): boolean {\n this.edited.next(event);\n return false;\n }\n\n getEditorType(): string {\n return this.cell.getColumn().editor && this.cell.getColumn().editor.type;\n }\n}\n","import {\n Component,\n Input,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n OnInit,\n OnDestroy,\n} from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\nimport { ViewCell } from './view-cell';\n\n@Component({\n selector: 'custom-view-component',\n template: `\n <ng-template #dynamicTarget></ng-template>\n `,\n})\nexport class CustomViewComponent implements OnInit, OnDestroy {\n\n customComponent: any;\n @Input() cell: Cell;\n @ViewChild('dynamicTarget', { read: ViewContainerRef, static: true }) dynamicTarget: any;\n\n constructor(private resolver: ComponentFactoryResolver) {\n }\n\n ngOnInit() {\n if (this.cell && !this.customComponent) {\n this.createCustomComponent();\n this.callOnComponentInit();\n this.patchInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n\n protected createCustomComponent() {\n const componentFactory = this.resolver.resolveComponentFactory(this.cell.getColumn().renderComponent);\n this.customComponent = this.dynamicTarget.createComponent(componentFactory);\n }\n\n protected callOnComponentInit() {\n const onComponentInitFunction = this.cell.getColumn().getOnComponentInitFunction();\n onComponentInitFunction && onComponentInitFunction(this.customComponent.instance);\n }\n\n protected patchInstance() {\n Object.assign(this.customComponent.instance, this.getPatch());\n }\n\n protected getPatch(): ViewCell {\n return {\n value: this.cell.getValue(),\n rowData: this.cell.getRow().getData()\n }\n }\n}\n","import {Component, Input, ChangeDetectionStrategy } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n selector: 'table-cell-view-mode',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [ngSwitch]=\"cell.getColumn().type\">\n <custom-view-component *ngSwitchCase=\"'custom'\" [cell]=\"cell\"></custom-view-component>\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"cell.getValue()\"></div>\n <div *ngSwitchDefault>{{ cell.getValue() }}</div>\n </div>\n `,\n})\nexport class ViewCellComponent {\n\n @Input() cell: Cell;\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Grid } from '../../lib/grid';\nimport { Cell } from '../../lib/data-set/cell';\nimport { Row } from '../../lib/data-set/row';\n\n@Component({\n selector: 'ng2-smart-table-cell',\n template: `\n <table-cell-view-mode *ngIf=\"!isInEditing\" [cell]=\"cell\"></table-cell-view-mode>\n <table-cell-edit-mode *ngIf=\"isInEditing\" [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (edited)=\"onEdited($event)\">\n </table-cell-edit-mode>\n `,\n})\nexport class CellComponent {\n\n @Input() grid: Grid;\n @Input() row: Row;\n @Input() editConfirm: EventEmitter<any>;\n @Input() createConfirm: EventEmitter<any>;\n @Input() isNew: boolean;\n @Input() cell: Cell;\n @Input() inputClass: string = '';\n @Input() mode: string = 'inline';\n @Input() isInEditing: boolean = false;\n\n @Output() edited = new EventEmitter<any>();\n\n onEdited(event: any) {\n if (this.isNew) {\n this.grid.create(this.grid.getNewRow(), this.createConfirm);\n } else {\n this.grid.save(this.row, this.editConfirm);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { CellComponent } from './cell.component';\nimport { CustomEditComponent } from './cell-edit-mode/custom-edit.component';\nimport { DefaultEditComponent } from './cell-edit-mode/default-edit.component';\nimport { EditCellComponent } from './cell-edit-mode/edit-cell.component';\nimport { CheckboxEditorComponent } from './cell-editors/checkbox-editor.component';\nimport { CompleterEditorComponent } from './cell-editors/completer-editor.component';\nimport { InputEditorComponent } from './cell-editors/input-editor.component';\nimport { SelectEditorComponent } from './cell-editors/select-editor.component';\nimport { TextareaEditorComponent } from './cell-editors/textarea-editor.component';\nimport { CustomViewComponent } from './cell-view-mode/custom-view.component';\nimport { ViewCellComponent } from './cell-view-mode/view-cell.component';\nimport { EditCellDefault } from './cell-edit-mode/edit-cell-default';\nimport { DefaultEditor } from './cell-editors/default-editor';\n\nconst CELL_COMPONENTS = [\n CellComponent,\n EditCellDefault,\n DefaultEditor,\n CustomEditComponent,\n DefaultEditComponent,\n EditCellComponent,\n CheckboxEditorComponent,\n CompleterEditorComponent,\n InputEditorComponent,\n SelectEditorComponent,\n TextareaEditorComponent,\n CustomViewComponent,\n ViewCellComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n declarations: [\n ...CELL_COMPONENTS,\n ],\n exports: [\n ...CELL_COMPONENTS,\n ],\n})\nexport class CellModule { }\n","import { Subject } from 'rxjs';\nimport { Observable } from 'rxjs';\n\nexport abstract class DataSource {\n\n protected onChangedSource = new Subject<any>();\n protected onAddedSource = new Subject<any>();\n protected onUpdatedSource = new Subject<any>();\n protected onRemovedSource = new Subject<any>();\n\n abstract getAll(): Promise<any>;\n abstract getElements(): Promise<any>;\n abstract getSort(): any;\n abstract getFilter(): any;\n abstract getPaging(): any;\n abstract count(): number;\n\n refresh() {\n this.emitOnChanged('refresh');\n }\n\n load(data: Array<any>): Promise<any> {\n this.emitOnChanged('load');\n return Promise.resolve();\n }\n\n onChanged(): Observable<any> {\n return this.onChangedSource.asObservable();\n }\n\n onAdded(): Observable<any> {\n return this.onAddedSource.asObservable();\n }\n\n onUpdated(): Observable<any> {\n return this.onUpdatedSource.asObservable();\n }\n\n onRemoved(): Observable<any> {\n return this.onRemovedSource.asObservable();\n }\n\n prepend(element: any): Promise<any> {\n this.emitOnAdded(element);\n this.emitOnChanged('prepend');\n return Promise.resolve();\n }\n\n append(element: any): Promise<any> {\n this.emitOnAdded(element);\n this.emitOnChanged('append');\n return Promise.resolve();\n }\n\n add(element: any): Promise<any> {\n this.emitOnAdded(element);\n this.emitOnChanged('add');\n return Promise.resolve();\n }\n\n remove(element: any): Promise<any> {\n this.emitOnRemoved(element);\n this.emitOnChanged('remove');\n return Promise.resolve();\n }\n\n update(element: any, values: any): Promise<any> {\n this.emitOnUpdated(element);\n this.emitOnChanged('update');\n return Promise.resolve();\n }\n\n empty(): Promise<any> {\n this.emitOnChanged('empty');\n return Promise.resolve();\n }\n\n setSort(conf: Array<any>, doEmit?: boolean) {\n if (doEmit) {\n this.emitOnChanged('sort');\n }\n }\n\n setFilter(conf: Array<any>, andOperator?: boolean, doEmit?: boolean) {\n if (doEmit) {\n this.emitOnChanged('filter');\n }\n }\n\n addFilter(fieldConf: {}, andOperator?: boolean, doEmit?: boolean) {\n if (doEmit) {\n this.emitOnChanged('filter');\n }\n }\n\n setPaging(page: number, perPage: number, doEmit?: boolean) {\n if (doEmit) {\n this.emitOnChanged('paging');\n }\n }\n\n setPage(page: number, doEmit?: boolean) {\n if (doEmit) {\n this.emitOnChanged('page');\n }\n }\n\n protected emitOnRemoved(element: any) {\n this.onRemovedSource.next(element);\n }\n\n protected emitOnUpdated(element: any) {\n this.onUpdatedSource.next(element);\n }\n\n protected emitOnAdded(element: any) {\n this.onAddedSource.next(element);\n }\n\n protected emitOnChanged(action: string) {\n this.getElements().then((elements) => this.onChangedSource.next({\n action: action,\n elements: elements,\n paging: this.getPaging(),\n filter: this.getFilter(),\n sort: this.getSort(),\n }));\n }\n}\n","import { Output, EventEmitter, Input, Component } from '@angular/core';\n\nimport { Column } from '../../lib/data-set/column';\nimport { DataSource } from '../../lib/data-source/data-source';\n\n@Component({\n template: '',\n})\nexport class FilterDefault {\n\n @Input() column: Column;\n @Input() source: DataSource;\n @Input() inputClass: string = '';\n\n @Output() filter = new EventEmitter<any>();\n\n query: string = '';\n\n onFilter(query: string) {\n this.source.addFilter({\n field: this.column.id,\n search: query,\n filter: this.column.getFilterFunction(),\n });\n }\n}\n","import { Input, Output, EventEmitter, OnDestroy, Component } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Column } from '../../../lib/data-set/column';\n\n@Component({\n template: '',\n})\nexport class DefaultFilter implements Filter, OnDestroy {\n\n delay: number = 300;\n changesSubscription: Subscription;\n @Input() query: string;\n @Input() inputClass: string;\n @Input() column: Column;\n @Output() filter = new EventEmitter<string>();\n\n ngOnDestroy() {\n if (this.changesSubscription) {\n this.changesSubscription.unsubscribe();\n }\n }\n\n setFilter() {\n this.filter.emit(this.query);\n }\n}\n\nexport interface Filter {\n\n delay?: number;\n changesSubscription?: Subscription;\n query: string;\n inputClass: string;\n column: Column;\n filter: EventEmitter<string>;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\n\nimport { DefaultFilter } from './default-filter';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'checkbox-filter',\n template: `\n <input type=\"checkbox\" [formControl]=\"inputControl\" [ngClass]=\"inputClass\" class=\"form-control\">\n <a href=\"#\" *ngIf=\"filterActive\"\n (click)=\"resetFilter($event)\">{{column.getFilterConfig()?.resetText || 'reset'}}</a>\n `,\n})\nexport class CheckboxFilterComponent extends DefaultFilter implements OnInit {\n\n filterActive: boolean = false;\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.changesSubscription = this.inputControl.valueChanges\n .pipe(debounceTime(this.delay))\n .subscribe((checked: boolean) => {\n this.filterActive = true;\n const trueVal = (this.column.getFilterConfig() && this.column.getFilterConfig().true) || true;\n const falseVal = (this.column.getFilterConfig() && this.column.getFilterConfig().false) || false;\n this.query = checked ? trueVal : falseVal;\n this.setFilter();\n });\n }\n\n resetFilter(event: any) {\n event.preventDefault();\n this.query = '';\n this.inputControl.setValue(false, { emitEvent: false });\n this.filterActive = false;\n this.setFilter();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { DefaultFilter } from './default-filter';\nimport { distinctUntilChanged, debounceTime, map } from 'rxjs/operators';\n\n@Component({\n selector: 'completer-filter',\n template: `\n <!-- <ng2-completer [(ngModel)]=\"query\"\n (ngModelChange)=\"inputTextChanged($event)\"\n [dataService]=\"column.getFilterConfig().completer.dataService\"\n [minSearchLength]=\"column.getFilterConfig().completer.minSearchLength || 0\"\n [pause]=\"column.getFilterConfig().completer.pause || 0\"\n [placeholder]=\"column.getFilterConfig().completer.placeholder || 'Start typing...'\"\n (selected)=\"completerContent.next($event)\">\n </ng2-completer> -->\n `,\n})\nexport class CompleterFilterComponent extends DefaultFilter implements OnInit {\n\n completerContent = new Subject<any>();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n // const config = this.column.getFilterConfig().completer;\n // config.dataService = this.completerService.local(config.data, config.searchFields, config.titleField);\n // config.dataService.descriptionField(config.descriptionField);\n\n // this.changesSubscription = this.completerContent\n // .pipe(\n // map((ev: any) => (ev && ev.title) || ev || ''),\n // distinctUntilChanged(),\n // debounceTime(this.delay)\n // )\n // .subscribe((search: string) => {\n // this.query = search;\n // this.setFilter();\n // });\n }\n\n inputTextChanged(event: string) {\n // workaround to trigger the search event when the home/end buttons are clicked\n // when this happens the [(ngModel)]=\"query\" is set to \"\" but the (selected) method is not called\n // so here it gets called manually\n if (event === '') {\n this.completerContent.next(event);\n }\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\n\nimport { DefaultFilter } from './default-filter';\n\n@Component({\n selector: 'input-filter',\n template: `\n <input\n [ngClass]=\"inputClass\"\n [formControl]=\"inputControl\"\n class=\"form-control\"\n type=\"text\"\n placeholder=\"{{ column.title }}\"/>\n `,\n})\nexport class InputFilterComponent extends DefaultFilter implements OnInit, OnChanges {\n\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.query) {\n this.inputControl.setValue(this.query);\n }\n this.inputControl.valueChanges\n .pipe(\n distinctUntilChanged(),\n debounceTime(this.delay),\n )\n .subscribe((value: string) => {\n this.query = this.inputControl.value;\n this.setFilter();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.query) {\n this.inputControl.setValue(this.query);\n }\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { distinctUntilChanged, debounceTime, skip } from 'rxjs/operators';\n\nimport { DefaultFilter } from './default-filter';\n\n@Component({\n selector: 'select-filter',\n template: `\n <select [ngClass]=\"inputClass\"\n class=\"form-control\"\n #inputControl\n [(ngModel)]=\"query\">\n\n <option value=\"\">{{ column.getFilterConfig().selectText }}</option>\n <option *ngFor=\"let option of column.getFilterConfig().list\" [value]=\"option.value\">\n {{ option.title }}\n </option>\n </select>\n `,\n})\nexport class SelectFilterComponent extends DefaultFilter implements OnInit {\n\n @ViewChild('inputControl', { read: NgControl, static: true }) inputControl: NgControl;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.inputControl.valueChanges\n .pipe(\n skip(1),\n distinctUntilChanged(),\n debounceTime(this.delay)\n )\n .subscribe((value: string) => this.setFilter());\n }\n}\n","import {Component, Input} from '@angular/core';\n\nimport {FilterDefault} from \"./filter-default\";\n\n@Component({\n selector: 'default-table-filter',\n template: `\n <ng-container [ngSwitch]=\"column.getFilterType()\">\n <select-filter *ngSwitchCase=\"'list'\"\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </select-filter>\n <checkbox-filter *ngSwitchCase=\"'checkbox'\"\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </checkbox-filter>\n <completer-filter *ngSwitchCase=\"'completer'\"\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </completer-filter>\n <input-filter *ngSwitchDefault\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </input-filter>\n </ng-container>\n `,\n})\nexport class DefaultFilterComponent extends FilterDefault {\n @Input() query: string;\n}\n","import {\n Component,\n ComponentFactoryResolver, Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { FilterDefault } from './filter-default';\n\n@Component({\n selector: 'custom-table-filter',\n template: `<ng-template #dynamicTarget></ng-template>`,\n})\nexport class CustomFilterComponent extends FilterDefault implements OnChanges, OnDestroy {\n @Input() query: string;\n customComponent: any;\n @ViewChild('dynamicTarget', { read: ViewContainerRef, static: true }) dynamicTarget: any;\n\n constructor(private resolver: ComponentFactoryResolver) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.column && !this.customComponent) {\n const componentFactory = this.resolver.resolveComponentFactory(this.column.filter.component);\n this.customComponent = this.dynamicTarget.createComponent(componentFactory);\n\n // set @Inputs and @Outputs of custom component\n this.customComponent.instance.query = this.query;\n this.customComponent.instance.column = this.column;\n this.customComponent.instance.source = this.source;\n this.customComponent.instance.inputClass = this.inputClass;\n this.customComponent.instance.filter.subscribe((event: any) => this.onFilter(event));\n }\n if (this.customComponent) {\n this.customComponent.instance.ngOnChanges(changes);\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, OnChanges, SimpleChanges } from '@angular/core';\nimport { FilterDefault } from './filter-default';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ng2-smart-table-filter',\n styleUrls: ['./filter.component.scss'],\n template: `\n <div class=\"ng2-smart-filter\" *ngIf=\"column.isFilterable\" [ngSwitch]=\"column.getFilterType()\">\n <custom-table-filter *ngSwitchCase=\"'custom'\"\n [query]=\"query\"\n [column]=\"column\"\n [source]=\"source\"\n [inputClass]=\"inputClass\"\n (filter)=\"onFilter($event)\">\n </custom-table-filter>\n <default-table-filter *ngSwitchDefault\n [query]=\"query\"\n [column]=\"column\"\n [source]=\"source\"\n [inputClass]=\"inputClass\"\n (filter)=\"onFilter($event)\">\n </default-table-filter>\n </div>\n `,\n})\nexport class FilterComponent extends FilterDefault implements OnChanges {\n query: string = '';\n protected dataChangedSub: Subscription;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.source) {\n if (!changes.source.firstChange) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const filterConf = this.source.getFilter();\n if (filterConf && filterConf.filters && filterConf.filters.length === 0) {\n this.query = '';\n\n // add a check for existing filters an set the query if one exists for this column\n // this covers instances where the filter is set by user code while maintaining existing functionality\n } else if (filterConf && filterConf.filters && filterConf.filters.length > 0) {\n filterConf.filters.forEach((k: any, v: any) => {\n if (k.field == this.column.id) {\n this.query = k.search;\n }\n });\n }\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { FilterComponent } from './filter.component';\nimport { DefaultFilterComponent } from \"./default-filter.component\";\nimport { CustomFilterComponent } from \"./custom-filter.component\";\nimport { CheckboxFilterComponent } from './filter-types/checkbox-filter.component';\nimport { CompleterFilterComponent } from './filter-types/completer-filter.component';\nimport { InputFilterComponent } from './filter-types/input-filter.component';\nimport { SelectFilterComponent } from './filter-types/select-filter.component';\nimport { DefaultFilter } from './filter-types/default-filter';\nimport { FilterDefault } from './filter-default';\n\nconst FILTER_COMPONENTS = [\n FilterDefault,\n DefaultFilter,\n FilterComponent,\n DefaultFilterComponent,\n CustomFilterComponent,\n CheckboxFilterComponent,\n CompleterFilterComponent,\n InputFilterComponent,\n SelectFilterComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n declarations: [\n ...FILTER_COMPONENTS,\n ],\n exports: [\n ...FILTER_COMPONENTS,\n ],\n})\nexport class FilterModule { }\n","import { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { DataSource } from '../../lib/data-source/data-source';\n\n@Component({\n selector: 'ng2-smart-table-pager',\n styleUrls: ['./pager.component.scss'],\n template: `\n <nav *ngIf=\"shouldShow()\" class=\"ng2-smart-pagination-nav\">\n <ul class=\"ng2-smart-pagination pagination\">\n <li class=\"ng2-smart-page-item page-item\" [ngClass]=\"{disabled: getPage() == 1}\">\n <a class=\"ng2-smart-page-link page-link\" href=\"#\"\n (click)=\"getPage() == 1 ? false : paginate(1)\" aria-label=\"First\">\n <span aria-hidden=\"true\">«</span>\n <span class=\"sr-only\">First</span>\n </a>\n </li>\n <li class=\"ng2-smart-page-item page-item\" [ngClass]=\"{disabled: getPage() == 1}\">\n <a class=\"ng2-smart-page-link page-link page-link-prev\" href=\"#\"\n (click)=\"getPage() == 1 ? false : prev()\" aria-label=\"Prev\">\n <span aria-hidden=\"true\"><</span>\n <span class=\"sr-only\">Prev</span>\n </a>\n </li>\n <li class=\"ng2-smart-page-item page-item\"\n [ngClass]=\"{active: getPage() == page}\" *ngFor=\"let page of getPages()\">\n <span class=\"ng2-smart-page-link page-link\"\n *ngIf=\"getPage() == page\">{{ page }} <span class=\"sr-only\">(current)</span></span>\n <a class=\"ng2-smart-page-link page-link\" href=\"#\"\n (click)=\"paginate(page)\" *ngIf=\"getPage() != page\">{{ page }}</a>\n </li>\n\n <li class=\"ng2-smart-page-item page-item\"\n [ngClass]=\"{disabled: getPage() == getLast()}\">\n <a class=\"ng2-smart-page-link page-link page-link-next\" href=\"#\"\n (click)=\"getPage() == getLast() ? false : next()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">></span>\n <span class=\"sr-only\">Next</span>\n </a>\n </li>\n \n <li class=\"ng2-smart-page-item page-item\"\n [ngClass]=\"{disabled: getPage() == getLast()}\">\n <a class=\"ng2-smart-page-link page-link\" href=\"#\"\n (click)=\"getPage() == getLast() ? false : paginate(getLast())\" aria-label=\"Last\">\n <span aria-hidden=\"true\">»</span>\n <span class=\"sr-only\">Last</span>\n </a>\n </li>\n </ul>\n </nav>\n \n <nav *ngIf=\"perPageSelect && perPageSelect.length > 0\" class=\"ng2-smart-pagination-per-page\">\n <label for=\"per-page\">\n Per Page:\n </label>\n <select (change)=\"onChangePerPage($event)\" [(ngModel)]=\"currentPerPage\" id=\"per-page\">\n <option *ngFor=\"let item of perPageSelect\" [value]=\"item\">{{ item }}</option>\n </select>\n </nav>\n `,\n})\nexport class PagerComponent implements OnChanges {\n\n @Input() source: DataSource;\n @Input() perPageSelect: any[] = [];\n\n @Output() changePage = new EventEmitter<any>();\n\n currentPerPage: any;\n\n protected pages: Array<any>;\n protected page: number;\n protected count: number = 0;\n protected perPage: number;\n\n protected dataChangedSub: Subscription;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.source) {\n if (!changes.source.firstChange) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n this.page = this.source.getPaging().page;\n this.perPage = this.source.getPaging().perPage;\n this.currentPerPage = this.perPage;\n this.count = this.source.count();\n if (this.isPageOutOfBounce()) {\n this.source.setPage(--this.page);\n }\n\n this.processPageChange(dataChanges);\n this.initPages();\n });\n }\n }\n\n /**\n * We change the page here depending on the action performed against data source\n * if a new element was added to the end of the table - then change the page to the last\n * if a new element was added to the beginning of the table - then to the first page\n * @param changes\n */\n processPageChange(changes: any) {\n if (changes['action'] === 'prepend') {\n this.source.setPage(1);\n }\n if (changes['action'] === 'append') {\n this.source.setPage(this.getLast());\n }\n }\n\n shouldShow(): boolean {\n return this.source.count() > this.perPage;\n }\n\n paginate(page: number): boolean {\n this.source.setPage(page);\n this.page = page;\n this.changePage.emit({ page });\n return false;\n }\n\n next(): boolean {\n return this.paginate(this.getPage() + 1);\n }\n\n prev(): boolean {\n return this.paginate(this.getPage() - 1);\n }\n\n getPage(): number {\n return this.page;\n }\n\n getPages(): Array<any> {\n return this.pages;\n }\n\n getLast(): number {\n return Math.ceil(this.count / this.perPage);\n }\n\n isPageOutOfBounce(): boolean {\n return (this.page * this.perPage) >= (this.count + this.perPage) && this.page > 1;\n }\n\n initPages() {\n const pagesCount = this.getLast();\n let showPagesCount = 4;\n showPagesCount = pagesCount < showPagesCount ? pagesCount : showPagesCount;\n this.pages = [];\n\n if (this.shouldShow()) {\n\n let middleOne = Math.ceil(showPagesCount / 2);\n middleOne = this.page >= middleOne ? this.page : middleOne;\n\n let lastOne = middleOne + Math.floor(showPagesCount / 2);\n lastOne = lastOne >= pagesCount ? pagesCount : lastOne;\n\n const firstOne = lastOne - showPagesCount + 1;\n\n for (let i = firstOne; i <= lastOne; i++) {\n this.pages.push(i);\n }\n }\n }\n\n onChangePerPage(event: any) {\n if (this.currentPerPage) {\n\n if (typeof this.currentPerPage === 'string' && this.currentPerPage.toLowerCase() === 'all') {\n this.source.getPaging().perPage = null;\n } else {\n this.source.getPaging().perPage = this.currentPerPage * 1;\n this.source.refresh();\n }\n this.initPages();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PagerComponent } from './pager.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n declarations: [\n PagerComponent,\n ],\n exports: [\n PagerComponent,\n ],\n})\nexport class PagerModule { }\n","import { Component, Input, EventEmitter, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { Row } from '../../../lib/data-set/row';\n\n@Component({\n selector: 'ng2-st-tbody-create-cancel',\n template: `\n <a href=\"#\" class=\"ng2-smart-action ng2-smart-action-edit-save\"\n [innerHTML]=\"saveButtonContent\" (click)=\"onSave($event)\"></a>\n <a href=\"#\" class=\"ng2-smart-action ng2-smart-action-edit-cancel\"\n [innerHTML]=\"cancelButtonContent\" (click)=\"onCancelEdit($event)\"></a>\n `,\n})\nexport class TbodyCreateCancelComponent implements OnChanges {\n\n @Input() grid: Grid;\n @Input() row: Row;\n @Input() editConfirm: EventEmitter<any>;\n\n cancelButtonContent: string;\n saveButtonContent: string;\n\n onSave(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n this.grid.save(this.row, this.editConfirm);\n }\n\n onCancelEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n this.row.isInEditing = false;\n }\n\n ngOnChanges() {\n this.saveButtonContent = this.grid.getSetting('edit.saveButtonContent');\n this.cancelButtonContent = this.grid.getSetting('edit.cancelButtonContent')\n }\n}\n","import {Component, Input, Output, EventEmitter, OnChanges, ChangeDetectionStrategy } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { Row } from '../../../lib/data-set/row';\nimport { DataSource } from '../../../lib/data-source/data-source';\n\n@Component({\n selector: 'ng2-st-tbody-edit-delete',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <a href=\"#\" *ngIf=\"isActionEdit\" class=\"ng2-smart-action ng2-smart-action-edit-edit\"\n [innerHTML]=\"editRowButtonContent\" (click)=\"onEdit($event)\"></a>\n <a href=\"#\" *ngIf=\"isActionDelete\" class=\"ng2-smart-action ng2-smart-action-delete-delete\"\n [innerHTML]=\"deleteRowButtonContent\" (click)=\"onDelete($event)\"></a>\n `,\n})\nexport class TbodyEditDeleteComponent implements OnChanges {\n\n @Input() grid: Grid;\n @Input() row: Row;\n @Input() source: DataSource;\n @Input() deleteConfirm: EventEmitter<any>;\n @Input() editConfirm: EventEmitter<any>;\n\n @Output() edit = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() editRowSelect = new EventEmitter<any>();\n\n isActionEdit: boolean;\n isActionDelete: boolean;\n editRowButtonContent: string;\n deleteRowButtonContent: string;\n\n onEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n this.editRowSelect.emit(this.row);\n\n if (this.grid.getSetting('mode') === 'external') {\n this.edit.emit({\n data: this.row.getData(),\n source: this.source,\n });\n } else {\n this.grid.edit(this.row);\n }\n }\n\n onDelete(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.grid.getSetting('mode') === 'external') {\n this.delete.emit({\n data: this.row.getData(),\n source: this.source,\n });\n } else {\n this.grid.delete(this.row, this.deleteConfirm);\n }\n }\n\n ngOnChanges(){\n this.isActionEdit = this.grid.getSetting('actions.edit');\n this.isActionDelete = this.grid.getSetting('actions.delete');\n this.editRowButtonContent = this.grid.getSetting('edit.editButtonContent');\n this.deleteRowButtonContent = this.grid.getSetting('delete.deleteButtonContent');\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Row } from '../../../lib/data-set/row';\n\nimport { Grid } from '../../../lib/grid';\n\n@Component({\n selector: 'ng2-st-tbody-custom',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <a *ngFor=\"let action of grid.getSetting('actions.custom')\" href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-custom-custom\" \n [innerHTML]=\"action.title\"\n (click)=\"onCustom(action, $event)\"></a>\n `\n})\nexport class TbodyCustomComponent {\n\n @Input() grid: Grid;\n @Input() row: Row;\n @Input() source: any;\n @Output() custom = new EventEmitter<any>();\n\n onCustom(action: any, event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n this.custom.emit({\n action: action.name,\n data: this.row.getData(),\n source: this.source\n });\n }\n\n}\n","<tr *ngFor=\"let row of grid.getRows()\" (click)=\"userClickedRow.emit(row)\" (mouseover)=\"rowHover.emit(row)\" class=\"ng2-smart-row\" [className]=\"rowClassFunction(row)\" [ngClass]=\"{selected: row.isSelected}\">\n <td *ngIf=\"isMultiSelectVisible\" class=\"ng2-smart-actions ng2-smart-action-multiple-select\" (click)=\"multipleSelectRow.emit(row); $event.stopPropagation();\">\n <input type=\"checkbox\" class=\"form-control\" [ngModel]=\"row.isSelected\">\n </td>\n <td *ngIf=\"!row.isInEditing && showActionColumnLeft\" class=\"ng2-smart-actions\" (click)=\"$event.stopPropagation()\">\n <ng2-st-tbody-custom [grid]=\"grid\" (custom)=\"custom.emit($event)\" [row]=\"row\" [source]=\"source\"></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n [row]=\"row\"\n [source]=\"source\">\n </ng2-st-tbody-edit-delete>\n </td>\n <td *ngIf=\"row.isInEditing && showActionColumnLeft\" class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel [grid]=\"grid\" [row]=\"row\" [editConfirm]=\"editConfirm\"></ng2-st-tbody-create-cancel>\n </td>\n <td *ngFor=\"let cell of getVisibleCells(row.cells)\">\n <ng2-smart-table-cell [cell]=\"cell\"\n [grid]=\"grid\"\n [row]=\"row\"\n [isNew]=\"false\"\n [mode]=\"mode\"\n [editConfirm]=\"editConfirm\"\n [inputClass]=\"editInputClass\"\n [isInEditing]=\"row.isInEditing\">\n </ng2-smart-table-cell>\n </td>\n\n <td *ngIf=\"row.isInEditing && showActionColumnRight\" class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel [grid]=\"grid\" [row]=\"row\" [editConfirm]=\"editConfirm\"></ng2-st-tbody-create-cancel>\n </td>\n\n <td *ngIf=\"!row.isInEditing && showActionColumnRight\" class=\"ng2-smart-actions\">\n <ng2-st-tbody-custom [grid]=\"grid\" (custom)=\"custom.emit($event)\" [row]=\"row\" [source]=\"source\"></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [row]=\"row\"\n [source]=\"source\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\">\n </ng2-st-tbody-edit-delete>\n </td>\n</tr>\n\n<tr *ngIf=\"grid.getRows().length == 0\">\n <td [attr.colspan]=\"tableColumnsCount\">\n {{ noDataMessage }}\n </td>\n</tr>\n","import {Component, Input, Output, EventEmitter, } from '@angular/core';\n\nimport { Grid } from '../../lib/grid';\nimport { DataSource } from '../../lib/data-source/data-source';\nimport { Cell } from '../../lib/data-set/cell';\n\n@Component({\n selector: '[ng2-st-tbody]',\n styleUrls: ['./tbody.component.scss'],\n templateUrl: './tbody.component.html',\n})\nexport class Ng2SmartTableTbodyComponent {\n\n @Input() grid: Grid;\n @Input() source: DataSource;\n @Input() deleteConfirm: EventEmitter<any>;\n @Input() editConfirm: EventEmitter<any>;\n @Input() rowClassFunction: Function;\n\n @Output() save = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() edit = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() custom = new EventEmitter<any>();\n @Output() edited = new EventEmitter<any>();\n @Output() userSelectRow = new EventEmitter<any>();\n @Output() userClickedRow = new EventEmitter<any>();\n @Output() editRowSelect = new EventEmitter<any>();\n @Output() multipleSelectRow = new EventEmitter<any>();\n @Output() rowHover = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean;\n showActionColumnLeft: boolean;\n showActionColumnRight: boolean;\n mode: string;\n editInputClass: string;\n isActionAdd: boolean;\n isActionEdit: boolean;\n isActionDelete: boolean;\n noDataMessage: boolean;\n\n get tableColumnsCount() {\n const actionColumns = this.isActionAdd || this.isActionEdit || this.isActionDelete ? 1 : 0;\n return this.grid.getColumns().length + actionColumns;\n }\n\n ngOnChanges() {\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.mode = this.grid.getSetting('mode');\n this.editInputClass = this.grid.getSetting('edit.inputClass');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n this.isActionAdd = this.grid.getSetting('actions.add');\n this.isActionEdit = this.grid.getSetting('actions.edit');\n this.isActionDelete = this.grid.getSetting('actions.delete');\n this.noDataMessage = this.grid.getSetting('noDataMessage');\n }\n\n getVisibleCells(cells: Array<Cell>): Array<Cell> {\n return (cells || []).filter((cell: Cell) => !cell.getColumn().hide);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { CellModule } from '../cell/cell.module';\n\nimport { Ng2SmartTableTbodyComponent } from './tbody.component';\nimport { TbodyCreateCancelComponent } from './cells/create-cancel.component';\nimport { TbodyEditDeleteComponent } from './cells/edit-delete.component';\nimport { TbodyCustomComponent } from './cells/custom.component';\n\nconst TBODY_COMPONENTS = [\n TbodyCreateCancelComponent,\n TbodyEditDeleteComponent,\n TbodyCustomComponent,\n Ng2SmartTableTbodyComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n CellModule,\n ],\n declarations: [\n ...TBODY_COMPONENTS,\n ],\n exports: [\n ...TBODY_COMPONENTS,\n ],\n})\nexport class TBodyModule { }\n","import { Component, Input, Output, EventEmitter, AfterViewInit, ElementRef, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { DataSource } from '../../../lib/data-source/data-source';\n\n@Component({\n selector: '[ng2-st-add-button]',\n template: `\n <a *ngIf=\"isActionAdd\" href=\"#\" class=\"ng2-smart-action ng2-smart-action-add-add\"\n [innerHTML]=\"addNewButtonContent\" (click)=\"onAdd($event)\"></a>\n `,\n})\nexport class AddButtonComponent implements AfterViewInit, OnChanges {\n\n @Input() grid: Grid;\n @Input() source: DataSource;\n @Output() create = new EventEmitter<any>();\n\n isActionAdd: boolean;\n addNewButtonContent: string;\n\n constructor(private ref: ElementRef) {\n }\n\n ngAfterViewInit() {\n this.ref.nativeElement.classList.add('ng2-smart-actions-title', 'ng2-smart-actions-title-add');\n }\n\n ngOnChanges() {\n this.isActionAdd = this.grid.getSetting('actions.add');\n this.addNewButtonContent = this.grid.getSetting('add.addButtonContent');\n }\n\n onAdd(event: any) {\n event.preventDefault();\n event.stopPropagation();\n if (this.grid.getSetting('mode') === 'external') {\n this.create.emit({\n source: this.source,\n });\n } else {\n this.grid.createFormShown = true;\n }\n }\n}\n","import {Component, Input, Output, EventEmitter, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { DataSource } from '../../../lib/data-source/data-source';\nimport { Column } from \"../../../lib/data-set/column\";\n\n@Component({\n selector: '[ng2-st-thead-filters-row]',\n template: `\n <th *ngIf=\"isMultiSelectVisible\"></th>\n <th ng2-st-add-button *ngIf=\"showActionColumnLeft\"\n [grid]=\"grid\"\n (create)=\"create.emit($event)\">\n </th>\n <th *ngFor=\"let column of getVisibleColumns(grid.getColumns())\" class=\"ng2-smart-th {{ column.id }}\">\n <ng2-smart-table-filter [source]=\"source\"\n [column]=\"column\"\n [inputClass]=\"filterInputClass\"\n (filter)=\"filter.emit($event)\">\n </ng2-smart-table-filter>\n </th>\n <th ng2-st-add-button *ngIf=\"showActionColumnRight\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\">\n </th>\n `,\n})\nexport class TheadFitlersRowComponent implements OnChanges {\n\n @Input() grid: Grid;\n @Input() source: DataSource;\n\n @Output() create = new EventEmitter<any>();\n @Output() filter = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean;\n showActionColumnLeft: boolean;\n showActionColumnRight: boolean;\n filterInputClass: string;\n\n ngOnChanges() {\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n this.filterInputClass = this.grid.getSetting('filter.inputClass');\n }\n\n getVisibleColumns(columns: Array<Column>): Array<Column> {\n return (columns || []).filter((column: Column) => !column.hide);\n }\n}\n","import {Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\n\n@Component({\n selector: 'ng2-st-actions',\n template: `\n <a href=\"#\" class=\"ng2-smart-action ng2-smart-action-add-create\"\n [innerHTML]=\"createButtonContent\"\n (click)=\"$event.preventDefault();create.emit($event)\"></a>\n <a href=\"#\" class=\"ng2-smart-action ng2-smart-action-add-cancel\"\n [innerHTML]=\"cancelButtonContent\"\n (click)=\"$event.preventDefault();grid.createFormShown = false;\"></a>\n `,\n})\nexport class ActionsComponent implements OnChanges {\n\n @Input() grid: Grid;\n @Output() create = new EventEmitter<any>();\n\n createButtonContent: string;\n cancelButtonContent: string;\n\n ngOnChanges() {\n this.createButtonContent = this.grid.getSetting('add.createButtonContent');\n this.cancelButtonContent = this.grid.getSetting('add.cancelButtonContent');\n }\n}\n","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { Row } from '../../../lib/data-set/row';\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n selector: '[ng2-st-thead-form-row]',\n template: `\n <td *ngIf=\"\"></td>\n <td *ngIf=\"showActionColumnLeft\" class=\"ng2-smart-actions\">\n <ng2-st-actions [grid]=\"grid\" (create)=\"onCreate($event)\"></ng2-st-actions>\n </td>\n <td *ngFor=\"let cell of getVisibleCells(grid.getNewRow().getCells())\">\n <ng2-smart-table-cell [cell]=\"cell\"\n [grid]=\"grid\"\n [isNew]=\"true\"\n [createConfirm]=\"createConfirm\"\n [inputClass]=\"addInputClass\"\n [isInEditing]=\"grid.getNewRow().isInEditing\"\n (edited)=\"onCreate($event)\">\n </ng2-smart-table-cell>\n </td>\n <td *ngIf=\"showActionColumnRight\" class=\"ng2-smart-actions\">\n <ng2-st-actions [grid]=\"grid\" (create)=\"onCreate($event)\"></ng2-st-actions>\n </td>\n `,\n})\nexport class TheadFormRowComponent implements OnChanges {\n\n @Input() grid: Grid;\n @Input() row: Row;\n @Input() createConfirm: EventEmitter<any>;\n\n @Output() create = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean;\n showActionColumnLeft: boolean;\n showActionColumnRight: boolean;\n addInputClass: string;\n\n onCreate(event: any) {\n event.stopPropagation();\n\n this.grid.create(this.grid.getNewRow(), this.createConfirm);\n }\n\n ngOnChanges(){\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n this.addInputClass = this.grid.getSetting('add.inputClass');\n }\n\n getVisibleCells(cells: Array<Cell>): Array<Cell> {\n return (cells || []).filter((cell: Cell) => !cell.getColumn().hide);\n }\n}\n","import {Component, Input, AfterViewInit, ElementRef, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\n\n@Component({\n selector: '[ng2-st-actions-title]',\n template: `\n <div class=\"ng2-smart-title\">{{ actionsColumnTitle }}</div>\n `,\n})\nexport class ActionsTitleComponent implements AfterViewInit, OnChanges {\n\n @Input() grid: Grid;\n\n actionsColumnTitle: string;\n\n constructor(private ref: ElementRef) {\n }\n\n ngAfterViewInit() {\n this.ref.nativeElement.classList.add('ng2-smart-actions');\n }\n\n ngOnChanges() {\n this.actionsColumnTitle = this.grid.getSetting('actions.columnTitle');\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { DataSource } from '../../../lib/data-source/data-source';\n\n@Component({\n selector: '[ng2-st-checkbox-select-all]',\n template: `\n <input type=\"checkbox\" [ngModel]=\"this.grid.dataSet.isAllSelected\">\n `,\n})\nexport class CheckboxSelectAllComponent {\n\n @Input() grid: Grid;\n @Input() source: DataSource;\n}\n","import { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { DataSource } from '../../../../lib/data-source/data-source';\nimport { Column } from '../../../../lib/data-set/column';\n\n@Component({\n selector: 'ng2-smart-table-title',\n styleUrls: ['./title.component.scss'],\n template: `\n <a href=\"#\" *ngIf=\"column.isSortable\"\n (click)=\"_sort($event)\"\n class=\"ng2-smart-sort-link sort\"\n [ngClass]=\"currentDirection\">\n {{ column.title }}\n </a>\n <span class=\"ng2-smart-sort\" *ngIf=\"!column.isSortable\">{{ column.title }}</span>\n `,\n})\nexport class TitleComponent implements OnChanges {\n\n currentDirection = '';\n @Input() column: Column;\n @Input() source: DataSource;\n @Output() sort = new EventEmitter<any>();\n\n protected dataChangedSub: Subscription;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.source) {\n if (!changes.source.firstChange) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const sortConf = this.source.getSort();\n\n if (sortConf.length > 0 && sortConf[0]['field'] === this.column.id) {\n this.currentDirection = sortConf[0]['direction'];\n } else {\n this.currentDirection = '';\n }\n\n sortConf.forEach((fieldConf: any) => {\n\n });\n });\n }\n }\n\n _sort(event: any) {\n event.preventDefault();\n this.changeSortDirection();\n this.source.setSort([\n {\n field: this.column.id,\n direction: this.currentDirection,\n compare: this.column.getCompareFunction(),\n },\n ]);\n this.sort.emit(null);\n }\n\n changeSortDirection(): string {\n if (this.currentDirection) {\n const newDirection = this.currentDirection === 'asc' ? 'desc' : 'asc';\n this.currentDirection = newDirection;\n } else {\n this.currentDirection = this.column.sortDirection;\n }\n return this.currentDirection;\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Column } from '../../../lib/data-set/column';\nimport { DataSource } from '../../../lib/data-source/data-source';\n\n@Component({\n selector: 'ng2-st-column-title',\n template: `\n <div class=\"ng2-smart-title\">\n <ng2-smart-table-title [source]=\"source\" [column]=\"column\" (sort)=\"sort.emit($event)\"></ng2-smart-table-title>\n </div>\n `,\n})\nexport class ColumnTitleComponent {\n\n @Input() column: Column;\n @Input() source: DataSource;\n\n @Output() sort = new EventEmitter<any>();\n\n}\n","import {Component, Input, Output, EventEmitter, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { DataSource } from '../../../lib/data-source/data-source';\nimport { Column } from \"../../../lib/data-set/column\";\n\n@Component({\n selector: '[ng2-st-thead-titles-row]',\n template: `\n <th ng2-st-checkbox-select-all *ngIf=\"isMultiSelectVisible\"\n [grid]=\"grid\"\n [source]=\"source\"\n (click)=\"selectAllRows.emit($event)\">\n </th>\n <th ng2-st-actions-title *ngIf=\"showActionColumnLeft\" [grid]=\"grid\"></th>\n <th *ngFor=\"let column of getVisibleColumns(grid.getColumns())\"\n class=\"ng2-smart-th {{ column.id }}\"\n [ngClass]=\"column.class\"\n [style.width]=\"column.width\">\n <ng2-st-column-title [source]=\"source\" [column]=\"column\" (sort)=\"sort.emit($event)\"></ng2-st-column-title>\n </th>\n <th ng2-st-actions-title *ngIf=\"showActionColumnRight\" [grid]=\"grid\"></th>\n `,\n})\nexport class TheadTitlesRowComponent implements OnChanges {\n\n @Input() grid: Grid;\n @Input() source: DataSource;\n\n @Output() sort = new EventEmitter<any>();\n @Output() selectAllRows = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean;\n showActionColumnLeft: boolean;\n showActionColumnRight: boolean;\n\n\n ngOnChanges() {\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n }\n\n getVisibleColumns(columns: Array<Column>): Array<Column> {\n return (columns || []).filter((column: Column) => !column.hide);\n }\n}\n","<tr ng2-st-thead-titles-row *ngIf=\"!isHideHeader\"\n class=\"ng2-smart-titles\"\n [grid]=\"grid\"\n [source]=\"source\"\n (sort)=\"sort.emit($event)\"\n (selectAllRows)=\"selectAllRows.emit($event)\">\n</tr>\n\n<tr ng2-st-thead-filters-row *ngIf=\"!isHideSubHeader\"\n class=\"ng2-smart-filters\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\"\n (filter)=\"filter.emit($event)\">\n</tr>\n\n<tr ng2-st-thead-form-row *ngIf=\"grid.createFormShown\"\n [grid]=\"grid\"\n [createConfirm]=\"createConfirm\">\n</tr>\n","import {Component, Input, Output, EventEmitter, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../lib/grid';\nimport { DataSource } from '../../lib/data-source/data-source';\n\n@Component({\n selector: '[ng2-st-thead]',\n templateUrl: './thead.component.html',\n})\nexport class Ng2SmartTableTheadComponent implements OnChanges {\n\n @Input() grid: Grid;\n @Input() source: DataSource;\n @Input() createConfirm: EventEmitter<any>;\n\n @Output() sort = new EventEmitter<any>();\n @Output() selectAllRows = new EventEmitter<any>();\n @Output() create = new EventEmitter<any>();\n @Output() filter = new EventEmitter<any>();\n\n isHideHeader: boolean;\n isHideSubHeader: boolean;\n\n ngOnChanges() {\n this.isHideHeader = this.grid.getSetting('hideHeader');\n this.isHideSubHeader = this.grid.getSetting('hideSubHeader');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { FilterModule } from '../filter/filter.module';\nimport { CellModule } from '../cell/cell.module';\n\nimport { Ng2SmartTableTheadComponent } from './thead.component';\nimport { ActionsComponent } from './cells/actions.component';\nimport { ActionsTitleComponent } from './cells/actions-title.component';\nimport { AddButtonComponent } from './cells/add-button.component';\nimport { CheckboxSelectAllComponent } from './cells/checkbox-select-all.component';\nimport { ColumnTitleComponent } from './cells/column-title.component';\nimport { TitleComponent } from './cells/title/title.component';\nimport { TheadFitlersRowComponent } from './rows/thead-filters-row.component';\nimport { TheadFormRowComponent } from './rows/thead-form-row.component';\nimport { TheadTitlesRowComponent } from './rows/thead-titles-row.component';\n\nconst THEAD_COMPONENTS = [\n ActionsComponent,\n ActionsTitleComponent,\n AddButtonComponent,\n CheckboxSelectAllComponent,\n ColumnTitleComponent,\n TitleComponent,\n TheadFitlersRowComponent,\n TheadFormRowComponent,\n TheadTitlesRowComponent,\n Ng2SmartTableTheadComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n FilterModule,\n CellModule,\n ],\n declarations: [\n ...THEAD_COMPONENTS,\n ],\n exports: [\n ...THEAD_COMPONENTS,\n ],\n})\nexport class THeadModule { }\n","export function compareValues(direction: any, a: any, b: any) {\n if (a < b) {\n return -1 * direction;\n }\n if (a > b) {\n return direction;\n }\n return 0;\n}\n\nexport class LocalSorter {\n\n static sort(data: Array<any>, field: string, direction: string, customCompare?: Function): Array<any> {\n\n const dir: number = (direction === 'asc') ? 1 : -1;\n const compare: Function = customCompare ? customCompare : compareValues;\n\n return data.sort((a, b) => {\n return compare.call(null, dir, a[field], b[field]);\n });\n }\n}\n","export function filterValues(value: string, search: string) {\n return value.toString().toLowerCase().includes(search.toString().toLowerCase());\n}\n\nexport class LocalFilter {\n\n static filter(data: Array<any>, field: string, search: string, customFilter?: Function): Array<any> {\n const filter: Function = customFilter ? customFilter : filterValues;\n\n return data.filter((el) => {\n const value = typeof el[field] === 'undefined' || el[field] === null ? '' : el[field];\n return filter.call(null, value, search);\n });\n }\n}\n","export class LocalPager {\n\n static paginate(data: Array<any>, page: number, perPage: number): Array<any> {\n return data.slice(perPage * (page - 1), perPage * page);\n }\n}\n","import { LocalSorter } from './local.sorter';\nimport { LocalFilter } from './local.filter';\nimport { LocalPager } from './local.pager';\nimport { DataSource } from '../data-source';\nimport { deepExtend } from '../../helpers';\n\nexport class LocalDataSource extends DataSource {\n\n protected data: Array<any> = [];\n protected filteredAndSorted: Array<any> = [];\n protected sortConf: Array<any> = [];\n protected filterConf: any = {\n filters: [],\n andOperator: true,\n };\n protected pagingConf: any = {};\n\n constructor(data: Array<any> = []) {\n super();\n\n this.data = data;\n }\n\n load(data: Array<any>): Promise<any> {\n this.data = data;\n\n return super.load(data);\n }\n\n prepend(element: any): Promise<any> {\n this.reset(true);\n\n this.data.unshift(element);\n return super.prepend(element);\n }\n\n append(element: any): Promise<any> {\n this.reset(true);\n\n this.data.push(element);\n return super.append(element);\n }\n\n add(element: any): Promise<any> {\n this.data.push(element);\n\n return super.add(element);\n }\n\n remove(element: any): Promise<any> {\n this.data = this.data.filter(el => el !== element);\n\n return super.remove(element);\n }\n\n update(element: any, values: any): Promise<any> {\n return new Promise((resolve, reject) => {\n this.find(element).then((found) => {\n found = deepExtend(found, values);\n super.update(found, values).then(resolve).catch(reject);\n }).catch(reject);\n });\n }\n\n find(element: any): Promise<any> {\n const found = this.data.find(el => el === element);\n if (found) {\n return Promise.resolve(found);\n }\n\n return Promise.reject(new Error('Element was not found in the dataset'));\n }\n\n getElements(): Promise<any> {\n const data = this.data.slice(0);\n return Promise.resolve(this.prepareData(data));\n }\n\n getFilteredAndSorted(): Promise<any> {\n let data = this.data.slice(0);\n this.prepareData(data);\n return Promise.resolve(this.filteredAndSorted);\n }\n\n getAll(): Promise<any> {\n const data = this.data.slice(0);\n return Promise.resolve(data);\n }\n\n reset(silent = false) {\n if (silent) {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n this.sortConf = [];\n this.pagingConf['page'] = 1;\n } else {\n this.setFilter([], true, false);\n this.setSort([], false);\n this.setPage(1);\n }\n }\n\n empty(): Promise<any> {\n this.data = [];\n\n return super.empty();\n }\n\n count(): number {\n return this.filteredAndSorted.length;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, direction: asc|desc|null, compare: Function|null},\n * ]\n * @param conf\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setSort(conf: Array<any>, doEmit = true): LocalDataSource {\n if (conf !== null) {\n\n conf.forEach((fieldConf) => {\n if (!fieldConf['field'] || typeof fieldConf['direction'] === 'undefined') {\n throw new Error('Sort configuration object is not valid');\n }\n });\n this.sortConf = conf;\n }\n\n super.setSort(conf, doEmit);\n return this;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, search: string, filter: Function|null},\n * ]\n * @param conf\n * @param andOperator\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setFilter(conf: Array<any>, andOperator = true, doEmit = true): LocalDataSource {\n if (conf && conf.length > 0) {\n conf.forEach((fieldConf) => {\n this.addFilter(fieldConf, andOperator, false);\n });\n } else {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n }\n this.filterConf.andOperator = andOperator;\n this.pagingConf['page'] = 1;\n\n super.setFilter(conf, andOperator, doEmit);\n return this;\n }\n\n addFilter(fieldConf: any, andOperator = true, doEmit: boolean = true): LocalDataSource {\n if (!fieldConf['field'] || typeof fieldConf['search'] === 'undefined') {\n throw new Error('Filter configuration object is not valid');\n }\n\n let found = false;\n this.filterConf.filters.forEach((currentFieldConf: any, index: any) => {\n if (currentFieldConf['field'] === fieldConf['field']) {\n this.filterConf.filters[index] = fieldConf;\n found = true;\n }\n });\n if (!found) {\n this.filterConf.filters.push(fieldConf);\n }\n this.filterConf.andOperator = andOperator;\n super.addFilter(fieldConf, andOperator, doEmit);\n return this;\n }\n\n setPaging(page: number, perPage: number, doEmit: boolean = true): LocalDataSource {\n this.pagingConf['page'] = page;\n this.pagingConf['perPage'] = perPage;\n\n super.setPaging(page, perPage, doEmit);\n return this;\n }\n\n setPage(page: number, doEmit: boolean = true): LocalDataSource {\n this.pagingConf['page'] = page;\n super.setPage(page, doEmit);\n return this;\n }\n\n getSort(): any {\n return this.sortConf;\n }\n\n getFilter(): any {\n return this.filterConf;\n }\n\n getPaging(): any {\n return this.pagingConf;\n }\n\n protected prepareData(data: Array<any>): Array<any> {\n data = this.filter(data);\n data = this.sort(data);\n this.filteredAndSorted = data.slice(0);\n\n return this.paginate(data);\n }\n\n protected sort(data: Array<any>): Array<any> {\n if (this.sortConf) {\n this.sortConf.forEach((fieldConf) => {\n data = LocalSorter\n .sort(data, fieldConf['field'], fieldConf['direction'], fieldConf['compare']);\n });\n }\n return data;\n }\n\n // TODO: refactor?\n protected filter(data: Array<any>): Array<any> {\n if (this.filterConf.filters) {\n if (this.filterConf.andOperator) {\n this.filterConf.filters.forEach((fieldConf: any) => {\n if (fieldConf['search'].length > 0) {\n data = LocalFilter\n .filter(data, fieldConf['field'], fieldConf['search'], fieldConf['filter']);\n }\n });\n } else {\n let mergedData: any = [];\n this.filterConf.filters.forEach((fieldConf: any) => {\n if (fieldConf['search'].length > 0) {\n mergedData = mergedData.concat(LocalFilter\n .filter(data, fieldConf['field'], fieldConf['search'], fieldConf['filter']));\n }\n });\n // remove non unique items\n data = mergedData.filter((elem: any, pos: any, arr: any) => {\n return arr.indexOf(elem) === pos;\n });\n }\n }\n return data;\n }\n\n protected paginate(data: Array<any>): Array<any> {\n if (this.pagingConf && this.pagingConf['page'] && this.pagingConf['perPage']) {\n data = LocalPager.paginate(data, this.pagingConf['page'], this.pagingConf['perPage']);\n }\n return data;\n }\n}\n","<table [id]=\"tableId\" [ngClass]=\"tableClass\">\n\n <thead ng2-st-thead *ngIf=\"!isHideHeader || !isHideSubHeader\"\n [grid]=\"grid\"\n [source]=\"source\"\n [createConfirm]=\"createConfirm\"\n (create)=\"create.emit($event)\"\n (selectAllRows)=\"onSelectAllRows()\">\n </thead>\n\n <tbody ng2-st-tbody [grid]=\"grid\"\n [source]=\"source\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [rowClassFunction]=\"rowClassFunction\"\n (edit)=\"edit.emit($event)\"\n (delete)=\"delete.emit($event)\"\n (custom)=\"custom.emit($event)\"\n (userClickedRow)=\"emitUserRowClicked($event)\"\n (multipleSelectRow)=\"multipleSelectRow($event)\"\n (rowHover)=\"onRowHover($event)\">\n </tbody>\n\n</table>\n\n<ng2-smart-table-pager *ngIf=\"isPagerDisplay\"\n [source]=\"source\"\n [perPageSelect]=\"perPageSelect\">\n</ng2-smart-table-pager>\n","import { Component, Input, Output, SimpleChange, EventEmitter, OnChanges, OnDestroy } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nimport { Grid } from './lib/grid';\nimport { DataSource } from './lib/data-source/data-source';\nimport { Row } from './lib/data-set/row';\nimport { deepExtend } from './lib/helpers';\nimport { LocalDataSource } from './lib/data-source/local/local.data-source';\nimport { SmartTableConfirmDeleteEvent, SmartTableConfirmEditEvent, SmartTableCreateConfirm, SmartTableCustomEvent, SmartTableRowClickedEvent, SmartTableRowSelectEvent, SmartTableSettings } from './lib/interfaces/smart-table.models';\n\n@Component({\n selector: 'ng2-smart-table',\n styleUrls: ['./ng2-smart-table.component.scss'],\n templateUrl: './ng2-smart-table.component.html',\n})\nexport class Ng2SmartTableComponent implements OnChanges {\n\n @Input() source: DataSource;\n @Input() settings: SmartTableSettings;\n\n @Output() multiRowSelect = new EventEmitter<SmartTableRowSelectEvent>();\n @Output() rowClicked = new EventEmitter<SmartTableRowClickedEvent>();\n @Output() delete = new EventEmitter<any>();\n @Output() edit = new EventEmitter<any>();\n @Output() create = new EventEmitter<any>();\n @Output() custom = new EventEmitter<SmartTableCustomEvent>();\n @Output() deleteConfirm = new EventEmitter<SmartTableConfirmDeleteEvent>();\n @Output() editConfirm = new EventEmitter<SmartTableConfirmEditEvent>();\n @Output() createConfirm = new EventEmitter<SmartTableCreateConfirm>();\n @Output() rowHover: EventEmitter<any> = new EventEmitter<any>();\n\n tableClass: string;\n tableId: string;\n perPageSelect: any;\n isHideHeader: boolean;\n isHideSubHeader: boolean;\n isPagerDisplay: boolean;\n rowClassFunction: Function;\n\n grid: Grid;\n defaultSettings: SmartTableSettings = {\n mode: 'inline', // inline|external|click-to-edit\n selectMode: 'single', // single|multi\n /**\n * Points to an element in all data\n *\n * when < 0 all lines must be deselected\n */\n selectedRowIndex: 0,\n switchPageToSelectedRowPage: false,\n hideHeader: false,\n hideSubHeader: false,\n actions: {\n columnTitle: 'Actions',\n add: true,\n edit: true,\n delete: true,\n custom: [],\n position: 'left', // left|right\n },\n filter: {\n inputClass: '',\n },\n edit: {\n inputClass: '',\n editButtonContent: 'Edit',\n saveButtonContent: 'Update',\n cancelButtonContent: 'Cancel',\n confirmSave: false,\n },\n add: {\n inputClass: '',\n addButtonContent: 'Add New',\n createButtonContent: 'Create',\n cancelButtonContent: 'Cancel',\n confirmCreate: false,\n },\n delete: {\n deleteButtonContent: 'Delete',\n confirmDelete: false,\n },\n attr: {\n id: '',\n class: '',\n },\n noDataMessage: 'No data found',\n columns: {},\n pager: {\n display: true,\n page: 1,\n perPage: 10,\n },\n rowClassFunction: () => '',\n };\n\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\n if (this.grid) {\n if (changes['settings']) {\n this.grid.setSettings(this.prepareSettings());\n }\n if (changes['source']) {\n this.source = this.prepareSource();\n this.grid.setSource(this.source);\n }\n } else {\n this.initGrid();\n }\n this.tableId = this.grid.getSetting('attr.id');\n this.tableClass = this.grid.getSetting('attr.class');\n this.isHideHeader = this.grid.getSetting('hideHeader');\n this.isHideSubHeader = this.grid.getSetting('hideSubHeader');\n this.isPagerDisplay = this.grid.getSetting('pager.display');\n this.isPagerDisplay = this.grid.getSetting('pager.display');\n this.perPageSelect = this.grid.getSetting('pager.perPageSelect');\n this.rowClassFunction = this.grid.getSetting('rowClassFunction');\n }\n\n onRowHover(row: Row) {\n this.rowHover.emit(row);\n }\n\n multipleSelectRow(row: Row) {\n this.grid.multipleSelectRow(row);\n this.emitUserSelectRow(row);\n }\n\n onSelectAllRows() {\n this.grid.dataSet.isAllSelected;\n this.grid.selectAllRows(!this.grid.dataSet.isAllSelected);\n\n this.emitUserSelectRow(null);\n }\n\n onSelectRow(row: Row, state: boolean) {\n this.grid.selectRow(row, state);\n }\n\n initGrid() {\n this.source = this.prepareSource();\n this.grid = new Grid(this.source, this.prepareSettings());\n }\n\n prepareSource(): DataSource {\n if (this.source instanceof DataSource) {\n return this.source;\n }\n return new LocalDataSource();\n }\n\n prepareSettings(): SmartTableSettings {\n return deepExtend({}, this.defaultSettings, this.settings);\n }\n\n private emitUserSelectRow(row: Row) {\n this.multiRowSelect.emit({\n data: row ? row.getData() : null,\n isSelected: row ? row.getIsSelected() : null,\n source: this.source,\n selected: this.grid.dataSet.getSelectedRowsData(),\n });\n } \n \n emitUserRowClicked(row: Row) {\n this.rowClicked.emit({\n data: row ? row.getData() : null,\n source: this.source,\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CellModule } from './components/cell/cell.module';\nimport { FilterModule } from './components/filter/filter.module';\nimport { PagerModule } from './components/pager/pager.module';\nimport { TBodyModule } from './components/tbody/tbody.module';\nimport { THeadModule } from './components/thead/thead.module';\n\nimport { Ng2SmartTableComponent } from './ng2-smart-table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CellModule,\n FilterModule,\n PagerModule,\n TBodyModule,\n THeadModule,\n ],\n declarations: [\n Ng2SmartTableComponent,\n ],\n exports: [\n Ng2SmartTableComponent,\n ],\n})\nexport class Ng2SmartTableModule {\n}\n","export class ServerSourceConf {\n\n protected static readonly SORT_FIELD_KEY = '_sort';\n protected static readonly SORT_DIR_KEY = '_order';\n protected static readonly PAGER_PAGE_KEY = '_page';\n protected static readonly PAGER_LIMIT_KEY = '_limit';\n protected static readonly FILTER_FIELD_KEY = '#field#_like';\n protected static readonly TOTAL_KEY = 'x-total-count';\n protected static readonly DATA_KEY = '';\n\n endPoint: string;\n\n sortFieldKey: string;\n sortDirKey: string;\n pagerPageKey: string;\n pagerLimitKey: string;\n filterFieldKey: string;\n totalKey: string;\n dataKey: string;\n\n constructor(\n { endPoint = '', sortFieldKey = '', sortDirKey = '',\n pagerPageKey = '', pagerLimitKey = '', filterFieldKey = '', totalKey = '', dataKey = '' } = {}) {\n\n this.endPoint = endPoint ? endPoint : '';\n\n this.sortFieldKey = sortFieldKey ? sortFieldKey : ServerSourceConf.SORT_FIELD_KEY;\n this.sortDirKey = sortDirKey ? sortDirKey : ServerSourceConf.SORT_DIR_KEY;\n this.pagerPageKey = pagerPageKey ? pagerPageKey : ServerSourceConf.PAGER_PAGE_KEY;\n this.pagerLimitKey = pagerLimitKey ? pagerLimitKey : ServerSourceConf.PAGER_LIMIT_KEY;\n this.filterFieldKey = filterFieldKey ? filterFieldKey : ServerSourceConf.FILTER_FIELD_KEY;\n this.totalKey = totalKey ? totalKey : ServerSourceConf.TOTAL_KEY;\n this.dataKey = dataKey ? dataKey : ServerSourceConf.DATA_KEY;\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nimport { LocalDataSource } from '../local/local.data-source';\nimport { ServerSourceConf } from './server-source.conf';\nimport { getDeepFromObject } from '../../helpers';\n\nimport { map } from 'rxjs/operators';\n\nexport class ServerDataSource extends LocalDataSource {\n\n protected conf: ServerSourceConf;\n\n protected lastRequestCount: number = 0;\n\n constructor(protected http: HttpClient, conf: ServerSourceConf | {} = {}) {\n super();\n\n this.conf = new ServerSourceConf(conf);\n\n if (!this.conf.endPoint) {\n throw new Error('At least endPoint must be specified as a configuration of the server data source.');\n }\n }\n\n count(): number {\n return this.lastRequestCount;\n }\n\n getElements(): Promise<any> {\n return this.requestElements()\n .pipe(map(res => {\n this.lastRequestCount = this.extractTotalFromResponse(res);\n this.data = this.extractDataFromResponse(res);\n\n return this.data;\n })).toPromise();\n }\n\n /**\n * Extracts array of data from server response\n * @param res\n * @returns {any}\n */\n protected extractDataFromResponse(res: any): Array<any> {\n const rawData = res.body;\n const data = !!this.conf.dataKey ? getDeepFromObject(rawData, this.conf.dataKey, []) : rawData;\n\n if (data instanceof Array) {\n return data;\n }\n\n throw new Error(`Data must be an array.\n Please check that data extracted from the server response by the key '${this.conf.dataKey}' exists and is array.`);\n }\n\n /**\n * Extracts total rows count from the server response\n * Looks for the count in the heders first, then in the response body\n * @param res\n * @returns {any}\n */\n protected extractTotalFromResponse(res: any): number {\n if (res.headers.has(this.conf.totalKey)) {\n return +res.headers.get(this.conf.totalKey);\n } else {\n const rawData = res.body;\n return getDeepFromObject(rawData, this.conf.totalKey, 0);\n }\n }\n\n protected requestElements(): Observable<any> {\n let httpParams = this.createRequesParams();\n return this.http.get(this.conf.endPoint, { params: httpParams, observe: 'response' });\n }\n\n protected createRequesParams(): HttpParams {\n let httpParams = new HttpParams();\n\n httpParams = this.addSortRequestParams(httpParams);\n httpParams = this.addFilterRequestParams(httpParams);\n return this.addPagerRequestParams(httpParams);\n }\n\n protected addSortRequestParams(httpParams: HttpParams): HttpParams {\n if (this.sortConf) {\n this.sortConf.forEach((fieldConf) => {\n httpParams = httpParams.set(this.conf.sortFieldKey, fieldConf.field);\n httpParams = httpParams.set(this.conf.sortDirKey, fieldConf.direction.toUpperCase());\n });\n }\n\n return httpParams;\n }\n\n protected addFilterRequestParams(httpParams: HttpParams): HttpParams {\n\n if (this.filterConf.filters) {\n this.filterConf.filters.forEach((fieldConf: any) => {\n if (fieldConf['search']) {\n httpParams = httpParams.set(this.conf.filterFieldKey.replace('#field#', fieldConf['field']), fieldConf['search']);\n }\n });\n }\n\n return httpParams;\n }\n\n protected addPagerRequestParams(httpParams: HttpParams): HttpParams {\n\n if (this.pagingConf && this.pagingConf['page'] && this.pagingConf['perPage']) {\n httpParams = httpParams.set(this.conf.pagerPageKey, this.pagingConf['page']);\n httpParams = httpParams.set(this.conf.pagerLimitKey, this.pagingConf['perPage']);\n }\n\n return httpParams;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","_c1"],"mappings":"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"}
|