/* Copyright IBM Corp. 2017 */ import { isString } from 'lodash'; import { isValidLayout } from './layout.utils'; import { WchTools } from './wchtools'; export function _getDefaultLayoutFromMapping(aLayoutMapping: any, aTools: WchTools): any { // check if we have a default const defaultLayout = aLayoutMapping.defaultLayout; if (isString(defaultLayout.id)) { // get the layout const layout = aTools.layouts[defaultLayout.id]; if (isValidLayout(layout)) { // return this one return layout; } } // iterate over the remaining layouts const layouts: any[] = aLayoutMapping.layouts; const result = layouts.filter(layout => isString(layout.id)).map(layout => aTools.layouts[layout.id]).filter(isValidLayout); if (result && (result.length > 0)) { return result[0]; } return undefined; } export function getDefaultLayout(aLayoutMapping: any, aTools: WchTools): any { // check the mappings const mappings = aLayoutMapping.mappings || []; const result = mappings.map((mapping: any) => _getDefaultLayoutFromMapping(mapping, aTools)).filter(Boolean); if (result && (result.length > 0)) { return result[0]; } return undefined; }