@contentstack/live-preview-utils 2.0.2 → 2.0.4
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 +12 -13
- package/dist/legacy/compare.cjs +73 -48
- package/dist/legacy/compare.cjs.map +1 -1
- package/dist/legacy/compare.js +73 -48
- package/dist/legacy/compare.js.map +1 -1
- package/dist/legacy/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/legacy/contentstack-live-preview-HOC.js +1 -1
- package/dist/legacy/index.cjs.map +1 -1
- package/dist/legacy/index.d.cts +3 -2
- package/dist/legacy/index.d.ts +3 -2
- package/dist/legacy/index.js.map +1 -1
- package/dist/legacy/live-preview.cjs +24 -8
- package/dist/legacy/live-preview.cjs.map +1 -1
- package/dist/legacy/live-preview.js +24 -8
- package/dist/legacy/live-preview.js.map +1 -1
- package/dist/legacy/utils/cslpdata.cjs +62 -0
- package/dist/legacy/utils/cslpdata.cjs.map +1 -0
- package/dist/legacy/utils/cslpdata.d.cts +16 -0
- package/dist/legacy/utils/cslpdata.d.ts +16 -0
- package/dist/legacy/utils/cslpdata.js +37 -0
- package/dist/legacy/utils/cslpdata.js.map +1 -0
- package/dist/legacy/utils/defaults.cjs +1 -1
- package/dist/legacy/utils/defaults.cjs.map +1 -1
- package/dist/legacy/utils/defaults.js +1 -1
- package/dist/legacy/utils/defaults.js.map +1 -1
- package/dist/legacy/utils/handleUserConfig.cjs +1 -1
- package/dist/legacy/utils/handleUserConfig.cjs.map +1 -1
- package/dist/legacy/utils/handleUserConfig.js +1 -1
- package/dist/legacy/utils/handleUserConfig.js.map +1 -1
- package/dist/modern/compare.cjs +73 -48
- package/dist/modern/compare.cjs.map +1 -1
- package/dist/modern/compare.js +73 -48
- package/dist/modern/compare.js.map +1 -1
- package/dist/modern/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/modern/contentstack-live-preview-HOC.js +1 -1
- package/dist/modern/index.cjs.map +1 -1
- package/dist/modern/index.d.cts +3 -2
- package/dist/modern/index.d.ts +3 -2
- package/dist/modern/index.js.map +1 -1
- package/dist/modern/live-preview.cjs +24 -8
- package/dist/modern/live-preview.cjs.map +1 -1
- package/dist/modern/live-preview.js +24 -8
- package/dist/modern/live-preview.js.map +1 -1
- package/dist/modern/utils/cslpdata.cjs +62 -0
- package/dist/modern/utils/cslpdata.cjs.map +1 -0
- package/dist/modern/utils/cslpdata.d.cts +16 -0
- package/dist/modern/utils/cslpdata.d.ts +16 -0
- package/dist/modern/utils/cslpdata.js +37 -0
- package/dist/modern/utils/cslpdata.js.map +1 -0
- package/dist/modern/utils/defaults.cjs +1 -1
- package/dist/modern/utils/defaults.cjs.map +1 -1
- package/dist/modern/utils/defaults.js +1 -1
- package/dist/modern/utils/defaults.js.map +1 -1
- package/dist/modern/utils/handleUserConfig.cjs +1 -1
- package/dist/modern/utils/handleUserConfig.cjs.map +1 -1
- package/dist/modern/utils/handleUserConfig.js +1 -1
- package/dist/modern/utils/handleUserConfig.js.map +1 -1
- package/package.json +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/handleUserConfig.ts"],"sourcesContent":["import { shouldRenderEditButton } from \".\";\nimport { PublicLogger } from \"./public-logger\";\nimport { IClientUrlParams, IConfig, IInitData, IStackSdk } from \"./types\";\n\nconst handleClientUrlParams = (\n existingConfig: IConfig,\n userConfig: Partial<IClientUrlParams>\n): void => {\n existingConfig.clientUrlParams.host =\n userConfig.host ?? existingConfig.clientUrlParams.host;\n existingConfig.clientUrlParams.protocol =\n userConfig.protocol ?? existingConfig.clientUrlParams.protocol;\n existingConfig.clientUrlParams.port =\n userConfig.port ?? existingConfig.clientUrlParams.port;\n\n if (userConfig.protocol !== undefined && userConfig.port === undefined) {\n switch (userConfig.protocol) {\n case \"http\": {\n existingConfig.clientUrlParams.port = 80;\n break;\n }\n case \"https\": {\n existingConfig.clientUrlParams.port = 443;\n break;\n }\n }\n }\n\n // build url\n let host = existingConfig.clientUrlParams.host;\n\n if (host.endsWith(\"/\")) {\n host = host.slice(0, -1);\n existingConfig.clientUrlParams.host = host;\n }\n\n existingConfig.clientUrlParams.url = `${existingConfig.clientUrlParams.protocol}://${existingConfig.clientUrlParams.host}:${existingConfig.clientUrlParams.port}`;\n};\n\nfunction isInitDataStackSdk(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IStackSdk {\n return Object.prototype.hasOwnProperty.call(initObj, \"cachePolicy\");\n}\n\nfunction isInitDataCommon(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IInitData {\n return !isInitDataStackSdk(initObj);\n}\n\nexport const handleInitData = (\n initData: Partial<IInitData> | Partial<IStackSdk>,\n config: IConfig\n): void => {\n // only have stack sdk\n if (isInitDataStackSdk(initData)) {\n PublicLogger.warn(\n \"Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object.\"\n );\n\n const livePreviewObject = initData?.live_preview || {};\n\n // only stack indicates that user is running it on client side application\n config.ssr = false;\n\n config.runScriptsOnUpdate =\n livePreviewObject.runScriptsOnUpdate ?? config.runScriptsOnUpdate;\n\n config.enable = livePreviewObject.enable ?? config.enable;\n\n config.cleanCslpOnProduction =\n livePreviewObject.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n livePreviewObject.editButton ?? config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(livePreviewObject.editButton?.exclude) &&\n livePreviewObject.editButton?.exclude\n ? livePreviewObject.editButton?.exclude\n : config.editButton.exclude ?? [],\n position:\n livePreviewObject.editButton?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n livePreviewObject.editButton?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackSdk = initData;\n\n // stack details\n\n if (Object.prototype.hasOwnProperty.call(initData, \"environment\")) {\n config.stackDetails.environment = initData.environment;\n }\n\n if (Object.prototype.hasOwnProperty.call(initData, \"branch\")) {\n config.stackDetails.branch = initData.branch;\n }\n\n // client URL params\n handleClientUrlParams(\n config,\n livePreviewObject.clientUrlParams ?? config.clientUrlParams\n );\n } else if (isInitDataCommon(initData)) {\n const stackSdk: Partial<IStackSdk> =\n initData.stackSdk || config.stackSdk;\n\n config.enable =\n initData.enable ?? stackSdk.live_preview?.enable ?? config.enable;\n\n config.ssr =\n initData.ssr ??\n stackSdk.live_preview?.ssr ??\n (typeof initData.stackSdk === \"object\" ? false : true) ??\n true;\n\n config.runScriptsOnUpdate =\n initData.runScriptsOnUpdate ??\n stackSdk.live_preview?.runScriptsOnUpdate ??\n config.runScriptsOnUpdate;\n\n config.stackSdk = stackSdk as IStackSdk;\n\n config.cleanCslpOnProduction =\n initData.cleanCslpOnProduction ??\n stackSdk.live_preview?.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n initData.editButton ??\n stackSdk.live_preview?.editButton ??\n config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(initData.editButton?.exclude) &&\n initData.editButton?.exclude\n ? initData.editButton?.exclude\n : Array.isArray(stackSdk.live_preview?.exclude) &&\n stackSdk.live_preview?.exclude\n ? stackSdk.live_preview?.exclude\n : config.editButton.exclude ?? [],\n position:\n initData.editButton?.position ??\n stackSdk.live_preview?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n initData.editButton?.includeByQueryParameter ??\n stackSdk.live_preview?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackDetails.apiKey =\n initData.stackDetails?.apiKey ?? config.stackDetails.apiKey;\n\n config.stackDetails.environment =\n initData.stackDetails?.environment ??\n stackSdk.environment ??\n config.stackDetails.environment;\n\n config.stackDetails.branch =\n initData.stackDetails?.branch
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/handleUserConfig.ts"],"sourcesContent":["import { shouldRenderEditButton } from \".\";\nimport { PublicLogger } from \"./public-logger\";\nimport { IClientUrlParams, IConfig, IInitData, IStackSdk } from \"./types\";\n\nconst handleClientUrlParams = (\n existingConfig: IConfig,\n userConfig: Partial<IClientUrlParams>\n): void => {\n existingConfig.clientUrlParams.host =\n userConfig.host ?? existingConfig.clientUrlParams.host;\n existingConfig.clientUrlParams.protocol =\n userConfig.protocol ?? existingConfig.clientUrlParams.protocol;\n existingConfig.clientUrlParams.port =\n userConfig.port ?? existingConfig.clientUrlParams.port;\n\n if (userConfig.protocol !== undefined && userConfig.port === undefined) {\n switch (userConfig.protocol) {\n case \"http\": {\n existingConfig.clientUrlParams.port = 80;\n break;\n }\n case \"https\": {\n existingConfig.clientUrlParams.port = 443;\n break;\n }\n }\n }\n\n // build url\n let host = existingConfig.clientUrlParams.host;\n\n if (host.endsWith(\"/\")) {\n host = host.slice(0, -1);\n existingConfig.clientUrlParams.host = host;\n }\n\n existingConfig.clientUrlParams.url = `${existingConfig.clientUrlParams.protocol}://${existingConfig.clientUrlParams.host}:${existingConfig.clientUrlParams.port}`;\n};\n\nfunction isInitDataStackSdk(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IStackSdk {\n return Object.prototype.hasOwnProperty.call(initObj, \"cachePolicy\");\n}\n\nfunction isInitDataCommon(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IInitData {\n return !isInitDataStackSdk(initObj);\n}\n\nexport const handleInitData = (\n initData: Partial<IInitData> | Partial<IStackSdk>,\n config: IConfig\n): void => {\n // only have stack sdk\n if (isInitDataStackSdk(initData)) {\n PublicLogger.warn(\n \"Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object.\"\n );\n\n const livePreviewObject = initData?.live_preview || {};\n\n // only stack indicates that user is running it on client side application\n config.ssr = false;\n\n config.runScriptsOnUpdate =\n livePreviewObject.runScriptsOnUpdate ?? config.runScriptsOnUpdate;\n\n config.enable = livePreviewObject.enable ?? config.enable;\n\n config.cleanCslpOnProduction =\n livePreviewObject.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n livePreviewObject.editButton ?? config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(livePreviewObject.editButton?.exclude) &&\n livePreviewObject.editButton?.exclude\n ? livePreviewObject.editButton?.exclude\n : config.editButton.exclude ?? [],\n position:\n livePreviewObject.editButton?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n livePreviewObject.editButton?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackSdk = initData;\n\n // stack details\n\n if (Object.prototype.hasOwnProperty.call(initData, \"environment\")) {\n config.stackDetails.environment = initData.environment;\n }\n\n if (Object.prototype.hasOwnProperty.call(initData, \"branch\")) {\n config.stackDetails.branch = initData.branch;\n }\n\n // client URL params\n handleClientUrlParams(\n config,\n livePreviewObject.clientUrlParams ?? config.clientUrlParams\n );\n } else if (isInitDataCommon(initData)) {\n const stackSdk: Partial<IStackSdk> =\n initData.stackSdk || config.stackSdk;\n\n config.enable =\n initData.enable ?? stackSdk.live_preview?.enable ?? config.enable;\n\n config.ssr =\n initData.ssr ??\n stackSdk.live_preview?.ssr ??\n (typeof initData.stackSdk === \"object\" ? false : true) ??\n true;\n\n config.runScriptsOnUpdate =\n initData.runScriptsOnUpdate ??\n stackSdk.live_preview?.runScriptsOnUpdate ??\n config.runScriptsOnUpdate;\n\n config.stackSdk = stackSdk as IStackSdk;\n\n config.cleanCslpOnProduction =\n initData.cleanCslpOnProduction ??\n stackSdk.live_preview?.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n initData.editButton ??\n stackSdk.live_preview?.editButton ??\n config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(initData.editButton?.exclude) &&\n initData.editButton?.exclude\n ? initData.editButton?.exclude\n : Array.isArray(stackSdk.live_preview?.exclude) &&\n stackSdk.live_preview?.exclude\n ? stackSdk.live_preview?.exclude\n : config.editButton.exclude ?? [],\n position:\n initData.editButton?.position ??\n stackSdk.live_preview?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n initData.editButton?.includeByQueryParameter ??\n stackSdk.live_preview?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackDetails.apiKey =\n initData.stackDetails?.apiKey ?? config.stackDetails.apiKey;\n\n config.stackDetails.environment =\n initData.stackDetails?.environment ??\n stackSdk.environment ??\n config.stackDetails.environment;\n\n config.stackDetails.branch =\n initData.stackDetails?.branch ?? config.stackDetails.branch;\n\n // client URL params\n handleClientUrlParams(\n config,\n initData.clientUrlParams ??\n stackSdk.live_preview?.clientUrlParams ??\n config.clientUrlParams\n );\n }\n};\n\nexport const handleUserConfig = {\n clientUrlParams: handleClientUrlParams,\n};\n"],"mappings":"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","names":[]}
|
|
@@ -79,7 +79,7 @@ var handleInitData = (initData, config) => {
|
|
|
79
79
|
};
|
|
80
80
|
config.stackDetails.apiKey = ((_u = initData.stackDetails) == null ? void 0 : _u.apiKey) ?? config.stackDetails.apiKey;
|
|
81
81
|
config.stackDetails.environment = ((_v = initData.stackDetails) == null ? void 0 : _v.environment) ?? stackSdk.environment ?? config.stackDetails.environment;
|
|
82
|
-
config.stackDetails.branch = ((_w = initData.stackDetails) == null ? void 0 : _w.branch) ?? config.stackDetails.branch
|
|
82
|
+
config.stackDetails.branch = ((_w = initData.stackDetails) == null ? void 0 : _w.branch) ?? config.stackDetails.branch;
|
|
83
83
|
handleClientUrlParams(
|
|
84
84
|
config,
|
|
85
85
|
initData.clientUrlParams ?? ((_x = stackSdk.live_preview) == null ? void 0 : _x.clientUrlParams) ?? config.clientUrlParams
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/handleUserConfig.ts"],"sourcesContent":["import { shouldRenderEditButton } from \".\";\nimport { PublicLogger } from \"./public-logger\";\nimport { IClientUrlParams, IConfig, IInitData, IStackSdk } from \"./types\";\n\nconst handleClientUrlParams = (\n existingConfig: IConfig,\n userConfig: Partial<IClientUrlParams>\n): void => {\n existingConfig.clientUrlParams.host =\n userConfig.host ?? existingConfig.clientUrlParams.host;\n existingConfig.clientUrlParams.protocol =\n userConfig.protocol ?? existingConfig.clientUrlParams.protocol;\n existingConfig.clientUrlParams.port =\n userConfig.port ?? existingConfig.clientUrlParams.port;\n\n if (userConfig.protocol !== undefined && userConfig.port === undefined) {\n switch (userConfig.protocol) {\n case \"http\": {\n existingConfig.clientUrlParams.port = 80;\n break;\n }\n case \"https\": {\n existingConfig.clientUrlParams.port = 443;\n break;\n }\n }\n }\n\n // build url\n let host = existingConfig.clientUrlParams.host;\n\n if (host.endsWith(\"/\")) {\n host = host.slice(0, -1);\n existingConfig.clientUrlParams.host = host;\n }\n\n existingConfig.clientUrlParams.url = `${existingConfig.clientUrlParams.protocol}://${existingConfig.clientUrlParams.host}:${existingConfig.clientUrlParams.port}`;\n};\n\nfunction isInitDataStackSdk(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IStackSdk {\n return Object.prototype.hasOwnProperty.call(initObj, \"cachePolicy\");\n}\n\nfunction isInitDataCommon(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IInitData {\n return !isInitDataStackSdk(initObj);\n}\n\nexport const handleInitData = (\n initData: Partial<IInitData> | Partial<IStackSdk>,\n config: IConfig\n): void => {\n // only have stack sdk\n if (isInitDataStackSdk(initData)) {\n PublicLogger.warn(\n \"Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object.\"\n );\n\n const livePreviewObject = initData?.live_preview || {};\n\n // only stack indicates that user is running it on client side application\n config.ssr = false;\n\n config.runScriptsOnUpdate =\n livePreviewObject.runScriptsOnUpdate ?? config.runScriptsOnUpdate;\n\n config.enable = livePreviewObject.enable ?? config.enable;\n\n config.cleanCslpOnProduction =\n livePreviewObject.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n livePreviewObject.editButton ?? config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(livePreviewObject.editButton?.exclude) &&\n livePreviewObject.editButton?.exclude\n ? livePreviewObject.editButton?.exclude\n : config.editButton.exclude ?? [],\n position:\n livePreviewObject.editButton?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n livePreviewObject.editButton?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackSdk = initData;\n\n // stack details\n\n if (Object.prototype.hasOwnProperty.call(initData, \"environment\")) {\n config.stackDetails.environment = initData.environment;\n }\n\n if (Object.prototype.hasOwnProperty.call(initData, \"branch\")) {\n config.stackDetails.branch = initData.branch;\n }\n\n // client URL params\n handleClientUrlParams(\n config,\n livePreviewObject.clientUrlParams ?? config.clientUrlParams\n );\n } else if (isInitDataCommon(initData)) {\n const stackSdk: Partial<IStackSdk> =\n initData.stackSdk || config.stackSdk;\n\n config.enable =\n initData.enable ?? stackSdk.live_preview?.enable ?? config.enable;\n\n config.ssr =\n initData.ssr ??\n stackSdk.live_preview?.ssr ??\n (typeof initData.stackSdk === \"object\" ? false : true) ??\n true;\n\n config.runScriptsOnUpdate =\n initData.runScriptsOnUpdate ??\n stackSdk.live_preview?.runScriptsOnUpdate ??\n config.runScriptsOnUpdate;\n\n config.stackSdk = stackSdk as IStackSdk;\n\n config.cleanCslpOnProduction =\n initData.cleanCslpOnProduction ??\n stackSdk.live_preview?.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n initData.editButton ??\n stackSdk.live_preview?.editButton ??\n config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(initData.editButton?.exclude) &&\n initData.editButton?.exclude\n ? initData.editButton?.exclude\n : Array.isArray(stackSdk.live_preview?.exclude) &&\n stackSdk.live_preview?.exclude\n ? stackSdk.live_preview?.exclude\n : config.editButton.exclude ?? [],\n position:\n initData.editButton?.position ??\n stackSdk.live_preview?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n initData.editButton?.includeByQueryParameter ??\n stackSdk.live_preview?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackDetails.apiKey =\n initData.stackDetails?.apiKey ?? config.stackDetails.apiKey;\n\n config.stackDetails.environment =\n initData.stackDetails?.environment ??\n stackSdk.environment ??\n config.stackDetails.environment;\n\n config.stackDetails.branch =\n initData.stackDetails?.branch
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/handleUserConfig.ts"],"sourcesContent":["import { shouldRenderEditButton } from \".\";\nimport { PublicLogger } from \"./public-logger\";\nimport { IClientUrlParams, IConfig, IInitData, IStackSdk } from \"./types\";\n\nconst handleClientUrlParams = (\n existingConfig: IConfig,\n userConfig: Partial<IClientUrlParams>\n): void => {\n existingConfig.clientUrlParams.host =\n userConfig.host ?? existingConfig.clientUrlParams.host;\n existingConfig.clientUrlParams.protocol =\n userConfig.protocol ?? existingConfig.clientUrlParams.protocol;\n existingConfig.clientUrlParams.port =\n userConfig.port ?? existingConfig.clientUrlParams.port;\n\n if (userConfig.protocol !== undefined && userConfig.port === undefined) {\n switch (userConfig.protocol) {\n case \"http\": {\n existingConfig.clientUrlParams.port = 80;\n break;\n }\n case \"https\": {\n existingConfig.clientUrlParams.port = 443;\n break;\n }\n }\n }\n\n // build url\n let host = existingConfig.clientUrlParams.host;\n\n if (host.endsWith(\"/\")) {\n host = host.slice(0, -1);\n existingConfig.clientUrlParams.host = host;\n }\n\n existingConfig.clientUrlParams.url = `${existingConfig.clientUrlParams.protocol}://${existingConfig.clientUrlParams.host}:${existingConfig.clientUrlParams.port}`;\n};\n\nfunction isInitDataStackSdk(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IStackSdk {\n return Object.prototype.hasOwnProperty.call(initObj, \"cachePolicy\");\n}\n\nfunction isInitDataCommon(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IInitData {\n return !isInitDataStackSdk(initObj);\n}\n\nexport const handleInitData = (\n initData: Partial<IInitData> | Partial<IStackSdk>,\n config: IConfig\n): void => {\n // only have stack sdk\n if (isInitDataStackSdk(initData)) {\n PublicLogger.warn(\n \"Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object.\"\n );\n\n const livePreviewObject = initData?.live_preview || {};\n\n // only stack indicates that user is running it on client side application\n config.ssr = false;\n\n config.runScriptsOnUpdate =\n livePreviewObject.runScriptsOnUpdate ?? config.runScriptsOnUpdate;\n\n config.enable = livePreviewObject.enable ?? config.enable;\n\n config.cleanCslpOnProduction =\n livePreviewObject.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n livePreviewObject.editButton ?? config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(livePreviewObject.editButton?.exclude) &&\n livePreviewObject.editButton?.exclude\n ? livePreviewObject.editButton?.exclude\n : config.editButton.exclude ?? [],\n position:\n livePreviewObject.editButton?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n livePreviewObject.editButton?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackSdk = initData;\n\n // stack details\n\n if (Object.prototype.hasOwnProperty.call(initData, \"environment\")) {\n config.stackDetails.environment = initData.environment;\n }\n\n if (Object.prototype.hasOwnProperty.call(initData, \"branch\")) {\n config.stackDetails.branch = initData.branch;\n }\n\n // client URL params\n handleClientUrlParams(\n config,\n livePreviewObject.clientUrlParams ?? config.clientUrlParams\n );\n } else if (isInitDataCommon(initData)) {\n const stackSdk: Partial<IStackSdk> =\n initData.stackSdk || config.stackSdk;\n\n config.enable =\n initData.enable ?? stackSdk.live_preview?.enable ?? config.enable;\n\n config.ssr =\n initData.ssr ??\n stackSdk.live_preview?.ssr ??\n (typeof initData.stackSdk === \"object\" ? false : true) ??\n true;\n\n config.runScriptsOnUpdate =\n initData.runScriptsOnUpdate ??\n stackSdk.live_preview?.runScriptsOnUpdate ??\n config.runScriptsOnUpdate;\n\n config.stackSdk = stackSdk as IStackSdk;\n\n config.cleanCslpOnProduction =\n initData.cleanCslpOnProduction ??\n stackSdk.live_preview?.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n initData.editButton ??\n stackSdk.live_preview?.editButton ??\n config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(initData.editButton?.exclude) &&\n initData.editButton?.exclude\n ? initData.editButton?.exclude\n : Array.isArray(stackSdk.live_preview?.exclude) &&\n stackSdk.live_preview?.exclude\n ? stackSdk.live_preview?.exclude\n : config.editButton.exclude ?? [],\n position:\n initData.editButton?.position ??\n stackSdk.live_preview?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n initData.editButton?.includeByQueryParameter ??\n stackSdk.live_preview?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackDetails.apiKey =\n initData.stackDetails?.apiKey ?? config.stackDetails.apiKey;\n\n config.stackDetails.environment =\n initData.stackDetails?.environment ??\n stackSdk.environment ??\n config.stackDetails.environment;\n\n config.stackDetails.branch =\n initData.stackDetails?.branch ?? config.stackDetails.branch;\n\n // client URL params\n handleClientUrlParams(\n config,\n initData.clientUrlParams ??\n stackSdk.live_preview?.clientUrlParams ??\n config.clientUrlParams\n );\n }\n};\n\nexport const handleUserConfig = {\n clientUrlParams: handleClientUrlParams,\n};\n"],"mappings":"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","names":[]}
|
package/dist/modern/compare.cjs
CHANGED
|
@@ -33,7 +33,6 @@ __export(compare_exports, {
|
|
|
33
33
|
handleWebCompare: () => handleWebCompare
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(compare_exports);
|
|
36
|
-
var import_post_robot = __toESM(require("post-robot"), 1);
|
|
37
36
|
var import_compare = require("./styles/compare.cjs");
|
|
38
37
|
var import_compare2 = require("./utils/compare.cjs");
|
|
39
38
|
var voidElements = /* @__PURE__ */ new Set([
|
|
@@ -55,57 +54,83 @@ var voidElements = /* @__PURE__ */ new Set([
|
|
|
55
54
|
]);
|
|
56
55
|
var LEAF_CSLP_SELECTOR = "[data-cslp]:not(:has([data-cslp]))";
|
|
57
56
|
function handleWebCompare() {
|
|
58
|
-
(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
57
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
import("post-robot").then((postRobot) => {
|
|
61
|
+
(0, import_compare.loadCompareGlobalStyle)();
|
|
62
|
+
(0, import_compare2.registerCompareElement)();
|
|
63
|
+
postRobot.on("send-current-base-route", async () => {
|
|
64
|
+
return { url: window.location.href.split("?")[0] };
|
|
65
|
+
});
|
|
66
|
+
postRobot.on("send-cslp-data", async () => {
|
|
67
|
+
const elements = Array.from(
|
|
68
|
+
document.querySelectorAll(LEAF_CSLP_SELECTOR)
|
|
69
|
+
);
|
|
70
|
+
const map = {};
|
|
71
|
+
for (const element of elements) {
|
|
72
|
+
const cslp = element.getAttribute("data-cslp");
|
|
73
|
+
if (element.hasAttributes() && voidElements.has(element.tagName.toLowerCase())) {
|
|
74
|
+
let attributes = "";
|
|
75
|
+
for (const attr of element.attributes) {
|
|
76
|
+
attributes += `${attr.name} -> ${attr.value}
|
|
74
77
|
`;
|
|
78
|
+
}
|
|
79
|
+
map[cslp] = attributes;
|
|
80
|
+
} else {
|
|
81
|
+
map[cslp] = element.innerHTML;
|
|
75
82
|
}
|
|
76
|
-
map[cslp] = attributes;
|
|
77
|
-
} else {
|
|
78
|
-
map[cslp] = element.innerHTML;
|
|
79
83
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
84
|
+
return map;
|
|
85
|
+
});
|
|
86
|
+
const mergeColors = (className = ".cs-compare--added") => {
|
|
87
|
+
const elements = Array.from(document.querySelectorAll(className));
|
|
88
|
+
for (let i = 1; i < elements.length; i++) {
|
|
89
|
+
const prev = elements[i - 1];
|
|
90
|
+
const next = elements[i];
|
|
91
|
+
if (prev.nextElementSibling === next)
|
|
92
|
+
prev.appendChild(prev.nextSibling);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
postRobot.on("diff-value", async ({ data }) => {
|
|
96
|
+
const { diff, type } = data;
|
|
97
|
+
const operation = type === "base" ? "removed" : "added";
|
|
98
|
+
const elements = Array.from(
|
|
99
|
+
document.querySelectorAll(LEAF_CSLP_SELECTOR)
|
|
100
|
+
);
|
|
101
|
+
for (const element of elements) {
|
|
102
|
+
const path = element.getAttribute("data-cslp");
|
|
103
|
+
if (!diff[path])
|
|
104
|
+
continue;
|
|
105
|
+
if (voidElements.has(element.tagName.toLowerCase())) {
|
|
106
|
+
element.classList.add(`cs-compare__void--${operation}`);
|
|
107
|
+
} else {
|
|
108
|
+
element.innerHTML = diff[path];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
mergeColors(`.cs-compare--${operation}`);
|
|
112
|
+
});
|
|
113
|
+
postRobot.on("remove-diff", async () => {
|
|
114
|
+
const elements = Array.from(
|
|
115
|
+
document.querySelectorAll("cs-compare")
|
|
116
|
+
);
|
|
117
|
+
for (const element of elements) {
|
|
118
|
+
const parent = element.parentElement;
|
|
119
|
+
while (element.firstChild) {
|
|
120
|
+
parent.insertBefore(element.firstChild, element);
|
|
121
|
+
}
|
|
122
|
+
parent.removeChild(element);
|
|
123
|
+
}
|
|
124
|
+
const voidElements2 = Array.from(
|
|
125
|
+
document.querySelectorAll(
|
|
126
|
+
".cs-compare__void--added, .cs-compare__void--removed"
|
|
127
|
+
)
|
|
128
|
+
);
|
|
129
|
+
for (const element of voidElements2) {
|
|
130
|
+
element.classList.remove("cs-compare__void--added");
|
|
131
|
+
element.classList.remove("cs-compare__void--removed");
|
|
106
132
|
}
|
|
107
|
-
}
|
|
108
|
-
mergeColors(`.cs-compare--${operation}`);
|
|
133
|
+
});
|
|
109
134
|
});
|
|
110
135
|
}
|
|
111
136
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/compare.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../src/compare.ts"],"sourcesContent":["import { loadCompareGlobalStyle } from \"./styles/compare\";\nimport { registerCompareElement } from \"./utils/compare\";\n\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n\nconst LEAF_CSLP_SELECTOR = \"[data-cslp]:not(:has([data-cslp]))\";\n\nexport function handleWebCompare() {\n // Check if window and document are available\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n // Server-side, don't execute client-specific logic\n return;\n }\n\n // Client-side logic\n import(\"post-robot\").then((postRobot) => {\n loadCompareGlobalStyle();\n registerCompareElement();\n\n postRobot.on(\"send-current-base-route\", async () => {\n return { url: window.location.href.split(\"?\")[0] };\n });\n\n postRobot.on(\"send-cslp-data\", async () => {\n const elements = Array.from(\n document.querySelectorAll(LEAF_CSLP_SELECTOR)\n );\n const map: Record<string, string> = {};\n for (const element of elements) {\n const cslp = element.getAttribute(\"data-cslp\")!;\n if (\n element.hasAttributes() &&\n voidElements.has(element.tagName.toLowerCase())\n ) {\n let attributes = \"\";\n for (const attr of element.attributes) {\n attributes += `${attr.name} -> ${attr.value}\\n`;\n }\n map[cslp] = attributes;\n } else {\n map[cslp] = element.innerHTML;\n }\n }\n return map;\n });\n\n const mergeColors = (className = \".cs-compare--added\") => {\n const elements = Array.from(document.querySelectorAll(className));\n for (let i = 1; i < elements.length; i++) {\n const prev = elements[i - 1];\n const next = elements[i];\n if (prev.nextElementSibling === next)\n prev.appendChild(prev.nextSibling!);\n }\n };\n\n postRobot.on(\"diff-value\", async ({ data }) => {\n const { diff, type } = data;\n const operation = type === \"base\" ? \"removed\" : \"added\";\n const elements = Array.from(\n document.querySelectorAll(LEAF_CSLP_SELECTOR)\n );\n for (const element of elements) {\n const path = element.getAttribute(\"data-cslp\")!;\n if (!diff[path]) continue;\n\n if (voidElements.has(element.tagName.toLowerCase())) {\n element.classList.add(`cs-compare__void--${operation}`);\n } else {\n element.innerHTML = diff[path];\n }\n }\n\n mergeColors(`.cs-compare--${operation}`);\n });\n\n postRobot.on(\"remove-diff\", async () => {\n // unwrap the cs-compare tags\n const elements = Array.from(\n document.querySelectorAll(\"cs-compare\")\n );\n for (const element of elements) {\n const parent = element.parentElement!;\n while (element.firstChild) {\n parent.insertBefore(element.firstChild, element);\n }\n parent.removeChild(element);\n }\n // remove classes cs-compare__void--added and cs-compare__void--removed\n const voidElements = Array.from(\n document.querySelectorAll(\n \".cs-compare__void--added, .cs-compare__void--removed\"\n )\n );\n for (const element of voidElements) {\n element.classList.remove(\"cs-compare__void--added\");\n element.classList.remove(\"cs-compare__void--removed\");\n }\n });\n });\n}\n"],"mappings":"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","names":["import_compare","voidElements"]}
|
package/dist/modern/compare.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// src/compare.ts
|
|
2
|
-
import postRobot from "post-robot";
|
|
3
2
|
import { loadCompareGlobalStyle } from "./styles/compare.js";
|
|
4
3
|
import { registerCompareElement } from "./utils/compare.js";
|
|
5
4
|
var voidElements = /* @__PURE__ */ new Set([
|
|
@@ -21,57 +20,83 @@ var voidElements = /* @__PURE__ */ new Set([
|
|
|
21
20
|
]);
|
|
22
21
|
var LEAF_CSLP_SELECTOR = "[data-cslp]:not(:has([data-cslp]))";
|
|
23
22
|
function handleWebCompare() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
23
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
import("post-robot").then((postRobot) => {
|
|
27
|
+
loadCompareGlobalStyle();
|
|
28
|
+
registerCompareElement();
|
|
29
|
+
postRobot.on("send-current-base-route", async () => {
|
|
30
|
+
return { url: window.location.href.split("?")[0] };
|
|
31
|
+
});
|
|
32
|
+
postRobot.on("send-cslp-data", async () => {
|
|
33
|
+
const elements = Array.from(
|
|
34
|
+
document.querySelectorAll(LEAF_CSLP_SELECTOR)
|
|
35
|
+
);
|
|
36
|
+
const map = {};
|
|
37
|
+
for (const element of elements) {
|
|
38
|
+
const cslp = element.getAttribute("data-cslp");
|
|
39
|
+
if (element.hasAttributes() && voidElements.has(element.tagName.toLowerCase())) {
|
|
40
|
+
let attributes = "";
|
|
41
|
+
for (const attr of element.attributes) {
|
|
42
|
+
attributes += `${attr.name} -> ${attr.value}
|
|
40
43
|
`;
|
|
44
|
+
}
|
|
45
|
+
map[cslp] = attributes;
|
|
46
|
+
} else {
|
|
47
|
+
map[cslp] = element.innerHTML;
|
|
41
48
|
}
|
|
42
|
-
map[cslp] = attributes;
|
|
43
|
-
} else {
|
|
44
|
-
map[cslp] = element.innerHTML;
|
|
45
49
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
50
|
+
return map;
|
|
51
|
+
});
|
|
52
|
+
const mergeColors = (className = ".cs-compare--added") => {
|
|
53
|
+
const elements = Array.from(document.querySelectorAll(className));
|
|
54
|
+
for (let i = 1; i < elements.length; i++) {
|
|
55
|
+
const prev = elements[i - 1];
|
|
56
|
+
const next = elements[i];
|
|
57
|
+
if (prev.nextElementSibling === next)
|
|
58
|
+
prev.appendChild(prev.nextSibling);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
postRobot.on("diff-value", async ({ data }) => {
|
|
62
|
+
const { diff, type } = data;
|
|
63
|
+
const operation = type === "base" ? "removed" : "added";
|
|
64
|
+
const elements = Array.from(
|
|
65
|
+
document.querySelectorAll(LEAF_CSLP_SELECTOR)
|
|
66
|
+
);
|
|
67
|
+
for (const element of elements) {
|
|
68
|
+
const path = element.getAttribute("data-cslp");
|
|
69
|
+
if (!diff[path])
|
|
70
|
+
continue;
|
|
71
|
+
if (voidElements.has(element.tagName.toLowerCase())) {
|
|
72
|
+
element.classList.add(`cs-compare__void--${operation}`);
|
|
73
|
+
} else {
|
|
74
|
+
element.innerHTML = diff[path];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
mergeColors(`.cs-compare--${operation}`);
|
|
78
|
+
});
|
|
79
|
+
postRobot.on("remove-diff", async () => {
|
|
80
|
+
const elements = Array.from(
|
|
81
|
+
document.querySelectorAll("cs-compare")
|
|
82
|
+
);
|
|
83
|
+
for (const element of elements) {
|
|
84
|
+
const parent = element.parentElement;
|
|
85
|
+
while (element.firstChild) {
|
|
86
|
+
parent.insertBefore(element.firstChild, element);
|
|
87
|
+
}
|
|
88
|
+
parent.removeChild(element);
|
|
89
|
+
}
|
|
90
|
+
const voidElements2 = Array.from(
|
|
91
|
+
document.querySelectorAll(
|
|
92
|
+
".cs-compare__void--added, .cs-compare__void--removed"
|
|
93
|
+
)
|
|
94
|
+
);
|
|
95
|
+
for (const element of voidElements2) {
|
|
96
|
+
element.classList.remove("cs-compare__void--added");
|
|
97
|
+
element.classList.remove("cs-compare__void--removed");
|
|
72
98
|
}
|
|
73
|
-
}
|
|
74
|
-
mergeColors(`.cs-compare--${operation}`);
|
|
99
|
+
});
|
|
75
100
|
});
|
|
76
101
|
}
|
|
77
102
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/compare.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../src/compare.ts"],"sourcesContent":["import { loadCompareGlobalStyle } from \"./styles/compare\";\nimport { registerCompareElement } from \"./utils/compare\";\n\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n\nconst LEAF_CSLP_SELECTOR = \"[data-cslp]:not(:has([data-cslp]))\";\n\nexport function handleWebCompare() {\n // Check if window and document are available\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n // Server-side, don't execute client-specific logic\n return;\n }\n\n // Client-side logic\n import(\"post-robot\").then((postRobot) => {\n loadCompareGlobalStyle();\n registerCompareElement();\n\n postRobot.on(\"send-current-base-route\", async () => {\n return { url: window.location.href.split(\"?\")[0] };\n });\n\n postRobot.on(\"send-cslp-data\", async () => {\n const elements = Array.from(\n document.querySelectorAll(LEAF_CSLP_SELECTOR)\n );\n const map: Record<string, string> = {};\n for (const element of elements) {\n const cslp = element.getAttribute(\"data-cslp\")!;\n if (\n element.hasAttributes() &&\n voidElements.has(element.tagName.toLowerCase())\n ) {\n let attributes = \"\";\n for (const attr of element.attributes) {\n attributes += `${attr.name} -> ${attr.value}\\n`;\n }\n map[cslp] = attributes;\n } else {\n map[cslp] = element.innerHTML;\n }\n }\n return map;\n });\n\n const mergeColors = (className = \".cs-compare--added\") => {\n const elements = Array.from(document.querySelectorAll(className));\n for (let i = 1; i < elements.length; i++) {\n const prev = elements[i - 1];\n const next = elements[i];\n if (prev.nextElementSibling === next)\n prev.appendChild(prev.nextSibling!);\n }\n };\n\n postRobot.on(\"diff-value\", async ({ data }) => {\n const { diff, type } = data;\n const operation = type === \"base\" ? \"removed\" : \"added\";\n const elements = Array.from(\n document.querySelectorAll(LEAF_CSLP_SELECTOR)\n );\n for (const element of elements) {\n const path = element.getAttribute(\"data-cslp\")!;\n if (!diff[path]) continue;\n\n if (voidElements.has(element.tagName.toLowerCase())) {\n element.classList.add(`cs-compare__void--${operation}`);\n } else {\n element.innerHTML = diff[path];\n }\n }\n\n mergeColors(`.cs-compare--${operation}`);\n });\n\n postRobot.on(\"remove-diff\", async () => {\n // unwrap the cs-compare tags\n const elements = Array.from(\n document.querySelectorAll(\"cs-compare\")\n );\n for (const element of elements) {\n const parent = element.parentElement!;\n while (element.firstChild) {\n parent.insertBefore(element.firstChild, element);\n }\n parent.removeChild(element);\n }\n // remove classes cs-compare__void--added and cs-compare__void--removed\n const voidElements = Array.from(\n document.querySelectorAll(\n \".cs-compare__void--added, .cs-compare__void--removed\"\n )\n );\n for (const element of voidElements) {\n element.classList.remove(\"cs-compare__void--added\");\n element.classList.remove(\"cs-compare__void--removed\");\n }\n });\n });\n}\n"],"mappings":"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","names":["voidElements"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import ContentstackLivePreviewHOC, {\n ICSLivePreview,\n} from \"./contentstack-live-preview-HOC\";\n\nconst LightLivePreviewHoC = {\n init() {},\n onLiveEdit() {},\n onEntryChange(callback: () => void) {\n return callback();\n },\n get hash(): string {\n return \"\";\n },\n setConfigFromParams() {},\n};\n\nexport const ContentstackLivePreview =\n process.env.PURGE_PREVIEW_SDK || process.env.REACT_APP_PURGE_PREVIEW_SDK\n ? (LightLivePreviewHoC as unknown as ICSLivePreview)\n : ContentstackLivePreviewHOC;\n\nexport default ContentstackLivePreview;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2CAEO;
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import ContentstackLivePreviewHOC, {\n ICSLivePreview,\n} from \"./contentstack-live-preview-HOC\";\n\nimport { IStackSdk as ExternalStackSdkType } from \"./utils/types\";\nexport type IStackSdk = ExternalStackSdkType;\n\nconst LightLivePreviewHoC = {\n init() {},\n onLiveEdit() {},\n onEntryChange(callback: () => void) {\n return callback();\n },\n get hash(): string {\n return \"\";\n },\n setConfigFromParams() {},\n};\n\nexport const ContentstackLivePreview =\n process.env.PURGE_PREVIEW_SDK || process.env.REACT_APP_PURGE_PREVIEW_SDK\n ? (LightLivePreviewHoC as unknown as ICSLivePreview)\n : ContentstackLivePreviewHOC;\n\nexport default ContentstackLivePreview;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2CAEO;AAKP,IAAM,sBAAsB;AAAA,EACxB,OAAO;AAAA,EAAC;AAAA,EACR,aAAa;AAAA,EAAC;AAAA,EACd,cAAc,UAAsB;AAChC,WAAO,SAAS;AAAA,EACpB;AAAA,EACA,IAAI,OAAe;AACf,WAAO;AAAA,EACX;AAAA,EACA,sBAAsB;AAAA,EAAC;AAC3B;AAEO,IAAM,0BACT,QAAQ,IAAI,qBAAqB,QAAQ,IAAI,8BACtC,sBACD,qCAAAA;AAEV,IAAO,cAAQ;","names":["ContentstackLivePreviewHOC"]}
|
package/dist/modern/index.d.cts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ICSLivePreview } from './contentstack-live-preview-HOC.cjs';
|
|
2
|
-
import './utils/types.cjs';
|
|
2
|
+
import { IStackSdk as IStackSdk$1 } from './utils/types.cjs';
|
|
3
3
|
import './live-preview.cjs';
|
|
4
4
|
|
|
5
|
+
type IStackSdk = IStackSdk$1;
|
|
5
6
|
declare const ContentstackLivePreview: ICSLivePreview;
|
|
6
7
|
|
|
7
|
-
export { ContentstackLivePreview, ContentstackLivePreview as default };
|
|
8
|
+
export { ContentstackLivePreview, type IStackSdk, ContentstackLivePreview as default };
|
package/dist/modern/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ICSLivePreview } from './contentstack-live-preview-HOC.js';
|
|
2
|
-
import './utils/types.js';
|
|
2
|
+
import { IStackSdk as IStackSdk$1 } from './utils/types.js';
|
|
3
3
|
import './live-preview.js';
|
|
4
4
|
|
|
5
|
+
type IStackSdk = IStackSdk$1;
|
|
5
6
|
declare const ContentstackLivePreview: ICSLivePreview;
|
|
6
7
|
|
|
7
|
-
export { ContentstackLivePreview, ContentstackLivePreview as default };
|
|
8
|
+
export { ContentstackLivePreview, type IStackSdk, ContentstackLivePreview as default };
|
package/dist/modern/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import ContentstackLivePreviewHOC, {\n ICSLivePreview,\n} from \"./contentstack-live-preview-HOC\";\n\nconst LightLivePreviewHoC = {\n init() {},\n onLiveEdit() {},\n onEntryChange(callback: () => void) {\n return callback();\n },\n get hash(): string {\n return \"\";\n },\n setConfigFromParams() {},\n};\n\nexport const ContentstackLivePreview =\n process.env.PURGE_PREVIEW_SDK || process.env.REACT_APP_PURGE_PREVIEW_SDK\n ? (LightLivePreviewHoC as unknown as ICSLivePreview)\n : ContentstackLivePreviewHOC;\n\nexport default ContentstackLivePreview;\n"],"mappings":";AAAA,OAAO,gCAEA;
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import ContentstackLivePreviewHOC, {\n ICSLivePreview,\n} from \"./contentstack-live-preview-HOC\";\n\nimport { IStackSdk as ExternalStackSdkType } from \"./utils/types\";\nexport type IStackSdk = ExternalStackSdkType;\n\nconst LightLivePreviewHoC = {\n init() {},\n onLiveEdit() {},\n onEntryChange(callback: () => void) {\n return callback();\n },\n get hash(): string {\n return \"\";\n },\n setConfigFromParams() {},\n};\n\nexport const ContentstackLivePreview =\n process.env.PURGE_PREVIEW_SDK || process.env.REACT_APP_PURGE_PREVIEW_SDK\n ? (LightLivePreviewHoC as unknown as ICSLivePreview)\n : ContentstackLivePreviewHOC;\n\nexport default ContentstackLivePreview;\n"],"mappings":";AAAA,OAAO,gCAEA;AAKP,IAAM,sBAAsB;AAAA,EACxB,OAAO;AAAA,EAAC;AAAA,EACR,aAAa;AAAA,EAAC;AAAA,EACd,cAAc,UAAsB;AAChC,WAAO,SAAS;AAAA,EACpB;AAAA,EACA,IAAI,OAAe;AACf,WAAO;AAAA,EACX;AAAA,EACA,sBAAsB;AAAA,EAAC;AAC3B;AAEO,IAAM,0BACT,QAAQ,IAAI,qBAAqB,QAAQ,IAAI,8BACtC,sBACD;AAEV,IAAO,cAAQ;","names":[]}
|
|
@@ -27,6 +27,7 @@ var import_utils = require("./utils/index.cjs");
|
|
|
27
27
|
var import_public_logger = require("./utils/public-logger.cjs");
|
|
28
28
|
var import_handleUserConfig = require("./utils/handleUserConfig.cjs");
|
|
29
29
|
var import_defaults = require("./utils/defaults.cjs");
|
|
30
|
+
var import_cslpdata = require("./utils/cslpdata.cjs");
|
|
30
31
|
var import_live_preview = require("./styles/live_preview.cjs");
|
|
31
32
|
var LivePreview = class {
|
|
32
33
|
constructor(initData = import_defaults.userInitData) {
|
|
@@ -48,7 +49,7 @@ var LivePreview = class {
|
|
|
48
49
|
stackDetails: {
|
|
49
50
|
apiKey: "",
|
|
50
51
|
environment: "",
|
|
51
|
-
branch: "
|
|
52
|
+
branch: "",
|
|
52
53
|
contentTypeUid: "",
|
|
53
54
|
entryUid: ""
|
|
54
55
|
},
|
|
@@ -249,7 +250,7 @@ var LivePreview = class {
|
|
|
249
250
|
this.currentElementBesideTooltip = null;
|
|
250
251
|
this.tooltip.style.top = "-100%";
|
|
251
252
|
}
|
|
252
|
-
generateRedirectUrl(content_type_uid, locale = "en-us", entry_uid, preview_field) {
|
|
253
|
+
generateRedirectUrl(content_type_uid, locale = "en-us", entry_uid, variant, preview_field) {
|
|
253
254
|
if (!this.config.stackDetails.apiKey) {
|
|
254
255
|
throw `To use edit tags, you must provide the stack API key. Specify the API key while initializing the Live Preview SDK.
|
|
255
256
|
|
|
@@ -277,11 +278,18 @@ var LivePreview = class {
|
|
|
277
278
|
const port = String(this.config.clientUrlParams.port);
|
|
278
279
|
const environment = String(this.config.stackDetails.environment);
|
|
279
280
|
const branch = String(this.config.stackDetails.branch || "main");
|
|
280
|
-
|
|
281
|
+
let urlHash = `!/stack/${this.config.stackDetails.apiKey}/content-type/${content_type_uid}/${locale ?? "en-us"}/entry/${entry_uid}`;
|
|
282
|
+
if (variant) {
|
|
283
|
+
urlHash += `/variant/${variant}/edit`;
|
|
284
|
+
} else {
|
|
285
|
+
urlHash += `/edit`;
|
|
286
|
+
}
|
|
281
287
|
const url = new URL(`${protocol}://${host}`);
|
|
282
288
|
url.port = port;
|
|
283
289
|
url.hash = urlHash;
|
|
284
|
-
|
|
290
|
+
if (this.config.stackDetails.branch) {
|
|
291
|
+
url.searchParams.append("branch", branch);
|
|
292
|
+
}
|
|
285
293
|
url.searchParams.append("preview-field", preview_field);
|
|
286
294
|
url.searchParams.append("preview-locale", locale ?? "en-us");
|
|
287
295
|
url.searchParams.append("preview-environment", environment);
|
|
@@ -292,16 +300,23 @@ var LivePreview = class {
|
|
|
292
300
|
return;
|
|
293
301
|
const cslpTag = this.tooltip.getAttribute("current-data-cslp");
|
|
294
302
|
if (cslpTag) {
|
|
295
|
-
const
|
|
303
|
+
const {
|
|
304
|
+
content_type_uid,
|
|
305
|
+
entry_uid,
|
|
306
|
+
locale,
|
|
307
|
+
variant,
|
|
308
|
+
fieldPath: field
|
|
309
|
+
} = (0, import_cslpdata.extractDetailsFromCslp)(cslpTag);
|
|
296
310
|
if (window.location !== window.parent.location) {
|
|
297
311
|
window.parent.postMessage(
|
|
298
312
|
{
|
|
299
313
|
from: "live-preview",
|
|
300
314
|
type: "scroll",
|
|
301
315
|
data: {
|
|
302
|
-
field
|
|
316
|
+
field,
|
|
303
317
|
content_type_uid,
|
|
304
318
|
entry_uid,
|
|
319
|
+
variant,
|
|
305
320
|
locale
|
|
306
321
|
}
|
|
307
322
|
},
|
|
@@ -313,7 +328,8 @@ var LivePreview = class {
|
|
|
313
328
|
content_type_uid,
|
|
314
329
|
locale,
|
|
315
330
|
entry_uid,
|
|
316
|
-
|
|
331
|
+
variant,
|
|
332
|
+
field
|
|
317
333
|
);
|
|
318
334
|
window.open(redirectUrl, "_blank");
|
|
319
335
|
} catch (error) {
|
|
@@ -422,7 +438,7 @@ var LivePreview = class {
|
|
|
422
438
|
config: {
|
|
423
439
|
shouldReload: this.config.ssr,
|
|
424
440
|
href: window.location.href,
|
|
425
|
-
sdkVersion: "2.0.
|
|
441
|
+
sdkVersion: "2.0.4"
|
|
426
442
|
}
|
|
427
443
|
}
|
|
428
444
|
},
|