UNPKG

@cloudquery/plugin-config-ui-connector

Version:

Plugin configuration UI connector for CloudQuery Cloud App

1 lines 2.19 kB
!function(e,s){if("object"==typeof exports&&"object"==typeof module)module.exports=s();else if("function"==typeof define&&define.amd)define([],s);else{var t=s();for(var a in t)("object"==typeof exports?exports:e)[a]=t[a]}}(this,(()=>(()=>{"use strict";var e={d:(s,t)=>{for(var a in t)e.o(t,a)&&!e.o(s,a)&&Object.defineProperty(s,a,{enumerable:!0,get:t[a]})},o:(e,s)=>Object.prototype.hasOwnProperty.call(e,s),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},s={};e.r(s),e.d(s,{MessageHandler:()=>n,formMessageTypes:()=>i,getPluginUiMessageHandler:()=>o,pluginUiMessageTypes:()=>a});const t="plugin-ui-connector-iframe",a=["height_changed","validation_passed","validation_failed","open_url","loaded","ready","current_values","api_call_request","api_call_abort_request","go_to_previous_step","delete","cancel","submitted","submit_failed","close","show_toast","show_lightbox"],i=["init","validate","submit_failed","request_current_values","api_call_response","auth_connector_result","is_busy"];class n{constructor(e,s,t){this.callbacks=new Map,this.sendMessageTypes=new Set,this.receiveMessageTypes=new Set,this.sendMessageTypes=new Set(e),this.receiveMessageTypes=new Set(s),this.sendMessageWindow=t,window.addEventListener("message",this.handleMessage.bind(this))}sendMessage(e,...s){if(!this.sendMessageTypes.has(e))throw new Error(`Unknown send message type: ${String(e)}`);this.sendMessageWindow.postMessage({type:e,payload:s[0],id:t},"*")}subscribeToMessage(e,s){if(!this.receiveMessageTypes.has(e))throw new Error(`Unknown receive message type: ${String(e)}`);const t=this.callbacks.get(e);return t?t.push(s):this.callbacks.set(e,[s]),()=>{const t=this.callbacks.get(e);t&&this.callbacks.set(e,t.filter((e=>e!==s)))}}subscribeToMessageOnce(e,s){const t=a=>{s(a);const i=this.callbacks.get(e);i&&this.callbacks.set(e,i.filter((e=>e!==t)))};return this.subscribeToMessage(e,t)}handleMessage(e){const{id:s}=e.data;if(s!==t)return;const a=e.data.type,i=this.callbacks.get(a);if(i)for(const s of i)s(e.data.payload)}}function o(){return new n(a,i,window.parent)}return s})()));