# ExposedCallbacks.ExposedCallbacks

[Embedding API Reference](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference) / [Modules](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference/modules) / [exposed-callbacks](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference/modules/exposed_callbacks) / ExposedCallbacks

## Class: ExposedCallbacks

[exposed-callbacks](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference/modules/exposed_callbacks).ExposedCallbacks

### Table of contents

#### Constructors

* [constructor](#constructor)

#### Properties

* [onButtonClicked](#onbuttonclicked)
* [onShowCustomView](#onshowcustomview)

#### Methods

* [onBackToWebsite](#onbacktowebsite)
* [onCollapseDrawer](#oncollapsedrawer)
* [onExpandDrawer](#onexpanddrawer)
* [onHideCustomView](#onhidecustomview)
* [onHidePopUp](#onhidepopup)
* [onPartListUpdate](#onpartlistupdate)
* [onPlanElementAdded](#onplanelementadded)
* [onPlanElementChanged](#onplanelementchanged)
* [onPlanElementMoved](#onplanelementmoved)
* [onPlanElementRemoved](#onplanelementremoved)
* [onPlanUpdate](#onplanupdate)
* [onRequestPlan](#onrequestplan)
* [onRequestProduct](#onrequestproduct)
* [onResize](#onresize)
* [onSaveDraft](#onsavedraft)
* [onShowPopUp](#onshowpopup)
* [onSidebarEvent](#onsidebarevent)
* [onTooltipClose](#ontooltipclose)
* [onUseFullPage](#onusefullpage)

### Constructors

#### constructor

• **new ExposedCallbacks**(): [`ExposedCallbacks`](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference/classes/exposed_callbacks.exposedcallbacks)

**Returns**

[`ExposedCallbacks`](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference/classes/exposed_callbacks.exposedcallbacks)

### Properties

#### onButtonClicked

• **onButtonClicked**: \<K>(`name`: `K`, `args?`: [`ButtonCallbackPayloads`](https://docs.roomle.com/rubens/rubens-products/modules/types#buttoncallbackpayloads)\[`K`]) => `boolean` | `void` | `Promise`<`boolean`>

Gets called when a button in the UI is clicked

**Type declaration**

▸ <`K`>(`name`, `args?`): `boolean` | `void` | `Promise`<`boolean`>

**Type parameters**

| Name | Type                                                                                                                  |
| ---- | --------------------------------------------------------------------------------------------------------------------- |
| `K`  | extends [`UI_BUTTON`](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference/enums/types.ui_button) |

**Parameters**

| Name    | Type                                                                                                                  | Description                                                                                                                                                                          |
| ------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`  | `K`                                                                                                                   |                                                                                                                                                                                      |
| `args?` | [`ButtonCallbackPayloads`](https://docs.roomle.com/rubens/rubens-products/modules/types#buttoncallbackpayloads)\[`K`] | Optional arguments specific to the button that was clicked. This parameter is an object where each key is a UI\_BUTTON and the value is the corresponding arguments for that button. |

**Returns**

`boolean` | `void` | `Promise`<`boolean`>

***

#### onShowCustomView

• **onShowCustomView**: (...`__namedParameters`: [`CustomViewCallbackInfo`](https://docs.roomle.com/rubens/rubens-products/modules/types#customviewcallbackinfo)) => [`Nullable`](https://docs.roomle.com/rubens/rubens-products/modules/exposed_api._internal_#nullable)<`boolean`> | `Promise`<[`Nullable`](https://docs.roomle.com/rubens/rubens-products/modules/exposed_api._internal_#nullable)<`boolean`>>

**Type declaration**

▸ (`...«destructured»`): [`Nullable`](https://docs.roomle.com/rubens/rubens-products/modules/exposed_api._internal_#nullable)<`boolean`> | `Promise`<[`Nullable`](https://docs.roomle.com/rubens/rubens-products/modules/exposed_api._internal_#nullable)<`boolean`>>

**Parameters**

| Name                | Type                                                                                                            |
| ------------------- | --------------------------------------------------------------------------------------------------------------- |
| `...«destructured»` | [`CustomViewCallbackInfo`](https://docs.roomle.com/rubens/rubens-products/modules/types#customviewcallbackinfo) |

**Returns**

[`Nullable`](https://docs.roomle.com/rubens/rubens-products/modules/exposed_api._internal_#nullable)<`boolean`> | `Promise`<[`Nullable`](https://docs.roomle.com/rubens/rubens-products/modules/exposed_api._internal_#nullable)<`boolean`>>

### Methods

#### onBackToWebsite

▸ **onBackToWebsite**(): `void`

Gets called when the configuring is paused and the user leaves fullscreen configurator mode

**Returns**

`void`

***

#### onCollapseDrawer

▸ **onCollapseDrawer**(`_wasChangeBetweenDesktopAndMobile`): `void`

**Parameters**

| Name                                | Type      |
| ----------------------------------- | --------- |
| `_wasChangeBetweenDesktopAndMobile` | `boolean` |

**Returns**

`void`

***

#### onExpandDrawer

▸ **onExpandDrawer**(`_wasChangeBetweenDesktopAndMobile`): `void`

**Parameters**

| Name                                | Type      |
| ----------------------------------- | --------- |
| `_wasChangeBetweenDesktopAndMobile` | `boolean` |

**Returns**

`void`

***

#### onHideCustomView

▸ **onHideCustomView**(`...«destructured»`): `void`

**Parameters**

| Name                | Type                                                                                                            |
| ------------------- | --------------------------------------------------------------------------------------------------------------- |
| `...«destructured»` | [`CustomViewCallbackInfo`](https://docs.roomle.com/rubens/rubens-products/modules/types#customviewcallbackinfo) |

**Returns**

`void`

***

#### onHidePopUp

▸ **onHidePopUp**(): `void`

**Returns**

`void`

***

#### onPartListUpdate

▸ **onPartListUpdate**(`partList`, `hash`): `void`

fullList fullList (needed for price calculation) of the current configuration

**Parameters**

| Name       | Type             | Description                                  |
| ---------- | ---------------- | -------------------------------------------- |
| `partList` | `KernelPartList` | the part list with all details, grouped, etc |
| `hash`     | `string`         | -                                            |

**Returns**

`void`

***

#### onPlanElementAdded

▸ **onPlanElementAdded**(`addedObject`): `void`

Called when an element is added to the plan, not called when wall or construction element added

**Parameters**

| Name          | Type           |
| ------------- | -------------- |
| `addedObject` | `UiPlanObject` |

**Returns**

`void`

***

#### onPlanElementChanged

▸ **onPlanElementChanged**(`changedObject`): `void`

Called when an element is changed in the plan, not called when wall or construction element changed

**Parameters**

| Name            | Type           |
| --------------- | -------------- |
| `changedObject` | `UiPlanObject` |

**Returns**

`void`

***

#### onPlanElementMoved

▸ **onPlanElementMoved**(`changedObject`): `void`

Called when an element is moved in the plan, not called when wall or construction element is moved

**Parameters**

| Name            | Type           |
| --------------- | -------------- |
| `changedObject` | `UiPlanObject` |

**Returns**

`void`

***

#### onPlanElementRemoved

▸ **onPlanElementRemoved**(`removedObject`): `void`

Called when an element is removed from the plan, not called when wall or construction element removed

**Parameters**

| Name            | Type           |
| --------------- | -------------- |
| `removedObject` | `UiPlanObject` |

**Returns**

`void`

***

#### onPlanUpdate

▸ **onPlanUpdate**(`objects`): `void`

Gets called if a plan object gets added, changed or removed and returns all objects of the plan

**Parameters**

| Name      | Type              | Description             |
| --------- | ----------------- | ----------------------- |
| `objects` | `UiPlanObject`\[] | all objects in the plan |

**Returns**

`void`

***

#### onRequestPlan

▸ **onRequestPlan**(`planId`, `image`, `items`, `plan`): `void`

**Parameters**

| Name     | Type          |
| -------- | ------------- |
| `planId` | `string`      |
| `image`  | `Base64Image` |
| `items`  | `any`\[]      |
| `plan`   | `any`         |

**Returns**

`void`

***

#### onRequestProduct

▸ **onRequestProduct**(`configurationId`, `image`, `partList`, `price`, `labels`, `configuration`): `void`

Returns all necessary params when 'Request Product'/'Checkout' button has pressed

**Parameters**

| Name              | Type                                                                                                                     | Description                                                                              |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
| `configurationId` | `string`                                                                                                                 | id of the current configuration                                                          |
| `image`           | `Base64Image`                                                                                                            | image of the current configuration                                                       |
| `partList`        | `KernelPartList`                                                                                                         | the part list with all details, grouped, etc                                             |
| `price`           | [`Price`](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference/interfaces/exposed_callbacks.price)   | price of the current configuration, either set via setPrice or from Roomle price service |
| `labels`          | [`Labels`](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference/interfaces/exposed_callbacks.labels) | the label of the catalog and the furniture system                                        |
| `configuration`   | `RapiConfigurationEnhanced` \| `ExternalConfiguration`                                                                   | the data returned from the Roomle backend                                                |

**Returns**

`void`

***

#### onResize

▸ **onResize**(`isDesktop`): `void`

**Parameters**

| Name        | Type      |
| ----------- | --------- |
| `isDesktop` | `boolean` |

**Returns**

`void`

***

#### onSaveDraft

▸ **onSaveDraft**(`id`, `image`, `url`, `data`): `void`

called when triggerSaveDraft called

**Parameters**

| Name    | Type                                                                                                                                                    | Description                                                                                             |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `id`    | `string`                                                                                                                                                | configuration id or plan id                                                                             |
| `image` | `string`                                                                                                                                                | image of the current configuration                                                                      |
| `url`   | `string`                                                                                                                                                | generated url from save draft                                                                           |
| `data`  | [`SaveDraftPayload`](https://docs.roomle.com/rubens/rubens-products/rubens-products-reference/interfaces/exposed_callbacks._internal_.savedraftpayload) | object contains { type: 'plan' \| 'configuration', payload: configuration object or plan snapshot data} |

**Returns**

`void`

***

#### onShowPopUp

▸ **onShowPopUp**(): `void`

**Returns**

`void`

***

#### onSidebarEvent

▸ **onSidebarEvent**(`...«destructured»`): `void`

**Parameters**

| Name                | Type                       |
| ------------------- | -------------------------- |
| `...«destructured»` | `SidebarEventCallbackInfo` |

**Returns**

`void`

***

#### onTooltipClose

▸ **onTooltipClose**(`tooltipName`): `void`

Gets triggered if a tooltip gets closed by controls button

**Parameters**

| Name          | Type     |
| ------------- | -------- |
| `tooltipName` | `string` |

**Returns**

`void`

***

#### onUseFullPage

▸ **onUseFullPage**(): `void`

**Returns**

`void`
