com.phloxui
Version:
PhloxUI Ng2+ Framework
75 lines (74 loc) • 6.31 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Pipe } from '@angular/core';
var /** @type {?} */ NAME = "phx_columnize";
var ColumnizePipe = /** @class */ (function () {
function ColumnizePipe() {
}
/**
* @param {?} value
* @param {?=} cols
* @param {?=} ceiling
* @return {?}
*/
ColumnizePipe.prototype.transform = /**
* @param {?} value
* @param {?=} cols
* @param {?=} ceiling
* @return {?}
*/
function (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;
}
var /** @type {?} */ remainder = value.length % cols;
var /** @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++;
}
var /** @type {?} */ re = [];
for (var /** @type {?} */ i = 0; i < cols; i++) {
var /** @type {?} */ stIdx = i * colLen;
var /** @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
},] },
];
return ColumnizePipe;
}());
export { ColumnizePipe };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uaXplUGlwZS5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvcGlwZS9Db2x1bW5pemVQaXBlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckMscUJBQU0sSUFBSSxHQUFXLGVBQWUsQ0FBQzs7Ozs7Ozs7OztJQVE1QixpQ0FBUzs7Ozs7O2NBQUMsS0FBVSxFQUFFLElBQWEsRUFBRSxPQUFpQjtRQUMzRCxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRSxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2Q7UUFDRCxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNwRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM5RSxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ2hCO1FBRUQsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7O1lBRWQsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNkO1FBRUQscUJBQUksU0FBUyxHQUFXLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzVDLHFCQUFJLE1BQU0sR0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXZELEVBQUUsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQzs7O1lBRzdCLE1BQU0sRUFBRSxDQUFDO1NBQ1Y7UUFFRCxxQkFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRVosR0FBRyxDQUFDLENBQUMscUJBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUIscUJBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDdkIscUJBQUksS0FBSyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUM7WUFFM0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDOzs7Z0JBR25CLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO2FBQ3RCO1lBRUQsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsTUFBTSxDQUFDLEVBQUUsQ0FBQzs7O2dCQTlDYixJQUFJLFNBQUM7b0JBQ0osSUFBSSxFQUFFLElBQUk7b0JBQ1YsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7O3dCQVBEOztTQVFhLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IE5BTUU6IHN0cmluZyA9IFwicGh4X2NvbHVtbml6ZVwiO1xuXG5AUGlwZSh7XG4gIG5hbWU6IE5BTUUsXG4gIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtbml6ZVBpcGUge1xuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IGFueSwgY29scz86IG51bWJlciwgY2VpbGluZz86IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoY29scyA9PT0gbnVsbCB8fCBjb2xzID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGNvbHMgIT09ICdudW1iZXInKSB7XG4gICAgICBjb2xzID0gMDtcbiAgICB9XG4gICAgaWYgKGNlaWxpbmcgPT09IG51bGwgfHwgY2VpbGluZyA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjZWlsaW5nICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIGNlaWxpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChjb2xzIDw9IDApIHtcbiAgICAgIC8vIENvbHVtbiBjb3VudCA8PSAwIG1lYW5zIGRvIG5vdCBwZXJmb3JtIGNvbHVtbml6YXRpb24uXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgbGV0IHJlbWFpbmRlcjogbnVtYmVyID0gdmFsdWUubGVuZ3RoICUgY29scztcbiAgICBsZXQgY29sTGVuOiBudW1iZXIgPSAodmFsdWUubGVuZ3RoIC0gcmVtYWluZGVyKSAvIGNvbHM7XG5cbiAgICBpZiAocmVtYWluZGVyID4gMCAmJiBjZWlsaW5nKSB7XG4gICAgICAvLyBJbiBjZWlsaW5nIG1vZGUsIHRoZSBsYXN0IGNvbHVtbiB3aWxsIGFsd2F5cyBiZSB0aGUgc2hvcnRlc3QuXG4gICAgICAvLyBPciBlbHNlLCBpbiBmbG9vcmluZyBtb2RlLCB0aGUgbHN0IGNvbHVtbiB3aWxsIGFsd2F5cyBiZSB0aGUgbG9uZ2VzdC5cbiAgICAgIGNvbExlbisrO1xuICAgIH1cblxuICAgIGxldCByZSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xzOyBpKyspIHtcbiAgICAgIGxldCBzdElkeCA9IGkgKiBjb2xMZW47XG4gICAgICBsZXQgZW5JZHggPSBzdElkeCArIGNvbExlbjtcblxuICAgICAgaWYgKGkgPT09IGNvbHMgLSAxKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgdGhlIGxhc3QgY29sdW1uLlxuICAgICAgICAvLyBBbHdheXMgc2V0IGVuSWR4IHRvIHRoZSBlbmQgb2YgdGhlIGFycmF5LlxuICAgICAgICBlbklkeCA9IHZhbHVlLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgcmUucHVzaCh2YWx1ZS5zbGljZShzdElkeCwgZW5JZHgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmU7XG4gIH1cblxufVxuIl19