{"version":3,"file":"serializer.js","sources":["../../../assets/lib/fabric-engine/serializer.ts"],"sourcesContent":["import { FabricObject, Canvas } from 'fabric';\nimport type { CustomZoneProps } from './types';\n\nconst CUSTOM_PROPS: (keyof CustomZoneProps)[] = [\n    'zoneKey',\n    'isEditable',\n    'zoneType',\n    'isAdminZone',\n];\n\nexport function initCustomProperties(): void {\n    FabricObject.customProperties = [\n        ...(FabricObject.customProperties ?? []),\n        ...CUSTOM_PROPS.filter(p => !FabricObject.customProperties?.includes(p)),\n    ];\n}\n\nexport function serializeCanvas(canvas: Canvas): string {\n    return JSON.stringify(canvas.toJSON());\n}\n\nexport async function deserializeCanvas(canvas: Canvas, json: string): Promise<void> {\n    await canvas.loadFromJSON(JSON.parse(json));\n}\n"],"names":[],"mappings":";AAGA,MAAM,eAA0C;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEO,SAAS,uBAA6B;AACzC,eAAa,mBAAmB;AAAA,IAC5B,GAAI,aAAa,oBAAoB,CAAA;AAAA,IACrC,GAAG,aAAa,OAAO,CAAA,MAAK,CAAC,aAAa,kBAAkB,SAAS,CAAC,CAAC;AAAA,EAAA;AAE/E;AAEO,SAAS,gBAAgB,QAAwB;AACpD,SAAO,KAAK,UAAU,OAAO,OAAA,CAAQ;AACzC;AAEA,eAAsB,kBAAkB,QAAgB,MAA6B;AACjF,QAAM,OAAO,aAAa,KAAK,MAAM,IAAI,CAAC;AAC9C;"}