UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

45 lines 5.09 kB
import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; /** * This pipe filters an array and returns the result. * Normally we would get an exception if we simply returned the transformed * array as it causes an additional change detection cycle in dev mode. * * To avoid this we always return the same array an merely add remove items from it * This is not a great option for large arrays, but will work fine for small ones. * * See the following stack overflow question for more details * http://stackoverflow.com/a/34497504/7292792 */ export class FilterPipe { constructor() { this.tmp = []; } transform(value, filter, not = false) { this.tmp.length = 0; if (value && Array.isArray(value)) { let filterFunc = filter; if (typeof filter === 'string') { const prop = filter; filterFunc = item => item[prop]; } if (not) { const originalFunc = filterFunc; filterFunc = item => !originalFunc(item); } const arr = value.filter(filterFunc); this.tmp.push(...arr); } return this.tmp; } } /** @nocollapse */ FilterPipe.ɵfac = function FilterPipe_Factory(t) { return new (t || FilterPipe)(); }; /** @nocollapse */ FilterPipe.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "smeFilter", type: FilterPipe, pure: false }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterPipe, [{ type: Pipe, args: [{ name: 'smeFilter', pure: false }] }], null, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9waXBlcy9maWx0ZXItcGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBZnZCO1FBZ0JZLFFBQUcsR0FBRyxFQUFFLENBQUM7S0FrQnBCO0lBakJVLFNBQVMsQ0FBQyxLQUFpQixFQUFFLE1BQTRDLEVBQUUsTUFBVyxLQUFLO1FBQzlGLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLElBQUksVUFBVSxHQUE2RCxNQUFNLENBQUM7WUFDbEYsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQzVCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQztnQkFDcEIsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25DO1lBQ0QsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDO2dCQUNoQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1QztZQUNELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNwQixDQUFDOzt1RkFsQlEsVUFBVTsyR0FBVixVQUFVO3VGQUFWLFVBQVU7Y0FmdEIsSUFBSTtlQUFDO2dCQUNGLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsS0FBSzthQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ3NtZUZpbHRlcicsXHJcbiAgICBwdXJlOiBmYWxzZVxyXG59KVxyXG4vKipcclxuICogVGhpcyBwaXBlIGZpbHRlcnMgYW4gYXJyYXkgYW5kIHJldHVybnMgdGhlIHJlc3VsdC5cclxuICogTm9ybWFsbHkgd2Ugd291bGQgZ2V0IGFuIGV4Y2VwdGlvbiBpZiB3ZSBzaW1wbHkgcmV0dXJuZWQgdGhlIHRyYW5zZm9ybWVkXHJcbiAqIGFycmF5IGFzIGl0IGNhdXNlcyBhbiBhZGRpdGlvbmFsIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgaW4gZGV2IG1vZGUuXHJcbiAqXHJcbiAqIFRvIGF2b2lkIHRoaXMgd2UgYWx3YXlzIHJldHVybiB0aGUgc2FtZSBhcnJheSBhbiBtZXJlbHkgYWRkIHJlbW92ZSBpdGVtcyBmcm9tIGl0XHJcbiAqIFRoaXMgaXMgbm90IGEgZ3JlYXQgb3B0aW9uIGZvciBsYXJnZSBhcnJheXMsIGJ1dCB3aWxsIHdvcmsgZmluZSBmb3Igc21hbGwgb25lcy5cclxuICpcclxuICogU2VlIHRoZSBmb2xsb3dpbmcgc3RhY2sgb3ZlcmZsb3cgcXVlc3Rpb24gZm9yIG1vcmUgZGV0YWlsc1xyXG4gKiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zNDQ5NzUwNC83MjkyNzkyXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgcHJpdmF0ZSB0bXAgPSBbXTtcclxuICAgIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IEFycmF5PGFueT4sIGZpbHRlcjogc3RyaW5nIHwgTXNmdFNtZS5GdW5jMTxhbnksIGJvb2xlYW4+LCBub3Q6IGFueSA9IGZhbHNlKTogQXJyYXk8YW55PiB7XHJcbiAgICAgICAgdGhpcy50bXAubGVuZ3RoID0gMDtcclxuICAgICAgICBpZiAodmFsdWUgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgbGV0IGZpbHRlckZ1bmM6IE1zZnRTbWUuRnVuYzE8YW55LCBib29sZWFuPiA9IDxNc2Z0U21lLkZ1bmMxPGFueSwgYm9vbGVhbj4+ZmlsdGVyO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByb3AgPSBmaWx0ZXI7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJGdW5jID0gaXRlbSA9PiBpdGVtW3Byb3BdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChub3QpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRnVuYyA9IGZpbHRlckZ1bmM7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJGdW5jID0gaXRlbSA9PiAhb3JpZ2luYWxGdW5jKGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFyciA9IHZhbHVlLmZpbHRlcihmaWx0ZXJGdW5jKTtcclxuICAgICAgICAgICAgdGhpcy50bXAucHVzaCguLi5hcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy50bXA7XHJcbiAgICB9XHJcbn1cclxuIl19