I've done some additional work on the Custom Draw Widget. This is still mostly @RobertScheitlin__GISP's work. I've also incorporated some inspiration and a bit of code from @AdrienHoff11 to handle point symbol rotation. Reasons for this update:
- Some visual issues with buttons due to breaking changes circa 1.15.
- Adding point symbol rotation.
- ESRI added text support to the official Draw Widget with font options.
What can this widget do?
- From the original version:
- Draw stuff on a map
- Points
- Polylines
- Freehand Lines*
- Rectangles
- Polygons
- Freehand Polygons*
- Circles
- Text
- Edit vertices
- Move and delete drawings
- Edit drawing styles, text value and font style options after drawing*
- From my previous version:
- Various small bug fixes and UX enhancements. (See previous post for details.)
- In this version:
- All buttons should give appropriate visual feedback.
- When editing a point symbol, there is a rotation option.*
- Option in Build Mode to automatically stop drawing when Widget is closed in a Widget Controller.
- 11 font face options.
- Text previews accurately represent what will be placed on map.*
- Font names in the menu represent their own style*
*Not currently supported by the OOTB Draw Widget.
Why is point rotation edit only?
Practically mostly. But from a UX perspective, it made more sense that user would stamp on a bunch of arrows and then spin them to the orientation they need rather than set the rotation before stamping each arrow. Also, it is very hard to guess what the correct angle is before adding the point symbol.

Why these fonts?
All of these fonts are served from the Javascript API so they do not require hosting anywhere else to work on an ESRI map. The fonts need to support bold italic in order to not break if both bold and italic are turned on. In order to support accurate previews, I needed to use the Google Fonts CDN to import many of the fonts. This left 11 font families I could practically support. And I'm not sure having many more fonts would be better. Choice overload is a real problem. Many fonts are not very distinctive. And in the font world distinctive is a synonym for bad. All in all, I think this is a good list of fonts.

A Challenge
@Jianxia, Custom Widgets Group, let's make this competition official.
Who can build the better Draw Widget? I've laid out how were ahead. Can you catch up, @Jianxia? I know freehand drawings are coming soon.
Custom Widgets Group, here's where we are behind. Who's going to catch us up? I'm stepping away from this...at least for now.
- Copy drawings.
- Make the drawing layer appear in the Map Layers Widget.
- Number of font faces. (I'm not sure this is a problem.)
- Measurement.
- Snapping and Tooltips.
- Backgrounds behind text.
@BrianLeroux I have attempted to make a version of this widget that respects rotation of the underlying map and I have included my sort of working code. I don't really want to put more time into this specific function. Here are the problems:
- To get multiple points of the same type to respect rotation, you must first place the points, then rotate the map, the points should then follow map rotation afterwards.
- If you rotate a point and the map, the point becomes impossible to delete without clearing all the graphics.
- Deleted points will reappear after map rotation.
- Rotating a point will sometimes make a duplicate, unrotated copy. (This might be an issue in both versions of the widget.)
I am currently working with @Brian_McLeer to merge our projects together and create a super widget, bringing measurement and saving drawings into this widget.
The new version is here and it's fantastic! @Jianxia, we have reached full parity (ok, we didn't add more fonts) with the ESRI Draw and Measure Widgets and have pulled ahead in many respects, including line segment measurements, make-your-own-units, and saving/downloading/importing drawings.