ferngully-aurelia-tools
Version:
Ferngully Tools for Aurelia
81 lines • 3.89 kB
JavaScript
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