ng2-stable-nxtc
Version:
Angular Smart Table neXtCode Version
100 lines • 4.61 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 { Component, Input, Output, EventEmitter } from '@angular/core';
import { DataSource } from '../../lib/data-source/data-source';
import { Column } from '../../lib/data-set/column';
let FilterComponent = class FilterComponent {
constructor() {
this.inputClass = '';
this.filter = new EventEmitter();
this.query = '';
}
ngOnChanges(changes) {
if (changes.source) {
if (!changes.source.firstChange) {
this.dataChangedSub.unsubscribe();
}
this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {
const filterConf = this.source.getFilter();
if (filterConf && filterConf.filters && filterConf.filters.length === 0) {
this.query = '';
// add a check for existing filters an set the query if one exists for this column
// this covers instances where the filter is set by user code while maintaining existing functionality
}
else if (filterConf && filterConf.filters && filterConf.filters.length > 0) {
filterConf.filters.forEach((k, v) => {
if (k.field == this.column.id) {
this.query = k.search;
}
});
}
});
}
}
onFilter(query) {
this.source.addFilter({
field: this.column.id,
search: query,
filter: this.column.getFilterFunction(),
});
}
};
__decorate([
Input(),
__metadata("design:type", Column)
], FilterComponent.prototype, "column", void 0);
__decorate([
Input(),
__metadata("design:type", DataSource)
], FilterComponent.prototype, "source", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FilterComponent.prototype, "inputClass", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FilterComponent.prototype, "filter", void 0);
FilterComponent = __decorate([
Component({
selector: 'ng2-smart-table-filter',
styles: [":host .ng2-smart-filter /deep/ input,:host .ng2-smart-filter /deep/ select{width:100%;line-height:normal;padding:.375em .75em;font-weight:400}:host .ng2-smart-filter /deep/ input[type=search]{box-sizing:inherit}:host .ng2-smart-filter /deep/ .completer-dropdown-holder{font-weight:400}:host .ng2-smart-filter /deep/ a{font-weight:400} /*# sourceMappingURL=filter.component.css.map */ "],
template: `
<div class="ng2-smart-filter" *ngIf="column.isFilterable" [ngSwitch]="column.getFilterType()">
<select-filter *ngSwitchCase="'list'"
[query]="query"
[ngClass]="inputClass"
[column]="column"
(filter)="onFilter($event)">
</select-filter>
<checkbox-filter *ngSwitchCase="'checkbox'"
[query]="query"
[ngClass]="inputClass"
[column]="column"
(filter)="onFilter($event)">
</checkbox-filter>
<completer-filter *ngSwitchCase="'completer'"
[query]="query"
[ngClass]="inputClass"
[column]="column"
(filter)="onFilter($event)">
</completer-filter>
<input-filter *ngSwitchDefault
[query]="query"
[ngClass]="inputClass"
[column]="column"
(filter)="onFilter($event)">
</input-filter>
</div>
`,
})
], FilterComponent);
export { FilterComponent };
//# sourceMappingURL=filter.component.js.map