{"version":3,"sources":["../../../packages/core/copilot/copilot-iframe/iframe-broker-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,eAAe,CAA4C;;IAM5D,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAIjE,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAIjE,OAAO,CAAC,aAAa;CAIxB","file":"iframe-broker-service.d.ts","sourcesContent":["import { IFrameMessage } from \"./iframe-message\";\r\n\r\n/**\r\n * IFrameBrokerService\r\n * Usage:\r\n *\r\n * const iframeBrokerService = new IFrameBrokerService();\r\n * iframeBrokerService.onMessage(message => {\r\n *     console.log(message);\r\n * });\r\n *\r\n * iframeBrokerService.sendMessageToIFrame(iframe, { message });\r\n */\r\nexport class IFrameBrokerService {\r\n    private messageHandlers: ((message: IFrameMessage) => void)[] = [];\r\n\r\n    constructor() {\r\n        window.addEventListener('message', this.handleMessage.bind(this));\r\n    }\r\n\r\n    public sendMessageToIFrame(iframe: Window, message: IFrameMessage): void {\r\n        iframe?.postMessage(message, '*');\r\n    }\r\n\r\n    public onMessage(handler: (message: IFrameMessage) => void): void {\r\n        this.messageHandlers.push(handler);\r\n    }\r\n\r\n    private handleMessage(event: MessageEvent): void {\r\n        const message: IFrameMessage = event.data;\r\n        this.messageHandlers.forEach(handler => handler(message));\r\n    }\r\n}\r\n"]}