igniteui-webcomponents
Version:
Ignite UI for Web Components is a complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable components in a dependency-free approach.
43 lines • 1.3 kB
JavaScript
class TileManagerSerializer {
constructor(tileManager) {
this.tileManager = tileManager;
}
save() {
return this.tileManager.tiles.map((tile) => {
return {
colSpan: tile.colSpan,
colStart: tile.colStart,
disableFullscreen: tile.disableFullscreen,
disableMaximize: tile.disableMaximize,
disableResize: tile.disableResize,
maximized: tile.maximized,
position: tile.position,
rowSpan: tile.rowSpan,
rowStart: tile.rowStart,
id: tile.id,
};
});
}
saveAsJSON() {
return JSON.stringify(this.save());
}
load(tiles) {
const mapped = new Map(tiles.map((tile) => [tile.id, tile]));
for (const tile of this.tileManager.tiles) {
if (!mapped.has(tile.id)) {
continue;
}
const serialized = mapped.get(tile.id);
Object.assign(tile, serialized);
}
}
loadFromJSON(data) {
if (!data)
return;
this.load(JSON.parse(data));
}
}
export function createSerializer(host) {
return new TileManagerSerializer(host);
}
//# sourceMappingURL=serializer.js.map