com.phloxui
Version:
PhloxUI Ng2+ Framework
65 lines (64 loc) • 6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Pipe } from '@angular/core';
const /** @type {?} */ NAME = "phx_columnize";
export class ColumnizePipe {
/**
* @param {?} value
* @param {?=} cols
* @param {?=} ceiling
* @return {?}
*/
transform(value, cols, ceiling) {
if (value === null || value === undefined || !Array.isArray(value)) {
return value;
}
if (cols === null || cols === undefined || typeof cols !== 'number') {
cols = 0;
}
if (ceiling === null || ceiling === undefined || typeof ceiling !== 'boolean') {
ceiling = true;
}
if (cols <= 0) {
// Column count <= 0 means do not perform columnization.
return value;
}
let /** @type {?} */ remainder = value.length % cols;
let /** @type {?} */ colLen = (value.length - remainder) / cols;
if (remainder > 0 && ceiling) {
// In ceiling mode, the last column will always be the shortest.
// Or else, in flooring mode, the lst column will always be the longest.
colLen++;
}
let /** @type {?} */ re = [];
for (let /** @type {?} */ i = 0; i < cols; i++) {
let /** @type {?} */ stIdx = i * colLen;
let /** @type {?} */ enIdx = stIdx + colLen;
if (i === cols - 1) {
// This is the last column.
// Always set enIdx to the end of the array.
enIdx = value.length;
}
re.push(value.slice(stIdx, enIdx));
}
return re;
}
}
ColumnizePipe.decorators = [
{ type: Pipe, args: [{
name: NAME,
pure: false
},] },
];
function ColumnizePipe_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
ColumnizePipe.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
ColumnizePipe.ctorParameters;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uaXplUGlwZS5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvcGlwZS9Db2x1bW5pemVQaXBlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckMsdUJBQU0sSUFBSSxHQUFXLGVBQWUsQ0FBQztBQU1yQyxNQUFNOzs7Ozs7O0lBRUcsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFhLEVBQUUsT0FBaUI7UUFDM0QsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkUsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNkO1FBQ0QsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNWO1FBQ0QsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLE9BQU8sT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDOUUsT0FBTyxHQUFHLElBQUksQ0FBQztTQUNoQjtRQUVELEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOztZQUVkLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDZDtRQUVELHFCQUFJLFNBQVMsR0FBVyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUM1QyxxQkFBSSxNQUFNLEdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUV2RCxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUM7OztZQUc3QixNQUFNLEVBQUUsQ0FBQztTQUNWO1FBRUQscUJBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUVaLEdBQUcsQ0FBQyxDQUFDLHFCQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlCLHFCQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQ3ZCLHFCQUFJLEtBQUssR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBRTNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7O2dCQUduQixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUN0QjtZQUVELEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNwQztRQUVELE1BQU0sQ0FBQyxFQUFFLENBQUM7Ozs7WUE5Q2IsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxLQUFLO2FBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IE5BTUU6IHN0cmluZyA9IFwicGh4X2NvbHVtbml6ZVwiO1xuXG5AUGlwZSh7XG4gIG5hbWU6IE5BTUUsXG4gIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtbml6ZVBpcGUge1xuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IGFueSwgY29scz86IG51bWJlciwgY2VpbGluZz86IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoY29scyA9PT0gbnVsbCB8fCBjb2xzID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGNvbHMgIT09ICdudW1iZXInKSB7XG4gICAgICBjb2xzID0gMDtcbiAgICB9XG4gICAgaWYgKGNlaWxpbmcgPT09IG51bGwgfHwgY2VpbGluZyA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjZWlsaW5nICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIGNlaWxpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChjb2xzIDw9IDApIHtcbiAgICAgIC8vIENvbHVtbiBjb3VudCA8PSAwIG1lYW5zIGRvIG5vdCBwZXJmb3JtIGNvbHVtbml6YXRpb24uXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgbGV0IHJlbWFpbmRlcjogbnVtYmVyID0gdmFsdWUubGVuZ3RoICUgY29scztcbiAgICBsZXQgY29sTGVuOiBudW1iZXIgPSAodmFsdWUubGVuZ3RoIC0gcmVtYWluZGVyKSAvIGNvbHM7XG5cbiAgICBpZiAocmVtYWluZGVyID4gMCAmJiBjZWlsaW5nKSB7XG4gICAgICAvLyBJbiBjZWlsaW5nIG1vZGUsIHRoZSBsYXN0IGNvbHVtbiB3aWxsIGFsd2F5cyBiZSB0aGUgc2hvcnRlc3QuXG4gICAgICAvLyBPciBlbHNlLCBpbiBmbG9vcmluZyBtb2RlLCB0aGUgbHN0IGNvbHVtbiB3aWxsIGFsd2F5cyBiZSB0aGUgbG9uZ2VzdC5cbiAgICAgIGNvbExlbisrO1xuICAgIH1cblxuICAgIGxldCByZSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xzOyBpKyspIHtcbiAgICAgIGxldCBzdElkeCA9IGkgKiBjb2xMZW47XG4gICAgICBsZXQgZW5JZHggPSBzdElkeCArIGNvbExlbjtcblxuICAgICAgaWYgKGkgPT09IGNvbHMgLSAxKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgdGhlIGxhc3QgY29sdW1uLlxuICAgICAgICAvLyBBbHdheXMgc2V0IGVuSWR4IHRvIHRoZSBlbmQgb2YgdGhlIGFycmF5LlxuICAgICAgICBlbklkeCA9IHZhbHVlLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgcmUucHVzaCh2YWx1ZS5zbGljZShzdElkeCwgZW5JZHgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmU7XG4gIH1cblxufVxuIl19