Operator with popup enum props

Hi
how can i create an operator which has a popup enumerated menu of it’s enum prop?
If i use invoke props popup or dialog i get a drop down menu of the prop like this:

channel = bpy.props.EnumProperty(
    items = [
    ('location.x','X location',''),
    ('location.y','Y location',''),
    ('location.z','Z location',''),
    ('rotation_euler.x','X Euler Rotation',''),
    ('rotation_euler.y','Y Euler Rotation',''),
    ('rotation_euler.z','Z Euler Rotation',''),
    ('scale.x','X Scale',''),
    ('scale.y','Y Scale',''),
    ('scale.z','Z Scale',''),
    ],
    name = "Channel",
)

context.window_manager.invoke_props_popup(self,event)


but i want an enumerated menu like the way some of the native operators (listed below) work.

bpy.ops.object.constraint_add_with_targets()
bpy.ops.anim.keyframe_insert_menu()
bpy.ops.object.move_to_collection()
wm.context_menu_enum

Is it possible to have a single operator with draw menu function or should i create separate operator and menu?
It seems the native ops are single operator with draw menu in it.
also how to get multi column enumerated menu?

Thanks a lot

yeah those aren’t enumproperties, those are menus with a bunch of operators. afaik that’s the only way to create a menu like that.

I found some enumeration options for operator’s draw function…
but the result is not like the native ones…