UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

90 lines (89 loc) 8.76 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { TableRowController } from './TableRowController'; export class DefaultTableRowGenerator { /** * @param {?} a * @param {?} b * @param {?} comparator * @return {?} */ static compareIgnoreNullOrUndefined(a, b, comparator) { if (a === b) { return 0; } if ((a === null || a === undefined) && (b === null || b === undefined)) { return 0; } if (a === null || a === undefined) { return -1; } if (b === null || b === undefined) { return 1; } if (comparator === null || typeof comparator !== 'function') { return 0; } return comparator(a, b); } /** * @param {?} table * @param {?} data * @return {?} */ generateTableRows(table, data) { if (data === null || typeof data === 'undefined') { return []; } if (!Array.isArray(data)) { return []; } let /** @type {?} */ re = []; for (let /** @type {?} */ d of data) { let /** @type {?} */ row = new TableRowController(table, d); re.push(row); } return re; } /** * @param {?} compareRowData * @param {?} toRowData * @return {?} */ compareRowData(compareRowData, toRowData) { return DefaultTableRowGenerator.compareIgnoreNullOrUndefined(compareRowData, toRowData, (compareRowData, toRowData) => { return JSON.stringify(compareRowData).localeCompare(JSON.stringify(toRowData)); }); } /** * @param {?} compareRow * @param {?} toRow * @return {?} */ compareRow(compareRow, toRow) { return DefaultTableRowGenerator.compareIgnoreNullOrUndefined(compareRow, toRow, (compareRow, toRow) => { let /** @type {?} */ compareData = compareRow.getData(); let /** @type {?} */ toData = toRow.getData(); return this.compareRowData(compareData, toData); }); } /** * @param {?} rows * @param {?} rowData * @return {?} */ findRow(rows, rowData) { if (rows === null || rows === undefined || !Array.isArray(rows)) { return null; } for (let /** @type {?} */ row of rows) { if (this.compareRowData(row.getData(), rowData) === 0) { return row; } } return null; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFRhYmxlUm93R2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L3RhYmxlL0RlZmF1bHRUYWJsZVJvd0dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJMUQsTUFBTTs7Ozs7OztJQUVHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLFVBQW9CO1FBQzdFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RSxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNYO1FBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLE9BQU8sVUFBVSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDNUQsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNWO1FBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Ozs7Ozs7SUFHbkIsaUJBQWlCLENBQUMsS0FBaUIsRUFBRSxJQUFTO1FBQ25ELEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNqRCxNQUFNLENBQUMsRUFBRSxDQUFDO1NBQ1g7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxFQUFFLENBQUM7U0FDWDtRQUVELHFCQUFJLEVBQUUsR0FBMEIsRUFBRSxDQUFDO1FBQ25DLEdBQUcsQ0FBQyxDQUFDLHFCQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ25CLHFCQUFJLEdBQUcsR0FBd0IsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFaEUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkO1FBRUQsTUFBTSxDQUFDLEVBQUUsQ0FBQzs7Ozs7OztJQUdMLGNBQWMsQ0FBQyxjQUFtQixFQUFFLFNBQWM7UUFDdkQsTUFBTSxDQUFDLHdCQUF3QixDQUFDLDRCQUE0QixDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxjQUFtQixFQUFFLFNBQWMsRUFBRSxFQUFFO1lBQzlILE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDaEYsQ0FBQyxDQUFDOzs7Ozs7O0lBR0UsVUFBVSxDQUFDLFVBQStCLEVBQUUsS0FBMEI7UUFDM0UsTUFBTSxDQUFDLHdCQUF3QixDQUFDLDRCQUE0QixDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxVQUFlLEVBQUUsS0FBVSxFQUFFLEVBQUU7WUFDOUcscUJBQUksV0FBVyxHQUFRLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QyxxQkFBSSxNQUFNLEdBQVEsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRWxDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNqRCxDQUFDLENBQUM7Ozs7Ozs7SUFHRSxPQUFPLENBQUMsSUFBMkIsRUFBRSxPQUFZO1FBQ3RELEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDYjtRQUVELEdBQUcsQ0FBQyxDQUFDLHFCQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDWjtTQUNGO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQzs7Q0FHZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBobG94VGFibGUgfSBmcm9tICcuL1BobG94VGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUm93Q29udHJvbGxlciB9IGZyb20gJy4vVGFibGVSb3dDb250cm9sbGVyJztcbmltcG9ydCB7IElUYWJsZVJvd0NvbnRyb2xsZXIgfSBmcm9tICcuL0lUYWJsZVJvd0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgSVRhYmxlUm93R2VuZXJhdG9yIH0gZnJvbSAnLi9JVGFibGVSb3dHZW5lcmF0b3InO1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdFRhYmxlUm93R2VuZXJhdG9yIGltcGxlbWVudHMgSVRhYmxlUm93R2VuZXJhdG9yIHtcblxuICBwdWJsaWMgc3RhdGljIGNvbXBhcmVJZ25vcmVOdWxsT3JVbmRlZmluZWQoYTogYW55LCBiOiBhbnksIGNvbXBhcmF0b3I6IEZ1bmN0aW9uKTogbnVtYmVyIHtcbiAgICBpZiAoYSA9PT0gYikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGlmICgoYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWQpICYmIChiID09PSBudWxsIHx8IGIgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBpZiAoYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgaWYgKGIgPT09IG51bGwgfHwgYiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAoY29tcGFyYXRvciA9PT0gbnVsbCB8fCB0eXBlb2YgY29tcGFyYXRvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBhcmF0b3IoYSwgYik7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVUYWJsZVJvd3ModGFibGU6IFBobG94VGFibGUsIGRhdGE6IGFueSk6IElUYWJsZVJvd0NvbnRyb2xsZXJbXSB7XG4gICAgaWYgKGRhdGEgPT09IG51bGwgfHwgdHlwZW9mIGRhdGEgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCByZTogSVRhYmxlUm93Q29udHJvbGxlcltdID0gW107XG4gICAgZm9yIChsZXQgZCBvZiBkYXRhKSB7XG4gICAgICBsZXQgcm93OiBJVGFibGVSb3dDb250cm9sbGVyID0gbmV3IFRhYmxlUm93Q29udHJvbGxlcih0YWJsZSwgZCk7XG5cbiAgICAgIHJlLnB1c2gocm93KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmU7XG4gIH1cblxuICBwdWJsaWMgY29tcGFyZVJvd0RhdGEoY29tcGFyZVJvd0RhdGE6IGFueSwgdG9Sb3dEYXRhOiBhbnkpOiBudW1iZXIge1xuICAgIHJldHVybiBEZWZhdWx0VGFibGVSb3dHZW5lcmF0b3IuY29tcGFyZUlnbm9yZU51bGxPclVuZGVmaW5lZChjb21wYXJlUm93RGF0YSwgdG9Sb3dEYXRhLCAoY29tcGFyZVJvd0RhdGE6IGFueSwgdG9Sb3dEYXRhOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjb21wYXJlUm93RGF0YSkubG9jYWxlQ29tcGFyZShKU09OLnN0cmluZ2lmeSh0b1Jvd0RhdGEpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wYXJlUm93KGNvbXBhcmVSb3c6IElUYWJsZVJvd0NvbnRyb2xsZXIsIHRvUm93OiBJVGFibGVSb3dDb250cm9sbGVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gRGVmYXVsdFRhYmxlUm93R2VuZXJhdG9yLmNvbXBhcmVJZ25vcmVOdWxsT3JVbmRlZmluZWQoY29tcGFyZVJvdywgdG9Sb3csIChjb21wYXJlUm93OiBhbnksIHRvUm93OiBhbnkpID0+IHtcbiAgICAgIGxldCBjb21wYXJlRGF0YTogYW55ID0gY29tcGFyZVJvdy5nZXREYXRhKCk7XG4gICAgICBsZXQgdG9EYXRhOiBhbnkgPSB0b1Jvdy5nZXREYXRhKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVSb3dEYXRhKGNvbXBhcmVEYXRhLCB0b0RhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZpbmRSb3cocm93czogSVRhYmxlUm93Q29udHJvbGxlcltdLCByb3dEYXRhOiBhbnkpOiBJVGFibGVSb3dDb250cm9sbGVyIHtcbiAgICBpZiAocm93cyA9PT0gbnVsbCB8fCByb3dzID09PSB1bmRlZmluZWQgfHwgIUFycmF5LmlzQXJyYXkocm93cykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZvciAobGV0IHJvdyBvZiByb3dzKSB7XG4gICAgICBpZiAodGhpcy5jb21wYXJlUm93RGF0YShyb3cuZ2V0RGF0YSgpLCByb3dEYXRhKSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gcm93O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbn1cbiJdfQ==