Skip to main content

Events

Mimeeq dispatches browser events to notify your code about state changes and user interactions inside the configurator. All events are standard DOM CustomEvent objects dispatched on document, with payload data available through event.detail.

document.addEventListener('mimeeq-select-option', (event) => {
const { variantCode, groupName, option } = event.detail;
console.log(`Option "${option.name}" selected in "${groupName}"`);
});

Events also propagate to the parent frame via window.parent.postMessage, so integrations running the configurator inside an <iframe> can listen for them without direct DOM access.

For how events fit alongside observers, the REST API, and webhooks, see the Architecture Overview.

tip

All event payload types are available as TypeScript interfaces. See the MimeeqEventMap type for a complete mapping of event names to their payload types, which enables fully type-safe event listeners.

Standard Product Lifecycle

The diagram below shows the full event sequence for a standard product, from page load to cart. Each event links to its category page for payload details and code examples.

  Page loads <mmq-embed>


mimeeq-app-loaded ← API ready, safe to subscribe to observers


mimeeq-3d-product-initialized ← 3D scene rendered, product interactive


┌──────────────────────────────────────────────────┐
│ Configuration loop (repeats per user action) │
│ │
│ mimeeq-select-option │
│ │ │
│ ├── if price-affecting ► mimeeq-price-change
│ │ │ │
│ │ ▼ │
│ │ pricing observer │
│ │ updates │
│ │ │
│ └── 3D/2D scene updates in parallel │
│ │
│ (history events may fire on undo/redo/reset) │
└──────────────────────────────────────────────────┘


User clicks the primary action button

├── validation fails ──► toast error, NO event fires

├── variant="basket" ──► mimeeq-add-to-cart
│ (image, shortCode, price, currency)

└── variant="default" ─► mimeeq-show-summary
(no image, shortCode, or price)


mimeeq-leave-configurator ← user navigates away or embed unmounts

For the modular product equivalent, see Modular Events.

Event Categories

Events are documented by flow — grouped around the workflows they belong to, so you can see what fires in sequence and how events relate to each other.

CategoryWhat it covers
Lifecycle EventsLoad → initialization → teardown. The events that tell you when the configurator is ready and when it's gone.
Configuration EventsOption selection, price changes, tab switching, history navigation, 3D mesh interaction, and other events fired during standard product configuration.
Modular EventsScene composition, product manipulation, option selection, scene management, and UI state changes specific to the modular configurator.
Finish & Cart EventsThe branching flow when the user finishes configuring: summary, product selection, or add-to-cart — depending on embed variant and basket mode.
Basket EventsMimeeq's built-in B2B cart lifecycle: creation, item management, price updates, and order submission.
Authentication EventsLogin, logout, signup, password reset, and profile events from the Mimeeq authentication system.
Media & Export EventsPDF generation, image/scene export, AR code generation, and file downloads.
Product List EventsProduct browsing, selection, and favourites management within the product list embed.
Host-Triggered EventsEvents that your code dispatches into the configurator to control visibility, loaders, and basket UI.

Quick Reference

The table below lists every public event for fast lookup. Click through to the category page for full descriptions, payload details, and code examples.

Lifecycle

EventPayloadDescription
mimeeq-app-loadedConfigurator library loaded and ready
mimeeq-app-template-errorAppTemplateErrorEventPayloadError loading embed template
mimeeq-3d-product-initialized3D product fully initialized
mimeeq-2d-product-initialized2D product fully loaded, all image layers ready
mimeeq-webgl-not-supportedWebGL not available, 3D product cannot render
mimeeq-product-list-initializedProduct list loaded from database
mimeeq-embed-unmountedWeb component removed from DOM

Configuration

