@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.
72 lines (71 loc) • 6.65 kB
JavaScript
/**
* @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
*/
/**
* Applies CSS prefixes to appropriate style keys.
*
* Note: `-ms-`, `-moz` and `-webkit-box` are no longer supported. e.g.
* {
* display: -webkit-flex; NEW - Safari 6.1+. iOS 7.1+, BB10
* display: flex; NEW, Spec - Firefox, Chrome, Opera
* // display: -webkit-box; OLD - iOS 6-, Safari 3.1-6, BB7
* // display: -ms-flexbox; TWEENER - IE 10
* // display: -moz-flexbox; OLD - Firefox
* }
* @param {?} target
* @return {?}
*/
export function applyCssPrefixes(target) {
Object.keys(target).forEach(function (key) {
var /** @type {?} */ value = target[key] || '';
switch (key) {
case 'display':
if (value === 'flex') {
target['display'] = [
'-webkit-flex',
'flex'
];
}
else if (value === 'inline-flex') {
target['display'] = [
'-webkit-inline-flex',
'inline-flex'
];
}
else {
target['display'] = value;
}
break;
case 'align-items':
case 'align-self':
case 'align-content':
case 'flex':
case 'flex-basis':
case 'flex-flow':
case 'flex-grow':
case 'flex-shrink':
case 'flex-wrap':
case 'justify-content':
target['-webkit-' + key] = value;
break;
case 'flex-direction':
value = value || 'row';
target['-webkit-flex-direction'] = value;
target['flex-direction'] = value;
break;
case 'order':
target['order'] = target['-webkit-' + key] = isNaN(value) ? '0' : value;
break;
}
});
return target;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1wcmVmaXhlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BncmVnLW1kL25nLWZsZXgtY3NzLWxheW91dC8iLCJzb3VyY2VzIjpbImxpYi9hdXRvLXByZWZpeGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsTUFBTSwyQkFBMkIsTUFBTTtJQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLEdBQUc7UUFDN0IscUJBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFOUIsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNaLEtBQUssU0FBUztnQkFDWixFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHO3dCQUNsQixjQUFjO3dCQUNkLE1BQU07cUJBQ1AsQ0FBQztpQkFDSDtnQkFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUM7b0JBQ25DLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRzt3QkFDbEIscUJBQXFCO3dCQUNyQixhQUFhO3FCQUNkLENBQUM7aUJBQ0g7Z0JBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ04sTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQztpQkFDM0I7Z0JBQ0QsS0FBSyxDQUFDO1lBRVIsS0FBSyxhQUFhLENBQUM7WUFDbkIsS0FBSyxZQUFZLENBQUM7WUFDbEIsS0FBSyxlQUFlLENBQUM7WUFDckIsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFlBQVksQ0FBQztZQUNsQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLGFBQWEsQ0FBQztZQUNuQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLGlCQUFpQjtnQkFDcEIsTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLEtBQUssQ0FBQztZQUVSLEtBQUssZ0JBQWdCO2dCQUNuQixLQUFLLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQztnQkFDdkIsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUN6QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLEtBQUssQ0FBQztZQUVSLEtBQUssT0FBTztnQkFDVixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN4RSxLQUFLLENBQUM7U0FDVDtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxNQUFNLENBQUM7Q0FDZiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEFwcGxpZXMgQ1NTIHByZWZpeGVzIHRvIGFwcHJvcHJpYXRlIHN0eWxlIGtleXMuXG4gKlxuICogTm90ZTogYC1tcy1gLCBgLW1vemAgYW5kIGAtd2Via2l0LWJveGAgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuIGUuZy5cbiAqICAgIHtcbiAqICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OyAgICAgTkVXIC0gU2FmYXJpIDYuMSsuIGlPUyA3LjErLCBCQjEwXG4gKiAgICAgIGRpc3BsYXk6IGZsZXg7ICAgICAgICAgICAgIE5FVywgU3BlYyAtIEZpcmVmb3gsIENocm9tZSwgT3BlcmFcbiAqICAgICAgLy8gZGlzcGxheTogLXdlYmtpdC1ib3g7ICAgT0xEIC0gaU9TIDYtLCBTYWZhcmkgMy4xLTYsIEJCN1xuICogICAgICAvLyBkaXNwbGF5OiAtbXMtZmxleGJveDsgICBUV0VFTkVSIC0gSUUgMTBcbiAqICAgICAgLy8gZGlzcGxheTogLW1vei1mbGV4Ym94OyAgT0xEIC0gRmlyZWZveFxuICogICAgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlDc3NQcmVmaXhlcyh0YXJnZXQpIHtcbiAgT2JqZWN0LmtleXModGFyZ2V0KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgbGV0IHZhbHVlID0gdGFyZ2V0W2tleV0gfHwgJyc7XG5cbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSAnZGlzcGxheSc6XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJ2ZsZXgnKSB7XG4gICAgICAgICAgdGFyZ2V0WydkaXNwbGF5J10gPSBbXG4gICAgICAgICAgICAnLXdlYmtpdC1mbGV4JyxcbiAgICAgICAgICAgICdmbGV4J1xuICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09ICdpbmxpbmUtZmxleCcpIHtcbiAgICAgICAgICB0YXJnZXRbJ2Rpc3BsYXknXSA9IFtcbiAgICAgICAgICAgICctd2Via2l0LWlubGluZS1mbGV4JyxcbiAgICAgICAgICAgICdpbmxpbmUtZmxleCdcbiAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFsnZGlzcGxheSddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2FsaWduLWl0ZW1zJzpcbiAgICAgIGNhc2UgJ2FsaWduLXNlbGYnOlxuICAgICAgY2FzZSAnYWxpZ24tY29udGVudCc6XG4gICAgICBjYXNlICdmbGV4JzpcbiAgICAgIGNhc2UgJ2ZsZXgtYmFzaXMnOlxuICAgICAgY2FzZSAnZmxleC1mbG93JzpcbiAgICAgIGNhc2UgJ2ZsZXgtZ3Jvdyc6XG4gICAgICBjYXNlICdmbGV4LXNocmluayc6XG4gICAgICBjYXNlICdmbGV4LXdyYXAnOlxuICAgICAgY2FzZSAnanVzdGlmeS1jb250ZW50JzpcbiAgICAgICAgdGFyZ2V0Wyctd2Via2l0LScgKyBrZXldID0gdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdmbGV4LWRpcmVjdGlvbic6XG4gICAgICAgIHZhbHVlID0gdmFsdWUgfHwgJ3Jvdyc7XG4gICAgICAgIHRhcmdldFsnLXdlYmtpdC1mbGV4LWRpcmVjdGlvbiddID0gdmFsdWU7XG4gICAgICAgIHRhcmdldFsnZmxleC1kaXJlY3Rpb24nXSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnb3JkZXInOlxuICAgICAgICB0YXJnZXRbJ29yZGVyJ10gPSB0YXJnZXRbJy13ZWJraXQtJyArIGtleV0gPSBpc05hTih2YWx1ZSkgPyAnMCcgOiB2YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGFyZ2V0O1xufVxuIl19