All widget configurations should register a function that returns an object satisfying this contract.
load: Function. This is the method that is called by the widget framework to load the widget configuration. The first parameter for this method is of type WidgetSettings. This will have the current saved settings of the widget. The second parameter for this method is of type IWidgetConfigurationContext which can be used to communicate with the widget framework. This method should return an object of type WidgetStatus wrapped in a Promise. Widgets can use the WidgetStatusHelper to return either Success or Failure.
onSave: Function. This is the method that is called by the widget framework when user clicks on the Save button. This method can be used to run any validations on user input if needed and show appropriate error message on the configuration pane to the user. If user input is deemed valid, then return the custom settings to be saved via WidgetConfigurationSave.Valid(). If user input is deemed invalid, then return invalid state via WidgetConfigurationSave.Invalid().