function createDependencyGraphItem(graph, name) {
	            if (!graph[name]) {
	                graph[name] = {predecessor: [], successor: []};
	            }
	            return graph[name];
	        }
If x or x2 is not specified or 'center' 'left' 'right',
the width would be as long as possible.
If y or y2 is not specified or 'middle' 'top' 'bottom',
the height would be as long as possible.

@param {Object} positionInfo
@param {number|string} [positionInfo.x]
@param {number|string} [positionInfo.y]
@param {number|string} [positionInfo.x2]
@param {number|string} [positionInfo.y2]
@param {Object} containerRect
@param {string|number} margin
@return {Object} {width, height}