material-dynamic-table
Version:
Dynamic table component for angular built on top of angular material table. It offers sorting, pagination, filtering per column and the ability to specify content types and components used for displaying them.
52 lines • 7.08 kB
JavaScript
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
/**
* Originating source of column resize events within a table.
* @docs-private
*/
export class ColumnResizeNotifierSource {
constructor() {
/** Emits when an in-progress resize is canceled. */
this.resizeCanceled = new Subject();
/** Emits when a resize is applied. */
this.resizeCompleted = new Subject();
/** Triggers a resize action. */
this.triggerResize = new Subject();
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnResizeNotifierSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnResizeNotifierSource }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnResizeNotifierSource, decorators: [{
type: Injectable
}] });
/** Service for triggering column resizes imperatively or being notified of them. */
export class ColumnResizeNotifier {
constructor(_source) {
this._source = _source;
/** Emits whenever a column is resized. */
this.resizeCompleted = this._source.resizeCompleted;
}
/** Instantly resizes the specified column. */
resize(columnId, size) {
this._source.triggerResize.next({
columnId,
size,
completeImmediately: true,
isStickyColumn: true,
});
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnResizeNotifier, deps: [{ token: ColumnResizeNotifierSource }], target: i0.ɵɵFactoryTarget.Injectable }); }
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnResizeNotifier }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnResizeNotifier, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: ColumnResizeNotifierSource }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlc2l6ZS1ub3RpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvc3JjL2xpYi9jb2x1bW4tcmVzaXplL2NvbHVtbi1yZXNpemUtbm90aWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQTZCM0M7OztHQUdHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQUR2QztRQUVFLG9EQUFvRDtRQUMzQyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFvQixDQUFDO1FBRTFELHNDQUFzQztRQUM3QixvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFFckQsZ0NBQWdDO1FBQ3ZCLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQW9CLENBQUM7S0FDMUQ7a0lBVFksMEJBQTBCO3NJQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVU7O0FBWVgsb0ZBQW9GO0FBRXBGLE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsWUFBNkIsT0FBbUM7UUFBbkMsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFIaEUsMENBQTBDO1FBQ2pDLG9CQUFlLEdBQTJCLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBRVosQ0FBQztJQUVyRSw4Q0FBOEM7SUFDOUMsTUFBTSxDQUFDLFFBQWdCLEVBQUUsSUFBWTtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDOUIsUUFBUTtZQUNSLElBQUk7WUFDSixtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLGNBQWMsRUFBRSxJQUFJO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7a0lBZFUsb0JBQW9CO3NJQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqIEluZGljYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4uICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uU2l6ZSB7XHJcbiAgLyoqIFRoZSBJRC9uYW1lIG9mIHRoZSBjb2x1bW4sIGFzIGRlZmluZWQgaW4gQ2RrQ29sdW1uRGVmLiAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbklkOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBUaGUgd2lkdGggaW4gcGl4ZWxzIG9mIHRoZSBjb2x1bW4uICovXHJcbiAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyO1xyXG5cclxuICAvKiogVGhlIHdpZHRoIGluIHBpeGVscyBvZiB0aGUgY29sdW1uIHByaW9yIHRvIHRoaXMgdXBkYXRlLCBpZiBrbm93bi4gKi9cclxuICByZWFkb25seSBwcmV2aW91c1NpemU/OiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKiBJbnRlcmZhY2UgZGVzY3JpYmluZyBjb2x1bW4gc2l6ZSBjaGFuZ2VzLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtblNpemVBY3Rpb24gZXh0ZW5kcyBDb2x1bW5TaXplIHtcclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSByZXNpemUgYWN0aW9uIHNob3VsZCBiZSBhcHBsaWVkIGluc3RhbnRhbmVvdXNseS4gRmFsc2UgZm9yIGV2ZW50cyB0cmlnZ2VyZWQgZHVyaW5nXHJcbiAgICogYSBVSS10cmlnZ2VyZWQgcmVzaXplIChzdWNoIGFzIHdpdGggdGhlIG1vdXNlKSB1bnRpbCB0aGUgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLiBUcnVlXHJcbiAgICogZm9yIGFsbCBwcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXJlZCByZXNpemVzLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbXBsZXRlSW1tZWRpYXRlbHk/OiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSByZXNpemUgYWN0aW9uIGlzIGJlaW5nIGFwcGxpZWQgdG8gYSBzdGlja3kvc3RpY2t5RW5kIGNvbHVtbi5cclxuICAgKi9cclxuICByZWFkb25seSBpc1N0aWNreUNvbHVtbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBPcmlnaW5hdGluZyBzb3VyY2Ugb2YgY29sdW1uIHJlc2l6ZSBldmVudHMgd2l0aGluIGEgdGFibGUuXHJcbiAqIEBkb2NzLXByaXZhdGVcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbHVtblJlc2l6ZU5vdGlmaWVyU291cmNlIHtcclxuICAvKiogRW1pdHMgd2hlbiBhbiBpbi1wcm9ncmVzcyByZXNpemUgaXMgY2FuY2VsZWQuICovXHJcbiAgcmVhZG9ubHkgcmVzaXplQ2FuY2VsZWQgPSBuZXcgU3ViamVjdDxDb2x1bW5TaXplQWN0aW9uPigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIHJlc2l6ZSBpcyBhcHBsaWVkLiAqL1xyXG4gIHJlYWRvbmx5IHJlc2l6ZUNvbXBsZXRlZCA9IG5ldyBTdWJqZWN0PENvbHVtblNpemU+KCk7XHJcblxyXG4gIC8qKiBUcmlnZ2VycyBhIHJlc2l6ZSBhY3Rpb24uICovXHJcbiAgcmVhZG9ubHkgdHJpZ2dlclJlc2l6ZSA9IG5ldyBTdWJqZWN0PENvbHVtblNpemVBY3Rpb24+KCk7XHJcbn1cclxuXHJcbi8qKiBTZXJ2aWNlIGZvciB0cmlnZ2VyaW5nIGNvbHVtbiByZXNpemVzIGltcGVyYXRpdmVseSBvciBiZWluZyBub3RpZmllZCBvZiB0aGVtLiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5SZXNpemVOb3RpZmllciB7XHJcbiAgLyoqIEVtaXRzIHdoZW5ldmVyIGEgY29sdW1uIGlzIHJlc2l6ZWQuICovXHJcbiAgcmVhZG9ubHkgcmVzaXplQ29tcGxldGVkOiBPYnNlcnZhYmxlPENvbHVtblNpemU+ID0gdGhpcy5fc291cmNlLnJlc2l6ZUNvbXBsZXRlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfc291cmNlOiBDb2x1bW5SZXNpemVOb3RpZmllclNvdXJjZSkgeyB9XHJcblxyXG4gIC8qKiBJbnN0YW50bHkgcmVzaXplcyB0aGUgc3BlY2lmaWVkIGNvbHVtbi4gKi9cclxuICByZXNpemUoY29sdW1uSWQ6IHN0cmluZywgc2l6ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zb3VyY2UudHJpZ2dlclJlc2l6ZS5uZXh0KHtcclxuICAgICAgY29sdW1uSWQsXHJcbiAgICAgIHNpemUsXHJcbiAgICAgIGNvbXBsZXRlSW1tZWRpYXRlbHk6IHRydWUsXHJcbiAgICAgIGlzU3RpY2t5Q29sdW1uOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==