EventPayloadDescription
mimeeq-enter-product{ prefix }Product configurator opened
mimeeq-leave-product{ prefix }Product configurator closed
mimeeq-select-optionSelectOptionEventPayloadOption selected in option panel
mimeeq-select-popular-variantSelectPopularVariantEventPayloadPopular configuration selected
mimeeq-select-tabSelectTabEventPayloadTab changed
mimeeq-price-changePriceChangeEventPayloadAbout to fetch updated price (standard only)
mimeeq-select-filtersSelectFiltersEventPayloadFilters changed
mimeeq-deactivate-matching-optionsDeactivateMatchingOptionsEventPayloadMatch Options toggled (deactivated)
mimeeq-activate-matching-optionsDeactivateMatchingOptionsEventPayloadMatch Options toggled (activated)
mimeeq-change-quantityChangeQuantityEventPayloadQuantity changed
mimeeq-clear-filtersFilters cleared
mimeeq-download-fileDownloadFileEventPayloadFile downloaded
mimeeq-3d-show-dimensionsDimensions overlay shown
mimeeq-3d-hide-dimensionsDimensions overlay hidden
mimeeq-3d-zoom-out-sceneZoom Out button clicked
mimeeq-open-related-productOpenRelatedProductEventPayloadRelated product clicked
mimeeq-click-hotspotClickHotspotEventPayloadHotspot clicked in 3D scene
mimeeq-history-go-backHistoryItemHistory undo
mimeeq-history-go-forwardHistoryItemHistory redo
mimeeq-history-resetHistory reset
mimeeq-configurator-go-backBack arrow clicked
mimeeq-configurator-clear-historyClose in modal mode
mimeeq-3d-open-full-screenEntered fullscreen
mimeeq-3d-close-full-screenLeft fullscreen
mmq-action-highlight-group-onstringHover mesh with Highlight Group
mmq-action-highlight-group-offstringLeft hover on Highlight Group mesh
mmq-action-open-groupstringClicked mesh with Open Group
mmq-action-scroll-to-blockstringClicked mesh with Scroll to Block
mmq-action-flash-highlight-blockstringScrolled to option block after Scroll to Block
mimeeq-open-option-panelOption block group (accordion) opened
mimeeq-app-url-changeFinishEventPayloadURL state changed (option selection, history, related product, finish)

Modular

EventPayloadDescription
mimeeq-modular-enter-productModular product entered
mimeeq-modular-leave-productModular product left
mimeeq-modular-select-optionModularSelectOptionEventPayloadOption selected (single product)
mimeeq-modular-select-option-multipleModularSelectOptionMultipleEventPayloadOption applied to multiple products
mimeeq-modular-add-product-to-sceneModularProductSceneEventPayloadProduct added to scene
mimeeq-modular-insert-product-to-sceneModularProductSceneEventPayloadProduct inserted between elements
mimeeq-modular-move-productModularProductSceneEventPayloadProduct moved on scene
mimeeq-modular-product-replacedModularProductSceneEventPayloadProduct replaced on scene
mimeeq-modular-clone-productProduct cloned
mimeeq-modular-remove-productProduct removed
mimeeq-modular-select-product-to-addModularSelectProductToAddEventPayloadProduct chosen from add list
mimeeq-modular-clear-sceneScene cleared
mimeeq-modular-flip-productProduct flipped
mimeeq-modular-load-sceneModularLoadSceneEventPayloadScene loaded
mimeeq-modular-load-scene-successScene load completed
mimeeq-modular-save-sceneModularSaveSceneEventPayloadScene saved as favourite
mimeeq-modular-create-new-sceneModularLoadSceneEventPayloadNew scene short code assigned
mimeeq-modular-open-my-scenesMy Scenes opened
mimeeq-modular-close-my-scenesMy Scenes closed
mimeeq-modular-close-select-scene-modalLoad Scene modal closed
mimeeq-modular-open-summaryFinish clicked (summary opened)
mimeeq-modular-close-summarySummary closed
mimeeq-modular-close-warningWarning modal closed
mimeeq-modular-set-cloneClone action activated
mimeeq-modular-set-moveMove action activated
mimeeq-modular-set-copy-stylesCopy Styles action activated
mimeeq-modular-set-slideSlide action activated
mimeeq-modular-set-replaceReplace action activated
mimeeq-modular-show-gridGrid activated
mimeeq-modular-hide-gridGrid hidden
mimeeq-modular-unselect-allAll products deselected
mimeeq-modular-abort-actionActive action aborted
mimeeq-modular-history-go-backModular history undo
mimeeq-modular-history-go-forwardModular history redo
mmq-webgl-support-modal-closeNo WebGL support modal dismissed

Finish & Cart

EventPayloadDescription
mimeeq-show-summaryFinishEventPayloadFinish button clicked
mimeeq-select-productFinishEventPayloadSelect button clicked (internal/quotation use only)
mimeeq-add-to-cartFinishEventPayloadAdd to Cart clicked (basket mode)

Basket

EventPayloadDescription
mimeeq-basket-createdBasketCreatedEventPayloadNew basket created
mimeeq-basket-item-addedBasketItemAddedEventPayloadItem added to basket
mimeeq-basket-updatedBasketUpdatedEventPayloadBasket contents or totals updated
mimeeq-basket-submittedBasketSubmittedEventPayloadBasket submitted as order/RFQ

Authentication

