UNPKG

ferngully-aurelia-tools

Version:

Ferngully Tools for Aurelia

81 lines 3.89 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { SortDataType } from "../resources/valueConverters/sort"; import { computedFrom, transient, inject } from "aurelia-framework"; let SortColumnService = class SortColumnService { constructor() { this.columns = new Map(); this.toggleDirection = true; this.sortEnabled = true; } set currentSortColumn(columnSortState) { if (columnSortState) { this._currentSortColumn = Object.assign({}, columnSortState); Object.defineProperty(this._currentSortColumn, "sortEnabled", Object.getOwnPropertyDescriptor(Object.getPrototypeOf(columnSortState), "sortEnabled")); } else { this._currentSortColumn = undefined; } } get currentSortColumn() { return this._currentSortColumn ? this._currentSortColumn : this.columns.values().next().value; } registerColumnState(descending, columnName, valueResolver, dataType, setToDefault, tieBreakerColumnName, tieBreakerDataType, ordinalPositionPropertyName) { if (!this.columns.has(columnName)) { let columnState = new ColumnState(columnName, valueResolver, this, descending, dataType, tieBreakerColumnName, tieBreakerDataType, ordinalPositionPropertyName); this.columns.set(columnName, columnState); if (setToDefault) { this.currentSortColumn = columnState; } } return this; } setSort(columnName) { if (!this.sortEnabled) { return; } let column = this.columns.get(columnName); if (column) { let changingColumn = (!this.currentSortColumn) || (this.currentSortColumn.columnName !== columnName); let toggleDirection = this.toggleDirection && !changingColumn; if (toggleDirection) { column.descending = !column.descending; } this.currentSortColumn = column; } } }; __decorate([ computedFrom("_currentSortColumn"), __metadata("design:type", Object), __metadata("design:paramtypes", [Object]) ], SortColumnService.prototype, "currentSortColumn", null); SortColumnService = __decorate([ transient(), inject() ], SortColumnService); export { SortColumnService }; class ColumnState { get sortEnabled() { return this.sortColumnService.sortEnabled; } constructor(columnName, valueResolver, sortColumnService, descending, dataType, tieBreakerColumnName, tieBreakerDataType, ordinalPositionPropertyName) { this.columnName = columnName; this.valueResolver = valueResolver; this.descending = descending; this.dataType = dataType ? dataType : SortDataType.number; this.tieBreakerColumnName = tieBreakerColumnName; this.tieBreakerDataType = tieBreakerDataType; this.ordinalPositionPropertyName = ordinalPositionPropertyName; this.sortColumnService = sortColumnService; } } export { SortDataType } from "../resources/valueConverters/sort"; //# sourceMappingURL=sort-column-service.js.map