@appxite-npm/cpq-presenter
v1.49.0
Published
React/Redux component library that renders Appxite CPQ (Configure-Price-Quote) pricing-plan forms.
Readme
@appxite/cpq-presenter
React/Redux component library that renders Appxite CPQ (Configure-Price-Quote) pricing-plan forms. Given a plan definition, it renders the interactive form into a DOM container, manages form state and validation, computes price via a caller-supplied loader, and exposes an imperative handle for reading values and validation status.
Installation
npm install @appxite/cpq-presenterThis package declares react, react-dom, redux, and react-redux as
dependencies — make sure your app uses compatible versions (React 17).
Usage
import { renderPlan, PresenterRenderMode } from '@appxite/cpq-presenter';
const instance = renderPlan({
container: document.getElementById('plan-root')!,
plan: planDefinition, // or `planControl` for a single control
langCode: 'en',
baseAiUrl: 'https://…',
baseCpqUrl: 'https://…',
renderMode: PresenterRenderMode.Purchase,
dateOptions: { /* … */ },
initialFormValues: {},
loadPrice: async (request) => {
// return the offered price for the current form values
},
onFormValuesChange: (formValues) => {
// react to form changes
},
});
// Imperative handle
instance.isInitialized();
instance.getFormValues();
instance.getPrice();
instance.isValid();
instance.forceValidate();
// Tear down when the host unmounts
instance.destroy();renderPlan(options) returns a PlanInstance with:
| Method | Description |
| --- | --- |
| isInitialized() | Whether the plan initialized without errors |
| getInitializationErrors() | Initialization errors, if any |
| getPrice() | The most recently computed price |
| getFormValues() | Current form values |
| getValidationMap() | Per-control validation status |
| forceValidate() | Force validation of all controls |
| isValid() | Whether the current form is valid |
| destroy() | Unmount and dispose the instance |
Use renderPlanWithoutPricing for the same rendering without price computation.
See the exported types (RenderPlanOptions, PlanDefinition, FormValues,
ThemeOptions, …) for the full option surface.
Public API & versioning
The only supported entry point is the package root:
import { renderPlan, /* … */ } from '@appxite/cpq-presenter';Anything reached via a deep import (e.g. @appxite/cpq-presenter/lib/…) is internal
and unsupported — those paths, their signatures, and their behavior may change or be
removed in any release without notice. Only symbols exported from the package root are
covered by SemVer.
This package follows Semantic Versioning: breaking changes to the root export surface bump the major version; backward-compatible additions bump the minor; fixes bump the patch.
License
MIT © Appxite SIA — see LICENSE.
