Extension points

The Jimu library allows you to extend ArcGIS Experience Builder. In most cases, you extend Experience Builder by creating custom widgets and themes. Additionally, you can create deeper customizations through Jimu extensions.

The Jimu library defines specific extension points. An extension point defines the interface that extensions must conform to. An extension is a class that implements the extension point interface. This interface is the extensionSpec exported from jimu-core. To provide an extension in a widget, you must declare the extension in the widget's manifest.json file.

Use dark colors for code blocksCopy
1
2
3
4
5
6
"extensions": [
  {
    "point": "<Extension point name>",
    "uri": "<Extension uri, relative to src folder>"
  }
]

Jimu defines a variety of extension points that are defined in the API documentation. Two commonly-used extension points are:

  • AppConfigProcessor - The extension for this extension point receives the AppConfig and should return a promise that resolves the processed app config. This can be used to make runtime modifications to the app config, like translating strings (see the Translation sample). The process will be invoked just after app config is loaded.
  • DependencyDefine - Using this extension you can use third-party libraries that require initialization.
  • ReduxStore - Using this extension you can define the actions and reducers for your widget redux state.

Samples

See the Translation sample for an example of how to create an extension.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.