UNPKG

@greg-md/ng-flex-css-layout

Version:

Flex-CSS-Layout is an alternative behaviour of Flex-Layout directives, that will still work with Angular Universal and App Shell.

61 lines (60 loc) 5.44 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * The flex API permits 3 or 1 parts of the value: * - `flex-grow flex-shrink flex-basis`, or * - `flex-basis` * @param {?} basis * @param {?=} grow * @param {?=} shrink * @return {?} */ export function validateBasis(basis, grow, shrink) { if (grow === void 0) { grow = '1'; } if (shrink === void 0) { shrink = '1'; } var /** @type {?} */ parts = [grow, shrink, basis]; var /** @type {?} */ j = basis.indexOf('calc'); if (j > 0) { parts[2] = _validateCalcValue(basis.substring(j).trim()); var /** @type {?} */ matches = basis.substr(0, j).trim().split(' '); if (matches.length === 2) { parts[0] = matches[0]; parts[1] = matches[1]; } } else if (j === 0) { parts[2] = _validateCalcValue(basis.trim()); } else { var /** @type {?} */ matches = basis.split(' '); parts = (matches.length === 3) ? matches : [ grow, shrink, basis ]; } return parts; } /** * Calc expressions require whitespace before & after any expression operators * This is a simple, crude whitespace padding solution. * - '3 3 calc(15em + 20px)' * - calc(100% / 7 * 2) * - 'calc(15em + 20px)' * - 'calc(15em+20px)' * - '37px' * = '43%' * @param {?} calc * @return {?} */ function _validateCalcValue(calc) { return calc.replace(/[\s]/g, '').replace(/[\/\*\+\-]/g, ' $& '); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXMtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyZWctbWQvbmctZmxleC1jc3MtbGF5b3V0LyIsInNvdXJjZXMiOlsibGliL2Jhc2lzLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLE1BQU0sd0JBQXdCLEtBQWEsRUFBRSxJQUFVLEVBQUUsTUFBWTtJQUF4QixxQkFBQSxFQUFBLFVBQVU7SUFBRSx1QkFBQSxFQUFBLFlBQVk7SUFDbkUscUJBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVsQyxxQkFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNWLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekQscUJBQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO0tBQ0Y7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQzdDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixxQkFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSztTQUNwQixDQUFDO0tBQ0g7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDO0NBQ2Q7Ozs7Ozs7Ozs7Ozs7QUFhRCw0QkFBNEIsSUFBWTtJQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztDQUNqRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIFRoZSBmbGV4IEFQSSBwZXJtaXRzIDMgb3IgMSBwYXJ0cyBvZiB0aGUgdmFsdWU6XG4gKiAgICAtIGBmbGV4LWdyb3cgZmxleC1zaHJpbmsgZmxleC1iYXNpc2AsIG9yXG4gKiAgICAtIGBmbGV4LWJhc2lzYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVCYXNpcyhiYXNpczogc3RyaW5nLCBncm93ID0gJzEnLCBzaHJpbmsgPSAnMScpOiBzdHJpbmdbXXxudW1iZXJbXSB7XG4gIGxldCBwYXJ0cyA9IFtncm93LCBzaHJpbmssIGJhc2lzXTtcblxuICBjb25zdCBqID0gYmFzaXMuaW5kZXhPZignY2FsYycpO1xuICBpZiAoaiA+IDApIHtcbiAgICBwYXJ0c1syXSA9IF92YWxpZGF0ZUNhbGNWYWx1ZShiYXNpcy5zdWJzdHJpbmcoaikudHJpbSgpKTtcbiAgICBjb25zdCBtYXRjaGVzID0gYmFzaXMuc3Vic3RyKDAsIGopLnRyaW0oKS5zcGxpdCgnICcpO1xuICAgIGlmIChtYXRjaGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgcGFydHNbMF0gPSBtYXRjaGVzWzBdO1xuICAgICAgcGFydHNbMV0gPSBtYXRjaGVzWzFdO1xuICAgIH1cbiAgfSBlbHNlIGlmIChqID09PSAwKSB7XG4gICAgcGFydHNbMl0gPSBfdmFsaWRhdGVDYWxjVmFsdWUoYmFzaXMudHJpbSgpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtYXRjaGVzID0gYmFzaXMuc3BsaXQoJyAnKTtcbiAgICBwYXJ0cyA9IChtYXRjaGVzLmxlbmd0aCA9PT0gMykgPyBtYXRjaGVzIDogW1xuICAgICAgZ3Jvdywgc2hyaW5rLCBiYXNpc1xuICAgIF07XG4gIH1cblxuICByZXR1cm4gcGFydHM7XG59XG5cblxuLyoqXG4gKiBDYWxjIGV4cHJlc3Npb25zIHJlcXVpcmUgd2hpdGVzcGFjZSBiZWZvcmUgJiBhZnRlciBhbnkgZXhwcmVzc2lvbiBvcGVyYXRvcnNcbiAqIFRoaXMgaXMgYSBzaW1wbGUsIGNydWRlIHdoaXRlc3BhY2UgcGFkZGluZyBzb2x1dGlvbi5cbiAqICAgLSAnMyAzIGNhbGMoMTVlbSArIDIwcHgpJ1xuICogICAtIGNhbGMoMTAwJSAvIDcgKiAyKVxuICogICAtICdjYWxjKDE1ZW0gKyAyMHB4KSdcbiAqICAgLSAnY2FsYygxNWVtKzIwcHgpJ1xuICogICAtICczN3B4J1xuICogICA9ICc0MyUnXG4gKi9cbmZ1bmN0aW9uIF92YWxpZGF0ZUNhbGNWYWx1ZShjYWxjOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY2FsYy5yZXBsYWNlKC9bXFxzXS9nLCAnJykucmVwbGFjZSgvW1xcL1xcKlxcK1xcLV0vZywgJyAkJiAnKTtcbn1cbiJdfQ==