@clr/angular
Version:
Angular components for Clarity
43 lines • 4.7 kB
JavaScript
/*
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
* This software is released under MIT license.
* The full license information can be found in LICENSE in the root directory of this project.
*/
import { Directive, Input, Optional } from '@angular/core';
import { columnToggleTrackByFn } from './datagrid-column-toggle-trackby';
import * as i0 from "@angular/core";
import * as i1 from "./providers/items";
export class ClrDatagridItemsTrackBy {
constructor(_items) {
this._items = _items;
}
set trackBy(value) {
/**
* This is a workaround to prevent the items `trackBy` function from
* being replaced when the "manage columns" button is clicked. This is
* not a complete solution. If there is another `ngForTrackBy` function
* within the datagrid in application code, it could sill replace the
* items `trackBy` function whether it is the row iterator or not.
*/
if (value === columnToggleTrackByFn) {
return;
}
if (this._items) {
this._items.iteratorTrackBy = value;
}
}
}
ClrDatagridItemsTrackBy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridItemsTrackBy, deps: [{ token: i1.Items, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
ClrDatagridItemsTrackBy.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: { trackBy: ["ngForTrackBy", "trackBy"] }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridItemsTrackBy, decorators: [{
type: Directive,
args: [{
selector: '[ngForTrackBy]',
}]
}], ctorParameters: function () { return [{ type: i1.Items, decorators: [{
type: Optional
}] }]; }, propDecorators: { trackBy: [{
type: Input,
args: ['ngForTrackBy']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtaXRlbXMtdHJhY2tieS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2RhdGEvZGF0YWdyaWQvZGF0YWdyaWQtaXRlbXMtdHJhY2tieS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBTXpFLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBZ0MsTUFBZ0I7UUFBaEIsV0FBTSxHQUFOLE1BQU0sQ0FBVTtJQUFHLENBQUM7SUFFcEQsSUFDSSxPQUFPLENBQUMsS0FBeUI7UUFDbkM7Ozs7OztXQU1HO1FBQ0gsSUFBSSxLQUFLLEtBQUsscUJBQXFCLEVBQUU7WUFDbkMsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7b0hBbkJVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7OzBCQUVjLFFBQVE7NENBR2pCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIzIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPcHRpb25hbCwgVHJhY2tCeUZ1bmN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGNvbHVtblRvZ2dsZVRyYWNrQnlGbiB9IGZyb20gJy4vZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10cmFja2J5JztcbmltcG9ydCB7IEl0ZW1zIH0gZnJvbSAnLi9wcm92aWRlcnMvaXRlbXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdGb3JUcmFja0J5XScsXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGFncmlkSXRlbXNUcmFja0J5PFQgPSBhbnk+IHtcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfaXRlbXM6IEl0ZW1zPFQ+KSB7fVxuXG4gIEBJbnB1dCgnbmdGb3JUcmFja0J5JylcbiAgc2V0IHRyYWNrQnkodmFsdWU6IFRyYWNrQnlGdW5jdGlvbjxUPikge1xuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIHByZXZlbnQgdGhlIGl0ZW1zIGB0cmFja0J5YCBmdW5jdGlvbiBmcm9tXG4gICAgICogYmVpbmcgcmVwbGFjZWQgd2hlbiB0aGUgXCJtYW5hZ2UgY29sdW1uc1wiIGJ1dHRvbiBpcyBjbGlja2VkLiBUaGlzIGlzXG4gICAgICogbm90IGEgY29tcGxldGUgc29sdXRpb24uIElmIHRoZXJlIGlzIGFub3RoZXIgYG5nRm9yVHJhY2tCeWAgZnVuY3Rpb25cbiAgICAgKiB3aXRoaW4gdGhlIGRhdGFncmlkIGluIGFwcGxpY2F0aW9uIGNvZGUsIGl0IGNvdWxkIHNpbGwgcmVwbGFjZSB0aGVcbiAgICAgKiBpdGVtcyBgdHJhY2tCeWAgZnVuY3Rpb24gd2hldGhlciBpdCBpcyB0aGUgcm93IGl0ZXJhdG9yIG9yIG5vdC5cbiAgICAgKi9cbiAgICBpZiAodmFsdWUgPT09IGNvbHVtblRvZ2dsZVRyYWNrQnlGbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9pdGVtcykge1xuICAgICAgdGhpcy5faXRlbXMuaXRlcmF0b3JUcmFja0J5ID0gdmFsdWU7XG4gICAgfVxuICB9XG59XG4iXX0=