---
title: "UserChanges | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/UserChanges-1/"
---

# UserChanges

> [`UserChangesService`](#userchangesservice)

## Classes

### UserChangesService

#### Constructors

##### Constructor

```ts
new UserChangesService(productHandler, eventManager): UserChangesService;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `productHandler` | [`ProductHandler`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ProductHandler.md#producthandler) |
| `eventManager` | [`EventManager`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/EventManager.md#eventmanager) |

###### Returns

#### Accessors

##### initialSurfacesInfo

###### Get Signature

```ts
get initialSurfacesInfo(): SurfacesInfo;
```

###### Returns

[`SurfacesInfo`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/Interfaces-3.md#surfacesinfo)

#### Methods

##### addItemsWithoutUserChanges()

```ts
addItemsWithoutUserChanges(surfaces): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `surfaces` | `Surface`[] |

###### Returns

`void`

##### clearInitailData()

```ts
clearInitailData(): void;
```

###### Returns

`void`

##### filterChangedObjects()

```ts
filterChangedObjects(): IUserChangedObjects;
```

###### Returns

[`IUserChangedObjects`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/Interfaces-3.md#iuserchangedobjects)

##### filterTargetSurfaceItems()

```ts
filterTargetSurfaceItems(productChangedObjects, targetSurface): object;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `productChangedObjects` | [`IUserChangedObjects`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/Interfaces-3.md#iuserchangedobjects) |
| `targetSurface` | `Surface` |

###### Returns

`object`

###### groupItems

```ts
groupItems: IChangedGroupItem[];
```

###### imagePlaceholders

```ts
imagePlaceholders: PlaceholderItem[];
```

###### inStringPlaceholders

```ts
inStringPlaceholders: InStringPlaceholder[];
```

###### layoutItems

```ts
layoutItems: Item[];
```

###### newItems

```ts
newItems: Item[];
```

###### removedItems

```ts
removedItems: Item[];
```

###### textItems

```ts
textItems: BaseTextItem[];
```

##### rebaseInitialSurfacesInfo()

```ts
rebaseInitialSurfacesInfo(targetSurfaceId, sourceSurface): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `targetSurfaceId` | `string` |
| `sourceSurface` | `Surface` |

###### Returns

`void`

##### writeInitialInfoTo()

```ts
writeInitialInfoTo(product): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `product` | `Product` |

###### Returns

`void`
