package d2graph

func ( *Object) () bool {
	return  != nil &&
		(.GridRows != nil || .GridColumns != nil)
}

func ( *Object) () *Object {
	if  == nil {
		return nil
	}
	if .IsGridDiagram() {
		return 
	}
	return .Parent.()
}

func ( *Object) () *Object {
	if  == nil {
		return nil
	}
	// grid cells can be a nested grid diagram
	if .Parent.IsGridDiagram() {
		return 
	}
	return .Parent.()
}

// TopGridDiagram returns the least nested (outermost) grid diagram
func ( *Object) () *Object {
	if  == nil {
		return nil
	}
	var  *Object
	if .IsGridDiagram() {
		 = 
	}
	 := .Parent
	for  != nil {
		if .IsGridDiagram() {
			 = 
		}
		 = .Parent
	}
	return 
}