Skip to content

Usage of JavaScript API

Custom widgets can use Leap's JavaScript API to help achieve their objectives.

The API can be accessed via the global NitroApplication object or by the passed-in context object. For example, the following is a widget that renders itself appropriately based on the form's currently selected page:

const myPageNavigator = {
    ...
    instantiate: function (context, domNode) {
        if (context.mode === 'run' || context.mode === 'preview') {
            const currentPage = context.page;
            context.form.getPageIds().forEach((pageId) => {
                const page = context.form.getPage(pageId);
                const btn = document.createElement('button');
                btn.innerHTML = makeHTMLSafe(page.getTitle());
                if (page === currentPage) {
                    btn.setAttribute('disabled', 'true');
                } else {
                    btn.addEventListener('click', () => {
                        context.form.selectPage(pageId);
                    });
                }
                domNode.appendChild(btn);                    
            });
        } else {
            ...
        }
        return { ... };
    }
}

Parent topic: Custom Widget API