@myop/sdk 0.0.1 → 0.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundled-declarations.d.ts +96 -82
- package/dist/cjs/_IframeSDK.3a618a6c.min.js +1 -0
- package/dist/cjs/{_IframeSDK.c5a563b1.js → _IframeSDK.5af88b19.js} +120 -2
- package/dist/cjs/{_IframeSDK.c5a563b1.js.map → _IframeSDK.5af88b19.js.map} +3 -3
- package/dist/cjs/{_MyopHelpers.24c3f801.js → _MyopHelpers.98cae3f9.js} +1 -1
- package/dist/cjs/_MyopHelpers.98cae3f9.js.map +7 -0
- package/dist/cjs/_MyopHelpers.f3e207e0.min.js +1 -0
- package/dist/cjs/{_MyopMessages.de6876c1.js → _MyopMessages.1fdd2452.js} +1 -1
- package/dist/cjs/_MyopMessages.1fdd2452.js.map +7 -0
- package/dist/cjs/_MyopMessages.71dc535d.min.js +1 -0
- package/dist/cjs/_WebComponentSDK.54454042.min.js +1 -0
- package/dist/cjs/{_WebComponentSDK.c1dbe840.js → _WebComponentSDK.dec2905a.js} +120 -2
- package/dist/cjs/{_WebComponentSDK.c1dbe840.js.map → _WebComponentSDK.dec2905a.js.map} +3 -3
- package/dist/cjs/_hostSDK.47eaab83.min.js +1 -0
- package/dist/cjs/{_hostSDK.411032df.js → _hostSDK.fcf2c04e.js} +120 -2
- package/dist/cjs/{_hostSDK.411032df.js.map → _hostSDK.fcf2c04e.js.map} +3 -3
- package/dist/cjs/myop_sdk.js +17 -17
- package/dist/cjs/myop_sdk.js.map +1 -1
- package/dist/cjs/myop_sdk.min.js +1 -1
- package/dist/module/Iframe/index.js +127 -3
- package/dist/module/Iframe/index.js.map +3 -3
- package/dist/module/SDK.js +472 -393
- package/dist/module/SDK.js.map +4 -4
- package/dist/module/common/index.js +2 -2
- package/dist/module/common/index.js.map +3 -3
- package/dist/module/common/utils/serialization.d.ts +2 -1
- package/dist/module/helpers/index.js +2 -2
- package/dist/module/helpers/index.js.map +3 -3
- package/dist/module/host/componentCore.d.ts +1 -1
- package/dist/module/host/hostSDK.d.ts +2 -2
- package/dist/module/host/index.js +127 -3
- package/dist/module/host/index.js.map +3 -3
- package/dist/module/host/myopOverride.d.ts +2 -0
- package/dist/module/messages/index.js +2 -2
- package/dist/module/messages/index.js.map +3 -3
- package/dist/module/utils/utils.d.ts +1 -1
- package/dist/module/utils/uuid.d.ts +7 -0
- package/dist/module/webcomponent/index.js +127 -3
- package/dist/module/webcomponent/index.js.map +3 -3
- package/package.json +2 -2
- package/dist/cjs/_IframeSDK.13abd0a4.min.js +0 -1
- package/dist/cjs/_MyopHelpers.24c3f801.js.map +0 -7
- package/dist/cjs/_MyopHelpers.a734fddc.min.js +0 -1
- package/dist/cjs/_MyopMessages.c2dba3be.min.js +0 -1
- package/dist/cjs/_MyopMessages.de6876c1.js.map +0 -7
- package/dist/cjs/_WebComponentSDK.16d30aae.min.js +0 -1
- package/dist/cjs/_hostSDK.bb1d87e3.min.js +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/dynamicImport/defineDynamicImport.ts", "../../src/helpers/index.ts", "../../src/utils/uuid.ts", "../../src/messages/BaseMessage.ts", "../../src/messages/ExecuteScriptMessage.ts", "../../src/messages/CustomRefMessage.ts", "../../src/helpers/applyStylesheet.ts", "../../src/helpers/iframeSkinUrlTokenizer.ts", "../../src/helpers/classList.ts", "../../src/helpers/configBuilder.ts", "../../src/helpers/CloudRepository.ts", "../../src/helpers/exec.ts", "../../src/helpers/MyopHelpers.ts"],
|
|
4
|
+
"sourcesContent": ["export const __federation__ = \"__federation__\"\nexport const onLoadKey = \"onLoad\"\nexport const moduleInstanceKey = \"moduleInstance\"\n\nexport const defineDynamicImport = (globalName: string, module: any) => {\n // @ts-ignore\n if (window[__federation__] && window[__federation__][globalName] && window[__federation__][globalName][onLoadKey]) {\n // @ts-ignore\n window[__federation__][globalName][onLoadKey]({[globalName]: module})\n } else {\n //console.log('__federation__ loader not defined for module', module);\n }\n}", "export * from \"./applyStylesheet\";\nexport * from \"./iframeSkinUrlTokenizer\";\nexport * from \"./classList\";\nexport * from \"./configBuilder\";\nexport * from \"./CloudRepository\";\nexport * from \"./exec\";\n", "//TODO : reuse from one place.\n// needs to be used in myop-sdk, myop-dashbaord, myop-server, myop-cli ..\n\nexport const uuidv4 = () => {\n return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c =>\n (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)\n );\n}\n\n// Convert UUID string to bytes\nexport const uuidToBytes = (uuid: string): Uint8Array => {\n return Uint8Array.from(\n uuid.replace(/-/g, '').match(/.{1,2}/g)!.map(byte => parseInt(byte, 16))\n );\n};\n\n// Convert bytes to UUID string\nexport const bytesToUuid = (bytes: Uint8Array): string => {\n const hex = [...bytes].map(b => b.toString(16).padStart(2, '0')).join('');\n return [\n hex.slice(0, 8),\n hex.slice(8, 12),\n hex.slice(12, 16),\n hex.slice(16, 20),\n hex.slice(20)\n ].join('-');\n};\n\n// Base64 URL-safe encode\nexport const base64UrlEncode = (bytes: Uint8Array): string => {\n const base64 = btoa(String.fromCharCode(...bytes));\n return base64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n};\n\n// Base64 URL-safe decode\nexport const base64UrlDecode = (str: string): Uint8Array => {\n let base64 = str.replace(/-/g, '+').replace(/_/g, '/');\n while (base64.length % 4) base64 += '=';\n const binary = atob(base64);\n return Uint8Array.from(binary, char => char.charCodeAt(0));\n};\n\n// Compress an array of UUIDs into a short URL-safe string\nexport const compressUUIDs = (uuids: string[]): string => {\n const allBytes = uuids.flatMap(uuid => Array.from(uuidToBytes(uuid)));\n return base64UrlEncode(new Uint8Array(allBytes));\n};\n\n// Decompress from URL-safe string back to an array of UUIDs\nexport const decompressUUIDs = (encoded: string): string[] => {\n const bytes = base64UrlDecode(encoded);\n if (bytes.length % 16 !== 0) throw new Error('Invalid input length');\n\n const uuids: string[] = [];\n for (let i = 0; i < bytes.length; i += 16) {\n uuids.push(bytesToUuid(bytes.slice(i, i + 16)));\n }\n return uuids;\n};\n", "import {MyopMessageKey} from \"../common/MyopMessages\";\nimport {uuidv4} from \"../utils/utils\";\nimport {IMyopComponent} from \"../host\";\nimport {IRefConfig} from \"../common\";\n\nexport class MessageDirection {\n static down = 'down' as const\n static up = 'up' as const\n}\n\nexport type MessageDirectionOption = 'up' | 'down';\n\nexport abstract class BaseMyopMessage<T = any> {\n id = uuidv4()\n\n static create<T, U extends new (...args: ConstructorParameters<U>) => T = typeof this>(\n this: U,\n ...args: ConstructorParameters<U>\n ): InstanceType<typeof this> {\n // @ts-ignore\n return new this(...args);\n }\n\n constructor() {\n //console.log('meesage id created', this.id, document.location.href);\n }\n\n myop = true\n\n abstract messageType: MyopMessageKey | string;\n\n content?: T\n\n // TODO : cant be optional \n source?: string\n destination?: string\n\n route?: string[]\n\n ref?: Ref\n\n direction?: MessageDirectionOption\n\n cleanable: boolean = false\n\n isTypeof(msg: BaseMyopMessage): boolean {\n return msg.messageType === this.messageType\n }\n}\n\nexport abstract class MyopElementMessage<T = any> extends BaseMyopMessage<T> {\n constructor(public ref: Ref) {\n super()\n }\n}\n\nexport abstract class MyopBindReplayMessage<T = any> extends BaseMyopMessage<T> {\n constructor(public replayToHandler?: string) {\n super();\n }\n}\n\nexport abstract class MyopBindMessage<T = any, R extends MyopBindReplayMessage = any> extends BaseMyopMessage<T> {\n\n public abstract replyMessageKey: MyopMessageKey;\n\n public handlerUniqueId = uuidv4()\n\n constructor(public handler: (message: R) => void) {\n super()\n }\n}\n\nexport class Ref {\n public myop = true;\n\n public __nonProxied?: Ref;\n\n static create(selector: string, refConfig?: IRefConfig, component?: IMyopComponent) {\n let _refConfig = refConfig;\n if (!_refConfig) {\n _refConfig = {\n id: '',\n name: '',\n description: '',\n selectorType: 'id-attribute',\n selector: selector,\n behavior: {\n type: 'code'\n }\n } as IRefConfig\n }\n return new Ref(_refConfig, component);\n }\n\n constructor(public refConfig: IRefConfig, public component?: IMyopComponent) {\n this.__nonProxied = {\n ...this,\n component: null // in order to be serializable\n }\n }\n}\n", "import {MyopBindMessage, MyopBindReplayMessage} from \"./BaseMessage\";\nimport {MyopMessageKey} from \"../common/MyopMessages\";\nimport {RootRef} from \"../common\";\nimport {makeSerializable} from \"../common/utils/serialization.ts\";\n\nconst ReplayMessageKey = 'ExecuteScriptReplyMessage'\n\nconst functionBodyRegex = /(?:function\\s*\\w*\\s*\\([^)]*\\)\\s*\\{([\\s\\S]*?)\\}|(\\([^)]*\\)\\s*=>\\s*\\{([\\s\\S]*?)\\}))\\s*$/;\nconst expressionBodyRegex = /\\(\\s*[^)]+\\s*\\)\\s*=>\\s*(.+)/;\n\nexport const stripFunction = (content: string) => {\n let match = content.match(functionBodyRegex);\n if (match) {\n return match[1] || match[3];\n } else {\n let match = content.match(expressionBodyRegex);\n if (match)\n return match[1].trim();\n }\n}\n\nexport type scriptInputs = {\n [key: string]: string | number | boolean\n} | {};\n\nexport type scriptVars<T> = {\n send: (data: T) => void;\n // completeStream: () => void;\n rootRef: RootRef;\n makeSerializable: typeof makeSerializable\n}\n\nexport type extendedScriptVars<T, I> = {\n [K in keyof I]: I[K];\n} & scriptVars<T>\n\nexport class ExecuteScriptMessage<T = any, I extends scriptInputs = any> extends MyopBindMessage<string, ExecuteScriptReplyMessage<T>> {\n\n replyMessageKey: MyopMessageKey = ReplayMessageKey;\n messageType = 'ExecuteScriptMessage';\n script: string = ''\n\n static replierKey = 'send';\n static completeStreamKey = 'completeStream';\n\n constructor(script: (vars: extendedScriptVars<T, I>) => T, handler: (message: ExecuteScriptReplyMessage<T>) => void = () => {\n }, public scriptInputs?: I) {\n super(handler);\n this.script = script.toString();\n\n //TODO: can be remove\n this.content = script.toString()\n this.content = stripFunction(this.content);\n }\n}\n\nexport class ExecuteScriptReplyMessage<T = any> extends MyopBindReplayMessage<T> {\n\n messageType = ReplayMessageKey;\n\n constructor(public replayToHandler: string, public content: T) {\n super(replayToHandler);\n }\n}\n", "import {\n ExecuteScriptMessage,\n ExecuteScriptReplyMessage,\n extendedScriptVars,\n scriptInputs, stripFunction\n} from \"./ExecuteScriptMessage.ts\";\n\nexport type customRefScriptInputs = {\n elementId: string,\n ref?: HTMLElement,\n _script?: string,\n __scriptInputs?: Object\n};\n\nexport class CustomRefMessage<T = any, I extends scriptInputs = customRefScriptInputs> extends ExecuteScriptMessage<T, I & customRefScriptInputs> {\n\n constructor(script: (vars: extendedScriptVars<T, I & customRefScriptInputs>) => T,\n public scriptInputs: I & customRefScriptInputs,\n handler: (message: ExecuteScriptReplyMessage<T>) => void = () => {\n }) {\n\n //mock vars\n // let rootRef, elementId, _script, __scriptInputs;\n super(({rootRef, elementId, _script, __scriptInputs}) => {\n const refs = (rootRef.shadowRoot || rootRef.container).querySelectorAll(`[${'myop-id'}='${elementId}']`);\n if (refs.length) {\n // const ref = refs[0];\n\n //TODO : think about exposing \"refs\" and not only \"ref\"\n //for cases where the Ref has multiplate implementations\n\n // @ts-ignore\n __scriptInputs.ref = refs[0];\n\n const dynamicFunction = new Function(`return (${_script})(...arguments)`);\n return dynamicFunction(__scriptInputs);\n\n // @ts-ignore\n //return Function('ref', 'rootRef', ...Object.keys(__scriptInputs), _script!)(ref, rootRef, ...Object.values(__scriptInputs))\n }\n return null as T;\n }, handler);\n\n this.scriptInputs = {\n ...scriptInputs,\n //_script: stripFunction(script.toString()),\n _script: script.toString()\n };\n }\n}\n", "import type * as CSS from \"csstype\";\nimport {IMyopComponent} from \"../host\";\nimport {uuidv4} from \"../utils/utils.ts\";\nimport {ExecuteScriptMessage} from \"../messages\";\n\n// ignoring documentation\n/** @ignore */\nexport interface CSSProperties extends CSS.Properties<string | number> {\n}\n\nexport type StylesheetDefinition = { [key: string]: CSSProperties };\n\nexport const applyStylesheet = (component: IMyopComponent, stylesheet: StylesheetDefinition, css?: string) => {\n const tagId = `myop-css-${uuidv4()}`;\n component.send(new ExecuteScriptMessage(({rootRef, _stylesheet, _tagId, _css}) => {\n const styleTag = document.createElement('style');\n styleTag.type = 'text/css';\n\n // Build the CSS string from the styles object\n let cssString = _css;\n\n for (const selector in _stylesheet) {\n cssString += `${selector} { `;\n const properties = _stylesheet[selector];\n for (const property in properties) {\n cssString += `${property}: ${properties[property]}; `;\n }\n cssString += '} ';\n }\n\n // Set the CSS string as the content of the <style> element\n styleTag.appendChild(document.createTextNode(cssString));\n styleTag.id = _tagId;\n // Append the <style> element\n (rootRef.shadowRoot || rootRef.container).appendChild(styleTag);\n\n }, () => {\n }, {\n _stylesheet: stylesheet,\n _css : css ? css : '',\n _tagId: tagId\n }));\n\n return () => {\n component.send(new ExecuteScriptMessage(({rootRef, _tagId}) => {\n const element = (rootRef.shadowRoot || document).getElementById(_tagId);\n if (element) {\n element.remove();\n }\n }, () => {\n }, {\n _tagId: tagId\n }))\n }\n}\n\nexport const applyStylesheetLink = (component: IMyopComponent, link: string) => {\n const tagId = `myop-css-${uuidv4()}`;\n component.send(new ExecuteScriptMessage(({rootRef, _tagId, _link}) => {\n const linkElement = document.createElement('link');\n linkElement.id = _tagId;\n linkElement.rel = 'stylesheet';\n linkElement.href = _link;\n document.head.appendChild(linkElement);\n\n // Append the <style> element\n (rootRef.shadowRoot || rootRef.container).appendChild(linkElement);\n }, () => {\n }, {\n _link : link,\n _tagId: tagId\n }));\n\n return () => {\n component.send(new ExecuteScriptMessage(({rootRef, _tagId}) => {\n const element = (rootRef.shadowRoot || document).getElementById(_tagId);\n if (element) {\n element.remove();\n }\n }, () => {\n }, {\n _tagId: tagId\n }))\n }\n}\n", "import {IIframeLoaderConfig, ISkinConfig} from \"../common\";\n\nexport type TokenMap = Record<string, string| number>\n\nconst replaceTokens = (input: string, tokenMap: TokenMap): string => {\n // Create a regex pattern from the keys of the tokenMap\n const pattern = new RegExp(Object.keys(tokenMap).join('|'), 'g');\n\n // Replace tokens in the input string using the regex\n return input.replace(pattern, (matched) => {\n // Return the replacement value from the tokenMap\n return (tokenMap[matched] || matched).toString();\n });\n}\n\nexport const createIframeSkinByTokenizer = (selectedSkin: ISkinConfig, tokenMap: TokenMap) => {\n const typedSkinConfig = (selectedSkin.loader as IIframeLoaderConfig)\n if (typedSkinConfig.type !== 'IframeLoader') {\n throw new Error(`iframeSkinUrlTokenizer received skin with loader type \"${typedSkinConfig.type}\", currently only \"IframeLoader\" is supported`)\n }\n\n selectedSkin.loader = {\n ...selectedSkin.loader\n }\n\n selectedSkin.loader.url = replaceTokens(selectedSkin.loader.url, tokenMap);\n\n return selectedSkin;\n}\n\nexport const changeSkinUrlByTokenizer = (tokenMap: TokenMap) => {\n return async (selectedSkin: ISkinConfig) => {\n return createIframeSkinByTokenizer(selectedSkin, tokenMap);\n }\n}", "import {CustomRefMessage} from \"../messages\";\nimport {IMyopComponent} from \"../host\";\n\n// const space = ' ';\n// export const getClasses = async (connectedRef: Ref): Promise<string[]> => (await exec(actAs<HTMLDivElement>(connectedRef).classList)).value.split(space);\n// export const addClass = async (connectedRef: Ref, className: string) => {\n// const classes = await getClasses(connectedRef);\n// classes.includes(className) || classes.push(className);\n// // @ts-ignore\n// connectedRef.classList = classes.join(space);\n// }\n// export const removeClass = async (connectedRef: Ref, className: string,) => {\n// let classes = await getClasses(connectedRef);\n// // @ts-ignore\n// connectedRef.classList = classes.filter(c => c !== className).join(space);\n// }\n//\n//\n\nexport const addClass = (component: IMyopComponent, className: string, myopId: string) => {\n component.send(new CustomRefMessage(({ref, _className}) => {\n ref?.classList.add(_className);\n }, {\n elementId: myopId,\n _className: className\n }));\n}\n\nexport const removeClass = (component: IMyopComponent, className: string, myopId: string) => {\n component.send(new CustomRefMessage(({ref, _className}) => {\n ref?.classList.remove(_className);\n }, {\n elementId: myopId,\n _className: className\n }));\n}", "import {\n IComponentConfig,\n IComponentDefinitionConfig,\n IComponentInstanceConfig, IHTMLLoaderConfig, IRefConfig,\n ISkinLoaderConfig,\n ISkinSelectorConfig,\n IDedicatedSkinConfig, ISkinConfig\n} from \"../common\";\nimport {uuidv4} from \"../utils/utils.ts\";\n\nexport class SkinConfig implements ISkinConfig {\n _runTimeInstanceId = 'runtime-instance-id-' + uuidv4();\n _runTimeId = 'runtime-id-' + uuidv4();\n _runTimeName = 'runtime-name-' + uuidv4();\n\n static create = () => {\n return new SkinConfig();\n }\n\n id = this._runTimeId;\n name = this._runTimeName;\n description = '';\n loader = null as unknown as ISkinLoaderConfig;\n\n withLoader = (loader: ISkinLoaderConfig) => {\n this.loader = loader;\n return this;\n }\n\n withHTMLLoader = (loader: Omit<IHTMLLoaderConfig, 'type'>) => {\n loader.type = 'HTMLLoader';\n this.loader = loader as IHTMLLoaderConfig;\n return this;\n }\n\n build = () => {\n return this;\n }\n}\n\nexport class ComponentConfig implements IComponentConfig {\n _runTimeInstanceId = 'runtime-instance-id-' + uuidv4();\n _runTimeId = 'runtime-id-' + uuidv4();\n _runTimeName = 'runtime-name-' + uuidv4();\n\n static create = () => {\n return new ComponentConfig();\n }\n\n instance = {\n id: this._runTimeInstanceId,\n componentId: this._runTimeId,\n componentName: this._runTimeName,\n skinSelector: null as unknown as ISkinSelectorConfig\n } as IComponentInstanceConfig;\n\n name = this._runTimeName\n type = {\n id: this._runTimeId,\n name: this._runTimeName,\n description: '',\n props: [],\n refs: [],\n skins: [],\n defaultSkin: 0\n } as IComponentDefinitionConfig\n\n withInstance = (instance: IComponentInstanceConfig) => {\n this.instance = instance;\n return this;\n }\n\n withType = (type: IComponentDefinitionConfig) => {\n this.type = type;\n return this;\n }\n\n withName = (name: string) => {\n this.name = name;\n return this;\n }\n\n withDefaultSkin = (defaultSkin: ISkinConfig) => {\n this.type.skins.push(defaultSkin);\n this.type.defaultSkin = this.type.skins.length - 1;\n this.instance.skinSelector = {\n type: 'Dedicated',\n skin: {\n id: defaultSkin.id\n }\n } as IDedicatedSkinConfig\n\n return this;\n }\n\n withRef = (ref: IRefConfig) => {\n this.type.refs.push(ref);\n return this;\n }\n\n withBasicRef = (refSelector: string) => {\n const newBasicRef = {\n id: '',\n name: refSelector,\n description: '',\n selectorType: 'id-attribute',\n selector: refSelector,\n behavior: {\n type: 'code'\n }\n } as IRefConfig\n\n this.type.refs.push(newBasicRef);\n return this;\n }\n\n build = () => {\n return JSON.parse(JSON.stringify(this))\n }\n}\n", "import {IUserFlow} from \"../common\";\n\n/**\n *\n * ## Overview\n *\n * The `CloudRepository` class serves as a centralized data access layer for retrieving user flows and components from the Myop.dev cloud service. It implements a singleton pattern and provides caching mechanisms to optimize API calls and improve performance.\n *\n * ## Class Structure\n *\n * ### Constructor\n *\n * ```typescript\n * constructor(private _baseUrl = 'https://cloud.myop.dev')\n * ```\n *\n * **Parameters:**\n * - `_baseUrl` (optional): The base URL for the Myop.dev cloud API. Defaults to `'https://cloud.myop.dev'`\n *\n * ### Static Properties\n *\n * #### Main\n * ```typescript\n * static Main = new CloudRepository();\n * ```\n *\n * A singleton instance of the `CloudRepository` class that can be used throughout the application without creating multiple instances.\n *\n * ### Private Properties\n *\n * #### userFlows\n * ```typescript\n * private userFlows: Record<string, Promise<IUserFlow>> = {};\n * ```\n *\n * A cache object that stores promises for user flows, indexed by flow ID. This prevents duplicate API calls for the same flow and ensures consistent data retrieval.\n *\n * #### _baseUrl\n * ```typescript\n * private _baseUrl: string\n * ```\n *\n * The base URL for the cloud API endpoints, set during construction.\n *\n * ## Methods\n *\n * ### fetchFlow(flowId: string)\n *\n * Retrieves a complete user flow from the cloud repository, including all resolved components.\n *\n * **Parameters:**\n * - `flowId`: The unique identifier for the user flow to retrieve\n *\n * **Returns:**\n * - `Promise<IUserFlow>`: A promise that resolves to the complete user flow object\n *\n * **Behavior:**\n * - Implements request caching to avoid duplicate API calls for the same flow ID\n * - Makes a GET request to `/flow?id={flowId}&resolve=components`\n * - Automatically resolves component references within the flow\n * - Stores the promise in the cache for future use\n *\n * **Example Usage:**\n * ```typescript\n * const flow = await CloudRepository.Main.fetchFlow('my-flow-id');\n * console.log(flow.components);\n * ```\n *\n * ### fetchComponent(componentId: string, flowId: string)\n *\n * Retrieves a specific component from within a user flow.\n *\n * **Parameters:**\n * - `componentId`: The unique identifier for the component to retrieve\n * - `flowId`: The unique identifier for the user flow containing the component\n *\n * **Returns:**\n * - `Promise<Component | undefined>`: A promise that resolves to the component object if found, or undefined if not found\n *\n * **Behavior:**\n * - First fetches the complete flow using `fetchFlow()`\n * - Searches through the flow's components array to find the matching component\n * - Uses the component's `type.id` property for matching\n *\n * **Example Usage:**\n * ```typescript\n * const component = await CloudRepository.Main.fetchComponent('button-component', 'my-flow-id');\n * if (component) {\n * console.log('Component found:', component);\n * } else {\n * console.log('Component not found in flow');\n * }\n * ```\n *\n * ## API Integration\n *\n * ### Endpoint Structure\n *\n * The class integrates with the following Myop.dev cloud API endpoint:\n *\n * ```\n * GET {baseUrl}/flow?id={flowId}&resolve=components\n * ```\n *\n * **Query Parameters:**\n * - `id`: The flow identifier\n * - `resolve=components`: Instructs the API to include resolved component data in the response\n *\n * ### Response Format\n *\n * The API is expected to return a JSON response with the following structure:\n *\n * ```json\n * {\n * \"item\": {\n * // IUserFlow object with resolved components\n * \"components\": [\n * {\n * \"type\": {\n * \"id\": \"component-id\"\n * }\n * // ... other component properties\n * }\n * ]\n * // ... other flow properties\n * }\n * }\n * ```\n *\n * ## Caching Strategy\n *\n * The `CloudRepository` implements a promise-based caching mechanism:\n *\n * 1. **Cache Key**: Flow ID is used as the cache key\n * 2. **Cache Value**: Promises are cached rather than resolved values to handle concurrent requests\n * 3. **Cache Duration**: Cache persists for the lifetime of the repository instance\n * 4. **Cache Invalidation**: No automatic cache invalidation is implemented\n *\n * ## Error Handling\n *\n * - Network errors and API failures are propagated through promise rejection\n * - No specific error handling or retry logic is implemented at the repository level\n * - Consumers should implement appropriate error handling when calling repository methods\n *\n * ## Usage Patterns\n *\n * ### Singleton Access\n * ```typescript\n * import { CloudRepository } from './path/to/CloudRepository';\n *\n * // Use the singleton instance\n * const flow = await CloudRepository.Main.fetchFlow('flow-id');\n * ```\n *\n * ### Custom Instance\n * ```typescript\n * // Create a custom instance with different base URL\n * const customRepo = new CloudRepository('https://custom-api.example.com');\n * const flow = await customRepo.fetchFlow('flow-id');\n * ```\n *\n * ### Component Retrieval\n * ```typescript\n * // Get a specific component from a flow\n * const component = await CloudRepository.Main.fetchComponent('component-id', 'flow-id');\n * ```\n *\n * ## Dependencies\n *\n * - **IUserFlow**: Interface imported from `../common` that defines the structure of user flow objects\n * - **Fetch API**: Uses the native `fetch` function for HTTP requests\n *\n * ## Performance Considerations\n *\n * - **Caching**: Prevents duplicate API calls for the same flow ID\n * - **Promise Caching**: Handles concurrent requests efficiently by caching promises\n * - **Component Resolution**: The `resolve=components` parameter ensures components are fully resolved in a single API call\n *\n * ## Future Enhancements\n *\n * The class structure suggests planned functionality that could be implemented:\n *\n * - **Component Caching**: The commented `components` property indicates potential individual component caching\n * - **Cache Invalidation**: Methods to clear or refresh cached data\n * - **Error Retry Logic**: Automatic retry mechanisms for failed requests\n * - **Batch Operations**: Methods to fetch multiple flows or components in a single request\n *\n */\nexport class CloudRepository {\n static Main = new CloudRepository();\n\n private userFlows: Record<string, Promise<IUserFlow>> = {};\n\n // private components: Record<string, Promise<IUserFlow>> = {};\n\n constructor(private _baseUrl = 'https://cloud.myop.dev') {\n }\n\n async fetchComponent(componentId: string, flowId?: string) {\n if (flowId) {\n const flow = await this.fetchFlow(flowId);\n return flow.components.find(c => c.type.id === componentId);\n }else{\n const flow = await this.fetchAutoFlow(componentId);\n return flow.components[0];\n }\n }\n\n async fetchAutoFlow(componentId: string) {\n if (!this.userFlows[componentId]) {\n // eslint-disable-next-line no-async-promise-executor\n this.userFlows[componentId] = new Promise(\n async (resolve, reject) => {\n try {\n const res = await fetch(\n `${this._baseUrl}/flow?id=${componentId}&auto=true`\n );\n const json = await res.json();\n resolve(json.item);\n } catch (e) {\n reject(e);\n }\n }\n );\n }\n\n return await this.userFlows[componentId];\n }\n\n\n async fetchFlow(flowId: string) {\n if (!this.userFlows[flowId]) {\n // eslint-disable-next-line no-async-promise-executor\n this.userFlows[flowId] = new Promise(\n async (resolve, reject) => {\n try {\n const res = await fetch(\n `${this._baseUrl}/flow?id=${flowId}&resolve=components`\n );\n const json = await res.json();\n resolve(json.item);\n } catch (e) {\n reject(e);\n }\n }\n );\n }\n\n return await this.userFlows[flowId];\n }\n}\n", "export const exec = async (getter: any) => {\n return await getter()\n}\n", "import {defineDynamicImport} from \"../dynamicImport/defineDynamicImport.ts\";\nimport * as MyopHelpers from \"./index.ts\";\n\nexport * from \"./index.ts\";\n\ndefineDynamicImport('MyopHelpers', MyopHelpers);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["match", "scriptInputs", "scriptInputs"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _=Object.defineProperty,D=Object.defineProperties;var z=Object.getOwnPropertyDescriptors;var E=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable;var R=(s,e,r)=>e in s?_(s,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[e]=r,d=(s,e)=>{for(var r in e||(e={}))A.call(e,r)&&R(s,r,e[r]);if(E)for(var r of E(e))N.call(e,r)&&R(s,r,e[r]);return s},C=(s,e)=>D(s,z(e));var V=(s,e)=>{for(var r in e)_(s,r,{get:e[r],enumerable:!0})};var t=(s,e,r)=>R(s,typeof e!="symbol"?e+"":e,r);var M="__federation__",L="onLoad";var U=(s,e)=>{window[M]&&window[M][s]&&window[M][s][L]&&window[M][s][L]({[s]:e})};var v={};V(v,{CloudRepository:()=>k,ComponentConfig:()=>S,SkinConfig:()=>w,addClass:()=>Q,applyStylesheet:()=>O,applyStylesheetLink:()=>q,changeSkinUrlByTokenizer:()=>J,createIframeSkinByTokenizer:()=>F,exec:()=>X,removeClass:()=>W});var a=()=>"10000000-1000-4000-8000-100000000000".replace(/[018]/g,s=>(+s^crypto.getRandomValues(new Uint8Array(1))[0]&15>>+s/4).toString(16));var c=class{constructor(){t(this,"id",a());t(this,"myop",!0);t(this,"content");t(this,"source");t(this,"destination");t(this,"route");t(this,"ref");t(this,"direction");t(this,"cleanable",!1)}static create(...e){return new this(...e)}isTypeof(e){return e.messageType===this.messageType}};var m=class extends c{constructor(r){super();this.handler=r;t(this,"handlerUniqueId",a())}};var $="ExecuteScriptReplyMessage",H=/(?:function\s*\w*\s*\([^)]*\)\s*\{([\s\S]*?)\}|(\([^)]*\)\s*=>\s*\{([\s\S]*?)\}))\s*$/,P=/\(\s*[^)]+\s*\)\s*=>\s*(.+)/,j=s=>{let e=s.match(H);if(e)return e[1]||e[3];{let r=s.match(P);if(r)return r[1].trim()}},l=class extends m{constructor(r,o=()=>{},n){super(o);this.scriptInputs=n;t(this,"replyMessageKey",$);t(this,"messageType","ExecuteScriptMessage");t(this,"script","");this.script=r.toString(),this.content=r.toString(),this.content=j(this.content)}};t(l,"replierKey","send"),t(l,"completeStreamKey","completeStream");var f=class extends l{constructor(r,o,n=()=>{}){super(({rootRef:i,elementId:p,_script:I,__scriptInputs:y})=>{let u=(i.shadowRoot||i.container).querySelectorAll("[myop-id='".concat(p,"']"));return u.length?(y.ref=u[0],new Function("return (".concat(I,")(...arguments)"))(y)):null},n);this.scriptInputs=o;this.scriptInputs=C(d({},o),{_script:r.toString()})}};var O=(s,e,r)=>{let o="myop-css-".concat(a());return s.send(new l(({rootRef:n,_stylesheet:i,_tagId:p,_css:I})=>{let y=document.createElement("style");y.type="text/css";let u=I;for(let b in i){u+="".concat(b," { ");let K=i[b];for(let B in K)u+="".concat(B,": ").concat(K[B],"; ");u+="} "}y.appendChild(document.createTextNode(u)),y.id=p,(n.shadowRoot||n.container).appendChild(y)},()=>{},{_stylesheet:e,_css:r||"",_tagId:o})),()=>{s.send(new l(({rootRef:n,_tagId:i})=>{let p=(n.shadowRoot||document).getElementById(i);p&&p.remove()},()=>{},{_tagId:o}))}},q=(s,e)=>{let r="myop-css-".concat(a());return s.send(new l(({rootRef:o,_tagId:n,_link:i})=>{let p=document.createElement("link");p.id=n,p.rel="stylesheet",p.href=i,document.head.appendChild(p),(o.shadowRoot||o.container).appendChild(p)},()=>{},{_link:e,_tagId:r})),()=>{s.send(new l(({rootRef:o,_tagId:n})=>{let i=(o.shadowRoot||document).getElementById(n);i&&i.remove()},()=>{},{_tagId:r}))}};var G=(s,e)=>{let r=new RegExp(Object.keys(e).join("|"),"g");return s.replace(r,o=>(e[o]||o).toString())},F=(s,e)=>{let r=s.loader;if(r.type!=="IframeLoader")throw new Error('iframeSkinUrlTokenizer received skin with loader type "'.concat(r.type,'", currently only "IframeLoader" is supported'));return s.loader=d({},s.loader),s.loader.url=G(s.loader.url,e),s},J=s=>async e=>F(e,s);var Q=(s,e,r)=>{s.send(new f(({ref:o,_className:n})=>{o==null||o.classList.add(n)},{elementId:r,_className:e}))},W=(s,e,r)=>{s.send(new f(({ref:o,_className:n})=>{o==null||o.classList.remove(n)},{elementId:r,_className:e}))};var x=class x{constructor(){t(this,"_runTimeInstanceId","runtime-instance-id-"+a());t(this,"_runTimeId","runtime-id-"+a());t(this,"_runTimeName","runtime-name-"+a());t(this,"id",this._runTimeId);t(this,"name",this._runTimeName);t(this,"description","");t(this,"loader",null);t(this,"withLoader",e=>(this.loader=e,this));t(this,"withHTMLLoader",e=>(e.type="HTMLLoader",this.loader=e,this));t(this,"build",()=>this)}};t(x,"create",()=>new x);var w=x,h=class h{constructor(){t(this,"_runTimeInstanceId","runtime-instance-id-"+a());t(this,"_runTimeId","runtime-id-"+a());t(this,"_runTimeName","runtime-name-"+a());t(this,"instance",{id:this._runTimeInstanceId,componentId:this._runTimeId,componentName:this._runTimeName,skinSelector:null});t(this,"name",this._runTimeName);t(this,"type",{id:this._runTimeId,name:this._runTimeName,description:"",props:[],refs:[],skins:[],defaultSkin:0});t(this,"withInstance",e=>(this.instance=e,this));t(this,"withType",e=>(this.type=e,this));t(this,"withName",e=>(this.name=e,this));t(this,"withDefaultSkin",e=>(this.type.skins.push(e),this.type.defaultSkin=this.type.skins.length-1,this.instance.skinSelector={type:"Dedicated",skin:{id:e.id}},this));t(this,"withRef",e=>(this.type.refs.push(e),this));t(this,"withBasicRef",e=>{let r={id:"",name:e,description:"",selectorType:"id-attribute",selector:e,behavior:{type:"code"}};return this.type.refs.push(r),this});t(this,"build",()=>JSON.parse(JSON.stringify(this)))}};t(h,"create",()=>new h);var S=h;var T=class T{constructor(e="https://cloud.myop.dev"){this._baseUrl=e;t(this,"userFlows",{})}async fetchComponent(e,r){return r?(await this.fetchFlow(r)).components.find(n=>n.type.id===e):(await this.fetchAutoFlow(e)).components[0]}async fetchAutoFlow(e){return this.userFlows[e]||(this.userFlows[e]=new Promise(async(r,o)=>{try{let i=await(await fetch("".concat(this._baseUrl,"/flow?id=").concat(e,"&auto=true"))).json();r(i.item)}catch(n){o(n)}})),await this.userFlows[e]}async fetchFlow(e){return this.userFlows[e]||(this.userFlows[e]=new Promise(async(r,o)=>{try{let i=await(await fetch("".concat(this._baseUrl,"/flow?id=").concat(e,"&resolve=components"))).json();r(i.item)}catch(n){o(n)}})),await this.userFlows[e]}};t(T,"Main",new T);var k=T;var X=async s=>await s();U("MyopHelpers",v);export{k as CloudRepository,S as ComponentConfig,w as SkinConfig,Q as addClass,O as applyStylesheet,q as applyStylesheetLink,J as changeSkinUrlByTokenizer,F as createIframeSkinByTokenizer,X as exec,W as removeClass};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/messages/index.ts", "../../src/utils/uuid.ts", "../../src/messages/BaseMessage.ts", "../../src/messages/BindClickMessage.ts", "../../src/messages/ChangeTextMessage.ts", "../../src/messages/ExecuteScriptMessage.ts", "../../src/messages/CustomRefMessage.ts", "../../src/messages/AddEventListenerMessage.ts", "../../src/messages/SetAttributeMessage.ts", "../../src/messages/GetElementValueMessage.ts", "../../src/messages/SetInnerHtml.ts", "../../src/messages/InitMessage.ts", "../../src/messages/CreateRefComponentMessage.ts", "../../src/messages/EnvelopedMessage.ts", "../../src/messages/DetectMyopRefsMessage.ts", "../../src/messages/GetAttributeMessage.ts", "../../src/messages/componentMessages/ExecuteComponentMethod.ts", "../../src/messages/componentMessages/SetMutationObserverMessage.ts", "../../src/messages/CleanupMessage.ts", "../../src/messages/DisposeMessage.ts", "../../src/messages/componentMessages/SetResizeObserverMessage.ts", "../../src/dynamicImport/defineDynamicImport.ts", "../../src/messages/MyopMessages.ts"],
|
|
4
|
+
"sourcesContent": ["export * from './BaseMessage';\n\n//user's messages\nexport * from './BindClickMessage';\nexport * from './ChangeTextMessage';\nexport * from './ExecuteScriptMessage';\nexport * from './CustomRefMessage';\nexport * from './AddEventListenerMessage';\nexport * from './SetAttributeMessage';\nexport * from './GetElementValueMessage';\nexport * from './SetInnerHtml';\n\n//system messages\nexport * from './InitMessage';\nexport * from './CreateRefComponentMessage';\nexport * from './EnvelopedMessage';\nexport * from './DetectMyopRefsMessage';\nexport * from './GetElementValueMessage';\nexport * from './GetAttributeMessage';\n\nexport * from './componentMessages/ExecuteComponentMethod';\nexport * from './componentMessages/SetMutationObserverMessage';\nexport * from './CleanupMessage';\nexport * from './DisposeMessage';\nexport * from './componentMessages/SetResizeObserverMessage';", "//TODO : reuse from one place.\n// needs to be used in myop-sdk, myop-dashbaord, myop-server, myop-cli ..\n\nexport const uuidv4 = () => {\n return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c =>\n (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)\n );\n}\n\n// Convert UUID string to bytes\nexport const uuidToBytes = (uuid: string): Uint8Array => {\n return Uint8Array.from(\n uuid.replace(/-/g, '').match(/.{1,2}/g)!.map(byte => parseInt(byte, 16))\n );\n};\n\n// Convert bytes to UUID string\nexport const bytesToUuid = (bytes: Uint8Array): string => {\n const hex = [...bytes].map(b => b.toString(16).padStart(2, '0')).join('');\n return [\n hex.slice(0, 8),\n hex.slice(8, 12),\n hex.slice(12, 16),\n hex.slice(16, 20),\n hex.slice(20)\n ].join('-');\n};\n\n// Base64 URL-safe encode\nexport const base64UrlEncode = (bytes: Uint8Array): string => {\n const base64 = btoa(String.fromCharCode(...bytes));\n return base64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n};\n\n// Base64 URL-safe decode\nexport const base64UrlDecode = (str: string): Uint8Array => {\n let base64 = str.replace(/-/g, '+').replace(/_/g, '/');\n while (base64.length % 4) base64 += '=';\n const binary = atob(base64);\n return Uint8Array.from(binary, char => char.charCodeAt(0));\n};\n\n// Compress an array of UUIDs into a short URL-safe string\nexport const compressUUIDs = (uuids: string[]): string => {\n const allBytes = uuids.flatMap(uuid => Array.from(uuidToBytes(uuid)));\n return base64UrlEncode(new Uint8Array(allBytes));\n};\n\n// Decompress from URL-safe string back to an array of UUIDs\nexport const decompressUUIDs = (encoded: string): string[] => {\n const bytes = base64UrlDecode(encoded);\n if (bytes.length % 16 !== 0) throw new Error('Invalid input length');\n\n const uuids: string[] = [];\n for (let i = 0; i < bytes.length; i += 16) {\n uuids.push(bytesToUuid(bytes.slice(i, i + 16)));\n }\n return uuids;\n};\n", "import {MyopMessageKey} from \"../common/MyopMessages\";\nimport {uuidv4} from \"../utils/utils\";\nimport {IMyopComponent} from \"../host\";\nimport {IRefConfig} from \"../common\";\n\nexport class MessageDirection {\n static down = 'down' as const\n static up = 'up' as const\n}\n\nexport type MessageDirectionOption = 'up' | 'down';\n\nexport abstract class BaseMyopMessage<T = any> {\n id = uuidv4()\n\n static create<T, U extends new (...args: ConstructorParameters<U>) => T = typeof this>(\n this: U,\n ...args: ConstructorParameters<U>\n ): InstanceType<typeof this> {\n // @ts-ignore\n return new this(...args);\n }\n\n constructor() {\n //console.log('meesage id created', this.id, document.location.href);\n }\n\n myop = true\n\n abstract messageType: MyopMessageKey | string;\n\n content?: T\n\n // TODO : cant be optional \n source?: string\n destination?: string\n\n route?: string[]\n\n ref?: Ref\n\n direction?: MessageDirectionOption\n\n cleanable: boolean = false\n\n isTypeof(msg: BaseMyopMessage): boolean {\n return msg.messageType === this.messageType\n }\n}\n\nexport abstract class MyopElementMessage<T = any> extends BaseMyopMessage<T> {\n constructor(public ref: Ref) {\n super()\n }\n}\n\nexport abstract class MyopBindReplayMessage<T = any> extends BaseMyopMessage<T> {\n constructor(public replayToHandler?: string) {\n super();\n }\n}\n\nexport abstract class MyopBindMessage<T = any, R extends MyopBindReplayMessage = any> extends BaseMyopMessage<T> {\n\n public abstract replyMessageKey: MyopMessageKey;\n\n public handlerUniqueId = uuidv4()\n\n constructor(public handler: (message: R) => void) {\n super()\n }\n}\n\nexport class Ref {\n public myop = true;\n\n public __nonProxied?: Ref;\n\n static create(selector: string, refConfig?: IRefConfig, component?: IMyopComponent) {\n let _refConfig = refConfig;\n if (!_refConfig) {\n _refConfig = {\n id: '',\n name: '',\n description: '',\n selectorType: 'id-attribute',\n selector: selector,\n behavior: {\n type: 'code'\n }\n } as IRefConfig\n }\n return new Ref(_refConfig, component);\n }\n\n constructor(public refConfig: IRefConfig, public component?: IMyopComponent) {\n this.__nonProxied = {\n ...this,\n component: null // in order to be serializable\n }\n }\n}\n", "import {MyopBindMessage, MyopBindReplayMessage, Ref} from \"./BaseMessage\";\nimport {MyopMessageKey} from \"../common/MyopMessages\";\n\nconst ReplayMessageKey = 'ClickReplayMessage'\n\nexport class BindClickMessage extends MyopBindMessage<void, ClickReplayMessage> {\n replyMessageKey: MyopMessageKey = ReplayMessageKey\n messageType = 'BindClickMessage';\n cleanable = true;\n\n constructor(public ref: Ref, handler: (message: ClickReplayMessage) => void) {\n super(handler);\n }\n}\n\nexport class ClickReplayMessage extends MyopBindReplayMessage {\n messageType = ReplayMessageKey\n}\n\n", "import {BaseMyopMessage, Ref} from \"./BaseMessage\";\n\nexport class ChangeTextMessage extends BaseMyopMessage<string> {\n\n messageType = 'ChangeTextMessage';\n\n constructor(public ref: Ref, text: string) {\n super();\n this.content = text\n }\n}", "import {MyopBindMessage, MyopBindReplayMessage} from \"./BaseMessage\";\nimport {MyopMessageKey} from \"../common/MyopMessages\";\nimport {RootRef} from \"../common\";\nimport {makeSerializable} from \"../common/utils/serialization.ts\";\n\nconst ReplayMessageKey = 'ExecuteScriptReplyMessage'\n\nconst functionBodyRegex = /(?:function\\s*\\w*\\s*\\([^)]*\\)\\s*\\{([\\s\\S]*?)\\}|(\\([^)]*\\)\\s*=>\\s*\\{([\\s\\S]*?)\\}))\\s*$/;\nconst expressionBodyRegex = /\\(\\s*[^)]+\\s*\\)\\s*=>\\s*(.+)/;\n\nexport const stripFunction = (content: string) => {\n let match = content.match(functionBodyRegex);\n if (match) {\n return match[1] || match[3];\n } else {\n let match = content.match(expressionBodyRegex);\n if (match)\n return match[1].trim();\n }\n}\n\nexport type scriptInputs = {\n [key: string]: string | number | boolean\n} | {};\n\nexport type scriptVars<T> = {\n send: (data: T) => void;\n // completeStream: () => void;\n rootRef: RootRef;\n makeSerializable: typeof makeSerializable\n}\n\nexport type extendedScriptVars<T, I> = {\n [K in keyof I]: I[K];\n} & scriptVars<T>\n\nexport class ExecuteScriptMessage<T = any, I extends scriptInputs = any> extends MyopBindMessage<string, ExecuteScriptReplyMessage<T>> {\n\n replyMessageKey: MyopMessageKey = ReplayMessageKey;\n messageType = 'ExecuteScriptMessage';\n script: string = ''\n\n static replierKey = 'send';\n static completeStreamKey = 'completeStream';\n\n constructor(script: (vars: extendedScriptVars<T, I>) => T, handler: (message: ExecuteScriptReplyMessage<T>) => void = () => {\n }, public scriptInputs?: I) {\n super(handler);\n this.script = script.toString();\n\n //TODO: can be remove\n this.content = script.toString()\n this.content = stripFunction(this.content);\n }\n}\n\nexport class ExecuteScriptReplyMessage<T = any> extends MyopBindReplayMessage<T> {\n\n messageType = ReplayMessageKey;\n\n constructor(public replayToHandler: string, public content: T) {\n super(replayToHandler);\n }\n}\n", "import {\n ExecuteScriptMessage,\n ExecuteScriptReplyMessage,\n extendedScriptVars,\n scriptInputs, stripFunction\n} from \"./ExecuteScriptMessage.ts\";\n\nexport type customRefScriptInputs = {\n elementId: string,\n ref?: HTMLElement,\n _script?: string,\n __scriptInputs?: Object\n};\n\nexport class CustomRefMessage<T = any, I extends scriptInputs = customRefScriptInputs> extends ExecuteScriptMessage<T, I & customRefScriptInputs> {\n\n constructor(script: (vars: extendedScriptVars<T, I & customRefScriptInputs>) => T,\n public scriptInputs: I & customRefScriptInputs,\n handler: (message: ExecuteScriptReplyMessage<T>) => void = () => {\n }) {\n\n //mock vars\n // let rootRef, elementId, _script, __scriptInputs;\n super(({rootRef, elementId, _script, __scriptInputs}) => {\n const refs = (rootRef.shadowRoot || rootRef.container).querySelectorAll(`[${'myop-id'}='${elementId}']`);\n if (refs.length) {\n // const ref = refs[0];\n\n //TODO : think about exposing \"refs\" and not only \"ref\"\n //for cases where the Ref has multiplate implementations\n\n // @ts-ignore\n __scriptInputs.ref = refs[0];\n\n const dynamicFunction = new Function(`return (${_script})(...arguments)`);\n return dynamicFunction(__scriptInputs);\n\n // @ts-ignore\n //return Function('ref', 'rootRef', ...Object.keys(__scriptInputs), _script!)(ref, rootRef, ...Object.values(__scriptInputs))\n }\n return null as T;\n }, handler);\n\n this.scriptInputs = {\n ...scriptInputs,\n //_script: stripFunction(script.toString()),\n _script: script.toString()\n };\n }\n}\n", "import {MyopBindMessage, MyopBindReplayMessage, Ref} from \"./BaseMessage\";\nimport {MyopMessageKey} from \"../common/MyopMessages\";\nimport {Serializable, SerializableSkeleton} from \"../common/utils/serialization.ts\";\n\nconst ReplayMessageKey = 'EventListenerCallbackMessage'\n\nexport class AddEventListenerMessage<T extends keyof HTMLElementEventMap = keyof HTMLElementEventMap> extends MyopBindMessage {\n\n replyMessageKey: MyopMessageKey = ReplayMessageKey;\n messageType = 'AddEventListenerMessage';\n cleanable = true;\n serializableSkeleton: SerializableSkeleton<HTMLElementEventMap[T]> = false // {} // empty\n\n constructor(public ref: Ref, public type: T, public handler: (message: EventListenerCallbackMessage) => void) {\n super(handler)\n }\n\n withSerializableSkeleton(serializableSkeleton: SerializableSkeleton<HTMLElementEventMap[T]>) {\n this.serializableSkeleton = serializableSkeleton;\n return this;\n }\n}\n\nexport class EventListenerCallbackMessage extends MyopBindReplayMessage {\n messageType = ReplayMessageKey;\n\n constructor(public replayToHandler: string, public e: Serializable<Event>) {\n super(replayToHandler);\n this.content = {\n e\n }\n }\n}\n", "import {BaseMyopMessage, Ref,} from \"./BaseMessage\";\n\n\nexport class SetAttributeMessage extends BaseMyopMessage {\n\n messageType = 'SetAttributeMessage';\n\n constructor(public ref: Ref, public name: string, public value: string) {\n super()\n }\n}\n", "import {MyopBindMessage, MyopBindReplayMessage, Ref} from \"./BaseMessage\";\nimport {MyopMessageKey} from \"../common/MyopMessages\";\nimport {Serializable} from \"../common/utils/serialization.ts\";\n\nconst ReplayMessageKey = 'ElementValueReplayMessage'\n\nexport class GetElementValueMessage extends MyopBindMessage<void, ElementValueReplayMessage> {\n replyMessageKey: MyopMessageKey = ReplayMessageKey\n messageType = 'GetElementValueMessage';\n\n constructor(public ref: Ref, handler: (message: ElementValueReplayMessage) => void) {\n super(handler);\n }\n}\n\nexport type FormDataEntry = {\n id?: string,\n name?: string,\n value?: InputElementValue,\n required?: boolean,\n validity?: Serializable<ValidityState>,\n myopId?: string\n}\n\nexport type InputElementFormValue = {\n formData?: { [key: string]: FormDataEntry }\n unmappedData?: FormDataEntry[]\n};\n\nexport type InputElementValue = string | InputElementFormValue | null | undefined\n\nexport class ElementValueReplayMessage extends MyopBindReplayMessage {\n messageType = ReplayMessageKey\n\n constructor(public content: InputElementValue) {\n super();\n }\n}\n\n", "import {BaseMyopMessage, Ref} from \"./BaseMessage.ts\";\n\nexport class SetInnerHtml extends BaseMyopMessage<string> {\n\n messageType = 'SetInnerHtml';\n\n constructor(public ref: Ref, innerHtml: string) {\n super();\n this.content = innerHtml\n }\n}", "import { BaseMyopMessage } from \"./BaseMessage\";\n\n// sent by host to components, contains thier id \nexport class InitMessage extends BaseMyopMessage<{ id: string }> {\n messageType = 'InitMessage';\n\n constructor(id: string) {\n super()\n this.content = { id }\n }\n\n isTypeof(msg: BaseMyopMessage): boolean {\n return msg.messageType === this.messageType\n }\n}\n\n// component notify host the it was initated \nexport class InitResponse extends InitMessage {\n messageType = 'InitResponse';\n}\n\n// component ask to host to get initated \nexport class InitRequest extends BaseMyopMessage {\n messageType = 'InitRequest';\n}\n", "import {MyopBindMessage, MyopBindReplayMessage} from \"./BaseMessage\";\nimport {MyopMessageKey} from \"../common/MyopMessages\";\nimport {IComponentConfig, IRefConfig} from \"../common\";\nimport {loaderOptions} from \"../host/hostSDK.ts\";\n\nconst ReplayMessageKey = 'RefComponentCreatedMessage'\n\nexport class CreateRefComponentMessage extends MyopBindMessage<void, RefComponentCreatedMessage> {\n replyMessageKey: MyopMessageKey = ReplayMessageKey\n messageType = 'CreateRefComponentMessage';\n\n constructor(public refConfig: IRefConfig,\n public nestedComponentConfig: IComponentConfig,\n public options: loaderOptions,\n handler: (message: RefComponentCreatedMessage) => void,\n ) {\n super(handler);\n\n }\n}\n\nexport type NestedRef = {\n refName: string,\n componentDefinitionId: string\n}\n\nexport class RefComponentCreatedMessage extends MyopBindReplayMessage {\n messageType = ReplayMessageKey\n\n constructor(public replayToHandler: string, public nestedRefs: NestedRef[], public failed?: boolean) {\n super(replayToHandler);\n }\n}\n", "import {BaseMyopMessage} from \"./BaseMessage\";\n\nexport class EnvelopedMessage extends BaseMyopMessage {\n messageType = 'EnvelopedMessage';\n\n constructor(public destination: string, public message: BaseMyopMessage) {\n super();\n\n const innerEnvelopedMessage = (message as EnvelopedMessage);\n this.route = [destination, ...innerEnvelopedMessage.route ? innerEnvelopedMessage.route : []];\n }\n}\n", "import {BaseMyopMessage, MyopBindMessage, MyopBindReplayMessage} from \"./BaseMessage\";\nimport {IElementRef} from \"../common\";\n\nconst ReplayMessageKey = 'DetectedMyopRefsMessage'\n\nexport class DetectMyopRefsMessage extends MyopBindMessage<any, DetectedMyopRefsMessage> {\n messageType = 'DetectMyopRefsMessage'\n replyMessageKey = ReplayMessageKey;\n}\n\nexport class DetectedMyopRefsMessage extends MyopBindReplayMessage<IElementRef[]> {\n\n messageType = ReplayMessageKey;\n\n constructor(public replayToHandler: string, myopElementRefs: IElementRef[]) {\n super(replayToHandler)\n this.content = myopElementRefs;\n }\n\n isTypeof(msg: BaseMyopMessage<any>): boolean {\n return msg.messageType === this.messageType\n }\n}\n", "import {MyopBindMessage, MyopBindReplayMessage, Ref} from \"./BaseMessage\";\nimport {MyopMessageKey} from \"../common/MyopMessages\";\n\nconst ReplayMessageKey = 'GetAttributeReplayMessage'\n\nexport class GetAttributeMessage extends MyopBindMessage<void, GetAttributeReplayMessage> {\n replyMessageKey: MyopMessageKey = ReplayMessageKey\n messageType = 'GetAttributeMessage';\n\n constructor(public ref: Ref, public name: string, handler: (message: GetAttributeReplayMessage) => void) {\n super(handler);\n }\n}\n\nexport class GetAttributeReplayMessage extends MyopBindReplayMessage {\n messageType = ReplayMessageKey\n\n constructor(public content: string | null) {\n super();\n }\n}\n\n", "import {BaseMyopMessage} from \"../BaseMessage\";\nimport {IMyopComponent} from \"../../host\";\n\ntype MethodNames<T> = {\n // [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never;\n [K in keyof T]: T[K] extends () => void ? K : never;\n}[keyof T];\n\n// Define a type that allows only strings corresponding to the method names of T\ntype MethodString<T> = MethodNames<T> extends infer M ? M extends string ? M : never : never;\n\n\nexport class ExecuteComponentMethod extends BaseMyopMessage {\n messageType = 'ExecuteComponentMethod';\n\n constructor(public method: MethodString<IMyopComponent>) {\n super();\n }\n}\n", "import {BaseMyopMessage} from \"../BaseMessage\";\n\nexport class SetMutationObserverMessage extends BaseMyopMessage {\n messageType = 'SetMutationObserverMessage';\n}\n\nexport class MutationObserverMessage extends BaseMyopMessage {\n messageType = 'MutationObserverMessage';\n}", "import {MyopBindMessage, MyopBindReplayMessage} from \"./BaseMessage\";\nimport {MyopMessageKey} from \"../common/MyopMessages\";\n\nconst ReplayMessageKey = 'CleanupReplayMessage'\n\nexport class CleanupMessage extends MyopBindMessage<void, CleanupReplayMessage> {\n replyMessageKey: MyopMessageKey = ReplayMessageKey\n messageType = 'CleanupMessage';\n\n constructor(public cleanupForMessageId: string, handler: (message: CleanupReplayMessage) => void) {\n super(handler);\n }\n}\n\nexport class CleanupReplayMessage extends MyopBindReplayMessage {\n messageType = ReplayMessageKey\n\n constructor(public customCleanup: boolean) {\n super();\n }\n}\n", "import {BaseMyopMessage} from \"./BaseMessage\";\n\nexport class DisposeMessage extends BaseMyopMessage {\n messageType = 'DisposeMessage';\n}\n", "import {BaseMyopMessage} from \"../BaseMessage\";\n\nexport class SetResizeObserverMessage extends BaseMyopMessage {\n cleanable = true;\n messageType = 'SetResizeObserverMessage';\n}\n\nexport class ResizeObserverMessage extends BaseMyopMessage {\n messageType = 'ResizeObserverMessage';\n}", "export const __federation__ = \"__federation__\"\nexport const onLoadKey = \"onLoad\"\nexport const moduleInstanceKey = \"moduleInstance\"\n\nexport const defineDynamicImport = (globalName: string, module: any) => {\n // @ts-ignore\n if (window[__federation__] && window[__federation__][globalName] && window[__federation__][globalName][onLoadKey]) {\n // @ts-ignore\n window[__federation__][globalName][onLoadKey]({[globalName]: module})\n } else {\n //console.log('__federation__ loader not defined for module', module);\n }\n}", "import * as all from './index'\nimport {defineDynamicImport} from \"../dynamicImport/defineDynamicImport\";\n\nconst MyopMessages = {\n ...all\n}\n\ndefineDynamicImport('MyopMessages', MyopMessages);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGO,IAAM,SAAS,MAAM;AACxB,SAAO,uCAAuC;AAAA,IAAQ;AAAA,IAAU,QAC3D,CAAC,IAAI,OAAO,gBAAgB,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,EAAE;AAAA,EAClF;AACJ;;;ACFO,IAAM,mBAAN,MAAuB;AAG9B;AAFI,cADS,kBACF,QAAO;AACd,cAFS,kBAEF,MAAK;AAKT,IAAe,kBAAf,MAAwC;AAAA,EAW3C,cAAc;AAVd,8BAAK,OAAO;AAcZ,gCAAO;AAIP;AAGA;AAAA;AACA;AAEA;AAEA;AAEA;AAEA,qCAAqB;AAAA,EAlBrB;AAAA,EAVA,OAAO,UAEA,MACsB;AAEzB,WAAO,IAAI,KAAK,GAAG,IAAI;AAAA,EAC3B;AAAA,EAwBA,SAAS,KAA+B;AACpC,WAAO,IAAI,gBAAgB,KAAK;AAAA,EACpC;AACJ;AAEO,IAAe,qBAAf,cAAmD,gBAAmB;AAAA,EACzE,YAAmB,KAAU;AACzB,UAAM;AADS;AAAA,EAEnB;AACJ;AAEO,IAAe,wBAAf,cAAsD,gBAAmB;AAAA,EAC5E,YAAmB,iBAA0B;AACzC,UAAM;AADS;AAAA,EAEnB;AACJ;AAEO,IAAe,kBAAf,cAAuF,gBAAmB;AAAA,EAM7G,YAAmB,SAA+B;AAC9C,UAAM;AADS;AAFnB,wBAAO,mBAAkB,OAAO;AAAA,EAIhC;AACJ;AAEO,IAAM,MAAN,MAAM,KAAI;AAAA,EAsBb,YAAmB,WAA8B,WAA4B;AAA1D;AAA8B;AArBjD,wBAAO,QAAO;AAEd,wBAAO;AAoBH,SAAK,eAAe,iCACb,OADa;AAAA,MAEhB,WAAW;AAAA;AAAA,IACf;AAAA,EACJ;AAAA,EAtBA,OAAO,OAAO,UAAkB,WAAwB,WAA4B;AAChF,QAAI,aAAa;AACjB,QAAI,CAAC,YAAY;AACb,mBAAa;AAAA,QACT,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,QACd;AAAA,QACA,UAAU;AAAA,UACN,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,IAAI,KAAI,YAAY,SAAS;AAAA,EACxC;AAQJ;;;AClGA,IAAM,mBAAmB;AAElB,IAAM,mBAAN,cAA+B,gBAA0C;AAAA,EAK5E,YAAmB,KAAU,SAAgD;AACzE,UAAM,OAAO;AADE;AAJnB,2CAAkC;AAClC,uCAAc;AACd,qCAAY;AAAA,EAIZ;AACJ;AAEO,IAAM,qBAAN,cAAiC,sBAAsB;AAAA,EAAvD;AAAA;AACH,uCAAc;AAAA;AAClB;;;ACfO,IAAM,oBAAN,cAAgC,gBAAwB;AAAA,EAI3D,YAAmB,KAAU,MAAc;AACvC,UAAM;AADS;AAFnB,uCAAc;AAIV,SAAK,UAAU;AAAA,EACnB;AACJ;;;ACLA,IAAMA,oBAAmB;AAEzB,IAAM,oBAAoB;AAC1B,IAAM,sBAAsB;AAErB,IAAM,gBAAgB,CAAC,YAAoB;AAC9C,MAAI,QAAQ,QAAQ,MAAM,iBAAiB;AAC3C,MAAI,OAAO;AACP,WAAO,MAAM,CAAC,KAAK,MAAM,CAAC;AAAA,EAC9B,OAAO;AACH,QAAIC,SAAQ,QAAQ,MAAM,mBAAmB;AAC7C,QAAIA;AACA,aAAOA,OAAM,CAAC,EAAE,KAAK;AAAA,EAC7B;AACJ;AAiBO,IAAM,uBAAN,cAA0E,gBAAsD;AAAA,EASnI,YAAY,QAA+C,UAA2D,MAAM;AAAA,EAC5H,GAAUC,eAAkB;AACxB,UAAM,OAAO;AADP,wBAAAA;AARV,2CAAkCF;AAClC,uCAAc;AACd,kCAAiB;AAQb,SAAK,SAAS,OAAO,SAAS;AAG9B,SAAK,UAAU,OAAO,SAAS;AAC/B,SAAK,UAAU,cAAc,KAAK,OAAO;AAAA,EAC7C;AACJ;AAZI,cANS,sBAMF,cAAa;AACpB,cAPS,sBAOF,qBAAoB;AAaxB,IAAM,4BAAN,cAAiD,sBAAyB;AAAA,EAI7E,YAAmB,iBAAgC,SAAY;AAC3D,UAAM,eAAe;AADN;AAAgC;AAFnD,uCAAcA;AAAA,EAId;AACJ;;;ACjDO,IAAM,mBAAN,cAAwF,qBAAmD;AAAA,EAE9I,YAAY,QACOG,eACP,UAA2D,MAAM;AAAA,EACjE,GAAG;AAIX,UAAM,CAAC,EAAC,SAAS,WAAW,SAAS,eAAc,MAAM;AACrD,YAAM,QAAQ,QAAQ,cAAc,QAAQ,WAAW,iBAAiB,IAAI,kBAAS,MAAK,kBAAS,KAAI;AACvG,UAAI,KAAK,QAAQ;AAOb,uBAAe,MAAM,KAAK,CAAC;AAE3B,cAAM,kBAAkB,IAAI,SAAS,WAAW,gBAAO,kBAAiB;AACxE,eAAO,gBAAgB,cAAc;AAAA,MAIzC;AACA,aAAO;AAAA,IACX,GAAG,OAAO;AAxBK,wBAAAA;AA0Bf,SAAK,eAAe,iCACbA,gBADa;AAAA;AAAA,MAGhB,SAAS,OAAO,SAAS;AAAA,IAC7B;AAAA,EACJ;AACJ;;;AC7CA,IAAMC,oBAAmB;AAElB,IAAM,0BAAN,cAAuG,gBAAgB;AAAA;AAAA,EAO1H,YAAmB,KAAiB,MAAgB,SAA0D;AAC1G,UAAM,OAAO;AADE;AAAiB;AAAgB;AALpD,2CAAkCA;AAClC,uCAAc;AACd,qCAAY;AACZ,gDAAqE;AAAA,EAIrE;AAAA,EAEA,yBAAyB,sBAAoE;AACzF,SAAK,uBAAuB;AAC5B,WAAO;AAAA,EACX;AACJ;AAEO,IAAM,+BAAN,cAA2C,sBAAsB;AAAA,EAGpE,YAAmB,iBAAgC,GAAwB;AACvE,UAAM,eAAe;AADN;AAAgC;AAFnD,uCAAcA;AAIV,SAAK,UAAU;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;AACJ;;;AC7BO,IAAM,sBAAN,cAAkC,gBAAgB;AAAA,EAIrD,YAAmB,KAAiB,MAAqB,OAAe;AACpE,UAAM;AADS;AAAiB;AAAqB;AAFzD,uCAAc;AAAA,EAId;AACJ;;;ACNA,IAAMC,oBAAmB;AAElB,IAAM,yBAAN,cAAqC,gBAAiD;AAAA,EAIzF,YAAmB,KAAU,SAAuD;AAChF,UAAM,OAAO;AADE;AAHnB,2CAAkCA;AAClC,uCAAc;AAAA,EAId;AACJ;AAkBO,IAAM,4BAAN,cAAwC,sBAAsB;AAAA,EAGjE,YAAmB,SAA4B;AAC3C,UAAM;AADS;AAFnB,uCAAcA;AAAA,EAId;AACJ;;;ACnCO,IAAM,eAAN,cAA2B,gBAAwB;AAAA,EAItD,YAAmB,KAAU,WAAmB;AAC5C,UAAM;AADS;AAFnB,uCAAc;AAIV,SAAK,UAAU;AAAA,EACnB;AACJ;;;ACPO,IAAM,cAAN,cAA0B,gBAAgC;AAAA,EAG7D,YAAY,IAAY;AACpB,UAAM;AAHV,uCAAc;AAIV,SAAK,UAAU,EAAE,GAAG;AAAA,EACxB;AAAA,EAEA,SAAS,KAA+B;AACpC,WAAO,IAAI,gBAAgB,KAAK;AAAA,EACpC;AACJ;AAGO,IAAM,eAAN,cAA2B,YAAY;AAAA,EAAvC;AAAA;AACH,uCAAc;AAAA;AAClB;AAGO,IAAM,cAAN,cAA0B,gBAAgB;AAAA,EAA1C;AAAA;AACH,uCAAc;AAAA;AAClB;;;ACnBA,IAAMC,oBAAmB;AAElB,IAAM,4BAAN,cAAwC,gBAAkD;AAAA,EAI7F,YAAmB,WACA,uBACA,SACP,SACV;AACE,UAAM,OAAO;AALE;AACA;AACA;AALnB,2CAAkCA;AAClC,uCAAc;AAAA,EASd;AACJ;AAOO,IAAM,6BAAN,cAAyC,sBAAsB;AAAA,EAGlE,YAAmB,iBAAgC,YAAgC,QAAkB;AACjG,UAAM,eAAe;AADN;AAAgC;AAAgC;AAFnF,uCAAcA;AAAA,EAId;AACJ;;;AC9BO,IAAM,mBAAN,cAA+B,gBAAgB;AAAA,EAGlD,YAAmB,aAA4B,SAA0B;AACrE,UAAM;AADS;AAA4B;AAF/C,uCAAc;AAKV,UAAM,wBAAyB;AAC/B,SAAK,QAAQ,CAAC,aAAa,GAAG,sBAAsB,QAAQ,sBAAsB,QAAQ,CAAC,CAAC;AAAA,EAChG;AACJ;;;ACRA,IAAMC,oBAAmB;AAElB,IAAM,wBAAN,cAAoC,gBAA8C;AAAA,EAAlF;AAAA;AACH,uCAAc;AACd,2CAAkBA;AAAA;AACtB;AAEO,IAAM,0BAAN,cAAsC,sBAAqC;AAAA,EAI9E,YAAmB,iBAAyB,iBAAgC;AACxE,UAAM,eAAe;AADN;AAFnB,uCAAcA;AAIV,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,SAAS,KAAoC;AACzC,WAAO,IAAI,gBAAgB,KAAK;AAAA,EACpC;AACJ;;;ACnBA,IAAMC,oBAAmB;AAElB,IAAM,sBAAN,cAAkC,gBAAiD;AAAA,EAItF,YAAmB,KAAiB,MAAc,SAAuD;AACrG,UAAM,OAAO;AADE;AAAiB;AAHpC,2CAAkCA;AAClC,uCAAc;AAAA,EAId;AACJ;AAEO,IAAM,4BAAN,cAAwC,sBAAsB;AAAA,EAGjE,YAAmB,SAAwB;AACvC,UAAM;AADS;AAFnB,uCAAcA;AAAA,EAId;AACJ;;;ACRO,IAAM,yBAAN,cAAqC,gBAAgB;AAAA,EAGxD,YAAmB,QAAsC;AACrD,UAAM;AADS;AAFnB,uCAAc;AAAA,EAId;AACJ;;;AChBO,IAAM,6BAAN,cAAyC,gBAAgB;AAAA,EAAzD;AAAA;AACH,uCAAc;AAAA;AAClB;AAEO,IAAM,0BAAN,cAAsC,gBAAgB;AAAA,EAAtD;AAAA;AACH,uCAAc;AAAA;AAClB;;;ACLA,IAAMC,oBAAmB;AAElB,IAAM,iBAAN,cAA6B,gBAA4C;AAAA,EAI5E,YAAmB,qBAA6B,SAAkD;AAC9F,UAAM,OAAO;AADE;AAHnB,2CAAkCA;AAClC,uCAAc;AAAA,EAId;AACJ;AAEO,IAAM,uBAAN,cAAmC,sBAAsB;AAAA,EAG5D,YAAmB,eAAwB;AACvC,UAAM;AADS;AAFnB,uCAAcA;AAAA,EAId;AACJ;;;AClBO,IAAM,iBAAN,cAA6B,gBAAgB;AAAA,EAA7C;AAAA;AACH,uCAAc;AAAA;AAClB;;;ACFO,IAAM,2BAAN,cAAuC,gBAAgB;AAAA,EAAvD;AAAA;AACH,qCAAY;AACZ,uCAAc;AAAA;AAClB;AAEO,IAAM,wBAAN,cAAoC,gBAAgB;AAAA,EAApD;AAAA;AACH,uCAAc;AAAA;AAClB;;;ACTO,IAAM,iBAAiB;AACvB,IAAM,YAAY;AAGlB,IAAM,sBAAsB,CAAC,YAAoB,WAAgB;AAEpE,MAAI,OAAO,cAAc,KAAK,OAAO,cAAc,EAAE,UAAU,KAAK,OAAO,cAAc,EAAE,UAAU,EAAE,SAAS,GAAG;AAE/G,WAAO,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,EAAC,CAAC,UAAU,GAAG,OAAM,CAAC;AAAA,EACxE,OAAO;AAAA,EAEP;AACJ;;;ACTA,IAAM,eAAe,mBACd;AAGP,oBAAoB,gBAAgB,YAAY;",
|
|
6
|
+
"names": ["ReplayMessageKey", "match", "scriptInputs", "scriptInputs", "ReplayMessageKey", "ReplayMessageKey", "ReplayMessageKey", "ReplayMessageKey", "ReplayMessageKey", "ReplayMessageKey"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var Y=Object.defineProperty,me=Object.defineProperties;var ge=Object.getOwnPropertyDescriptors;var X=Object.getOwnPropertySymbols;var ue=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable;var d=(t,s,r)=>s in t?Y(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r,l=(t,s)=>{for(var r in s||(s={}))ue.call(s,r)&&d(t,r,s[r]);if(X)for(var r of X(s))fe.call(s,r)&&d(t,r,s[r]);return t},g=(t,s)=>me(t,ge(s));var de=(t,s)=>{for(var r in s)Y(t,r,{get:s[r],enumerable:!0})};var e=(t,s,r)=>d(t,typeof s!="symbol"?s+"":s,r);var J={};de(J,{AddEventListenerMessage:()=>K,BaseMyopMessage:()=>n,BindClickMessage:()=>b,ChangeTextMessage:()=>I,CleanupMessage:()=>$,CleanupReplayMessage:()=>j,ClickReplayMessage:()=>R,CreateRefComponentMessage:()=>_,CustomRefMessage:()=>S,DetectMyopRefsMessage:()=>A,DetectedMyopRefsMessage:()=>D,DisposeMessage:()=>q,ElementValueReplayMessage:()=>E,EnvelopedMessage:()=>z,EventListenerCallbackMessage:()=>v,ExecuteComponentMethod:()=>H,ExecuteScriptMessage:()=>c,ExecuteScriptReplyMessage:()=>h,GetAttributeMessage:()=>F,GetAttributeReplayMessage:()=>L,GetElementValueMessage:()=>B,InitMessage:()=>u,InitRequest:()=>k,InitResponse:()=>U,MessageDirection:()=>y,MutationObserverMessage:()=>P,MyopBindMessage:()=>a,MyopBindReplayMessage:()=>p,MyopElementMessage:()=>x,Ref:()=>T,RefComponentCreatedMessage:()=>V,ResizeObserverMessage:()=>N,SetAttributeMessage:()=>C,SetInnerHtml:()=>w,SetMutationObserverMessage:()=>O,SetResizeObserverMessage:()=>G,stripFunction:()=>se});var M=()=>"10000000-1000-4000-8000-100000000000".replace(/[018]/g,t=>(+t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>+t/4).toString(16));var y=class{};e(y,"down","down"),e(y,"up","up");var n=class{constructor(){e(this,"id",M());e(this,"myop",!0);e(this,"content");e(this,"source");e(this,"destination");e(this,"route");e(this,"ref");e(this,"direction");e(this,"cleanable",!1)}static create(...s){return new this(...s)}isTypeof(s){return s.messageType===this.messageType}},x=class extends n{constructor(r){super();this.ref=r}},p=class extends n{constructor(r){super();this.replayToHandler=r}},a=class extends n{constructor(r){super();this.handler=r;e(this,"handlerUniqueId",M())}},T=class t{constructor(s,r){this.refConfig=s;this.component=r;e(this,"myop",!0);e(this,"__nonProxied");this.__nonProxied=g(l({},this),{component:null})}static create(s,r,o){let i=r;return i||(i={id:"",name:"",description:"",selectorType:"id-attribute",selector:s,behavior:{type:"code"}}),new t(i,o)}};var Z="ClickReplayMessage",b=class extends a{constructor(r,o){super(o);this.ref=r;e(this,"replyMessageKey",Z);e(this,"messageType","BindClickMessage");e(this,"cleanable",!0)}},R=class extends p{constructor(){super(...arguments);e(this,"messageType",Z)}};var I=class extends n{constructor(r,o){super();this.ref=r;e(this,"messageType","ChangeTextMessage");this.content=o}};var ee="ExecuteScriptReplyMessage",Me=/(?:function\s*\w*\s*\([^)]*\)\s*\{([\s\S]*?)\}|(\([^)]*\)\s*=>\s*\{([\s\S]*?)\}))\s*$/,xe=/\(\s*[^)]+\s*\)\s*=>\s*(.+)/,se=t=>{let s=t.match(Me);if(s)return s[1]||s[3];{let r=t.match(xe);if(r)return r[1].trim()}},c=class extends a{constructor(r,o=()=>{},i){super(o);this.scriptInputs=i;e(this,"replyMessageKey",ee);e(this,"messageType","ExecuteScriptMessage");e(this,"script","");this.script=r.toString(),this.content=r.toString(),this.content=se(this.content)}};e(c,"replierKey","send"),e(c,"completeStreamKey","completeStream");var h=class extends p{constructor(r,o){super(r);this.replayToHandler=r;this.content=o;e(this,"messageType",ee)}};var S=class extends c{constructor(r,o,i=()=>{}){super(({rootRef:m,elementId:le,_script:ye,__scriptInputs:Q})=>{let W=(m.shadowRoot||m.container).querySelectorAll("[myop-id='".concat(le,"']"));return W.length?(Q.ref=W[0],new Function("return (".concat(ye,")(...arguments)"))(Q)):null},i);this.scriptInputs=o;this.scriptInputs=g(l({},o),{_script:r.toString()})}};var te="EventListenerCallbackMessage",K=class extends a{constructor(r,o,i){super(i);this.ref=r;this.type=o;this.handler=i;e(this,"replyMessageKey",te);e(this,"messageType","AddEventListenerMessage");e(this,"cleanable",!0);e(this,"serializableSkeleton",!1)}withSerializableSkeleton(r){return this.serializableSkeleton=r,this}},v=class extends p{constructor(r,o){super(r);this.replayToHandler=r;this.e=o;e(this,"messageType",te);this.content={e:o}}};var C=class extends n{constructor(r,o,i){super();this.ref=r;this.name=o;this.value=i;e(this,"messageType","SetAttributeMessage")}};var re="ElementValueReplayMessage",B=class extends a{constructor(r,o){super(o);this.ref=r;e(this,"replyMessageKey",re);e(this,"messageType","GetElementValueMessage")}},E=class extends p{constructor(r){super();this.content=r;e(this,"messageType",re)}};var w=class extends n{constructor(r,o){super();this.ref=r;e(this,"messageType","SetInnerHtml");this.content=o}};var u=class extends n{constructor(r){super();e(this,"messageType","InitMessage");this.content={id:r}}isTypeof(r){return r.messageType===this.messageType}},U=class extends u{constructor(){super(...arguments);e(this,"messageType","InitResponse")}},k=class extends n{constructor(){super(...arguments);e(this,"messageType","InitRequest")}};var oe="RefComponentCreatedMessage",_=class extends a{constructor(r,o,i,m){super(m);this.refConfig=r;this.nestedComponentConfig=o;this.options=i;e(this,"replyMessageKey",oe);e(this,"messageType","CreateRefComponentMessage")}},V=class extends p{constructor(r,o,i){super(r);this.replayToHandler=r;this.nestedRefs=o;this.failed=i;e(this,"messageType",oe)}};var z=class extends n{constructor(r,o){super();this.destination=r;this.message=o;e(this,"messageType","EnvelopedMessage");let i=o;this.route=[r,...i.route?i.route:[]]}};var ne="DetectedMyopRefsMessage",A=class extends a{constructor(){super(...arguments);e(this,"messageType","DetectMyopRefsMessage");e(this,"replyMessageKey",ne)}},D=class extends p{constructor(r,o){super(r);this.replayToHandler=r;e(this,"messageType",ne);this.content=o}isTypeof(r){return r.messageType===this.messageType}};var pe="GetAttributeReplayMessage",F=class extends a{constructor(r,o,i){super(i);this.ref=r;this.name=o;e(this,"replyMessageKey",pe);e(this,"messageType","GetAttributeMessage")}},L=class extends p{constructor(r){super();this.content=r;e(this,"messageType",pe)}};var H=class extends n{constructor(r){super();this.method=r;e(this,"messageType","ExecuteComponentMethod")}};var O=class extends n{constructor(){super(...arguments);e(this,"messageType","SetMutationObserverMessage")}},P=class extends n{constructor(){super(...arguments);e(this,"messageType","MutationObserverMessage")}};var ae="CleanupReplayMessage",$=class extends a{constructor(r,o){super(o);this.cleanupForMessageId=r;e(this,"replyMessageKey",ae);e(this,"messageType","CleanupMessage")}},j=class extends p{constructor(r){super();this.customCleanup=r;e(this,"messageType",ae)}};var q=class extends n{constructor(){super(...arguments);e(this,"messageType","DisposeMessage")}};var G=class extends n{constructor(){super(...arguments);e(this,"cleanable",!0);e(this,"messageType","SetResizeObserverMessage")}},N=class extends n{constructor(){super(...arguments);e(this,"messageType","ResizeObserverMessage")}};var f="__federation__",ie="onLoad";var ce=(t,s)=>{window[f]&&window[f][t]&&window[f][t][ie]&&window[f][t][ie]({[t]:s})};var Te=l({},J);ce("MyopMessages",Te);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var Ze=Object.defineProperty,xt=Object.defineProperties;var bt=Object.getOwnPropertyDescriptors;var Qe=Object.getOwnPropertySymbols;var Tt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable;var ke=(o,n,t)=>n in o?Ze(o,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[n]=t,h=(o,n)=>{for(var t in n||(n={}))Tt.call(n,t)&&ke(o,t,n[t]);if(Qe)for(var t of Qe(n))wt.call(n,t)&&ke(o,t,n[t]);return o},R=(o,n)=>xt(o,bt(n));var St=(o,n)=>{for(var t in n)Ze(o,t,{get:n[t],enumerable:!0})};var i=(o,n,t)=>ke(o,typeof n!="symbol"?n+"":n,t);var ne=class{constructor(n,t,e,s,r){this.myopId=n;this.htmlTagName=t;this.BoundingRect=e;this.offsetTop=s;this.offsetLeft=r;i(this,"type","MyopElementRef")}};var Ye=async o=>{if(typeof o=="function")o();else if(o instanceof Promise){let n=await o;typeof n=="function"&&n()}},He=class{constructor(n){this.messageToHost=n}},oe=class extends He{constructor(t,e){super(t);this.messageToHost=t;this.context=e}};var l={InitRequest:"InitRequest",InitResponse:"InitResponse",InitMessage:"InitMessage",DisposeMessage:"DisposeMessage",ChangeTextMessage:"ChangeTextMessage",BindClickMessage:"BindClickMessage",DetectMyopRefsMessage:"DetectMyopRefsMessage",ExecuteScriptMessage:"ExecuteScriptMessage",AddEventListenerMessage:"AddEventListenerMessage",SetAttributeMessage:"SetAttributeMessage",CreateRefComponentMessage:"CreateRefComponentMessage",EnvelopedMessage:"EnvelopedMessage",GetElementValueMessage:"GetElementValueMessage",GetAttributeMessage:"GetAttributeMessage",SetInnerHtml:"SetInnerHtml",ExecuteComponentMethod:"ExecuteComponentMethod",SetMutationObserverMessage:"SetMutationObserverMessage",SetResizeObserverMessage:"SetResizeObserverMessage",CleanupMessage:"CleanupMessage",In:{DetectedMyopRefsMessage:"DetectedMyopRefsMessage",ClickReplayMessage:"ClickReplayMessage",ExecuteScriptReplyMessage:"ExecuteScriptReplyMessage",EventListenerCallbackMessage:"EventListenerCallbackMessage",ElementValueReplayMessage:"ElementValueReplayMessage",GetAttributeReplayMessage:"GetAttributeReplayMessage",RefComponentCreatedMessage:"RefComponentCreatedMessage",EnvelopedMessage:"EnvelopedMessage",MutationObserverMessage:"MutationObserverMessage",CleanupReplayMessage:"CleanupReplayMessage",ResizeObserverMessage:"ResizeObserverMessage"}};var se={};St(se,{AddEventListenerMessage:()=>_e,BaseMyopMessage:()=>y,BindClickMessage:()=>Be,ChangeTextMessage:()=>Le,CleanupMessage:()=>Q,CleanupReplayMessage:()=>Z,ClickReplayMessage:()=>z,CreateRefComponentMessage:()=>G,CustomRefMessage:()=>L,DetectMyopRefsMessage:()=>Fe,DetectedMyopRefsMessage:()=>X,DisposeMessage:()=>Y,ElementValueReplayMessage:()=>q,EnvelopedMessage:()=>J,EventListenerCallbackMessage:()=>W,ExecuteComponentMethod:()=>w,ExecuteScriptMessage:()=>b,ExecuteScriptReplyMessage:()=>N,GetAttributeMessage:()=>$e,GetAttributeReplayMessage:()=>Ae,GetElementValueMessage:()=>Oe,InitMessage:()=>P,InitRequest:()=>j,InitResponse:()=>V,MessageDirection:()=>x,MutationObserverMessage:()=>ze,MyopBindMessage:()=>C,MyopBindReplayMessage:()=>I,MyopElementMessage:()=>De,Ref:()=>k,RefComponentCreatedMessage:()=>O,ResizeObserverMessage:()=>We,SetAttributeMessage:()=>Pe,SetInnerHtml:()=>Ke,SetMutationObserverMessage:()=>Ue,SetResizeObserverMessage:()=>Ne,stripFunction:()=>st});var T=()=>"10000000-1000-4000-8000-100000000000".replace(/[018]/g,o=>(+o^crypto.getRandomValues(new Uint8Array(1))[0]&15>>+o/4).toString(16));var Rt=o=>{let n=[...o].map(t=>t.toString(16).padStart(2,"0")).join("");return[n.slice(0,8),n.slice(8,12),n.slice(12,16),n.slice(16,20),n.slice(20)].join("-")};var Et=o=>{let n=o.replace(/-/g,"+").replace(/_/g,"/");for(;n.length%4;)n+="=";let t=atob(n);return Uint8Array.from(t,e=>e.charCodeAt(0))};var et=o=>{let n=Et(o);if(n.length%16!==0)throw new Error("Invalid input length");let t=[];for(let e=0;e<n.length;e+=16)t.push(Rt(n.slice(e,e+16)));return t};var tt=o=>new Promise(n=>setTimeout(n,o));var x=class{};i(x,"down","down"),i(x,"up","up");var y=class{constructor(){i(this,"id",T());i(this,"myop",!0);i(this,"content");i(this,"source");i(this,"destination");i(this,"route");i(this,"ref");i(this,"direction");i(this,"cleanable",!1)}static create(...n){return new this(...n)}isTypeof(n){return n.messageType===this.messageType}},De=class extends y{constructor(t){super();this.ref=t}},I=class extends y{constructor(t){super();this.replayToHandler=t}},C=class extends y{constructor(t){super();this.handler=t;i(this,"handlerUniqueId",T())}},k=class o{constructor(n,t){this.refConfig=n;this.component=t;i(this,"myop",!0);i(this,"__nonProxied");this.__nonProxied=R(h({},this),{component:null})}static create(n,t,e){let s=t;return s||(s={id:"",name:"",description:"",selectorType:"id-attribute",selector:n,behavior:{type:"code"}}),new o(s,e)}};var nt="ClickReplayMessage",Be=class extends C{constructor(t,e){super(e);this.ref=t;i(this,"replyMessageKey",nt);i(this,"messageType","BindClickMessage");i(this,"cleanable",!0)}},z=class extends I{constructor(){super(...arguments);i(this,"messageType",nt)}};var Le=class extends y{constructor(t,e){super();this.ref=t;i(this,"messageType","ChangeTextMessage");this.content=e}};var ot="ExecuteScriptReplyMessage",vt=/(?:function\s*\w*\s*\([^)]*\)\s*\{([\s\S]*?)\}|(\([^)]*\)\s*=>\s*\{([\s\S]*?)\}))\s*$/,kt=/\(\s*[^)]+\s*\)\s*=>\s*(.+)/,st=o=>{let n=o.match(vt);if(n)return n[1]||n[3];{let t=o.match(kt);if(t)return t[1].trim()}},b=class extends C{constructor(t,e=()=>{},s){super(e);this.scriptInputs=s;i(this,"replyMessageKey",ot);i(this,"messageType","ExecuteScriptMessage");i(this,"script","");this.script=t.toString(),this.content=t.toString(),this.content=st(this.content)}};i(b,"replierKey","send"),i(b,"completeStreamKey","completeStream");var N=class extends I{constructor(t,e){super(t);this.replayToHandler=t;this.content=e;i(this,"messageType",ot)}};var L=class extends b{constructor(t,e,s=()=>{}){super(({rootRef:r,elementId:a,_script:p,__scriptInputs:d})=>{let c=(r.shadowRoot||r.container).querySelectorAll("[myop-id='".concat(a,"']"));return c.length?(d.ref=c[0],new Function("return (".concat(p,")(...arguments)"))(d)):null},s);this.scriptInputs=e;this.scriptInputs=R(h({},e),{_script:t.toString()})}};var rt="EventListenerCallbackMessage",_e=class extends C{constructor(t,e,s){super(s);this.ref=t;this.type=e;this.handler=s;i(this,"replyMessageKey",rt);i(this,"messageType","AddEventListenerMessage");i(this,"cleanable",!0);i(this,"serializableSkeleton",!1)}withSerializableSkeleton(t){return this.serializableSkeleton=t,this}},W=class extends I{constructor(t,e){super(t);this.replayToHandler=t;this.e=e;i(this,"messageType",rt);this.content={e}}};var Pe=class extends y{constructor(t,e,s){super();this.ref=t;this.name=e;this.value=s;i(this,"messageType","SetAttributeMessage")}};var it="ElementValueReplayMessage",Oe=class extends C{constructor(t,e){super(e);this.ref=t;i(this,"replyMessageKey",it);i(this,"messageType","GetElementValueMessage")}},q=class extends I{constructor(t){super();this.content=t;i(this,"messageType",it)}};var Ke=class extends y{constructor(t,e){super();this.ref=t;i(this,"messageType","SetInnerHtml");this.content=e}};var P=class extends y{constructor(t){super();i(this,"messageType","InitMessage");this.content={id:t}}isTypeof(t){return t.messageType===this.messageType}},V=class extends P{constructor(){super(...arguments);i(this,"messageType","InitResponse")}},j=class extends y{constructor(){super(...arguments);i(this,"messageType","InitRequest")}};var at="RefComponentCreatedMessage",G=class extends C{constructor(t,e,s,r){super(r);this.refConfig=t;this.nestedComponentConfig=e;this.options=s;i(this,"replyMessageKey",at);i(this,"messageType","CreateRefComponentMessage")}},O=class extends I{constructor(t,e,s){super(t);this.replayToHandler=t;this.nestedRefs=e;this.failed=s;i(this,"messageType",at)}};var J=class extends y{constructor(t,e){super();this.destination=t;this.message=e;i(this,"messageType","EnvelopedMessage");let s=e;this.route=[t,...s.route?s.route:[]]}};var pt="DetectedMyopRefsMessage",Fe=class extends C{constructor(){super(...arguments);i(this,"messageType","DetectMyopRefsMessage");i(this,"replyMessageKey",pt)}},X=class extends I{constructor(t,e){super(t);this.replayToHandler=t;i(this,"messageType",pt);this.content=e}isTypeof(t){return t.messageType===this.messageType}};var dt="GetAttributeReplayMessage",$e=class extends C{constructor(t,e,s){super(s);this.ref=t;this.name=e;i(this,"replyMessageKey",dt);i(this,"messageType","GetAttributeMessage")}},Ae=class extends I{constructor(t){super();this.content=t;i(this,"messageType",dt)}};var w=class extends y{constructor(t){super();this.method=t;i(this,"messageType","ExecuteComponentMethod")}};var Ue=class extends y{constructor(){super(...arguments);i(this,"messageType","SetMutationObserverMessage")}},ze=class extends y{constructor(){super(...arguments);i(this,"messageType","MutationObserverMessage")}};var ct="CleanupReplayMessage",Q=class extends C{constructor(t,e){super(e);this.cleanupForMessageId=t;i(this,"replyMessageKey",ct);i(this,"messageType","CleanupMessage")}},Z=class extends I{constructor(t){super();this.customCleanup=t;i(this,"messageType",ct)}};var Y=class extends y{constructor(){super(...arguments);i(this,"messageType","DisposeMessage")}};var Ne=class extends y{constructor(){super(...arguments);i(this,"cleanable",!0);i(this,"messageType","SetResizeObserverMessage")}},We=class extends y{constructor(){super(...arguments);i(this,"messageType","ResizeObserverMessage")}};var qe=class{constructor(n,t){this.id=n;this.context=t;i(this,"send",n=>{})}},re=class{constructor(){i(this,"messageToHandleAfterInit",[]);i(this,"components",{});i(this,"alwaysPassEnvelopesToHost",!1);i(this,"messageCleanupCache",{})}handleIncomeMessages(n){let t=n.data?n.data:n.detail;if(!(!t||!t.myop)){let e=t;if(e.direction!==x.down)return;if(e.messageType===l.DisposeMessage){e.destination&&delete this.components[e.destination];return}if(e.messageType===l.InitMessage){let s=e.content.id;if(this.components[s])return;this.components[s]=new qe(s),this.messageToHost(new V(s));return}if(e.messageType===l.EnvelopedMessage){let s=e,r=s.message;if(e=r,this.alwaysPassEnvelopesToHost||this.components[e.destination]){let a=myop.hostSDK.components.find(d=>d.id===r.destination);if(a){a.send(r);return}let p=myop.hostSDK.components.find(d=>d.id===s.destination);if(p){p.send(r);return}}else return}if(e.messageType){if(e.messageType===l.CleanupMessage){let r=e,a=this.messageCleanupCache[r.cleanupForMessageId],p=new Z(!!a);p.destination=e.destination,a?(delete this.messageCleanupCache[r.cleanupForMessageId],Ye(a).then(()=>{this.messageToHost(p,r)}).catch(()=>{})):this.messageToHost(p,r);return}let s=!1;this.supportedHandlers.forEach(r=>{if(r.messageType===e.messageType){s=!0;let a=r.executor(e);if(e.cleanable&&a&&(this.messageCleanupCache[e.id]=a),a&&!e.cleanable)throw new Error("Cleanup handler generated for non-cleanable message. \nmessageType - ".concat(e.messageType,", handler executor was - ").concat(r.executor,"\n\nPlease review the message definition object & message handler.\nTo ensure cleanup properly set 'cleanable' true at message definition and return IMessageExecutorCleanup from your handlers."));if(!a&&e.cleanable)throw new Error("No cleanup handler generated for a cleanable message. \nmessageType - ".concat(e.messageType,", handler executor was - ").concat(r.executor,"\n\nPlease review the message definition object & message handler.\nTo ensure cleanup properly set 'cleanable' true at message definition and return IMessageExecutorCleanup from your handlers."))}})}else console.log("unsupported message type")}}};var F={IframeLoader:"IframeLoader",WebComponentLoader:"WebComponentLoader",HTMLLoader:"HTMLLoader"};var ae={open:"open",closed:"closed",none:"none",localFrame:"localFrame"},K=class{};i(K,"code","code"),i(K,"component","component");var $={Segmented:"Segmented",Dedicated:"Dedicated",Default:"Default"},pe={Segment:"Segment",Promo:"Promo",AB:"AB"},ie=class{constructor(n,t){this.container=n;this.shadowRoot=t;i(this,"getRootDiv",()=>(this.shadowRoot||this.container).querySelector("div"));i(this,"getRoot",()=>this.shadowRoot||this.container)}};var de={webcomponent_message_key:"myop_webcomponent_message"};var M=class extends oe{constructor(t,e){super(t);this.context=e;i(this,"executor",t=>{if(t.destination){let e=t.destination;if(this.context[e].context){let s=(r,a)=>{this.messageToHost(R(h({},r),{source:t.destination?t.destination:t.source,destination:t.source?t.source:t.destination}),a)};return this.innerExecutor(t,this.context[e].context,s)}else debugger}else debugger})}};var E={id:"myop-id"};var S=(o,n)=>n.querySelectorAll("[".concat(E.id,"='").concat(o.refConfig.selector,"']"));var ce=class extends M{constructor(){super(...arguments);i(this,"messageType",l.BindClickMessage);i(this,"innerExecutor",(t,e,s)=>{let r=S(t.ref,e.shadowRoot),a=[];return r.forEach(p=>{let d=()=>{s(new z(t.handlerUniqueId))};p.addEventListener("click",d),a.push(()=>{p.removeEventListener("click",d)})}),()=>{a.forEach(p=>p())}})}};var me=class extends M{constructor(){super(...arguments);i(this,"messageType",l.ChangeTextMessage);i(this,"innerExecutor",(t,e)=>{S(t.ref,e.shadowRoot).forEach(r=>{r.textContent=t.content})})}};var le=class extends ie{constructor(t,e){super(t,e);this.container=t;this.shadowRoot=e}};var fe=class extends M{constructor(){super(...arguments);i(this,"innerExecutor",(t,e)=>{let s=e.shadowRoot.querySelectorAll("[".concat(E.id,"]")),r=[];s.forEach(a=>{let p=a.getAttribute(E.id);p&&r.push(new ne(p,a.tagName,a.getBoundingClientRect(),a.offsetTop,a.offsetLeft))}),this.messageToHost(new X(t.handlerUniqueId,r))});i(this,"messageType",l.DetectMyopRefsMessage)}};var ge="__federation__",mt="onLoad";var ue=(o,n)=>{window[ge]&&window[ge][o]&&window[ge][o][mt]&&window[ge][o][mt]({[o]:n})};var ye=class extends M{constructor(){super(...arguments);i(this,"messageType",l.SetAttributeMessage);i(this,"innerExecutor",(t,e)=>{S(t.ref,e.shadowRoot).forEach(r=>{r.setAttribute(t.name,t.value)})})}};var Ve=o=>o!==Object(o),Ht=o=>typeof o=="function",je=o=>{if(Ve(o))return!0;if(Ht(o)||Object.getPrototypeOf(o))return!1;for(let n in o){let t=o[n];if(typeof t=="object"){if(!je(t))return!1}else{if(Ve(t))continue;return!1}}return!0},v=(o,n={},t=!0,e=new WeakMap)=>{if(Ve(o))return o;if(Array.isArray(o)){if(e.has(o))return e.get(o);let s=[];e.set(o,s);for(let r=0;r<o.length;r++){let a=o[r];s[r]=v(a,n,t,e)}return s}if(o!==null&&typeof o=="object"){if(e.has(o))return e.get(o);let s={};e.set(o,s);for(let r in o){let a=typeof n=="boolean"?n:n[r];a&&(a===!0?(t?o[r]!==void 0:o[r])&&(s[r]=v(o[r],!0,t,e)):typeof a=="object"&&(s[r]=v(o[r],a,t,e)))}return s}return{}};var he=class extends M{constructor(){super(...arguments);i(this,"messageType",l.AddEventListenerMessage);i(this,"innerExecutor",(t,e,s)=>{let r=S(t.ref,e.shadowRoot),a=[];return r.forEach(p=>{let d=c=>{s(new W(t.handlerUniqueId,v(c,t.serializableSkeleton)))};p.addEventListener(t.type,d),a.push(()=>{p.removeEventListener(t.type,d)})}),()=>{a.forEach(p=>p())}})}};var H=class{constructor(n,t,e){this.componentDefinition=n;this.container=t;i(this,"id","");i(this,"messageHandlers",{});i(this,"element");i(this,"_markedForDisposed",!1);i(this,"bind",(n,t)=>{this.messageHandlers[n]||(this.messageHandlers[n]=[]),this.messageHandlers[n].includes(t)||this.messageHandlers[n].push(t)});i(this,"bindWhen",(n,t,e)=>{if(!e)throw new Error("can't use component.bindWhen without an handler");this.messageHandlers[n]||(this.messageHandlers[n]=[]);let s=this.messageHandlers[n],r=a=>t(a)?(e(a),!0):!1;return s.push(r),()=>{let a=s.indexOf(r);a>-1&&s.splice(a,1)}});i(this,"setInitiated",()=>{this.isInitiated=!0,this._whenInitiatedResolve&&this._whenInitiatedResolve()});i(this,"isInitiated",!1);i(this,"_whenInitiatedResolve");i(this,"_whenInitiatedReject");i(this,"_whenInitiated",new Promise((n,t)=>{this._whenInitiatedResolve=n,this._whenInitiatedReject=t}));i(this,"initiated",()=>this._whenInitiated);i(this,"props",{});i(this,"refs",{});this.id=(e==null?void 0:e.id)||D.Instance().assignId(n);let s=e!=null&&e.timeout?e==null?void 0:e.timeout:5*1e3;setTimeout(()=>{!this.isInitiated&&this._whenInitiatedReject&&!this._markedForDisposed&&this._whenInitiatedReject("timeout_".concat(s," ").concat(this.id))},s),this.initiated().then(()=>{window.myop.hostSDK.inspected&&this.inspect()})}get markedForDisposed(){return this._markedForDisposed}set markedForDisposed(n){if(this._markedForDisposed)throw new Error("InvalidOperationException: The component is already in the process of being disposed. Dispose operation cannot be performed again until the current disposal process is complete.");this._markedForDisposed=n}onMessageReceived(n){if(n.messageType===l.ExecuteComponentMethod){let e=n;return this[e.method]?this[e.method](e.content):console.log("method not found ".concat(e.method," on component"),this),!0}let t=this.messageHandlers[n.messageType];if(t&&t.length){let e=!1;return t.forEach(s=>{e=e||s(n)}),e}return!1}sendCleanupMessage(n){n.source=this.id,n.destination=this.id,n.direction=x.down;let t=this.bindWhen(n.replyMessageKey,s=>s.replayToHandler===n.handlerUniqueId,s=>{n.handler(s),t()}),e=n.handler;delete n.handler,this.send(n),n.handler=e}send(n){n.source||(n.source=this.id),n.destination||(n.destination=this.id),n.direction=x.down;let t;if(n.handler){let e=n;t=this.bindWhen(e.replyMessageKey,s=>s.replayToHandler===e.handlerUniqueId,e.handler),delete n.handler}return n.ref&&(n.ref=n.ref.__nonProxied||n.ref),n.cleanable?()=>{this.sendCleanupMessage(new Q(n.id,e=>{})),t&&t()}:()=>{}}dispose(){if(this.markedForDisposed=!0,!this.isInitiated)return;console.log("disposing component",this.id),this.send(new Y);let n=this.messageHandlers.onDispose;n&&n.forEach(t=>{t(null)}),this.messageHandlers={},this.id+="_disposed",this.isInitiated=!1}};var lt={notSerializableRefCall:(o,n)=>{throw new Error("\nThe input provided to '".concat(o.toString(),"' is not serializable. Serialization is required to ensure that the data can be safely transferred to the skin implementation. \nThe following types of data are considered non-serializable and cannot be processed:\n\n- Functions\n- DOM elements\n- Class instances\n- Circular references\n- Symbols\n- BigInt values\n\nIn the following execution we detected :\n~~~~~~~~\n").concat(n," \n~~~~~~~~\nas not serializable.\n\nTo resolve this issue, please ensure that all inputs passed to '").concat(o.toString(),"' are in a serializable format.\nThis typically includes primitive types (strings, numbers, booleans), arrays, and plain objects. \nIf you need to include complex data types, consider converting them to a serializable structure before passing them to the function.\nOr use Myop message that support it: CustomRefMessage, AddEventListenerMessage or ExecuteScriptMessage.\n\nSuggested Fix:\n1. Remove or replace non-serializable values from your input.\n2. If using objects, ensure they do not contain any functions or circular references.\n3. Convert any class instances to plain objects or JSON-compatible formats.\n4. Use dedicated Myop message.\n\nFor more details on serialization and Myop message examples, refer to https://docs.myop.dev.\n\n"))}};var ee=class extends H{constructor(t,e,s){super(t,e.container,s);this.componentDefinition=t;this.parent=e;i(this,"send",t=>{let e=t.handler,s=super.send(t);return this.parent.send(new J(this.id,t)),t.handler=e,s});i(this,"dispose",()=>{this.isInitiated&&this.send(new w("dispose")),super.dispose()})}hide(){this.send(new w("hide"))}show(){this.send(new w("show"))}inspect(){return this.send(new w("inspect"))}setHeightBasedOnDocumentElement(){this.send(new w("setHeightBasedOnDocumentElement"))}setHeightBasedOnScrollHeight(){this.send(new w("setHeightBasedOnScrollHeight"))}onMessageReceived(t){return super.onMessageReceived(t)}};var Dt=(o,n,t)=>{let e=document.createElement("a");return e.textContent=o,e.style.position="relative",e.style.padding="0 5px",e.style.fontSize="14px",e.style.top="0",e.style.top="".concat(n,"px"),e.style.transform="translateX(-50%)",e.target="_blank",e.href="https://dashboard.myop.dev/dashboard/component/".concat(t.id),e},Me=(o,n,t,e,s,r)=>{let a=Dt("".concat(r.name," : ").concat(n),t,r);return e.insertBefore(a,s),s.style.border="1px solid #007BFF",s.style.display="block",()=>{s.style.border="unset",e.removeChild(a)}},ft=(o,n)=>{let t=n.reduce((s,r)=>R(h({},s),{[r.name]:h({},r)}),{}),e={get:(s,r)=>{let a=t[r];return a.mode==="output"?new Promise(p=>{let d=[];a.behavior.ref&&d.push(k.create(a.behavior.ref)),d.push(u=>{p(u)}),a.behavior.params&&d.push(...a.behavior.params);let c=se[a.behavior.message];o.send(new c(...d))}):null},set:(s,r,a)=>{let p=t[r];if(!p)throw new Error("Error: Undefined Prop\n\nIt looks like you've tried to use a prop that hasn't been defined.\nPlease check the prop name for any typos or ensure that it is properly defined in the component's prop list.\n\n"+"Prop Name: ".concat(r,"\n")+"Component: ".concat(o.componentDefinition.name,", ID: ").concat(o.componentDefinition.id,"\n\n")+"For more information, refer to the component page https://dashboard.myop.dev/dashboard/component/".concat(o.componentDefinition.id," or consult the developer guide."));if(p.mode==="input")if(p.behavior.type==="message"){let d=[];p.behavior.ref&&d.push(k.create(p.behavior.ref)),d.push(a),p.behavior.params&&d.push(...p.behavior.params);let c=se[p.behavior.message];return o.send(new c(...d)),!0}else throw new Error("Error: Unsupported Behavior\n\nThe 'behavior' field provided is not supported.\n"+"Component: ".concat(o.componentDefinition.name,", ID: ").concat(o.componentDefinition.id,"\n\n")+"Prop Name: ".concat(r,"\n")+"Behavior Field: ".concat(p.behavior.type,"\n\n")+"Check the documentation for valid behavior options.");return!1}};return o.props={},o.props=new Proxy(o.props,e),o},Bt=(o,n)=>new Proxy(o,{get(t,e){return t[e]?t[e]:(...r)=>new Promise(a=>{r.forEach(p=>{je(p)||lt.notSerializableRefCall(e,p)}),n.send(new L(({ref:p,propName:d,functionArgs:c,makeSerializable:u})=>{if(p){let m=p[d];return u(typeof m=="function"?p[d](...c):m,!0)}return null},{elementId:t.refConfig.selector,propName:e,functionArgs:r},p=>{a(p.content)}))})},set(t,e,s){return n.send(new L(({ref:r,propName:a,propValue:p})=>{r&&(r[a]=p)},{elementId:t.refConfig.selector,propValue:s,propName:e},r=>{})),!0}}),Ge=async(o,n,t,e)=>{let s=o.component;if(!s)throw new Error("cant createRefComponent with detached ref");return new Promise(async(r,a)=>{let p=new ee(n.type,s,e);t.push(p),await s.initiated();let d=setTimeout(()=>{a("timeout")},5e3);s.send(new G(o.refConfig,n,R(h({},e||{}),{id:p.id,_hasParent:!0}),async c=>{if(clearTimeout(d),c.failed){a("CreateRefComponentMessage failed");return}let u=t.find(m=>m.id==p.id);if(u!==p){s.refs[o.refConfig.name]=u,r(u);return}else p.setInitiated(),s.refs[o.refConfig.name]=p;c.nestedRefs.forEach(m=>{let f=n.instance.resolvedNestedComponents.find(_=>_.type.id===m.componentDefinitionId).type,g=new ee(f,p);g.setInitiated(),p.refs[m.refName]=g,t.push(g)});try{await Je(p,n,t,!0),s.setHeightBasedOnScrollHeight&&s.setHeightBasedOnScrollHeight(),r(p)}catch(m){a(m)}}))})},Je=async(o,n,t,e=!1)=>{o.refs||(o.refs={});let s=Object.values(o.componentDefinition.refs).map(r=>new Promise(async(a,p)=>{var d;if(r.behavior.type==K.component){if(e){a();return}let c=r.behavior.componentId;c||(c=r.behavior.instance.componentId);let u=(d=n.instance.resolvedNestedComponents)==null?void 0:d.find(f=>f.type.id===c);if(!u)throw new Error("componentConfig provided without nestedComponentConfig check the config object");let m=k.create("",r,o);try{let f=await Ge(m,u,t);o.refs[r.name]=f,a()}catch(f){p(f)}}else try{let c=k.create("",r,o);o.refs[r.name]=Bt(c,o),a()}catch(c){}}));try{await Promise.all(s)}catch(r){throw r}};var A=class extends H{constructor(t,e,s,r,a){super(t,s,a);this.componentConfig=t;this.container=s;this.IframeElement=r;i(this,"cleanupInspect");i(this,"setHeightBasedOnDocumentElement",()=>{let t=this.send(new b(()=>window.document.documentElement.scrollHeight,e=>{this.IframeElement.style.height="".concat(e.content,"px"),t()}))});i(this,"observeSizeBasedOnDocumentElement",()=>{let t=this.send(new b(({send:e})=>{let{height:s,width:r}=document.documentElement.getBoundingClientRect(),a=new ResizeObserver(()=>{let{height:p,width:d}=document.documentElement.getBoundingClientRect();e({height:p,width:d})});return a.observe(document.documentElement),a.observe(document.body),{height:s,width:r}},e=>{this.IframeElement.style.width="".concat(e.content.width,"px"),this.IframeElement.style.height="".concat(e.content.height,"px")}))});i(this,"setSizeBasedOnDocumentElement",()=>{let t=this.send(new b(()=>{let{height:e,width:s}=document.documentElement.getBoundingClientRect();return{height:e,width:s}},e=>{this.IframeElement.style.width="".concat(e.content.width,"px"),this.IframeElement.style.height="".concat(e.content.height,"px"),t()}))});i(this,"setHeightBasedOnScrollHeight",()=>{let t=this.send(new b(()=>{let s=0;return s++,s--,Math.max(Math.max(window.document.body.clientHeight,window.document.body.scrollHeight),window.document.body.offsetHeight)+s+"px"},e=>{this.IframeElement.style.height=e.content,t()}))});i(this,"send",t=>{var r,a;let e=h({},t);if(e.messageType===l.ExecuteComponentMethod)return this[e.method](),()=>{};e.direction=x.down;let s=super.send(e);return(a=(r=this.IframeElement)==null?void 0:r.contentWindow)==null||a.postMessage(e,"*"),s});i(this,"dispose",()=>{this.cleanupInspect&&this.cleanupInspect(),super.dispose(),this.IframeElement.parentNode.removeChild(this.IframeElement)});e.loader.autoHeight&&this.initiated().then(()=>{this.setHeightBasedOnScrollHeight()}),this.element=this.IframeElement}inspect(){return this.cleanupInspect?this.cleanupInspect:(this.cleanupInspect=Me(this.id,"MyopIframeComponent",10,this.container,this.IframeElement,this.componentDefinition),()=>{this.cleanupInspect(),this.cleanupInspect=void 0})}hide(){this.IframeElement.style.opacity="0",this.IframeElement.style.position="absolute",this.IframeElement.style.pointerEvents="none",this.IframeElement.style.visibility="hidden"}show(){this.IframeElement.style.opacity="1",this.IframeElement.style.position="unset",this.IframeElement.style.pointerEvents="all",this.IframeElement.style.visibility="visible"}onMessageReceived(t){return t.messageType===l.In.MutationObserverMessage||t.messageType===l.In.ResizeObserverMessage?(this.setHeightBasedOnScrollHeight(),!0):super.onMessageReceived(t)}};var B=class{constructor(){i(this,"appendChild",(n,t,e)=>{var s;if(e!=null&&e.relative){if(e.relative.direction==="before")return n.insertBefore(t,e.relative.child);if(e.relative.direction==="after"){let r=(s=e.relative.child)==null?void 0:s.nextSibling;return n.insertBefore(t,r||null)}}else return n.appendChild(t)})}};var Lt=(o,n,t)=>{let e=new URL(o);return e.searchParams.append(n,t),e.toString()},Ie=class extends B{constructor(){super(...arguments);i(this,"type",F.IframeLoader);i(this,"load",async(t,e,s,r)=>{let a,p=e.loader;if((s==null?void 0:s.nodeName)==="IFRAME")console.log("needs to load into an exsisting Iframe...",p.url,s),a=s,a.src=p.url;else{let d=T(),c="myop-comp-".concat(d);a=document.createElement("iframe"),s.querySelector('[id^="myop-comp-"]')||(s.innerHTML=""),r!=null&&r.hidden&&(a.style.visibility="hidden"),a=this.appendChild(s,a,r);let u=e.loader.url;r!=null&&r._hasParent&&(u=Lt(u,"_myop-comp",d));let m="";r!=null&&r.elementAttributes&&(m=Object.entries(r==null?void 0:r.elementAttributes).map(([f,g])=>g===""||g===null||g===void 0?f:"".concat(f,'="').concat(String(g),'"')).join(" ")),a.outerHTML='<iframe \n id="'.concat(c,'"\n style="\n padding: 0;\n margin: 0;\n height: ').concat(p.autoHeight||!p.height?"":p.height,"; \n width : 100%;\n overflow: hidden;\n border: none;\n opacity: ").concat(r!=null&&r.hidden?"0":"1",";\n position: ").concat(r!=null&&r.hidden?"absolute":"static",";\n pointer-events: ").concat(r!=null&&r.hidden?"none":"all",';\n "\n src="').concat(u,'"\n ').concat(m,"\n ></iframe>"),a=s.querySelector("#".concat(c))}return new A(t,e,s,a,r)})}};var U=class extends H{constructor(t,e,s,r,a){super(t,s,a);this.container=s;this.customElement=r;i(this,"cleanupInspect",()=>{});i(this,"send",t=>{let e=h({},t),s=super.send(e),r=new CustomEvent(de.webcomponent_message_key,{detail:e});try{this.customElement.dispatchEvent(r)}catch(a){console.log("error while trying to dispatchEvent",a)}return s});i(this,"dispose",()=>{var t;super.dispose(),(t=this.customElement.parentNode)==null||t.removeChild(this.customElement)});this.element=r}inspect(){return this.cleanupInspect=Me(this.id,"MyopWebComponent",0,this.container,this.customElement,this.componentDefinition),this.cleanupInspect}hide(){this.customElement.style.opacity="0",this.customElement.style.position="absolute",this.customElement.style.pointerEvents="none",this.customElement.style.visibility="hidden",this.customElement.style.height="0",this.customElement.style.width="0"}show(){this.customElement.style.opacity="1",this.customElement.style.position="unset",this.customElement.style.pointerEvents="all",this.customElement.style.visibility="visible",this.customElement.style.height="",this.customElement.style.width=""}};var Xe={},Ce=class extends B{constructor(){super(...arguments);i(this,"type",F.WebComponentLoader);i(this,"load",async(t,e,s,r)=>{let a=e.loader;Xe[a.url]?console.log("Module alreday loaded or in loading process"):Xe[a.url]=new Promise((c,u)=>{let m=a.url,f=document.createElement("script");f.type="module",f.src=m,f.onload=()=>{c()},f.onerror=()=>{u()},document.head.appendChild(f)}),await Xe[a.url],await tt(1);let p="myop-comp-".concat(T()),d=document.createElement(a.tag);return s.querySelector('[id^="myop-comp-"]')||(s.innerHTML=""),d.id=p,r!=null&&r.hidden&&(d.style.opacity="0",d.style.position="absolute",d.style.height="0",d.style.width="0",d.style.pointerEvents="none",d.style.visibility="hidden"),r!=null&&r._environment&&(d._myopEnvironment=r==null?void 0:r._environment),this.appendChild(s,d,r),new U(t,e,s,d,r)})}};var gt="0.1.40";var ut=[],xe,yt=async()=>(xe||(xe=new te,xe.init()),xe);function _t(o,n){return class extends HTMLElement{connectedCallback(){let t=n===ae.open?"open":"closed",e=this.attachShadow({mode:t});yt().then(s=>{s.connectedCallback(this,e),e.innerHTML=o})}}}var Pt=(o,n,t)=>{customElements.define(o,_t(n,t)),console.log("define('".concat(o,"') was called, web component ready to use"))},Ot=o=>o.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/(\d+)/g,"-$1").toLowerCase(),Kt=o=>(o=Ot(o),o.replace(/_/g,"-"));var be=class extends B{constructor(){super(...arguments);i(this,"type",F.HTMLLoader);i(this,"load",async(t,e,s,r)=>{let a=e.loader,p="myop-comp-".concat(T()),d;if(a.shadowRootMode===ae.localFrame){let c=T(),u="myop-comp-".concat(c),m=document.createElement("iframe");s.querySelector('[id^="myop-comp-"]')||(s.innerHTML=""),r!=null&&r.hidden&&(m.style.visibility="hidden"),m=this.appendChild(s,m,r),m.id=u,m.setAttribute("style","\n padding: 0;\n margin: 0;\n overflow: hidden;\n border: none;\n opacity: ".concat(r!=null&&r.hidden?"0":"1",";\n width: 100%;\n height: 100%;\n position: ").concat(r!=null&&r.hidden?"absolute":"static",";\n pointer-events: ").concat(r!=null&&r.hidden?"none":"all",";\n ")),s.appendChild(m);let f=m.contentDocument||m.contentWindow.document;f.open(),f.writeln(a.HTML),f.writeln('<script src="'.concat(window.myop.__ROOT_SDK_PUBLIC_URL__,"\"><\/script>\n <script>\n window.__federation__ = \n { ...window.__federation__,\n //TODO : get from ENV at build time, \n // inject value to module at build time \n // today we doing so just for the CJS version \n __public_path__ :'https://cdn.myop.dev/sdk/next',\n ...").concat(JSON.stringify(window.__federation__),"};\n const init = async () => {\n const {IframeSDK} = (await window.myop.rootSDK.getIframeModule());\n const sdk = new IframeSDK()\n sdk.init();\n }\n init().then();\n <\/script>")),f.close();let g=new A(t,e,s,m,r);return m.onload=()=>{g.observeSizeBasedOnDocumentElement()},g}if(a.shadowRootMode===ae.none){let c=document.createElement("template");c.innerHTML=a.HTML,d=c.content.firstElementChild,yt().then(u=>{u.connectedCallback(d,d)})}else{let c=Kt(t.name+e.id);ut.includes(c)||(Pt(c,a.HTML,a.shadowRootMode),ut.push(c)),d=document.createElement(c)}return s.querySelector('[id^="myop-comp-"]')||(s.innerHTML=""),d.id=p,r!=null&&r.hidden&&(d.style.opacity="0",d.style.position="absolute",d.style.height="0",d.style.width="0",d.style.pointerEvents="none",d.style.visibility="hidden"),this.appendChild(s,d,r),new U(t,e,s,d,r)})}};var we=class we{constructor(n="https://cloud.myop.dev"){this._baseUrl=n;i(this,"userFlows",{})}async fetchComponent(n,t){return t?(await this.fetchFlow(t)).components.find(s=>s.type.id===n):(await this.fetchAutoFlow(n)).components[0]}async fetchAutoFlow(n){return this.userFlows[n]||(this.userFlows[n]=new Promise(async(t,e)=>{try{let r=await(await fetch("".concat(this._baseUrl,"/flow?id=").concat(n,"&auto=true"))).json();t(r.item)}catch(s){e(s)}})),await this.userFlows[n]}async fetchFlow(n){return this.userFlows[n]||(this.userFlows[n]=new Promise(async(t,e)=>{try{let r=await(await fetch("".concat(this._baseUrl,"/flow?id=").concat(n,"&resolve=components"))).json();t(r.item)}catch(s){e(s)}})),await this.userFlows[n]}};i(we,"Main",new we);var Te=we;var ht=async o=>{let n=new URL(window.location.href),e=new URLSearchParams(n.search).get("myopOverride");if(e){let[s,r]=et(e),p=(await Te.Main.fetchFlow(s)).components.find(d=>d.type.id===o.type.id);if(p&&p.instance.skinSelector.type===$.Segmented&&p.instance.resolvedExperiences){let d=p.instance.resolvedExperiences.find(c=>c.id===r);if((d==null?void 0:d.type)===pe.Segment){let c=d,m=p.instance.skinSelector.segments.find(f=>f.segmentId===c.segment.id);if(m)return p.instance.skinSelector=m==null?void 0:m.skinSelector,p}}}return null};var Mt="https://cdn.myop.dev/sdk/next/myop_sdk.min.js",D=class{constructor(){i(this,"components2init",[]);i(this,"components",[]);i(this,"componentsLoaders",[]);i(this,"initiated",!1);i(this,"version",gt);i(this,"type2InstanceCount",{});i(this,"assignId",n=>(this.type2InstanceCount[n.id]||(this.type2InstanceCount[n.id]=0),"".concat(n.id,"_").concat(++this.type2InstanceCount[n.id])));i(this,"inspected",!1);i(this,"inspect",()=>{this.inspected||(this.inspected=!0,this.components.forEach(n=>{n.inspect&&n.inspect()}))});i(this,"incomingMessageHandler",n=>{if(n.origin,document.location.origin,n.data.myop){if(n.data.direction!==x.up&&n.data.messageType!==l.EnvelopedMessage)return;let t=n.data;if(t.messageType===l.InitRequest){this.components2init.forEach(s=>{s.send(new P(s.id))});return}if(t.messageType===l.InitResponse){this.components2init=this.components2init.filter(r=>r.id!==t.content.id);let s=this.components.find(r=>{var a;return r.id===((a=t.content)==null?void 0:a.id)});s==null||s.setInitiated();return}if(t.messageType===l.EnvelopedMessage){let s=t,r=this.components.find(a=>a.id===s.destination);if(r){if(s.direction===x.down){s.message.messageType===w.name?r.onMessageReceived(s.message):(s.message.route=s.route,r.send(s.message));return}}else{let a=this.components.find(p=>p.id===s.message.destination);a&&a.send(s.message)}return}let e=this.components.find(s=>s.id===t.destination);if(!e){window.myop.IframeSDK&&window.myop.IframeSDK.messageToHost(t);return}if(e){if(e.onMessageReceived(t))return;window.myop.IframeSDK&&window.myop.IframeSDK.messageToHost(t)}}});i(this,"send",n=>{let t=new MessageEvent("",{data:n});this.incomingMessageHandler(t)});i(this,"init",n=>{if(this.initiated)throw new Error("hostSDK already initiated");let t=[new Ie,new Ce,new be];if(this.componentsLoaders=[...t],n){let e={};n.forEach(s=>{let r=new s(this.componentsLoaders);e[r.type]=r}),this.componentsLoaders.forEach(s=>{e[s.type]||(e[s.type]=s)}),this.componentsLoaders=Object.values(e)}window.addEventListener("message",this.incomingMessageHandler,!1),console.log("myop hostSDK initiated",document.location.href),this.initiated=!0});i(this,"_getSkinIdBySkinSelector",async(n,t=[],e)=>{var r;async function s(a,p){for(let d of a)if(await p(d))return d}switch(n.type){case"DedicatedSkin":case $.Dedicated:return((r=n.skin)==null?void 0:r.id)||n.skins[0].id;case $.Segmented:{let p=await s(n.segments,async d=>{if(d.segmentId==="Default")return!0;let c=t.find(g=>g.type===pe.Segment?g.segment.id===d.segmentId:!1);if(!c)throw new Error("experience not found");let m=c.segment,f=(e||{})[m.function];return f?await f():(console.warn("segmentId:".concat(d.segmentId,", ").concat(m.function," function not provided !")),!1)});if(p)return this._getSkinIdBySkinSelector(p.skinSelector,t);debugger}break;default:debugger}return""});i(this,"runSkinSelector",async(n,t)=>{let e=await this._getSkinIdBySkinSelector(n.instance.skinSelector,n.instance.resolvedExperiences,t);return n.type.skins.find(s=>s.id===e)});i(this,"loaderHooks");i(this,"loadComponent",async(n,t,e)=>{var c,u,m,f;if(!t){debugger;throw new Error("no container was found for this component")}let s=await ht(n);s&&(n=s);let r=t;if(r.myop)if(r.component){n=h({},n),n.instance=h({},n.instance);let g=h(h({},(c=this.loaderHooks)!=null?c:{}),(u=e==null?void 0:e.hooks)!=null?u:{}),_=await this.runSkinSelector(n,g);if(!_)throw new Error("runSkinSelector failed to choose skin, check the provided config");return(m=e==null?void 0:e.hooks)!=null&&m.afterSkinSelected&&(_=await e.hooks.afterSkinSelected(h({},_))),n.instance.skinSelector={type:$.Dedicated,skin:_},e&&(e=h({},e),delete e.hooks),await Ge(r,n,this.components,e)}else throw new Error("load component got a detached ref.");t=t;let a=await this.runSkinSelector(n,e==null?void 0:e.hooks);if(!a)throw new Error("runSkinSelector failed to choose skin, check the provided config");(f=e==null?void 0:e.hooks)!=null&&f.afterSkinSelected&&(a=await e.hooks.afterSkinSelected(h({},a)));let p=this.componentsLoaders.find(g=>g.type===a.loader.type);if(!p){debugger;throw new Error('no loader "'.concat(a.loader.type,'" was found for component'))}let d=await p.load(n.type,a,t,e);d.isInitiated||this.components2init.push(d),d.bind("onDispose",()=>(this.components=this.components.filter(g=>g!==d),this.components2init=this.components2init.filter(g=>g!==d),!0)),this.components.push(d),e!=null&&e.connectProps&&(d=ft(d,n.type.props));try{await Je(d,n,this.components)}catch(g){throw g}return e!=null&&e.skipInit||await d.initiated(),d});i(this,"navigate",async(n,t,e)=>{if(n.parent)throw new Error("Navigating on remote ref components is not implemented yet");if(e!=null&&e.staged){let s=await this.loadComponent(t,n.container,h({hidden:!0,relative:{direction:"after",child:n.element}},e));return e.init&&await e.init(s),s.show(),n.dispose(),s}else{let s=n.element.nextSibling;return n.dispose(),this.loadComponent(t,n.container,h({relative:{direction:"before",child:s}},e))}})}};i(D,"Instance",()=>window.myop.hostSDK);window.myop||(window.myop={__ROOT_SDK_PUBLIC_URL__:Mt});if(!window.myop.hostSDK){let o=new D;o.init(),window.myop||(window.myop={__ROOT_SDK_PUBLIC_URL__:Mt}),window.myop.hostSDK=o}var Ft=window.myop.hostSDK;ue("hostSDK",Ft);var Se=class extends M{constructor(){super(...arguments);i(this,"messageType",l.CreateRefComponentMessage);i(this,"innerExecutor",(t,e,s)=>{(async()=>{let a=e.shadowRoot.querySelectorAll("[".concat(E.id,"='").concat(t.refConfig.selector,"']"));if(a.length===1){let p=D.Instance(),d=p.components.find(f=>f.id===t.options.id);d&&d.dispose();let c=p.components.indexOf(d);c!==-1&&p.components.splice(c,1);let u=await p.loadComponent(t.nestedComponentConfig,a.item(0),t.options),m=[];Object.keys(u.refs).forEach(f=>{let g=u.refs[f];g=g.__nonProxied||g,g.componentDefinition&&m.push({refName:f,componentDefinitionId:g.componentDefinition.id})}),s(new O(t.handlerUniqueId,m))}else{console.error("CreateRefComponentMessageHandler - DOM element not found"),this.messageToHost(new O(t.handlerUniqueId,[],!0));debugger}})().then()})}};var It=(o,n,t)=>{let e=o.scriptInputs?o.scriptInputs:{};e.makeSerializable=v,e.send=n,e.rootRef=t,e.__scriptInputs=e;let r=new Function("return (".concat(o.script,")(...arguments)"))(e);n(r)};var Re=class extends M{constructor(){super(...arguments);i(this,"messageType",l.ExecuteScriptMessage);i(this,"innerExecutor",(t,e,s)=>{It(t,a=>{s(new N(t.handlerUniqueId,a))},e)})}};var Ct=o=>{if(!o)return null;if(o.tagName==="FORM"){let n=new FormData(o),t={formData:{},unmappedData:[]},e=o.querySelectorAll("input, select, textarea"),s=-1;return e.forEach(r=>{if(typeof r.value=="string"){let a=r.getAttribute(E.id),p=r.getAttribute("name"),d={id:r.id,name:p,value:Ct(r),required:r.required,validity:v(r.validity,!0),myopId:a};p?t.formData[p]?t.formData[p].value?t.unmappedData.push(d):(t.unmappedData.push(t.formData[p]),t.formData[p]=d):t.formData[p]=d:t.unmappedData.push(d)}}),t}return o.type==="checkbox"||o.type==="radio"?o.checked?o.value:null:o.tagName==="INPUT"||o.tagName==="TEXTAREA"||o.tagName==="SELECT"?o.value:o.isContentEditable?o.innerText||o.textContent:null},Ee=class extends M{constructor(){super(...arguments);i(this,"messageType",l.GetElementValueMessage);i(this,"innerExecutor",(t,e,s)=>{S(t.ref,e.shadowRoot).forEach(a=>{s(new q(Ct(a)),t)})})}};var ve=class extends M{constructor(){super(...arguments);i(this,"messageType",l.SetInnerHtml);i(this,"innerExecutor",(t,e)=>{S(t.ref,e.shadowRoot).forEach(r=>{r.innerHTML=t.content})})}};var te=class extends re{constructor(){super(...arguments);i(this,"alwaysPassEnvelopesToHost",!0);i(this,"connectedCallback",(t,e)=>{t.addEventListener(de.webcomponent_message_key,s=>{let r=s.data?s.data:s.detail;if(!r||!r.myop){debugger;throw new Error("recvied webcomponent_message with wrong type")}else{let a=r;if(this.handleIncomeMessages(s),a.messageType===l.InitMessage){let p=a.content.id;this.components[p].context=new le(t,e)}}}),setTimeout(()=>{this.messageToHost(new j)},1)});i(this,"messageToHost",(t,e)=>{t.direction=x.up,!t.replayToHandler&&(e!=null&&e.handlerUniqueId)&&(t.replayToHandler=e.handlerUniqueId),window.myop.hostSDK.send(t)});i(this,"supportedHandlers",[new me(this.messageToHost,this.components),new ve(this.messageToHost,this.components),new ce(this.messageToHost,this.components),new fe(this.messageToHost,this.components),new ye(this.messageToHost,this.components),new he(this.messageToHost,this.components),new Re(this.messageToHost,this.components),new Ee(this.messageToHost,this.components),new Se(this.messageToHost,this.components)]);i(this,"init",()=>{})}};ue("WebComponentSDK",te);export{te as WebComponentSDK};
|
|
@@ -141,13 +141,40 @@ __export(messages_exports, {
|
|
|
141
141
|
stripFunction: () => stripFunction
|
|
142
142
|
});
|
|
143
143
|
|
|
144
|
-
// src/utils/
|
|
144
|
+
// src/utils/uuid.ts
|
|
145
145
|
var uuidv4 = () => {
|
|
146
146
|
return "10000000-1000-4000-8000-100000000000".replace(
|
|
147
147
|
/[018]/g,
|
|
148
148
|
(c) => (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)
|
|
149
149
|
);
|
|
150
150
|
};
|
|
151
|
+
var bytesToUuid = (bytes) => {
|
|
152
|
+
const hex = [...bytes].map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
153
|
+
return [
|
|
154
|
+
hex.slice(0, 8),
|
|
155
|
+
hex.slice(8, 12),
|
|
156
|
+
hex.slice(12, 16),
|
|
157
|
+
hex.slice(16, 20),
|
|
158
|
+
hex.slice(20)
|
|
159
|
+
].join("-");
|
|
160
|
+
};
|
|
161
|
+
var base64UrlDecode = (str) => {
|
|
162
|
+
let base64 = str.replace(/-/g, "+").replace(/_/g, "/");
|
|
163
|
+
while (base64.length % 4) base64 += "=";
|
|
164
|
+
const binary = atob(base64);
|
|
165
|
+
return Uint8Array.from(binary, (char) => char.charCodeAt(0));
|
|
166
|
+
};
|
|
167
|
+
var decompressUUIDs = (encoded) => {
|
|
168
|
+
const bytes = base64UrlDecode(encoded);
|
|
169
|
+
if (bytes.length % 16 !== 0) throw new Error("Invalid input length");
|
|
170
|
+
const uuids = [];
|
|
171
|
+
for (let i = 0; i < bytes.length; i += 16) {
|
|
172
|
+
uuids.push(bytesToUuid(bytes.slice(i, i + 16)));
|
|
173
|
+
}
|
|
174
|
+
return uuids;
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
// src/utils/utils.ts
|
|
151
178
|
var wait = (ms) => {
|
|
152
179
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
153
180
|
};
|
|
@@ -1655,7 +1682,7 @@ var WebcomponentLoader = class extends BaseMyopLoader {
|
|
|
1655
1682
|
};
|
|
1656
1683
|
|
|
1657
1684
|
// version:myop-sdk-version
|
|
1658
|
-
var myop_sdk_version_default = "0.1.
|
|
1685
|
+
var myop_sdk_version_default = "0.1.40";
|
|
1659
1686
|
|
|
1660
1687
|
// src/host/loaders/HTMLComponentLoader.ts
|
|
1661
1688
|
var seen2 = [];
|
|
@@ -1757,6 +1784,91 @@ var HTMLComponentLoader = class extends BaseMyopLoader {
|
|
|
1757
1784
|
}
|
|
1758
1785
|
};
|
|
1759
1786
|
|
|
1787
|
+
// src/helpers/CloudRepository.ts
|
|
1788
|
+
var _CloudRepository = class _CloudRepository {
|
|
1789
|
+
// private components: Record<string, Promise<IUserFlow>> = {};
|
|
1790
|
+
constructor(_baseUrl = "https://cloud.myop.dev") {
|
|
1791
|
+
this._baseUrl = _baseUrl;
|
|
1792
|
+
__publicField(this, "userFlows", {});
|
|
1793
|
+
}
|
|
1794
|
+
async fetchComponent(componentId, flowId) {
|
|
1795
|
+
if (flowId) {
|
|
1796
|
+
const flow = await this.fetchFlow(flowId);
|
|
1797
|
+
return flow.components.find((c) => c.type.id === componentId);
|
|
1798
|
+
} else {
|
|
1799
|
+
const flow = await this.fetchAutoFlow(componentId);
|
|
1800
|
+
return flow.components[0];
|
|
1801
|
+
}
|
|
1802
|
+
}
|
|
1803
|
+
async fetchAutoFlow(componentId) {
|
|
1804
|
+
if (!this.userFlows[componentId]) {
|
|
1805
|
+
this.userFlows[componentId] = new Promise(
|
|
1806
|
+
async (resolve, reject) => {
|
|
1807
|
+
try {
|
|
1808
|
+
const res = await fetch(
|
|
1809
|
+
"".concat(this._baseUrl, "/flow?id=").concat(componentId, "&auto=true")
|
|
1810
|
+
);
|
|
1811
|
+
const json = await res.json();
|
|
1812
|
+
resolve(json.item);
|
|
1813
|
+
} catch (e) {
|
|
1814
|
+
reject(e);
|
|
1815
|
+
}
|
|
1816
|
+
}
|
|
1817
|
+
);
|
|
1818
|
+
}
|
|
1819
|
+
return await this.userFlows[componentId];
|
|
1820
|
+
}
|
|
1821
|
+
async fetchFlow(flowId) {
|
|
1822
|
+
if (!this.userFlows[flowId]) {
|
|
1823
|
+
this.userFlows[flowId] = new Promise(
|
|
1824
|
+
async (resolve, reject) => {
|
|
1825
|
+
try {
|
|
1826
|
+
const res = await fetch(
|
|
1827
|
+
"".concat(this._baseUrl, "/flow?id=").concat(flowId, "&resolve=components")
|
|
1828
|
+
);
|
|
1829
|
+
const json = await res.json();
|
|
1830
|
+
resolve(json.item);
|
|
1831
|
+
} catch (e) {
|
|
1832
|
+
reject(e);
|
|
1833
|
+
}
|
|
1834
|
+
}
|
|
1835
|
+
);
|
|
1836
|
+
}
|
|
1837
|
+
return await this.userFlows[flowId];
|
|
1838
|
+
}
|
|
1839
|
+
};
|
|
1840
|
+
__publicField(_CloudRepository, "Main", new _CloudRepository());
|
|
1841
|
+
var CloudRepository = _CloudRepository;
|
|
1842
|
+
|
|
1843
|
+
// src/host/myopOverride.ts
|
|
1844
|
+
var checkMyopOverride = async (componentConfig) => {
|
|
1845
|
+
const url = new URL(window.location.href);
|
|
1846
|
+
const params = new URLSearchParams(url.search);
|
|
1847
|
+
const myopOverride = params.get("myopOverride");
|
|
1848
|
+
if (myopOverride) {
|
|
1849
|
+
const [flowId, experimentId] = decompressUUIDs(myopOverride);
|
|
1850
|
+
const flow = await CloudRepository.Main.fetchFlow(flowId);
|
|
1851
|
+
const componentToOverride = flow.components.find((c) => c.type.id === componentConfig.type.id);
|
|
1852
|
+
if (componentToOverride) {
|
|
1853
|
+
if (componentToOverride.instance.skinSelector.type === SkinSelectorTypes.Segmented) {
|
|
1854
|
+
if (componentToOverride.instance.resolvedExperiences) {
|
|
1855
|
+
const resolvedExperience = componentToOverride.instance.resolvedExperiences.find((e) => e.id === experimentId);
|
|
1856
|
+
if ((resolvedExperience == null ? void 0 : resolvedExperience.type) === ExperienceTypes.Segment) {
|
|
1857
|
+
const typedResolvedExperience = resolvedExperience;
|
|
1858
|
+
const typedSkinSelector = componentToOverride.instance.skinSelector;
|
|
1859
|
+
const segment = typedSkinSelector.segments.find((s) => s.segmentId === typedResolvedExperience.segment.id);
|
|
1860
|
+
if (segment) {
|
|
1861
|
+
componentToOverride.instance.skinSelector = segment == null ? void 0 : segment.skinSelector;
|
|
1862
|
+
return componentToOverride;
|
|
1863
|
+
}
|
|
1864
|
+
}
|
|
1865
|
+
}
|
|
1866
|
+
}
|
|
1867
|
+
}
|
|
1868
|
+
}
|
|
1869
|
+
return null;
|
|
1870
|
+
};
|
|
1871
|
+
|
|
1760
1872
|
// src/host/hostSDK.ts
|
|
1761
1873
|
var __ROOT_SDK_PUBLIC_URL__ = "https://cdn.myop.dev/sdk/next/myop_sdk.min.js";
|
|
1762
1874
|
var HostSDK = class {
|
|
@@ -1898,7 +2010,9 @@ var HostSDK = class {
|
|
|
1898
2010
|
return void 0;
|
|
1899
2011
|
}
|
|
1900
2012
|
switch (skinSelector.type) {
|
|
2013
|
+
// @ts-ignore
|
|
1901
2014
|
case "DedicatedSkin":
|
|
2015
|
+
//backward compatibility
|
|
1902
2016
|
case SkinSelectorTypes.Dedicated:
|
|
1903
2017
|
{
|
|
1904
2018
|
let selectedSkinId = ((_a = skinSelector.skin) == null ? void 0 : _a.id) || skinSelector.skins[0].id;
|
|
@@ -1956,6 +2070,10 @@ var HostSDK = class {
|
|
|
1956
2070
|
debugger;
|
|
1957
2071
|
throw new Error("no container was found for this component");
|
|
1958
2072
|
}
|
|
2073
|
+
const overriddenConfig = await checkMyopOverride(componentConfig);
|
|
2074
|
+
if (overriddenConfig) {
|
|
2075
|
+
componentConfig = overriddenConfig;
|
|
2076
|
+
}
|
|
1959
2077
|
const ref = container;
|
|
1960
2078
|
if (ref.myop) {
|
|
1961
2079
|
if (ref.component) {
|