EventPayloadDescription
mimeeq-auth-loadedAuthentication library loaded
mimeeq-enter-loginLogin form shown
mimeeq-leave-loginLogin form closed
mimeeq-login-successLoginSuccessEventPayloadLogin successful
mimeeq-enter-forgot-passwordForgot Password opened
mimeeq-leave-forgot-passwordForgot Password closed
mimeeq-enter-sign-upSign Up form shown
mimeeq-leave-sign-upSign Up form closed
mimeeq-sign-up-successSignUpSuccessEventPayloadSign Up successful
mimeeq-logout-successLogout completed
mimeeq-user-signed-in{ firstName, lastName, email }Session established after login
mimeeq-user-signed-outSession destroyed
mimeeq-user-updatedUser profile data updated
mimeeq-user-deletedCustomer partner user deleted own account
mimeeq-resend-signup-confirm-code{ email }Signup verification code resent
mimeeq-enter-profileProfile opened
mimeeq-leave-profileProfile closed
mimeeq-login-closedLogin modal dismissed
mimeeq-profile-closedProfile modal dismissed
mimeeq-forgot-password-closedForgot Password modal dismissed
mimeeq-select-companySelectCompanyEventPayloadCompany changed in price selector
mimeeq-select-price-typeSelectPriceTypeEventPayloadPrice type changed

Media & Export

EventPayloadDescription
mimeeq-show-export-pdf-modalPDF export modal opened
mimeeq-pdf-generate-startPDF generation started
mimeeq-pdf-generate-donePDF generation completed
mimeeq-3d-before-export-imageImage export started
mimeeq-3d-after-export-imageImage exported and saved
mimeeq-3d-before-export-scene3D model export started
mimeeq-3d-after-export-scene3D model exported and saved
mimeeq-generate-ar-short-codeGenerateArShortCodeEventPayloadAR short code generated
mimeeq-ar-get-back-to-configurationArGoBackEventPayloadEdit clicked on AR page

Product List & Favourites

EventPayloadDescription
mimeeq-product-list-initializedProduct list loaded from database
mimeeq-product-list-select-productProductListSelectProductEventPayloadProduct selected from list
mimeeq-favourites-add-productProductPrefixEventPayloadProduct added to favourites
mimeeq-favourites-remove-productProductPrefixEventPayloadProduct removed from favourites
mimeeq-favourites-add-collectionFavouritesCollectionEventPayloadCollection created
mimeeq-favourites-update-collectionFavouritesCollectionEventPayloadCollection updated
mimeeq-favourites-remove-collectionCollection(s) deleted
mimeeq-favourites-copy-to-collectionFavouritesCollectionItemsEventPayloadItems copied to collection
mimeeq-favourites-move-to-collectionFavouritesCollectionItemsEventPayloadItems moved to collection
mimeeq-favourites-delete-from-collectionFavouritesDeleteFromCollectionEventPayloadItems removed from collection
mimeeq-open-favouritesFavourites panel opened
mimeeq-close-favouritesFavourites panel closed
mimeeq-select-favourites-collectionSelectFavouritesCollectionEventPayloadCollection selected from menu

Host-Triggered Events

These events flow in the opposite direction — your code dispatches them to control the configurator.

EventDescription
mimeeq-show-basket-loaderShow loader on the action button next to the price
mimeeq-hide-basket-loaderHide loader on the action button next to the price
mimeeq-show-price-loaderShow loader in price box
mimeeq-hide-price-loaderHide loader in price box
mimeeq-show-add-to-cart-toastShow "added to basket" confirmation toast
mimeeq-hide-add-to-cart-toastHide "added to basket" toast
mimeeq-trigger-add-to-cartTrigger finish/add-to-cart action programmatically
mimeeq-show-modular-summaryOpen modular summary screen
mimeeq-refresh-translationsReload custom translations from window.mimeeqCustomMessages
mimeeq-show-configuratorShow hidden configurator (legacy embed only)
mimeeq-show-modularShow hidden modular configurator (legacy embed only)
mimeeq-unmountRemove all Mimeeq instances from DOM (legacy embed only)

Legacy Events

warning

The events below apply only to the legacy embed (non-web-component). They are deprecated and should not be used in new integrations. Use the web component embed and its events instead.

EventPayloadDescriptionReplacement
mimeeq-configurator-closedConfigurator modal closedmimeeq-embed-unmounted
mimeeq-modular-closedModular modal closedmimeeq-embed-unmounted
mimeeq-tree-unmountedTreeUnmountedEventPayloadEmbed removed from DOM with type identifiermimeeq-embed-unmounted
mimeeq-show-configuratorShow configurator when Render on Mount is disabled<mmq-embed>.show()
mimeeq-show-modularShow modular when Render on Mount is disabled<mmq-embed>.show()
mimeeq-unmountRemove all Mimeeq instances from DOMRemove <mmq-embed> element