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.
Error EventsFailures during template, config, or observer API data loading.

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-loaded—Configurator library loaded and ready
mimeeq-3d-product-initialized—3D product fully initialized
mimeeq-2d-product-initialized—2D product fully loaded, all image layers ready
mimeeq-webgl-not-supported—WebGL not available, 3D product cannot render
mimeeq-product-list-initialized—Product list loaded from database
mimeeq-embed-unmounted—Web 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-filters—Filters cleared
mimeeq-download-fileDownloadFileEventPayloadFile downloaded
mimeeq-3d-show-dimensions—Dimensions overlay shown
mimeeq-3d-hide-dimensions—Dimensions overlay hidden
mimeeq-3d-zoom-out-scene—Zoom 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-reset—History reset
mimeeq-configurator-go-back—Back arrow clicked
mimeeq-configurator-clear-history—Close in modal mode
mimeeq-3d-open-full-screen—Entered fullscreen
mimeeq-3d-close-full-screen—Left 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-panel—Option block group (accordion) opened
mimeeq-app-url-changeFinishEventPayloadURL state changed (option selection, history, related product, finish)

Modular​

EventPayloadDescription
mimeeq-modular-enter-product—Modular product entered
mimeeq-modular-leave-product—Modular 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-product—Product cloned
mimeeq-modular-remove-product—Product removed
mimeeq-modular-select-product-to-addModularSelectProductToAddEventPayloadProduct chosen from add list
mimeeq-modular-clear-scene—Scene cleared
mimeeq-modular-flip-product—Product flipped
mimeeq-modular-load-sceneModularLoadSceneEventPayloadScene loaded
mimeeq-modular-load-scene-success—Scene load completed
mimeeq-modular-save-sceneModularSaveSceneEventPayloadScene saved as favourite
mimeeq-modular-create-new-sceneModularLoadSceneEventPayloadNew scene short code assigned
mimeeq-modular-open-my-scenes—My Scenes opened
mimeeq-modular-close-my-scenes—My Scenes closed
mimeeq-modular-close-select-scene-modal—Load Scene modal closed
mimeeq-modular-open-summary—Finish clicked (summary opened)
mimeeq-modular-close-summary—Summary closed
mimeeq-modular-open-warning—Required-snap validation warning opened
mimeeq-modular-close-warning—Warning modal closed
mimeeq-modular-set-clone—Clone action activated
mimeeq-modular-set-move—Move action activated
mimeeq-modular-set-copy-styles—Copy Styles action activated
mimeeq-modular-set-slide—Slide action activated
mimeeq-modular-set-replace—Replace action activated
mimeeq-modular-show-grid—Grid activated
mimeeq-modular-hide-grid—Grid hidden
mimeeq-modular-unselect-all—All products deselected
mimeeq-modular-abort-action—Active action aborted
mimeeq-modular-history-go-back—Modular history undo
mimeeq-modular-history-go-forward—Modular history redo
mmq-webgl-support-modal-close—No WebGL support modal dismissed

Finish & Cart​

EventPayloadDescription
mimeeq-before-add-to-cartBeforeAddToCartEventPayloadAdd to Cart action started, before validation
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-loaded—Authentication library loaded
mimeeq-enter-login—Login form shown
mimeeq-leave-login—Login form closed
mimeeq-login-successLoginSuccessEventPayloadLogin successful
mimeeq-enter-forgot-password—Forgot Password opened
mimeeq-leave-forgot-password—Forgot Password closed
mimeeq-enter-sign-up—Sign Up form shown
mimeeq-leave-sign-up—Sign Up form closed
mimeeq-sign-up-successSignUpSuccessEventPayloadSign Up successful
mimeeq-logout-success—Logout completed
mimeeq-user-signed-in{ firstName, lastName, email }Session established after login
mimeeq-user-signed-out—Session destroyed
mimeeq-user-updated—User profile data updated
mimeeq-user-deleted—Customer partner user deleted own account
mimeeq-resend-signup-confirm-code{ email }Signup verification code resent
mimeeq-enter-profile—Profile opened
mimeeq-leave-profile—Profile closed
mimeeq-login-closed—Login modal dismissed
mimeeq-profile-closed—Profile modal dismissed
mimeeq-forgot-password-closed—Forgot Password modal dismissed
mimeeq-select-companySelectCompanyEventPayloadCompany changed in price selector
mimeeq-select-price-typeSelectPriceTypeEventPayloadPrice type changed

Media & Export​

EventPayloadDescription
mimeeq-show-export-pdf-modal—PDF export modal opened
mimeeq-pdf-generate-start—PDF generation started
mimeeq-pdf-generate-done—PDF generation completed
mimeeq-3d-before-export-image—Image export started
mimeeq-3d-after-export-image—Image exported and saved
mimeeq-3d-before-export-scene—3D model export started
mimeeq-3d-after-export-scene—3D 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-initialized—Product 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-collection—Collection(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-favourites—Favourites panel opened
mimeeq-close-favourites—Favourites panel closed
mimeeq-select-favourites-collectionSelectFavouritesCollectionEventPayloadCollection selected from menu

Errors​

EventPayloadDescription
mimeeq-app-template-errorAppTemplateErrorEventPayloadError loading embed template
mimeeq-app-config-errorAppConfigErrorEventPayloadError loading JSON configuration (embed_data or customers)
mimeeq-app-api-errorAppApiErrorEventPayloadInternal API call failed

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-closed—Configurator modal closedmimeeq-embed-unmounted
mimeeq-modular-closed—Modular modal closedmimeeq-embed-unmounted
mimeeq-tree-unmountedTreeUnmountedEventPayloadEmbed removed from DOM with type identifiermimeeq-embed-unmounted
mimeeq-show-configurator—Show configurator when Render on Mount is disabled<mmq-embed>.show()
mimeeq-show-modular—Show modular when Render on Mount is disabled<mmq-embed>.show()
mimeeq-unmount—Remove all Mimeeq instances from DOMRemove <mmq-embed> element