@contentstack/live-preview-utils 4.3.0 → 4.4.1
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/README.md +96 -30
- package/dist/legacy/chunk-HZF5SLJ7.js +625 -0
- package/dist/legacy/chunk-HZF5SLJ7.js.map +1 -0
- package/dist/legacy/index.d.cts +1 -1
- package/dist/legacy/index.d.ts +1 -1
- package/dist/legacy/light-sdk.cjs +1 -1
- package/dist/legacy/light-sdk.cjs.map +1 -1
- package/dist/legacy/light-sdk.js +1 -1
- package/dist/legacy/light-sdk.js.map +1 -1
- package/dist/legacy/livePreview/editButton/editButton.cjs +2 -0
- package/dist/legacy/livePreview/editButton/editButton.cjs.map +1 -1
- package/dist/legacy/livePreview/editButton/editButton.js +2 -0
- package/dist/legacy/livePreview/editButton/editButton.js.map +1 -1
- package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs +172 -432
- package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
- package/dist/legacy/livePreview/eventManager/livePreviewEventManager.js +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
- package/dist/legacy/timeline/timelinePostMessage/timelinePostMessage.cjs +172 -432
- package/dist/legacy/timeline/timelinePostMessage/timelinePostMessage.cjs.map +1 -1
- package/dist/legacy/timeline/timelinePostMessage/timelinePostMessage.js +1 -1
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs +111 -27
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js +112 -28
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs +4 -0
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.cts +8 -1
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.ts +8 -1
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js +4 -0
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs +41 -6
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.cts +9 -1
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.ts +9 -1
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.js +41 -6
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/visualBuilderPostMessage.cjs +172 -432
- package/dist/legacy/visualBuilder/utils/visualBuilderPostMessage.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/visualBuilderPostMessage.js +1 -1
- package/dist/legacy/visualBuilder/visualBuilder.style.cjs +30 -0
- package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
- package/dist/legacy/visualBuilder/visualBuilder.style.d.cts +5 -0
- package/dist/legacy/visualBuilder/visualBuilder.style.d.ts +5 -0
- package/dist/legacy/visualBuilder/visualBuilder.style.js +30 -0
- package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
- package/dist/modern/chunk-4RUJZCI2.js +625 -0
- package/dist/modern/chunk-4RUJZCI2.js.map +1 -0
- package/dist/modern/light-sdk.cjs +1 -1
- package/dist/modern/light-sdk.cjs.map +1 -1
- package/dist/modern/light-sdk.js +1 -1
- package/dist/modern/light-sdk.js.map +1 -1
- package/dist/modern/livePreview/editButton/editButton.cjs +2 -0
- package/dist/modern/livePreview/editButton/editButton.cjs.map +1 -1
- package/dist/modern/livePreview/editButton/editButton.js +2 -0
- package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
- package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs +172 -432
- package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
- package/dist/modern/livePreview/eventManager/livePreviewEventManager.js +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
- package/dist/modern/timeline/timelinePostMessage/timelinePostMessage.cjs +172 -432
- package/dist/modern/timeline/timelinePostMessage/timelinePostMessage.cjs.map +1 -1
- package/dist/modern/timeline/timelinePostMessage/timelinePostMessage.js +1 -1
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs +110 -27
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.js +111 -28
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs +4 -0
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.cts +8 -1
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.ts +8 -1
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js +4 -0
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -1
- package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs +40 -6
- package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/isFieldDisabled.d.cts +9 -1
- package/dist/modern/visualBuilder/utils/isFieldDisabled.d.ts +9 -1
- package/dist/modern/visualBuilder/utils/isFieldDisabled.js +40 -6
- package/dist/modern/visualBuilder/utils/isFieldDisabled.js.map +1 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/dist/modern/visualBuilder/utils/visualBuilderPostMessage.cjs +172 -432
- package/dist/modern/visualBuilder/utils/visualBuilderPostMessage.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/visualBuilderPostMessage.js +1 -1
- package/dist/modern/visualBuilder/visualBuilder.style.cjs +30 -0
- package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
- package/dist/modern/visualBuilder/visualBuilder.style.d.cts +5 -0
- package/dist/modern/visualBuilder/visualBuilder.style.d.ts +5 -0
- package/dist/modern/visualBuilder/visualBuilder.style.js +30 -0
- package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
- package/package.json +9 -9
- package/dist/legacy/chunk-7SRLYDRL.js +0 -885
- package/dist/legacy/chunk-7SRLYDRL.js.map +0 -1
- package/dist/modern/chunk-JYE4G3PN.js +0 -885
- package/dist/modern/chunk-JYE4G3PN.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://ContentstackAdvPostMessage/webpack/universalModuleDefinition","webpack://ContentstackAdvPostMessage/src/configHandler.ts","webpack://ContentstackAdvPostMessage/src/constants/errorMessages.constants.ts","webpack://ContentstackAdvPostMessage/src/constants/index.ts","webpack://ContentstackAdvPostMessage/src/defaults/config.default.ts","webpack://ContentstackAdvPostMessage/src/index.ts","webpack://ContentstackAdvPostMessage/src/sendMessage.ts","webpack://ContentstackAdvPostMessage/src/types/index.ts","webpack://ContentstackAdvPostMessage/src/types/postMessageEvents.types.ts","webpack://ContentstackAdvPostMessage/src/utils/logger.ts","webpack://ContentstackAdvPostMessage/src/utils/safeInterval.ts","webpack://ContentstackAdvPostMessage/src/utils/uniqueId.ts","webpack://ContentstackAdvPostMessage/src/utils/windowUtils.ts","webpack://ContentstackAdvPostMessage/node_modules/zalgo-promise/dist/zalgo-promise.js","webpack://ContentstackAdvPostMessage/node_modules/zalgo-promise/index.js","webpack://ContentstackAdvPostMessage/webpack/bootstrap","webpack://ContentstackAdvPostMessage/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ContentstackAdvPostMessage\"] = factory();\n\telse\n\t\troot[\"ContentstackAdvPostMessage\"] = factory();\n})(this, () => {\nreturn ","import { ERROR_MESSAGES } from \"./constants\";\nimport { getDefaultConfig } from \"./defaults/config.default\";\nimport { EventManagerOptions, UserConfig } from \"./types\";\nimport { getErrorMessage } from \"./utils/logger\";\nimport { getWindow } from \"./utils/windowUtils\";\n\n/**\n * Class responsible for handling the configuration settings.\n */\nexport class Config {\n private config: UserConfig = getDefaultConfig();\n\n /**\n * Replaces the current configuration with the provided partial configuration.\n * @param config - The partial configuration to replace the current configuration with.\n */\n replace(\n config: Partial<EventManagerOptions> & { channelId?: string }\n ): void {\n updateConfig(config, this.config);\n }\n\n /**\n * Sets a specific configuration key to the provided value.\n * @param key - The configuration key to set.\n * @param value - The value to set for the configuration key.\n */\n set<K extends keyof UserConfig>(key: K, value: UserConfig[K]): void {\n this.config[key] = value;\n }\n\n /**\n * Retrieves the value of a specific configuration key.\n * @param key - The configuration key to retrieve the value for.\n * @returns The value of the configuration key.\n */\n get<K extends keyof UserConfig>(key: K): UserConfig[K] {\n return this.config[key];\n }\n\n /**\n * Retrieves all user configurations.\n * @returns {UserConfig} The user configurations.\n */\n getAll(): UserConfig {\n return this.config;\n }\n\n /**\n * Resets the configuration to the default values.\n */\n reset(): void {\n this.config = getDefaultConfig();\n }\n}\n\n/**\n * Updates the configuration object with the provided partial configuration.\n * @param userInput - The partial configuration provided by the user.\n * @param config - The current configuration object.\n */\nfunction updateConfig(\n userInput: Partial<EventManagerOptions> & { channelId?: string },\n config: UserConfig\n): void {\n config.debug = userInput.debug ?? config.debug;\n\n if (userInput.channelId === \"\") {\n throw new Error(\n getErrorMessage(ERROR_MESSAGES.common.channelIdRequired)\n );\n }\n\n config.channelId = userInput.channelId ?? config.channelId;\n\n config.suppressErrors = userInput.suppressErrors ?? config.suppressErrors;\n\n config.targetOrigin = userInput.targetOrigin ?? config.targetOrigin;\n\n const currentWindow = getWindow();\n if (userInput.target) {\n config.targetWindow = userInput.target;\n } else if (currentWindow) {\n config.targetWindow = currentWindow;\n } else {\n config.targetWindow = {\n postMessage: () => {},\n } as unknown as Window;\n }\n}\n","export const ERROR_MESSAGES = {\n common: {\n windowClosed: \"The window closed before the response was received\",\n windowNotFound: \"The window was not found.\",\n channelIdRequired: \"The channelId is required\",\n },\n sendEvent: {\n receiverReturnedError: \"The receiver returned an error\",\n eventCancelled: \"The event was cancelled\",\n noAckReceived: \"The ACK was not received\",\n },\n receiveEvent: {\n noRequestListenerFound(type: string) {\n return `No request listener found for event \"${type}\"` as const;\n },\n codeReturnedError: \"The code returned an error\",\n noResponseListenerFound(hash: string) {\n return `No response listener found for hash \"${hash}\"` as const;\n },\n noAckListenerFound(hash: string) {\n return `No ack listener found for hash \"${hash}\"` as const;\n },\n unknownNature(nature: string) {\n return `The nature \"${nature}\" is unknown` as const;\n },\n },\n registerEvent: {\n eventAlreadyRegistered(type: string) {\n return `The event \"${type}\" is already registered` as const;\n },\n },\n unregisterEvent: {\n eventDoesNotExist(type: string) {\n return `The event \"${type}\" does not exist` as const;\n },\n },\n} as const;\n\n\nexport const ERROR_CODES = {\n common: {\n windowClosed: \"WINDOW_CLOSED\",\n windowNotFound: \"WINDOW_NOT_FOUND\",\n },\n sendEvent: {\n receiverReturnedError: \"RECEIVER_RETURNED_ERROR\",\n eventCancelled: \"EVENT_CANCELLED\",\n noAckReceived: \"NO_ACK_RECEIVED\",\n },\n receiveEvent: {\n noRequestListenerFound: \"NO_REQUEST_LISTENER_FOUND\",\n codeReturnedError: \"CODE_RETURNED_ERROR\",\n noResponseListenerFound: \"NO_RESPONSE_LISTENER_FOUND\",\n noAckListenerFound: \"NO_ACK_LISTENER_FOUND\",\n unknownNature: \"UNKNOWN_NATURE\",\n },\n registerEvent: {\n eventAlreadyRegistered: \"EVENT_ALREADY_REGISTERED\",\n },\n unregisterEvent: {\n eventDoesNotExist: \"EVENT_DOES_NOT_EXIST\",\n },\n} as const;","export const RESPONSE_CYCLE = 500;\nexport const ANY_ORIGIN = \"*\";\nexport const EVENT_MANAGER_NAME = \"contentstack-adv-post-message\";\n\nexport * from \"./errorMessages.constants\";\n","import { UserConfig } from \"../types/configHandler.types\";\nimport { ANY_ORIGIN } from \"../constants\";\n\nexport function getDefaultConfig(): UserConfig {\n return {\n targetOrigin: ANY_ORIGIN,\n targetWindow: {\n postMessage: () => {},\n } as unknown as Window,\n debug: false,\n channelId: \"\",\n suppressErrors: false,\n };\n}\n","import { ZalgoPromise } from \"zalgo-promise\";\n\nimport { Config } from \"./configHandler\";\nimport {\n ERROR_CODES,\n ERROR_MESSAGES,\n EVENT_MANAGER_NAME,\n RESPONSE_CYCLE,\n} from \"./constants\";\nimport { PostMessage } from \"./sendMessage\";\nimport { Logger, getErrorMessage } from \"./utils/logger\";\nimport { safeInterval } from \"./utils/safeInterval\";\nimport { uniqueId } from \"./utils/uniqueId\";\nimport { getWindow } from \"./utils/windowUtils\";\n\nimport {\n EditorPostMessageNature,\n EditorRequestEventMessage,\n EventManagerOptions,\n OnEvent,\n RequestHandler,\n RequestListener,\n ResponseListener,\n} from \"./types\";\n\nexport class EventManager {\n private requestMessageHandlers = new Map<string, RequestListener>();\n private responseMessageHandlers = new Map<string, ResponseListener>();\n private postMessage: PostMessage;\n private logger: Logger;\n private config: Config;\n\n constructor(channelId: string, options: Partial<EventManagerOptions> = {}) {\n if (!channelId) {\n throw new Error(\n getErrorMessage(ERROR_MESSAGES.common.channelIdRequired)\n );\n }\n\n this.config = new Config();\n\n this.config.replace({ ...options, channelId: channelId });\n\n this.logger = new Logger(this.config);\n this.postMessage = new PostMessage(this.logger, this.config);\n\n this.handleIncomingMessage = this.handleIncomingMessage.bind(this);\n this.send = this.send.bind(this);\n this.on = this.on.bind(this);\n this.unregisterEvent = this.unregisterEvent.bind(this);\n\n const currentWindow = getWindow();\n if (!currentWindow) {\n this.logger.debug(\n getErrorMessage(ERROR_MESSAGES.common.windowNotFound)\n );\n } else {\n currentWindow.addEventListener(\"message\", this.handleIncomingMessage);\n }\n }\n\n /**\n * Handle an incoming post message event\n * @param event The post message event containing details of the request\n * @returns A promise that resolves when the response is received\n */\n private async handleIncomingMessage(\n event: MessageEvent<EditorRequestEventMessage>\n ) {\n const { type, channel, payload, eventManager, metadata, error } =\n event.data;\n\n if (\n eventManager !== EVENT_MANAGER_NAME ||\n channel !== this.config.get(\"channelId\")\n ) {\n return;\n }\n\n const { hash, nature } = metadata;\n\n switch (nature) {\n case EditorPostMessageNature.REQUEST: {\n this.logger.debug(\"REQUEST received\", event.data);\n if (this.config.get(\"targetWindow\").closed) {\n this.logger.error(\n getErrorMessage(ERROR_MESSAGES.common.windowClosed)\n );\n }\n\n this.postMessage.sendAck({ type, hash });\n\n if (!this.requestMessageHandlers.has(type)) {\n this.logger.debug(\n getErrorMessage(\n ERROR_MESSAGES.receiveEvent.noRequestListenerFound(\n type\n )\n )\n );\n\n this.postMessage.sendResponse({\n type,\n hash,\n payload: undefined,\n error: {\n code: ERROR_CODES.receiveEvent\n .noRequestListenerFound,\n message: getErrorMessage(\n ERROR_MESSAGES.receiveEvent.noRequestListenerFound(\n type\n )\n ),\n },\n });\n return;\n }\n\n const { handler } = this.requestMessageHandlers.get(type)!;\n\n const handlerEvent: OnEvent = {\n data: payload,\n };\n\n return ZalgoPromise.all([\n ZalgoPromise.try(() => {\n return handler(handlerEvent);\n })\n .then((data) => {\n this.postMessage.sendResponse({\n type,\n hash,\n payload: data,\n error: undefined,\n });\n })\n .catch((err) => {\n this.logger.error(\n getErrorMessage(\n ERROR_MESSAGES.receiveEvent\n .codeReturnedError\n ),\n err\n );\n }),\n ]);\n }\n case EditorPostMessageNature.RESPONSE: {\n this.logger.debug(\"RESPONSE received\", event.data);\n\n if (!this.responseMessageHandlers.has(hash)) {\n this.logger.error(\n getErrorMessage(\n ERROR_MESSAGES.receiveEvent.noResponseListenerFound(\n hash\n )\n )\n );\n return;\n }\n\n const responseListener =\n this.responseMessageHandlers.get(hash)!;\n\n if (error) {\n responseListener.promise.reject(error);\n } else {\n responseListener.promise.resolve(payload);\n }\n\n break;\n }\n case EditorPostMessageNature.ACK: {\n this.logger.debug(\"ACK received\", event.data);\n\n if (!this.responseMessageHandlers.has(hash)) {\n this.logger.error(\n getErrorMessage(\n ERROR_MESSAGES.receiveEvent.noAckListenerFound(hash)\n )\n );\n return;\n }\n\n const responseListener =\n this.responseMessageHandlers.get(hash)!;\n responseListener.hasReceivedAck = true;\n\n break;\n }\n default:\n this.logger.error(\n getErrorMessage(\n ERROR_MESSAGES.receiveEvent.unknownNature(nature)\n ),\n event.data\n );\n }\n }\n\n /**\n * Send an event to the target window\n * @param type The type of event to send\n * @param payload The payload to send with the event\n *\n * @example\n * const eventManager = new EventManager(\"channel-id\");\n *\n * const output = eventManager.send(\"my-event\", { foo: \"bar\" });\n * console.log(output) // { foo: \"bar1\" }\n */\n async send<ReturnType = undefined>(type: string, payload?: any) {\n const promise = new ZalgoPromise<ReturnType>();\n const hash = uniqueId(type);\n\n const responseListener: ResponseListener = {\n type,\n promise,\n hasCancelled: false,\n hasReceivedAck: false,\n };\n\n this.responseMessageHandlers.set(hash, responseListener);\n\n const totalAllowedAckTime = 1000;\n let ackTimeLeft = totalAllowedAckTime;\n\n const interval = safeInterval(() => {\n if (this.config.get(\"targetWindow\").closed) {\n return promise.reject(\n new Error(\n getErrorMessage(ERROR_MESSAGES.common.windowClosed)\n )\n );\n }\n\n // TODO: raise this event\n // if (responseListener.hasCancelled) {\n // return promise.reject(\n // new Error(\n // getErrorMessage(ERROR_MESSAGES.sendEvent.eventCancelled)\n // )\n // );\n // }\n\n ackTimeLeft = Math.max(ackTimeLeft - RESPONSE_CYCLE, 0);\n\n if (!responseListener.hasReceivedAck && ackTimeLeft <= 0) {\n return promise.reject(\n getErrorMessage(ERROR_MESSAGES.sendEvent.noAckReceived)\n );\n }\n }, RESPONSE_CYCLE);\n\n promise\n .finally(() => {\n this.responseMessageHandlers.delete(hash);\n interval.cancel();\n })\n .catch((err) => {\n this.logger.debug(\n getErrorMessage(\n ERROR_MESSAGES.sendEvent.receiverReturnedError\n ),\n err\n );\n });\n\n this.postMessage.sendRequest({\n type,\n hash,\n error: undefined,\n payload,\n });\n\n return promise;\n }\n\n /**\n * Register an event handler for a specific event type\n * @param type The type of event to listen for\n * @param handler The handler to call when the event is received\n * @returns An object with an unregister method to unregister the event\n *\n * @example\n * const eventManager = new EventManager(\"channel-id\");\n *\n * const unregister = eventManager.on(\"my-event\", (event) => {\n * console.log(\"event received\", event.data);\n * return { foo: \"bar1\" };\n * });\n *\n * unregister();\n */\n on<Payload = unknown, ReturnType = any>(\n type: string,\n handler: RequestHandler<Payload, ReturnType>\n ) {\n if (this.requestMessageHandlers.has(type)) {\n this.logger.error(\n getErrorMessage(\n ERROR_MESSAGES.registerEvent.eventAlreadyRegistered(type)\n )\n );\n }\n\n const requestListener: RequestListener = {\n handler,\n };\n this.requestMessageHandlers.set(type, requestListener);\n\n return {\n unregister: () => {\n this.unregisterEvent(type);\n },\n };\n }\n\n /**\n * Unregister an event handler for a specific event type\n * @param type The type of event to unregister\n */\n private unregisterEvent(type: string) {\n if (!this.requestMessageHandlers.has(type)) {\n this.logger.error(\n getErrorMessage(\n ERROR_MESSAGES.unregisterEvent.eventDoesNotExist(type)\n )\n );\n } else {\n this.logger.debug(\"Unregistering event\", type);\n\n this.requestMessageHandlers.delete(type);\n }\n }\n\n /**\n * Updates the configuration options for the event manager.\n * @param config - The partial configuration options to update.\n */\n updateConfig(\n config: Partial<EventManagerOptions> & { channelId?: string }\n ) {\n this.config.replace(config);\n }\n\n /**\n * Destroy the event manager\n */\n destroy(config?: { soft?: boolean }) {\n this.requestMessageHandlers.clear();\n this.responseMessageHandlers.clear();\n\n if (!config?.soft) {\n getWindow()?.removeEventListener(\"message\", this.handleIncomingMessage);\n }\n }\n}\n\nexport * from \"./types\";\n","import { Config } from \"./configHandler\";\nimport {\n EditorPostMessageNature,\n EditorRequestEventMessage,\n PostMessageSendOptions,\n UserConfig,\n} from \"./types\";\nimport { Logger } from \"./utils/logger\";\n\nexport class PostMessage {\n private config: UserConfig;\n\n constructor(\n private logger: Logger,\n config: Config\n ) {\n this.sendResponse = this.sendResponse.bind(this);\n this.sendRequest = this.sendRequest.bind(this);\n this.sendAck = this.sendAck.bind(this);\n this.getMessage = this.getMessage.bind(this);\n this.config = config.getAll();\n }\n\n sendRequest(config: PostMessageSendOptions) {\n const completeConfig = {\n ...config,\n nature: EditorPostMessageNature.REQUEST,\n };\n this.logger.debug(\"Sending REQUEST\", completeConfig);\n\n const message = this.getMessage(completeConfig);\n this.config.targetWindow.postMessage(message, this.config.targetOrigin);\n }\n\n sendResponse(config: PostMessageSendOptions) {\n const completeConfig = {\n ...config,\n nature: EditorPostMessageNature.RESPONSE,\n };\n this.logger.debug(\"Sending RESPONSE\", completeConfig);\n\n const message = this.getMessage(completeConfig);\n this.config.targetWindow.postMessage(message, this.config.targetOrigin);\n }\n\n sendAck(config: Omit<PostMessageSendOptions, \"payload\" | \"error\">) {\n const completeConfig = {\n ...config,\n payload: undefined,\n error: undefined,\n nature: EditorPostMessageNature.ACK,\n };\n this.logger.debug(\"Sending ACK\", completeConfig);\n\n const message = this.getMessage(completeConfig);\n this.config.targetWindow.postMessage(message, this.config.targetOrigin);\n }\n private getMessage(\n config: PostMessageSendOptions & {\n nature: EditorPostMessageNature;\n }\n ): EditorRequestEventMessage {\n const { nature, hash, payload, type, error } = config;\n return {\n eventManager: \"contentstack-adv-post-message\",\n metadata: {\n hash,\n nature,\n },\n channel: this.config.channelId,\n error,\n payload,\n type,\n };\n }\n}\n","export * from \"./eventManager.types\";\nexport * from \"./postMessageEvents.types\";\nexport * from \"./configHandler.types\";\n","export enum EditorPostMessageNature {\n ACK = \"ACK\",\n RESPONSE = \"RESPONSE\",\n REQUEST = \"REQUEST\",\n}\n\nexport interface AdvPostMessageErrorObject {\n code: string;\n message: string;\n}\nexport interface EditorRequestEventMessage {\n eventManager: \"contentstack-adv-post-message\";\n metadata: {\n hash: string;\n nature: EditorPostMessageNature;\n };\n channel: string;\n payload: any;\n error: undefined | AdvPostMessageErrorObject;\n type: string;\n}\n\nexport interface PostMessageSendOptions {\n hash: string;\n error: undefined | AdvPostMessageErrorObject;\n payload: any;\n type: string;\n}\n","import { Config } from \"../configHandler\";\nimport { EVENT_MANAGER_NAME } from \"../constants\";\n\nexport class Logger {\n prefix = EVENT_MANAGER_NAME;\n\n constructor(private config: Config) {\n this.log = this.log.bind(this);\n this.info = this.info.bind(this);\n this.debug = this.debug.bind(this);\n this.error = this.error.bind(this);\n }\n\n public log(...args: any[]) {\n console.log(this.prefix, ...args);\n }\n\n public info(...args: any[]) {\n console.info(this.prefix, ...args);\n }\n\n public debug(...args: any[]) {\n if (this.config.get(\"debug\")) {\n console.debug(\n this.prefix,\n \"DEBUG:\",\n ...args,\n this.getDebugOptions()\n );\n }\n }\n\n public error(...args: any[]) {\n if (!this.config.get(\"suppressErrors\")) {\n console.error(this.prefix, ...args);\n }\n }\n\n private getDebugOptions() {\n return {\n targetOrigin: this.config.get(\"targetOrigin\"),\n targetWindow: this.config.get(\"targetWindow\"),\n };\n }\n}\n\nexport function getErrorMessage(message: string) {\n return EVENT_MANAGER_NAME + \": \" + message;\n}\n","export function safeInterval(\n method: () => void,\n time: number\n): { cancel: () => void } {\n let timeout: NodeJS.Timeout;\n\n function loop() {\n timeout = setTimeout(() => {\n method();\n loop();\n }, time);\n }\n loop();\n\n return {\n cancel() {\n clearTimeout(timeout);\n },\n };\n}\n","function generateUUID(): string {\n if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\n });\n}\n\nexport function uniqueId(prefix?: string) {\n const suffix = generateUUID().split(\"-\")[0];\n return prefix ? `${prefix}-${suffix}` : suffix;\n}\n","export function getWindow(): (Window & typeof globalThis) | null {\n return typeof window !== \"undefined\" ? window : null;\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"ZalgoPromise\",[],t):\"object\"==typeof exports?exports.ZalgoPromise=t():e.ZalgoPromise=t()}(\"undefined\"!=typeof self?self:this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return{}.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=0)}([function(e,t,r){\"use strict\";function n(e){try{if(!e)return!1;if(\"undefined\"!=typeof Promise&&e instanceof Promise)return!0;if(\"undefined\"!=typeof window&&\"function\"==typeof window.Window&&e instanceof window.Window)return!1;if(\"undefined\"!=typeof window&&\"function\"==typeof window.constructor&&e instanceof window.constructor)return!1;var t={}.toString;if(t){var r=t.call(e);if(\"[object Window]\"===r||\"[object global]\"===r||\"[object DOMWindow]\"===r)return!1}if(\"function\"==typeof e.then)return!0}catch(e){return!1}return!1}r.r(t),r.d(t,\"ZalgoPromise\",(function(){return a}));var o,i=[],c=[],u=0;function s(){if(!u&&o){var e=o;o=null,e.resolve()}}function f(){u+=1}function l(){u-=1,s()}var a=function(){function e(e){var t=this;if(this.resolved=void 0,this.rejected=void 0,this.errorHandled=void 0,this.value=void 0,this.error=void 0,this.handlers=void 0,this.dispatching=void 0,this.stack=void 0,this.resolved=!1,this.rejected=!1,this.errorHandled=!1,this.handlers=[],e){var r,n,o=!1,i=!1,c=!1;f();try{e((function(e){c?t.resolve(e):(o=!0,r=e)}),(function(e){c?t.reject(e):(i=!0,n=e)}))}catch(e){return l(),void this.reject(e)}l(),c=!0,o?this.resolve(r):i&&this.reject(n)}}var t=e.prototype;return t.resolve=function(e){if(this.resolved||this.rejected)return this;if(n(e))throw new Error(\"Can not resolve promise with another promise\");return this.resolved=!0,this.value=e,this.dispatch(),this},t.reject=function(e){var t=this;if(this.resolved||this.rejected)return this;if(n(e))throw new Error(\"Can not reject promise with another promise\");if(!e){var r=e&&\"function\"==typeof e.toString?e.toString():{}.toString.call(e);e=new Error(\"Expected reject to be called with Error, got \"+r)}return this.rejected=!0,this.error=e,this.errorHandled||setTimeout((function(){t.errorHandled||function(e,t){if(-1===i.indexOf(e)){i.push(e),setTimeout((function(){throw e}),1);for(var r=0;r<c.length;r++)c[r](e,t)}}(e,t)}),1),this.dispatch(),this},t.asyncReject=function(e){return this.errorHandled=!0,this.reject(e),this},t.dispatch=function(){var t=this.resolved,r=this.rejected,o=this.handlers;if(!this.dispatching&&(t||r)){this.dispatching=!0,f();for(var i=function(e,t){return e.then((function(e){t.resolve(e)}),(function(e){t.reject(e)}))},c=0;c<o.length;c++){var u=o[c],s=u.onSuccess,a=u.onError,h=u.promise,d=void 0;if(t)try{d=s?s(this.value):this.value}catch(e){h.reject(e);continue}else if(r){if(!a){h.reject(this.error);continue}try{d=a(this.error)}catch(e){h.reject(e);continue}}if(d instanceof e&&(d.resolved||d.rejected)){var v=d;v.resolved?h.resolve(v.value):h.reject(v.error),v.errorHandled=!0}else n(d)?d instanceof e&&(d.resolved||d.rejected)?d.resolved?h.resolve(d.value):h.reject(d.error):i(d,h):h.resolve(d)}o.length=0,this.dispatching=!1,l()}},t.then=function(t,r){if(t&&\"function\"!=typeof t&&!t.call)throw new Error(\"Promise.then expected a function for success handler\");if(r&&\"function\"!=typeof r&&!r.call)throw new Error(\"Promise.then expected a function for error handler\");var n=new e;return this.handlers.push({promise:n,onSuccess:t,onError:r}),this.errorHandled=!0,this.dispatch(),n},t.catch=function(e){return this.then(void 0,e)},t.finally=function(t){if(t&&\"function\"!=typeof t&&!t.call)throw new Error(\"Promise.finally expected a function\");return this.then((function(r){return e.try(t).then((function(){return r}))}),(function(r){return e.try(t).then((function(){throw r}))}))},t.timeout=function(e,t){var r=this;if(this.resolved||this.rejected)return this;var n=setTimeout((function(){r.resolved||r.rejected||r.reject(t||new Error(\"Promise timed out after \"+e+\"ms\"))}),e);return this.then((function(e){return clearTimeout(n),e}))},t.toPromise=function(){if(\"undefined\"==typeof Promise)throw new TypeError(\"Could not find Promise\");return Promise.resolve(this)},t.lazy=function(){return this.errorHandled=!0,this},e.resolve=function(t){return t instanceof e?t:n(t)?new e((function(e,r){return t.then(e,r)})):(new e).resolve(t)},e.reject=function(t){return(new e).reject(t)},e.asyncReject=function(t){return(new e).asyncReject(t)},e.all=function(t){var r=new e,o=t.length,i=[].slice();if(!o)return r.resolve(i),r;for(var c=function(e,t,n){return t.then((function(t){i[e]=t,0==(o-=1)&&r.resolve(i)}),(function(e){n.reject(e)}))},u=0;u<t.length;u++){var s=t[u];if(s instanceof e){if(s.resolved){i[u]=s.value,o-=1;continue}}else if(!n(s)){i[u]=s,o-=1;continue}c(u,e.resolve(s),r)}return 0===o&&r.resolve(i),r},e.hash=function(t){var r={},o=[],i=function(e){if(t.hasOwnProperty(e)){var i=t[e];n(i)?o.push(i.then((function(t){r[e]=t}))):r[e]=i}};for(var c in t)i(c);return e.all(o).then((function(){return r}))},e.map=function(t,r){return e.all(t.map(r))},e.onPossiblyUnhandledException=function(e){return function(e){return c.push(e),{cancel:function(){c.splice(c.indexOf(e),1)}}}(e)},e.try=function(t,r,n){if(t&&\"function\"!=typeof t&&!t.call)throw new Error(\"Promise.try expected a function\");var o;f();try{o=t.apply(r,n||[])}catch(t){return l(),e.reject(t)}return l(),e.resolve(o)},e.delay=function(t){return new e((function(e){setTimeout(e,t)}))},e.isPromise=function(t){return!!(t&&t instanceof e)||n(t)},e.flush=function(){return t=o=o||new e,s(),t;var t},e}()}])}));\n//# sourceMappingURL=zalgo-promise.js.map","/* @flow */\n\n// eslint-disable-next-line import/no-commonjs\nmodule.exports = require('./dist/zalgo-promise');\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(156);\n"],"mappings":"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","names":["root","factory","exports","module","define","amd","this","e","t","config","getDefaultConfig","replace","userInput","debug","r","channelId","Error","getErrorMessage","ERROR_MESSAGES","common","channelIdRequired","o","suppressErrors","a","targetOrigin","currentWindow","getWindow","target","targetWindow","postMessage","set","key","value","get","getAll","reset","Config","windowClosed","windowNotFound","sendEvent","receiverReturnedError","eventCancelled","noAckReceived","receiveEvent","noRequestListenerFound","type","codeReturnedError","noResponseListenerFound","hash","noAckListenerFound","unknownNature","nature","registerEvent","eventAlreadyRegistered","unregisterEvent","eventDoesNotExist","ERROR_CODES","n","RESPONSE_CYCLE","ANY_ORIGIN","EVENT_MANAGER_NAME","i","s","c","options","requestMessageHandlers","Map","responseMessageHandlers","logger","Logger","PostMessage","handleIncomingMessage","bind","send","on","addEventListener","event","data","channel","payload","eventManager","metadata","error","EditorPostMessageNature","REQUEST","closed","sendAck","f","has","g","p","ZalgoPromise","all","try","then","sendResponse","undefined","catch","err","code","message","RESPONSE","responseListener","promise","reject","resolve","ACK","hasReceivedAck","uniqueId","hasCancelled","ackTimeLeft","interval","safeInterval","u","Math","max","finally","delete","cancel","sendRequest","handler","requestListener","unregister","updateConfig","destroy","clear","soft","removeEventListener","EventManager","getMessage","completeConfig","prefix","log","info","console","args","getDebugOptions","method","time","timeout","loop","setTimeout","clearTimeout","suffix","crypto","randomUUID","random","toString","split","window","self","l","call","m","d","Object","defineProperty","enumerable","Symbol","toStringTag","__esModule","create","default","hasOwnProperty","Promise","Window","constructor","resolved","rejected","errorHandled","handlers","dispatching","stack","prototype","dispatch","indexOf","push","length","asyncReject","onSuccess","onError","h","v","toPromise","TypeError","lazy","slice","map","onPossiblyUnhandledException","splice","apply","delay","isPromise","flush","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"]}
|
package/dist/legacy/index.d.cts
CHANGED
|
@@ -5,7 +5,7 @@ import './livePreview/types/onEntryChangeCallback.type.cjs';
|
|
|
5
5
|
import './visualBuilder/types/collab.types.cjs';
|
|
6
6
|
|
|
7
7
|
type IStackSdk = IStackSdk$1;
|
|
8
|
-
declare const ContentstackLivePreview: typeof
|
|
8
|
+
declare const ContentstackLivePreview: typeof ContentstackLivePreview$1 | typeof LightLivePreviewHoC;
|
|
9
9
|
declare const VB_EmptyBlockParentClass = "visual-builder__empty-block-parent";
|
|
10
10
|
|
|
11
11
|
export { type IStackSdk, VB_EmptyBlockParentClass, ContentstackLivePreview as default };
|
package/dist/legacy/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import './livePreview/types/onEntryChangeCallback.type.js';
|
|
|
5
5
|
import './visualBuilder/types/collab.types.js';
|
|
6
6
|
|
|
7
7
|
type IStackSdk = IStackSdk$1;
|
|
8
|
-
declare const ContentstackLivePreview: typeof
|
|
8
|
+
declare const ContentstackLivePreview: typeof ContentstackLivePreview$1 | typeof LightLivePreviewHoC;
|
|
9
9
|
declare const VB_EmptyBlockParentClass = "visual-builder__empty-block-parent";
|
|
10
10
|
|
|
11
11
|
export { type IStackSdk, VB_EmptyBlockParentClass, ContentstackLivePreview as default };
|
|
@@ -60,7 +60,7 @@ var _LightLivePreviewHoC = class _LightLivePreviewHoC {
|
|
|
60
60
|
static unsubscribeOnEntryChange() {
|
|
61
61
|
}
|
|
62
62
|
static getSdkVersion() {
|
|
63
|
-
return "4.
|
|
63
|
+
return (typeof process !== "undefined" ? "4.4.1" : void 0) ?? "";
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
66
|
_LightLivePreviewHoC.previewConstructors = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/light-sdk.ts"],"sourcesContent":["import { OnEntryChangeCallbackUID, OnEntryChangeConfig } from \"./livePreview/types/onEntryChangeCallback.type\";\n\nimport { OnEntryChangeCallback } from \"./livePreview/types/onEntryChangeCallback.type\";\nimport { IExportedConfig } from \"./types/types\";\n\nclass LightLivePreviewHoC {\n private static previewConstructors = {};\n private static onEntryChangeCallbacks = {};\n\n static init() {\n if (typeof window === \"undefined\") {\n return Promise.resolve(LightLivePreviewHoC.previewConstructors);\n }\n\n return LightLivePreviewHoC.initializePreview();\n }\n\n private static initializePreview() {\n LightLivePreviewHoC.previewConstructors = {\n livePreview: {},\n visualBuilder: {},\n };\n\n LightLivePreviewHoC.onEntryChangeCallbacks = {};\n\n return Promise.resolve(LightLivePreviewHoC.previewConstructors);\n }\n\n static get hash() {\n return \"\";\n }\n\n static get config() {\n return {} as IExportedConfig;\n }\n\n static isInitialized() {\n return false;\n }\n\n static onEntryChange(\n callback: OnEntryChangeCallback,\n config: OnEntryChangeConfig = {}\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config;\n\n if (!skipInitialRender) {\n callback();\n }\n\n return \"live-preview-id\";\n }\n\n static onLiveEdit(callback: OnEntryChangeCallback) {\n return \"live-preview-id\";\n }\n\n static unsubscribeOnEntryChange() {\n // intentionally empty\n }\n\n static getSdkVersion(): string {\n return process?.env?.PACKAGE_VERSION
|
|
1
|
+
{"version":3,"sources":["../../src/light-sdk.ts"],"sourcesContent":["import { OnEntryChangeCallbackUID, OnEntryChangeConfig } from \"./livePreview/types/onEntryChangeCallback.type\";\n\nimport { OnEntryChangeCallback } from \"./livePreview/types/onEntryChangeCallback.type\";\nimport { IExportedConfig } from \"./types/types\";\n\nclass LightLivePreviewHoC {\n private static previewConstructors = {};\n private static onEntryChangeCallbacks = {};\n\n static init() {\n if (typeof window === \"undefined\") {\n return Promise.resolve(LightLivePreviewHoC.previewConstructors);\n }\n\n return LightLivePreviewHoC.initializePreview();\n }\n\n private static initializePreview() {\n LightLivePreviewHoC.previewConstructors = {\n livePreview: {},\n visualBuilder: {},\n };\n\n LightLivePreviewHoC.onEntryChangeCallbacks = {};\n\n return Promise.resolve(LightLivePreviewHoC.previewConstructors);\n }\n\n static get hash() {\n return \"\";\n }\n\n static get config() {\n return {} as IExportedConfig;\n }\n\n static isInitialized() {\n return false;\n }\n\n static onEntryChange(\n callback: OnEntryChangeCallback,\n config: OnEntryChangeConfig = {}\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config;\n\n if (!skipInitialRender) {\n callback();\n }\n\n return \"live-preview-id\";\n }\n\n static onLiveEdit(callback: OnEntryChangeCallback) {\n return \"live-preview-id\";\n }\n\n static unsubscribeOnEntryChange() {\n // intentionally empty\n }\n\n static getSdkVersion(): string {\n return (typeof process !== \"undefined\" ? process?.env?.PACKAGE_VERSION : undefined) ?? \"\";\n }\n}\n\nexport default LightLivePreviewHoC;"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAM,uBAAN,MAAM,qBAAoB;AAAA,EAItB,OAAO,OAAO;AACV,QAAI,OAAO,WAAW,aAAa;AAC/B,aAAO,QAAQ,QAAQ,qBAAoB,mBAAmB;AAAA,IAClE;AAEA,WAAO,qBAAoB,kBAAkB;AAAA,EACjD;AAAA,EAEA,OAAe,oBAAoB;AAC/B,yBAAoB,sBAAsB;AAAA,MACtC,aAAa,CAAC;AAAA,MACd,eAAe,CAAC;AAAA,IACpB;AAEA,yBAAoB,yBAAyB,CAAC;AAE9C,WAAO,QAAQ,QAAQ,qBAAoB,mBAAmB;AAAA,EAClE;AAAA,EAEA,WAAW,OAAO;AACd,WAAO;AAAA,EACX;AAAA,EAEA,WAAW,SAAS;AAChB,WAAO,CAAC;AAAA,EACZ;AAAA,EAEA,OAAO,gBAAgB;AACnB,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,cACH,UACA,SAA8B,CAAC,GACP;AACxB,UAAM,EAAE,oBAAoB,MAAM,IAAI;AAEtC,QAAI,CAAC,mBAAmB;AACpB,eAAS;AAAA,IACb;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,WAAW,UAAiC;AAC/C,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,2BAA2B;AAAA,EAElC;AAAA,EAEA,OAAO,gBAAwB;AAC3B,YAAQ,OAAO,YAAY,cAAc,UAAgC,WAAc;AAAA,EAC3F;AACJ;AA3DM,qBACa,sBAAsB,CAAC;AADpC,qBAEa,yBAAyB,CAAC;AAF7C,IAAM,sBAAN;AA6DA,IAAO,oBAAQ;","names":[]}
|
package/dist/legacy/light-sdk.js
CHANGED
|
@@ -38,7 +38,7 @@ var _LightLivePreviewHoC = class _LightLivePreviewHoC {
|
|
|
38
38
|
static unsubscribeOnEntryChange() {
|
|
39
39
|
}
|
|
40
40
|
static getSdkVersion() {
|
|
41
|
-
return "4.
|
|
41
|
+
return (typeof process !== "undefined" ? "4.4.1" : void 0) ?? "";
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
_LightLivePreviewHoC.previewConstructors = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/light-sdk.ts"],"sourcesContent":["import { OnEntryChangeCallbackUID, OnEntryChangeConfig } from \"./livePreview/types/onEntryChangeCallback.type\";\n\nimport { OnEntryChangeCallback } from \"./livePreview/types/onEntryChangeCallback.type\";\nimport { IExportedConfig } from \"./types/types\";\n\nclass LightLivePreviewHoC {\n private static previewConstructors = {};\n private static onEntryChangeCallbacks = {};\n\n static init() {\n if (typeof window === \"undefined\") {\n return Promise.resolve(LightLivePreviewHoC.previewConstructors);\n }\n\n return LightLivePreviewHoC.initializePreview();\n }\n\n private static initializePreview() {\n LightLivePreviewHoC.previewConstructors = {\n livePreview: {},\n visualBuilder: {},\n };\n\n LightLivePreviewHoC.onEntryChangeCallbacks = {};\n\n return Promise.resolve(LightLivePreviewHoC.previewConstructors);\n }\n\n static get hash() {\n return \"\";\n }\n\n static get config() {\n return {} as IExportedConfig;\n }\n\n static isInitialized() {\n return false;\n }\n\n static onEntryChange(\n callback: OnEntryChangeCallback,\n config: OnEntryChangeConfig = {}\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config;\n\n if (!skipInitialRender) {\n callback();\n }\n\n return \"live-preview-id\";\n }\n\n static onLiveEdit(callback: OnEntryChangeCallback) {\n return \"live-preview-id\";\n }\n\n static unsubscribeOnEntryChange() {\n // intentionally empty\n }\n\n static getSdkVersion(): string {\n return process?.env?.PACKAGE_VERSION
|
|
1
|
+
{"version":3,"sources":["../../src/light-sdk.ts"],"sourcesContent":["import { OnEntryChangeCallbackUID, OnEntryChangeConfig } from \"./livePreview/types/onEntryChangeCallback.type\";\n\nimport { OnEntryChangeCallback } from \"./livePreview/types/onEntryChangeCallback.type\";\nimport { IExportedConfig } from \"./types/types\";\n\nclass LightLivePreviewHoC {\n private static previewConstructors = {};\n private static onEntryChangeCallbacks = {};\n\n static init() {\n if (typeof window === \"undefined\") {\n return Promise.resolve(LightLivePreviewHoC.previewConstructors);\n }\n\n return LightLivePreviewHoC.initializePreview();\n }\n\n private static initializePreview() {\n LightLivePreviewHoC.previewConstructors = {\n livePreview: {},\n visualBuilder: {},\n };\n\n LightLivePreviewHoC.onEntryChangeCallbacks = {};\n\n return Promise.resolve(LightLivePreviewHoC.previewConstructors);\n }\n\n static get hash() {\n return \"\";\n }\n\n static get config() {\n return {} as IExportedConfig;\n }\n\n static isInitialized() {\n return false;\n }\n\n static onEntryChange(\n callback: OnEntryChangeCallback,\n config: OnEntryChangeConfig = {}\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config;\n\n if (!skipInitialRender) {\n callback();\n }\n\n return \"live-preview-id\";\n }\n\n static onLiveEdit(callback: OnEntryChangeCallback) {\n return \"live-preview-id\";\n }\n\n static unsubscribeOnEntryChange() {\n // intentionally empty\n }\n\n static getSdkVersion(): string {\n return (typeof process !== \"undefined\" ? process?.env?.PACKAGE_VERSION : undefined) ?? \"\";\n }\n}\n\nexport default LightLivePreviewHoC;"],"mappings":";;;AAKA,IAAM,uBAAN,MAAM,qBAAoB;AAAA,EAItB,OAAO,OAAO;AACV,QAAI,OAAO,WAAW,aAAa;AAC/B,aAAO,QAAQ,QAAQ,qBAAoB,mBAAmB;AAAA,IAClE;AAEA,WAAO,qBAAoB,kBAAkB;AAAA,EACjD;AAAA,EAEA,OAAe,oBAAoB;AAC/B,yBAAoB,sBAAsB;AAAA,MACtC,aAAa,CAAC;AAAA,MACd,eAAe,CAAC;AAAA,IACpB;AAEA,yBAAoB,yBAAyB,CAAC;AAE9C,WAAO,QAAQ,QAAQ,qBAAoB,mBAAmB;AAAA,EAClE;AAAA,EAEA,WAAW,OAAO;AACd,WAAO;AAAA,EACX;AAAA,EAEA,WAAW,SAAS;AAChB,WAAO,CAAC;AAAA,EACZ;AAAA,EAEA,OAAO,gBAAgB;AACnB,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,cACH,UACA,SAA8B,CAAC,GACP;AACxB,UAAM,EAAE,oBAAoB,MAAM,IAAI;AAEtC,QAAI,CAAC,mBAAmB;AACpB,eAAS;AAAA,IACb;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,WAAW,UAAiC;AAC/C,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,2BAA2B;AAAA,EAElC;AAAA,EAEA,OAAO,gBAAwB;AAC3B,YAAQ,OAAO,YAAY,cAAc,UAAgC,WAAc;AAAA,EAC3F;AACJ;AA3DM,qBACa,sBAAsB,CAAC;AADpC,qBAEa,yBAAyB,CAAC;AAF7C,IAAM,sBAAN;AA6DA,IAAO,oBAAQ;","names":[]}
|
|
@@ -452,6 +452,8 @@ var LivePreviewEditButton = class {
|
|
|
452
452
|
LivePreviewEditButton.livePreviewEditButton = null;
|
|
453
453
|
(0, import_signals.effect)(function handleWindowTypeChange() {
|
|
454
454
|
if (typeof window === "undefined") return;
|
|
455
|
+
if (typeof process !== "undefined" && (process.env.PURGE_PREVIEW_SDK === "true" || process.env.REACT_APP_PURGE_PREVIEW_SDK === "true"))
|
|
456
|
+
return;
|
|
455
457
|
import_configManager.default.get().windowType;
|
|
456
458
|
if (LivePreviewEditButton && !(0, import_utils.isOpeningInTimeline)()) {
|
|
457
459
|
toggleEditButtonElement();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/livePreview/editButton/editButton.ts"],"sourcesContent":["import { effect } from \"@preact/signals\";\nimport { inIframe, isOpeningInNewTab } from \"../../common/inIframe\";\nimport Config from \"../../configManager/configManager\";\nimport { addCslpOutline, extractDetailsFromCslp, isValidCslp } from \"../../cslp\";\nimport { cslpTagStyles } from \"./editButton.style\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport {\n type IEditButtonPosition,\n ILivePreviewWindowType,\n} from \"../../types/types\";\nimport livePreviewPostMessage from \"../eventManager/livePreviewEventManager\";\nimport { EDIT_BUTTON_TOOLTIP_ID } from \"./editButton.constant\";\nimport { isOpeningInTimeline } from \"../../utils\";\n\nfunction calculateEditButtonPosition(\n currentHoveredElement: HTMLElement,\n cslpButtonPosition: string\n): IEditButtonPosition {\n const editButtonPosition: IEditButtonPosition = {\n upperBoundOfTooltip: 0,\n leftBoundOfTooltip: 0,\n };\n const currentRectOfElement = currentHoveredElement.getBoundingClientRect();\n try {\n const buttonMeasurementValues = {\n width: 72,\n halfWidth: 36,\n height: 40,\n basicMargin: 5,\n widthWithMargin: 77,\n };\n\n switch (cslpButtonPosition) {\n case \"top-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"top-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right +\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"bottom-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.widthWithMargin;\n break;\n // default position => top, top-left or any other string\n default:\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n }\n return editButtonPosition;\n } catch (error) {\n PublicLogger.error(error);\n return editButtonPosition;\n }\n}\n\nexport const createSingularEditButton = (\n editCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const singularEditButton = document.createElement(\"div\");\n singularEditButton.classList.add(\"cslp-tooltip-child\", \"singular\");\n singularEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-singular-edit-button\"\n );\n singularEditButton.innerHTML = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>Edit`;\n\n singularEditButton.addEventListener(\"click\", editCallback);\n\n return singularEditButton;\n};\n\nexport const createMultipleEditButton = (\n editCallback: (e: MouseEvent) => void,\n linkCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const multipleEditButton = document.createElement(\"div\");\n multipleEditButton.classList.add(\"cslp-tooltip-child\");\n multipleEditButton.setAttribute(\"data-title\", \"Edit\");\n multipleEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-edit-button\"\n );\n multipleEditButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>`;\n\n multipleEditButton.addEventListener(\"click\", editCallback);\n\n const multipleExternalLinkButton = document.createElement(\"div\");\n multipleExternalLinkButton.classList.add(\"cslp-tooltip-child\");\n multipleExternalLinkButton.setAttribute(\"data-title\", \"Go to link\");\n multipleExternalLinkButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-external-link-button\"\n );\n multipleExternalLinkButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z\" fill=\"#718096\" />\n <path d=\"M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z\" fill=\"#718096\" />\n </svg>`;\n\n multipleExternalLinkButton.addEventListener(\"click\", linkCallback);\n\n const multipleEditFragment = document.createDocumentFragment();\n multipleEditFragment.appendChild(multipleEditButton);\n multipleEditFragment.appendChild(multipleExternalLinkButton);\n\n const multipleDiv = document.createElement(\"div\");\n multipleDiv.appendChild(multipleEditFragment);\n multipleDiv.classList.add(cslpTagStyles()[\"multiple\"]);\n\n return multipleDiv;\n};\n\nexport function getEditButtonPosition(\n currentHoveredElement: HTMLElement | null,\n defaultPosition: string | undefined\n): IEditButtonPosition {\n if (!currentHoveredElement)\n return { upperBoundOfTooltip: 0, leftBoundOfTooltip: 0 };\n\n const cslpButtonPosition = currentHoveredElement.getAttribute(\n \"data-cslp-button-position\"\n );\n if (cslpButtonPosition) {\n return calculateEditButtonPosition(\n currentHoveredElement,\n cslpButtonPosition\n );\n }\n\n // NOTE: position \"top\" and \"top-left\" will be the position of edit button if no default position passed in config\n return calculateEditButtonPosition(\n currentHoveredElement,\n defaultPosition || \"top\"\n );\n}\n\nexport function shouldRenderEditButton(): boolean {\n const config = Config.get();\n\n if (!config.editButton.enable) {\n if (config.editButton.enable === undefined)\n PublicLogger.error(\n \"enable key is required inside editButton object\"\n );\n return false;\n }\n\n // return boolean in case of cslp-buttons query added in url\n try {\n const currentLocation = new URL(window.location.href);\n const cslpButtonQueryValue =\n currentLocation.searchParams.get(\"cslp-buttons\");\n\n if (\n cslpButtonQueryValue !== null &&\n config.editButton.includeByQueryParameter !== false\n )\n return cslpButtonQueryValue === \"false\" ? false : true;\n } catch (error) {\n PublicLogger.error(error);\n }\n\n const iFrameCheck = inIframe();\n\n // case outside live preview\n if (\n !iFrameCheck &&\n config.editButton.exclude?.find(\n (exclude) => exclude === \"outsideLivePreviewPortal\"\n )\n ) {\n return false;\n }\n\n // case if inside live preview\n if (\n iFrameCheck &&\n config.editButton.exclude?.find(\n (exclude) => exclude === \"insideLivePreviewPortal\"\n )\n ) {\n return false;\n } else if (iFrameCheck) {\n // case if inside visual builder\n if (config.windowType === \"builder\") {\n return false;\n }\n\n // case if independent site\n return true;\n }\n\n // Priority list => 1. cslpEditButton query value 2. Inside live preview 3. renderCslpButtonByDefault value selected by user\n return true;\n}\n\nexport function toggleEditButtonElement() {\n const render = shouldRenderEditButton();\n const exists = doesEditButtonExist();\n\n if (render && !exists) {\n LivePreviewEditButton.livePreviewEditButton =\n new LivePreviewEditButton();\n } else if (!render && exists) {\n LivePreviewEditButton.livePreviewEditButton?.destroy();\n }\n}\n\nexport function doesEditButtonExist() {\n return document.getElementById(EDIT_BUTTON_TOOLTIP_ID) !== null;\n}\n\nexport class LivePreviewEditButton {\n private tooltip: HTMLButtonElement | null = null;\n private typeOfCurrentChild: \"singular\" | \"multiple\" = \"singular\";\n private tooltipChild: {\n singular: HTMLDivElement | null;\n multiple: HTMLDivElement | null;\n } = {\n singular: null,\n multiple: null,\n };\n static livePreviewEditButton: LivePreviewEditButton | null = null;\n\n constructor() {\n this.createCslpTooltip = this.createCslpTooltip.bind(this);\n this.updateTooltipPosition = this.updateTooltipPosition.bind(this);\n this.addEditStyleOnHover = this.addEditStyleOnHover.bind(this);\n this.scrollHandler = this.scrollHandler.bind(this);\n this.generateRedirectUrl = this.generateRedirectUrl.bind(this);\n this.linkClickHandler = this.linkClickHandler.bind(this);\n this.destroy = this.destroy.bind(this);\n\n if (this.createCslpTooltip()) {\n this.updateTooltipPosition();\n\n window.addEventListener(\"scroll\", this.updateTooltipPosition);\n window.addEventListener(\"mouseover\", this.addEditStyleOnHover);\n }\n }\n\n private createCslpTooltip(): boolean {\n const editButton = Config.get().editButton;\n\n if (\n !document.getElementById(EDIT_BUTTON_TOOLTIP_ID) &&\n editButton.enable &&\n shouldRenderEditButton()\n ) {\n const tooltip = document.createElement(\"button\");\n this.tooltip = tooltip;\n\n this.tooltip.classList.add(cslpTagStyles()[\"cslp-tooltip\"]);\n this.tooltip.setAttribute(\"data-test-id\", \"cs-cslp-tooltip\");\n this.tooltip.id = EDIT_BUTTON_TOOLTIP_ID;\n\n window.document.body.insertAdjacentElement(\n \"beforeend\",\n this.tooltip\n );\n\n this.tooltipChild.singular = createSingularEditButton(\n this.scrollHandler\n );\n this.tooltipChild.multiple = createMultipleEditButton(\n this.scrollHandler,\n this.linkClickHandler\n );\n\n this.tooltip.appendChild(this.tooltipChild.singular);\n return true;\n }\n return false;\n }\n\n private updateTooltipPosition() {\n if (!document.getElementById(\"cslp-tooltip\")) {\n this.createCslpTooltip();\n }\n const editButton = Config.get().editButton;\n const elements = Config.get().elements;\n\n if (!elements.highlightedElement || !this.tooltip) return false;\n\n const currentRectOfElement =\n elements.highlightedElement.getBoundingClientRect();\n const currentRectOfParentOfElement =\n this.tooltip.parentElement?.getBoundingClientRect();\n\n if (currentRectOfElement && currentRectOfParentOfElement) {\n const editButtonPosition = getEditButtonPosition(\n elements.highlightedElement as HTMLElement,\n editButton.position\n );\n\n let upperBoundOfTooltip = editButtonPosition.upperBoundOfTooltip;\n const leftBoundOfTooltip = editButtonPosition.leftBoundOfTooltip;\n\n // if scrolled and element is still visible, make sure tooltip is also visible\n if (upperBoundOfTooltip < 0) {\n if (currentRectOfElement.top < 0)\n upperBoundOfTooltip = currentRectOfElement.top;\n else upperBoundOfTooltip = 0;\n }\n\n this.tooltip.style.top = upperBoundOfTooltip + \"px\";\n this.tooltip.style.zIndex =\n elements.highlightedElement.style.zIndex || \"200\";\n this.tooltip.style.left = leftBoundOfTooltip + \"px\";\n\n if (this.tooltipChild.singular && this.tooltipChild.multiple) {\n if (\n elements.highlightedElement.hasAttribute(\"href\") &&\n this.typeOfCurrentChild !== \"multiple\"\n ) {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.multiple);\n this.typeOfCurrentChild = \"multiple\";\n } else if (this.typeOfCurrentChild !== \"singular\") {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.singular);\n this.typeOfCurrentChild = \"singular\";\n }\n }\n return true;\n }\n\n return false;\n }\n\n private addEditStyleOnHover(e: MouseEvent) {\n const updateStyles = this.shouldUpdateStyle(e);\n // Checks whether the mouse pointer is within the safe zone of the\n // element which was hovered on, since it also returns undefined when the\n // above can't be determined we can still add styles\n const shouldRedraw =\n typeof updateStyles === \"undefined\" ? true : updateStyles;\n if (!shouldRedraw) {\n return;\n }\n const updateTooltipPosition: Parameters<typeof addCslpOutline>[\"1\"] = ({\n cslpTag,\n highlightedElement,\n }) => {\n if (this.updateTooltipPosition()) {\n this.tooltip?.setAttribute(\"current-data-cslp\", cslpTag);\n this.tooltip?.setAttribute(\n \"current-href\",\n highlightedElement.getAttribute(\"href\") ?? \"\"\n );\n }\n };\n\n const editButton = Config.get().editButton;\n const windowType = Config.get().windowType;\n\n if (\n (windowType === ILivePreviewWindowType.PREVIEW ||\n windowType === ILivePreviewWindowType.INDEPENDENT) &&\n editButton.enable\n ) {\n addCslpOutline(e, updateTooltipPosition);\n }\n }\n\n private shouldUpdateStyle(event: MouseEvent) {\n const editButtonPos = Config.get().editButton.position;\n const editButtonDomRect = this.tooltip?.getBoundingClientRect();\n return isPointerWithinEditButtonSafeZone({\n event,\n editButtonPos,\n editButtonDomRect,\n });\n }\n\n private scrollHandler() {\n if (!this.tooltip) return;\n\n const cslpTag = this.tooltip.getAttribute(\"current-data-cslp\");\n\n if (isValidCslp(cslpTag)) {\n const {\n content_type_uid,\n entry_uid,\n locale,\n variant,\n fieldPathWithIndex,\n } = extractDetailsFromCslp(cslpTag);\n\n if (inIframe() || isOpeningInNewTab()) {\n livePreviewPostMessage?.send(\"scroll\", {\n field: fieldPathWithIndex,\n content_type_uid,\n entry_uid,\n variant,\n locale,\n });\n } else {\n try {\n // Redirect to Contentstack edit page\n const redirectUrl = this.generateRedirectUrl(\n content_type_uid,\n locale,\n entry_uid,\n variant,\n fieldPathWithIndex\n );\n\n window.open(redirectUrl, \"_blank\");\n } catch (error) {\n PublicLogger.error(error);\n }\n }\n }\n }\n\n /**\n * Generates the redirect URL for editing a specific entry in the Live Preview SDK.\n * @param content_type_uid - The UID of the content type.\n * @param locale - The locale of the entry (default: \"en-us\").\n * @param entry_uid - The UID of the entry.\n * @param preview_field - The field to be previewed.\n * @returns The redirect URL for editing the entry.\n */\n private generateRedirectUrl(\n content_type_uid: string,\n locale = \"en-us\",\n entry_uid: string,\n variant: string | undefined,\n preview_field: string\n ): string {\n const config = Config.get();\n\n if (!config.stackDetails.apiKey) {\n throw `To use edit tags, you must provide the stack API key. Specify the API key while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n apiKey: 'your-api-key'\n },\n ...\n })`;\n }\n\n if (!config.stackDetails.environment) {\n throw `To use edit tags, you must provide the preview environment. Specify the preview environment while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n environment: 'Your-environment'\n },\n ...\n })`;\n }\n\n const protocol = String(config.clientUrlParams.protocol);\n const host = String(config.clientUrlParams.host);\n const port = String(config.clientUrlParams.port);\n const environment = String(config.stackDetails.environment);\n const branch = String(config.stackDetails.branch || \"main\");\n\n let urlHash = `!/stack/${\n config.stackDetails.apiKey\n }/content-type/${content_type_uid}/${\n locale ?? \"en-us\"\n }/entry/${entry_uid}`;\n\n if (variant) {\n urlHash += `/variant/${variant}/edit`;\n } else {\n urlHash += `/edit`;\n }\n\n const url = new URL(`${protocol}://${host}`);\n url.port = port;\n url.hash = urlHash;\n if (config.stackDetails.branch) {\n url.searchParams.append(\"branch\", branch);\n }\n url.searchParams.append(\"preview-field\", preview_field);\n url.searchParams.append(\"preview-locale\", locale ?? \"en-us\");\n url.searchParams.append(\"preview-environment\", environment);\n\n return `${url.origin}/${url.hash}${url.search}`;\n }\n\n private linkClickHandler() {\n if (!this.tooltip) return;\n const hrefAttribute = this.tooltip.getAttribute(\"current-href\");\n\n if (hrefAttribute) {\n window.location.assign(hrefAttribute);\n }\n }\n\n /**\n * Destroys the edit button by removing event listeners and removing the tooltip.\n */\n destroy(): void {\n window.removeEventListener(\"scroll\", this.updateTooltipPosition);\n window.removeEventListener(\"mouseover\", this.addEditStyleOnHover);\n this.tooltip?.remove();\n }\n}\n\neffect(function handleWindowTypeChange() {\n // we need to specify when to run this effect.\n // here, we run it when the value of windowType changes\n if (typeof window === \"undefined\") return;\n Config.get().windowType;\n if (LivePreviewEditButton && !isOpeningInTimeline()) {\n toggleEditButtonElement();\n }\n});\n\n/**\n * Find first element with cslp on the event composed path,\n * do safe zone calculation for the element based on its\n * width and height, and return true if mouse pointer is\n * within the safe zone. Returns undefined when this cannot\n * be determined.\n */\nexport function isPointerWithinEditButtonSafeZone({\n event,\n editButtonDomRect,\n editButtonPos,\n}: {\n event: MouseEvent;\n editButtonDomRect: DOMRect | undefined;\n editButtonPos: string | undefined;\n}) {\n const SAFE_ZONE_RATIO = 0.1;\n const MAX_SAFE_ZONE_DISTANCE = 30;\n if (!editButtonDomRect || !editButtonPos) {\n return undefined;\n }\n if (!(editButtonDomRect.x > 0) || !(editButtonDomRect.y > 0)) {\n return undefined;\n }\n const isTop = editButtonPos.includes(\"top\");\n const isLeft = editButtonPos.includes(\"left\");\n const isBottom = editButtonPos.includes(\"bottom\");\n const isVertical = isTop || isBottom;\n const cslpElement = event.composedPath().find((target) => {\n const element = target as HTMLElement;\n if (element.nodeName === \"BODY\") {\n return false;\n }\n if (typeof element?.hasAttribute !== \"function\") {\n return false;\n }\n return element.hasAttribute(\"data-cslp\");\n });\n if (!cslpElement) {\n return undefined;\n }\n const element = cslpElement as HTMLElement;\n const elementRect = element.getBoundingClientRect();\n let safeZoneDistance = isVertical\n ? // if vertical positioning (\"top\"/\"bottom\")\n // button is rendered along the width\n elementRect.width * SAFE_ZONE_RATIO\n : // button is rendered along the height\n elementRect.height * SAFE_ZONE_RATIO;\n safeZoneDistance =\n safeZoneDistance > MAX_SAFE_ZONE_DISTANCE\n ? MAX_SAFE_ZONE_DISTANCE\n : safeZoneDistance;\n\n const tooltipX2 = editButtonDomRect.x + editButtonDomRect.width;\n const tooltipY2 = editButtonDomRect.y + editButtonDomRect.height;\n const safeX1 = editButtonDomRect.x - safeZoneDistance;\n const safeX2 = tooltipX2 + safeZoneDistance;\n const safeY1 = editButtonDomRect.y - safeZoneDistance;\n const safeY2 = tooltipY2 + safeZoneDistance;\n\n if (isTop || isBottom) {\n const verticalSafeDistance = isTop\n ? Math.abs(tooltipY2 - event.clientY)\n : Math.abs(editButtonDomRect.y - event.clientY);\n const isInSafeZone =\n event.clientX > safeX1 &&\n event.clientX < safeX2 &&\n verticalSafeDistance < safeZoneDistance;\n if (isInSafeZone) {\n return false;\n }\n } else {\n const horizontalSafeDistance = isLeft\n ? Math.abs(tooltipX2 - event.clientX)\n : Math.abs(editButtonDomRect.x - event.clientX);\n\n const isInSafeZone =\n event.clientY > safeY1 &&\n event.clientY < safeY2 &&\n horizontalSafeDistance < safeZoneDistance;\n if (isInSafeZone) {\n return false;\n }\n }\n return true;\n}\n"],"mappings":"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","names":["import_editButton","Config","livePreviewPostMessage","element"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/livePreview/editButton/editButton.ts"],"sourcesContent":["import { effect } from \"@preact/signals\";\nimport { inIframe, isOpeningInNewTab } from \"../../common/inIframe\";\nimport Config from \"../../configManager/configManager\";\nimport { addCslpOutline, extractDetailsFromCslp, isValidCslp } from \"../../cslp\";\nimport { cslpTagStyles } from \"./editButton.style\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport {\n type IEditButtonPosition,\n ILivePreviewWindowType,\n} from \"../../types/types\";\nimport livePreviewPostMessage from \"../eventManager/livePreviewEventManager\";\nimport { EDIT_BUTTON_TOOLTIP_ID } from \"./editButton.constant\";\nimport { isOpeningInTimeline } from \"../../utils\";\n\nfunction calculateEditButtonPosition(\n currentHoveredElement: HTMLElement,\n cslpButtonPosition: string\n): IEditButtonPosition {\n const editButtonPosition: IEditButtonPosition = {\n upperBoundOfTooltip: 0,\n leftBoundOfTooltip: 0,\n };\n const currentRectOfElement = currentHoveredElement.getBoundingClientRect();\n try {\n const buttonMeasurementValues = {\n width: 72,\n halfWidth: 36,\n height: 40,\n basicMargin: 5,\n widthWithMargin: 77,\n };\n\n switch (cslpButtonPosition) {\n case \"top-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"top-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right +\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"bottom-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.widthWithMargin;\n break;\n // default position => top, top-left or any other string\n default:\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n }\n return editButtonPosition;\n } catch (error) {\n PublicLogger.error(error);\n return editButtonPosition;\n }\n}\n\nexport const createSingularEditButton = (\n editCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const singularEditButton = document.createElement(\"div\");\n singularEditButton.classList.add(\"cslp-tooltip-child\", \"singular\");\n singularEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-singular-edit-button\"\n );\n singularEditButton.innerHTML = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>Edit`;\n\n singularEditButton.addEventListener(\"click\", editCallback);\n\n return singularEditButton;\n};\n\nexport const createMultipleEditButton = (\n editCallback: (e: MouseEvent) => void,\n linkCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const multipleEditButton = document.createElement(\"div\");\n multipleEditButton.classList.add(\"cslp-tooltip-child\");\n multipleEditButton.setAttribute(\"data-title\", \"Edit\");\n multipleEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-edit-button\"\n );\n multipleEditButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>`;\n\n multipleEditButton.addEventListener(\"click\", editCallback);\n\n const multipleExternalLinkButton = document.createElement(\"div\");\n multipleExternalLinkButton.classList.add(\"cslp-tooltip-child\");\n multipleExternalLinkButton.setAttribute(\"data-title\", \"Go to link\");\n multipleExternalLinkButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-external-link-button\"\n );\n multipleExternalLinkButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z\" fill=\"#718096\" />\n <path d=\"M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z\" fill=\"#718096\" />\n </svg>`;\n\n multipleExternalLinkButton.addEventListener(\"click\", linkCallback);\n\n const multipleEditFragment = document.createDocumentFragment();\n multipleEditFragment.appendChild(multipleEditButton);\n multipleEditFragment.appendChild(multipleExternalLinkButton);\n\n const multipleDiv = document.createElement(\"div\");\n multipleDiv.appendChild(multipleEditFragment);\n multipleDiv.classList.add(cslpTagStyles()[\"multiple\"]);\n\n return multipleDiv;\n};\n\nexport function getEditButtonPosition(\n currentHoveredElement: HTMLElement | null,\n defaultPosition: string | undefined\n): IEditButtonPosition {\n if (!currentHoveredElement)\n return { upperBoundOfTooltip: 0, leftBoundOfTooltip: 0 };\n\n const cslpButtonPosition = currentHoveredElement.getAttribute(\n \"data-cslp-button-position\"\n );\n if (cslpButtonPosition) {\n return calculateEditButtonPosition(\n currentHoveredElement,\n cslpButtonPosition\n );\n }\n\n // NOTE: position \"top\" and \"top-left\" will be the position of edit button if no default position passed in config\n return calculateEditButtonPosition(\n currentHoveredElement,\n defaultPosition || \"top\"\n );\n}\n\nexport function shouldRenderEditButton(): boolean {\n const config = Config.get();\n\n if (!config.editButton.enable) {\n if (config.editButton.enable === undefined)\n PublicLogger.error(\n \"enable key is required inside editButton object\"\n );\n return false;\n }\n\n // return boolean in case of cslp-buttons query added in url\n try {\n const currentLocation = new URL(window.location.href);\n const cslpButtonQueryValue =\n currentLocation.searchParams.get(\"cslp-buttons\");\n\n if (\n cslpButtonQueryValue !== null &&\n config.editButton.includeByQueryParameter !== false\n )\n return cslpButtonQueryValue === \"false\" ? false : true;\n } catch (error) {\n PublicLogger.error(error);\n }\n\n const iFrameCheck = inIframe();\n\n // case outside live preview\n if (\n !iFrameCheck &&\n config.editButton.exclude?.find(\n (exclude) => exclude === \"outsideLivePreviewPortal\"\n )\n ) {\n return false;\n }\n\n // case if inside live preview\n if (\n iFrameCheck &&\n config.editButton.exclude?.find(\n (exclude) => exclude === \"insideLivePreviewPortal\"\n )\n ) {\n return false;\n } else if (iFrameCheck) {\n // case if inside visual builder\n if (config.windowType === \"builder\") {\n return false;\n }\n\n // case if independent site\n return true;\n }\n\n // Priority list => 1. cslpEditButton query value 2. Inside live preview 3. renderCslpButtonByDefault value selected by user\n return true;\n}\n\nexport function toggleEditButtonElement() {\n const render = shouldRenderEditButton();\n const exists = doesEditButtonExist();\n\n if (render && !exists) {\n LivePreviewEditButton.livePreviewEditButton =\n new LivePreviewEditButton();\n } else if (!render && exists) {\n LivePreviewEditButton.livePreviewEditButton?.destroy();\n }\n}\n\nexport function doesEditButtonExist() {\n return document.getElementById(EDIT_BUTTON_TOOLTIP_ID) !== null;\n}\n\nexport class LivePreviewEditButton {\n private tooltip: HTMLButtonElement | null = null;\n private typeOfCurrentChild: \"singular\" | \"multiple\" = \"singular\";\n private tooltipChild: {\n singular: HTMLDivElement | null;\n multiple: HTMLDivElement | null;\n } = {\n singular: null,\n multiple: null,\n };\n static livePreviewEditButton: LivePreviewEditButton | null = null;\n\n constructor() {\n this.createCslpTooltip = this.createCslpTooltip.bind(this);\n this.updateTooltipPosition = this.updateTooltipPosition.bind(this);\n this.addEditStyleOnHover = this.addEditStyleOnHover.bind(this);\n this.scrollHandler = this.scrollHandler.bind(this);\n this.generateRedirectUrl = this.generateRedirectUrl.bind(this);\n this.linkClickHandler = this.linkClickHandler.bind(this);\n this.destroy = this.destroy.bind(this);\n\n if (this.createCslpTooltip()) {\n this.updateTooltipPosition();\n\n window.addEventListener(\"scroll\", this.updateTooltipPosition);\n window.addEventListener(\"mouseover\", this.addEditStyleOnHover);\n }\n }\n\n private createCslpTooltip(): boolean {\n const editButton = Config.get().editButton;\n\n if (\n !document.getElementById(EDIT_BUTTON_TOOLTIP_ID) &&\n editButton.enable &&\n shouldRenderEditButton()\n ) {\n const tooltip = document.createElement(\"button\");\n this.tooltip = tooltip;\n\n this.tooltip.classList.add(cslpTagStyles()[\"cslp-tooltip\"]);\n this.tooltip.setAttribute(\"data-test-id\", \"cs-cslp-tooltip\");\n this.tooltip.id = EDIT_BUTTON_TOOLTIP_ID;\n\n window.document.body.insertAdjacentElement(\n \"beforeend\",\n this.tooltip\n );\n\n this.tooltipChild.singular = createSingularEditButton(\n this.scrollHandler\n );\n this.tooltipChild.multiple = createMultipleEditButton(\n this.scrollHandler,\n this.linkClickHandler\n );\n\n this.tooltip.appendChild(this.tooltipChild.singular);\n return true;\n }\n return false;\n }\n\n private updateTooltipPosition() {\n if (!document.getElementById(\"cslp-tooltip\")) {\n this.createCslpTooltip();\n }\n const editButton = Config.get().editButton;\n const elements = Config.get().elements;\n\n if (!elements.highlightedElement || !this.tooltip) return false;\n\n const currentRectOfElement =\n elements.highlightedElement.getBoundingClientRect();\n const currentRectOfParentOfElement =\n this.tooltip.parentElement?.getBoundingClientRect();\n\n if (currentRectOfElement && currentRectOfParentOfElement) {\n const editButtonPosition = getEditButtonPosition(\n elements.highlightedElement as HTMLElement,\n editButton.position\n );\n\n let upperBoundOfTooltip = editButtonPosition.upperBoundOfTooltip;\n const leftBoundOfTooltip = editButtonPosition.leftBoundOfTooltip;\n\n // if scrolled and element is still visible, make sure tooltip is also visible\n if (upperBoundOfTooltip < 0) {\n if (currentRectOfElement.top < 0)\n upperBoundOfTooltip = currentRectOfElement.top;\n else upperBoundOfTooltip = 0;\n }\n\n this.tooltip.style.top = upperBoundOfTooltip + \"px\";\n this.tooltip.style.zIndex =\n elements.highlightedElement.style.zIndex || \"200\";\n this.tooltip.style.left = leftBoundOfTooltip + \"px\";\n\n if (this.tooltipChild.singular && this.tooltipChild.multiple) {\n if (\n elements.highlightedElement.hasAttribute(\"href\") &&\n this.typeOfCurrentChild !== \"multiple\"\n ) {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.multiple);\n this.typeOfCurrentChild = \"multiple\";\n } else if (this.typeOfCurrentChild !== \"singular\") {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.singular);\n this.typeOfCurrentChild = \"singular\";\n }\n }\n return true;\n }\n\n return false;\n }\n\n private addEditStyleOnHover(e: MouseEvent) {\n const updateStyles = this.shouldUpdateStyle(e);\n // Checks whether the mouse pointer is within the safe zone of the\n // element which was hovered on, since it also returns undefined when the\n // above can't be determined we can still add styles\n const shouldRedraw =\n typeof updateStyles === \"undefined\" ? true : updateStyles;\n if (!shouldRedraw) {\n return;\n }\n const updateTooltipPosition: Parameters<typeof addCslpOutline>[\"1\"] = ({\n cslpTag,\n highlightedElement,\n }) => {\n if (this.updateTooltipPosition()) {\n this.tooltip?.setAttribute(\"current-data-cslp\", cslpTag);\n this.tooltip?.setAttribute(\n \"current-href\",\n highlightedElement.getAttribute(\"href\") ?? \"\"\n );\n }\n };\n\n const editButton = Config.get().editButton;\n const windowType = Config.get().windowType;\n\n if (\n (windowType === ILivePreviewWindowType.PREVIEW ||\n windowType === ILivePreviewWindowType.INDEPENDENT) &&\n editButton.enable\n ) {\n addCslpOutline(e, updateTooltipPosition);\n }\n }\n\n private shouldUpdateStyle(event: MouseEvent) {\n const editButtonPos = Config.get().editButton.position;\n const editButtonDomRect = this.tooltip?.getBoundingClientRect();\n return isPointerWithinEditButtonSafeZone({\n event,\n editButtonPos,\n editButtonDomRect,\n });\n }\n\n private scrollHandler() {\n if (!this.tooltip) return;\n\n const cslpTag = this.tooltip.getAttribute(\"current-data-cslp\");\n\n if (isValidCslp(cslpTag)) {\n const {\n content_type_uid,\n entry_uid,\n locale,\n variant,\n fieldPathWithIndex,\n } = extractDetailsFromCslp(cslpTag);\n\n if (inIframe() || isOpeningInNewTab()) {\n livePreviewPostMessage?.send(\"scroll\", {\n field: fieldPathWithIndex,\n content_type_uid,\n entry_uid,\n variant,\n locale,\n });\n } else {\n try {\n // Redirect to Contentstack edit page\n const redirectUrl = this.generateRedirectUrl(\n content_type_uid,\n locale,\n entry_uid,\n variant,\n fieldPathWithIndex\n );\n\n window.open(redirectUrl, \"_blank\");\n } catch (error) {\n PublicLogger.error(error);\n }\n }\n }\n }\n\n /**\n * Generates the redirect URL for editing a specific entry in the Live Preview SDK.\n * @param content_type_uid - The UID of the content type.\n * @param locale - The locale of the entry (default: \"en-us\").\n * @param entry_uid - The UID of the entry.\n * @param preview_field - The field to be previewed.\n * @returns The redirect URL for editing the entry.\n */\n private generateRedirectUrl(\n content_type_uid: string,\n locale = \"en-us\",\n entry_uid: string,\n variant: string | undefined,\n preview_field: string\n ): string {\n const config = Config.get();\n\n if (!config.stackDetails.apiKey) {\n throw `To use edit tags, you must provide the stack API key. Specify the API key while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n apiKey: 'your-api-key'\n },\n ...\n })`;\n }\n\n if (!config.stackDetails.environment) {\n throw `To use edit tags, you must provide the preview environment. Specify the preview environment while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n environment: 'Your-environment'\n },\n ...\n })`;\n }\n\n const protocol = String(config.clientUrlParams.protocol);\n const host = String(config.clientUrlParams.host);\n const port = String(config.clientUrlParams.port);\n const environment = String(config.stackDetails.environment);\n const branch = String(config.stackDetails.branch || \"main\");\n\n let urlHash = `!/stack/${\n config.stackDetails.apiKey\n }/content-type/${content_type_uid}/${\n locale ?? \"en-us\"\n }/entry/${entry_uid}`;\n\n if (variant) {\n urlHash += `/variant/${variant}/edit`;\n } else {\n urlHash += `/edit`;\n }\n\n const url = new URL(`${protocol}://${host}`);\n url.port = port;\n url.hash = urlHash;\n if (config.stackDetails.branch) {\n url.searchParams.append(\"branch\", branch);\n }\n url.searchParams.append(\"preview-field\", preview_field);\n url.searchParams.append(\"preview-locale\", locale ?? \"en-us\");\n url.searchParams.append(\"preview-environment\", environment);\n\n return `${url.origin}/${url.hash}${url.search}`;\n }\n\n private linkClickHandler() {\n if (!this.tooltip) return;\n const hrefAttribute = this.tooltip.getAttribute(\"current-href\");\n\n if (hrefAttribute) {\n window.location.assign(hrefAttribute);\n }\n }\n\n /**\n * Destroys the edit button by removing event listeners and removing the tooltip.\n */\n destroy(): void {\n window.removeEventListener(\"scroll\", this.updateTooltipPosition);\n window.removeEventListener(\"mouseover\", this.addEditStyleOnHover);\n this.tooltip?.remove();\n }\n}\n\neffect(function handleWindowTypeChange() {\n // we need to specify when to run this effect.\n // here, we run it when the value of windowType changes\n if (typeof window === \"undefined\") return;\n if (\n typeof process !== \"undefined\" &&\n (process?.env?.PURGE_PREVIEW_SDK === \"true\" ||\n process?.env?.REACT_APP_PURGE_PREVIEW_SDK === \"true\")\n )\n return;\n Config.get().windowType;\n if (LivePreviewEditButton && !isOpeningInTimeline()) {\n toggleEditButtonElement();\n }\n});\n\n/**\n * Find first element with cslp on the event composed path,\n * do safe zone calculation for the element based on its\n * width and height, and return true if mouse pointer is\n * within the safe zone. Returns undefined when this cannot\n * be determined.\n */\nexport function isPointerWithinEditButtonSafeZone({\n event,\n editButtonDomRect,\n editButtonPos,\n}: {\n event: MouseEvent;\n editButtonDomRect: DOMRect | undefined;\n editButtonPos: string | undefined;\n}) {\n const SAFE_ZONE_RATIO = 0.1;\n const MAX_SAFE_ZONE_DISTANCE = 30;\n if (!editButtonDomRect || !editButtonPos) {\n return undefined;\n }\n if (!(editButtonDomRect.x > 0) || !(editButtonDomRect.y > 0)) {\n return undefined;\n }\n const isTop = editButtonPos.includes(\"top\");\n const isLeft = editButtonPos.includes(\"left\");\n const isBottom = editButtonPos.includes(\"bottom\");\n const isVertical = isTop || isBottom;\n const cslpElement = event.composedPath().find((target) => {\n const element = target as HTMLElement;\n if (element.nodeName === \"BODY\") {\n return false;\n }\n if (typeof element?.hasAttribute !== \"function\") {\n return false;\n }\n return element.hasAttribute(\"data-cslp\");\n });\n if (!cslpElement) {\n return undefined;\n }\n const element = cslpElement as HTMLElement;\n const elementRect = element.getBoundingClientRect();\n let safeZoneDistance = isVertical\n ? // if vertical positioning (\"top\"/\"bottom\")\n // button is rendered along the width\n elementRect.width * SAFE_ZONE_RATIO\n : // button is rendered along the height\n elementRect.height * SAFE_ZONE_RATIO;\n safeZoneDistance =\n safeZoneDistance > MAX_SAFE_ZONE_DISTANCE\n ? MAX_SAFE_ZONE_DISTANCE\n : safeZoneDistance;\n\n const tooltipX2 = editButtonDomRect.x + editButtonDomRect.width;\n const tooltipY2 = editButtonDomRect.y + editButtonDomRect.height;\n const safeX1 = editButtonDomRect.x - safeZoneDistance;\n const safeX2 = tooltipX2 + safeZoneDistance;\n const safeY1 = editButtonDomRect.y - safeZoneDistance;\n const safeY2 = tooltipY2 + safeZoneDistance;\n\n if (isTop || isBottom) {\n const verticalSafeDistance = isTop\n ? Math.abs(tooltipY2 - event.clientY)\n : Math.abs(editButtonDomRect.y - event.clientY);\n const isInSafeZone =\n event.clientX > safeX1 &&\n event.clientX < safeX2 &&\n verticalSafeDistance < safeZoneDistance;\n if (isInSafeZone) {\n return false;\n }\n } else {\n const horizontalSafeDistance = isLeft\n ? Math.abs(tooltipX2 - event.clientX)\n : Math.abs(editButtonDomRect.x - event.clientX);\n\n const isInSafeZone =\n event.clientY > safeY1 &&\n event.clientY < safeY2 &&\n horizontalSafeDistance < safeZoneDistance;\n if (isInSafeZone) {\n return false;\n }\n }\n return true;\n}\n"],"mappings":"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","names":["import_editButton","Config","livePreviewPostMessage","element"]}
|
|
@@ -415,6 +415,8 @@ var LivePreviewEditButton = class {
|
|
|
415
415
|
LivePreviewEditButton.livePreviewEditButton = null;
|
|
416
416
|
effect(function handleWindowTypeChange() {
|
|
417
417
|
if (typeof window === "undefined") return;
|
|
418
|
+
if (typeof process !== "undefined" && (process.env.PURGE_PREVIEW_SDK === "true" || process.env.REACT_APP_PURGE_PREVIEW_SDK === "true"))
|
|
419
|
+
return;
|
|
418
420
|
Config.get().windowType;
|
|
419
421
|
if (LivePreviewEditButton && !isOpeningInTimeline()) {
|
|
420
422
|
toggleEditButtonElement();
|