UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

1 lines 1.49 kB
{"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"]}