@contentstack/live-preview-utils 1.4.2 → 2.0.0

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.
Files changed (191) hide show
  1. package/README.md +1 -1
  2. package/dist/legacy/compare.cjs +115 -0
  3. package/dist/legacy/compare.cjs.map +1 -0
  4. package/dist/legacy/compare.d.cts +3 -0
  5. package/dist/legacy/compare.d.ts +3 -0
  6. package/dist/legacy/compare.js +80 -0
  7. package/dist/legacy/compare.js.map +1 -0
  8. package/dist/legacy/contentstack-live-preview-HOC.cjs +200 -0
  9. package/dist/legacy/contentstack-live-preview-HOC.cjs.map +1 -0
  10. package/dist/legacy/contentstack-live-preview-HOC.d.cts +26 -0
  11. package/dist/legacy/contentstack-live-preview-HOC.d.ts +26 -0
  12. package/dist/legacy/contentstack-live-preview-HOC.js +169 -0
  13. package/dist/legacy/contentstack-live-preview-HOC.js.map +1 -0
  14. package/dist/legacy/index.cjs +58 -0
  15. package/dist/legacy/index.cjs.map +1 -0
  16. package/dist/legacy/index.d.cts +7 -0
  17. package/dist/legacy/index.d.ts +7 -0
  18. package/dist/legacy/index.js +23 -0
  19. package/dist/legacy/index.js.map +1 -0
  20. package/dist/legacy/live-preview.cjs +511 -0
  21. package/dist/legacy/live-preview.cjs.map +1 -0
  22. package/dist/legacy/live-preview.d.cts +42 -0
  23. package/dist/{src → legacy}/live-preview.d.ts +5 -3
  24. package/dist/legacy/live-preview.js +495 -0
  25. package/dist/legacy/live-preview.js.map +1 -0
  26. package/dist/legacy/styles/compare.cjs +56 -0
  27. package/dist/legacy/styles/compare.cjs.map +1 -0
  28. package/dist/legacy/styles/compare.d.cts +3 -0
  29. package/dist/legacy/styles/compare.d.ts +3 -0
  30. package/dist/legacy/styles/compare.js +31 -0
  31. package/dist/legacy/styles/compare.js.map +1 -0
  32. package/dist/legacy/styles/live_preview.cjs +120 -0
  33. package/dist/legacy/styles/live_preview.cjs.map +1 -0
  34. package/dist/legacy/styles/live_preview.d.cts +8 -0
  35. package/dist/legacy/styles/live_preview.d.ts +8 -0
  36. package/dist/legacy/styles/live_preview.js +95 -0
  37. package/dist/legacy/styles/live_preview.js.map +1 -0
  38. package/dist/legacy/utils/camelCase.cjs +64 -0
  39. package/dist/legacy/utils/camelCase.cjs.map +1 -0
  40. package/dist/legacy/utils/camelCase.d.cts +3 -0
  41. package/dist/legacy/utils/camelCase.d.ts +3 -0
  42. package/dist/legacy/utils/camelCase.js +43 -0
  43. package/dist/legacy/utils/camelCase.js.map +1 -0
  44. package/dist/legacy/utils/compare.cjs +43 -0
  45. package/dist/legacy/utils/compare.cjs.map +1 -0
  46. package/dist/legacy/utils/compare.d.cts +3 -0
  47. package/dist/legacy/utils/compare.d.ts +3 -0
  48. package/dist/legacy/utils/compare.js +18 -0
  49. package/dist/legacy/utils/compare.js.map +1 -0
  50. package/dist/legacy/utils/defaults.cjs +59 -0
  51. package/dist/legacy/utils/defaults.cjs.map +1 -0
  52. package/dist/legacy/utils/defaults.d.cts +5 -0
  53. package/dist/legacy/utils/defaults.d.ts +5 -0
  54. package/dist/legacy/utils/defaults.js +34 -0
  55. package/dist/legacy/utils/defaults.js.map +1 -0
  56. package/dist/legacy/utils/handlePageTraversal.cjs +47 -0
  57. package/dist/legacy/utils/handlePageTraversal.cjs.map +1 -0
  58. package/dist/legacy/utils/handlePageTraversal.d.cts +3 -0
  59. package/dist/legacy/utils/handlePageTraversal.d.ts +3 -0
  60. package/dist/legacy/utils/handlePageTraversal.js +22 -0
  61. package/dist/legacy/utils/handlePageTraversal.js.map +1 -0
  62. package/dist/legacy/utils/handleUserConfig.cjs +124 -0
  63. package/dist/legacy/utils/handleUserConfig.cjs.map +1 -0
  64. package/dist/legacy/utils/handleUserConfig.d.cts +8 -0
  65. package/dist/legacy/utils/handleUserConfig.d.ts +8 -0
  66. package/dist/legacy/utils/handleUserConfig.js +98 -0
  67. package/dist/legacy/utils/handleUserConfig.js.map +1 -0
  68. package/dist/legacy/utils/index.cjs +241 -0
  69. package/dist/legacy/utils/index.cjs.map +1 -0
  70. package/dist/legacy/utils/index.d.cts +12 -0
  71. package/dist/legacy/utils/index.d.ts +12 -0
  72. package/dist/legacy/utils/index.js +209 -0
  73. package/dist/legacy/utils/index.js.map +1 -0
  74. package/dist/legacy/utils/public-logger.cjs +46 -0
  75. package/dist/legacy/utils/public-logger.cjs.map +1 -0
  76. package/dist/legacy/utils/public-logger.d.cts +8 -0
  77. package/dist/{src → legacy}/utils/public-logger.d.ts +3 -2
  78. package/dist/legacy/utils/public-logger.js +21 -0
  79. package/dist/legacy/utils/public-logger.js.map +1 -0
  80. package/dist/legacy/utils/types.cjs +19 -0
  81. package/dist/legacy/utils/types.cjs.map +1 -0
  82. package/dist/legacy/utils/types.d.cts +99 -0
  83. package/dist/{src → legacy}/utils/types.d.ts +19 -18
  84. package/dist/legacy/utils/types.js +1 -0
  85. package/dist/legacy/utils/types.js.map +1 -0
  86. package/dist/modern/compare.cjs +115 -0
  87. package/dist/modern/compare.cjs.map +1 -0
  88. package/dist/modern/compare.d.cts +3 -0
  89. package/dist/modern/compare.d.ts +3 -0
  90. package/dist/modern/compare.js +80 -0
  91. package/dist/modern/compare.js.map +1 -0
  92. package/dist/modern/contentstack-live-preview-HOC.cjs +200 -0
  93. package/dist/modern/contentstack-live-preview-HOC.cjs.map +1 -0
  94. package/dist/modern/contentstack-live-preview-HOC.d.cts +26 -0
  95. package/dist/modern/contentstack-live-preview-HOC.d.ts +26 -0
  96. package/dist/modern/contentstack-live-preview-HOC.js +169 -0
  97. package/dist/modern/contentstack-live-preview-HOC.js.map +1 -0
  98. package/dist/modern/index.cjs +58 -0
  99. package/dist/modern/index.cjs.map +1 -0
  100. package/dist/modern/index.d.cts +7 -0
  101. package/dist/modern/index.d.ts +7 -0
  102. package/dist/modern/index.js +23 -0
  103. package/dist/modern/index.js.map +1 -0
  104. package/dist/modern/live-preview.cjs +509 -0
  105. package/dist/modern/live-preview.cjs.map +1 -0
  106. package/dist/modern/live-preview.d.cts +42 -0
  107. package/dist/modern/live-preview.d.ts +42 -0
  108. package/dist/modern/live-preview.js +493 -0
  109. package/dist/modern/live-preview.js.map +1 -0
  110. package/dist/modern/styles/compare.cjs +56 -0
  111. package/dist/modern/styles/compare.cjs.map +1 -0
  112. package/dist/modern/styles/compare.d.cts +3 -0
  113. package/dist/modern/styles/compare.d.ts +3 -0
  114. package/dist/modern/styles/compare.js +31 -0
  115. package/dist/modern/styles/compare.js.map +1 -0
  116. package/dist/modern/styles/live_preview.cjs +120 -0
  117. package/dist/modern/styles/live_preview.cjs.map +1 -0
  118. package/dist/modern/styles/live_preview.d.cts +8 -0
  119. package/dist/modern/styles/live_preview.d.ts +8 -0
  120. package/dist/modern/styles/live_preview.js +95 -0
  121. package/dist/modern/styles/live_preview.js.map +1 -0
  122. package/dist/modern/utils/camelCase.cjs +63 -0
  123. package/dist/modern/utils/camelCase.cjs.map +1 -0
  124. package/dist/modern/utils/camelCase.d.cts +3 -0
  125. package/dist/modern/utils/camelCase.d.ts +3 -0
  126. package/dist/modern/utils/camelCase.js +42 -0
  127. package/dist/modern/utils/camelCase.js.map +1 -0
  128. package/dist/modern/utils/compare.cjs +43 -0
  129. package/dist/modern/utils/compare.cjs.map +1 -0
  130. package/dist/modern/utils/compare.d.cts +3 -0
  131. package/dist/modern/utils/compare.d.ts +3 -0
  132. package/dist/modern/utils/compare.js +18 -0
  133. package/dist/modern/utils/compare.js.map +1 -0
  134. package/dist/modern/utils/defaults.cjs +59 -0
  135. package/dist/modern/utils/defaults.cjs.map +1 -0
  136. package/dist/modern/utils/defaults.d.cts +5 -0
  137. package/dist/modern/utils/defaults.d.ts +5 -0
  138. package/dist/modern/utils/defaults.js +34 -0
  139. package/dist/modern/utils/defaults.js.map +1 -0
  140. package/dist/modern/utils/handlePageTraversal.cjs +47 -0
  141. package/dist/modern/utils/handlePageTraversal.cjs.map +1 -0
  142. package/dist/modern/utils/handlePageTraversal.d.cts +3 -0
  143. package/dist/modern/utils/handlePageTraversal.d.ts +3 -0
  144. package/dist/modern/utils/handlePageTraversal.js +22 -0
  145. package/dist/modern/utils/handlePageTraversal.js.map +1 -0
  146. package/dist/modern/utils/handleUserConfig.cjs +123 -0
  147. package/dist/modern/utils/handleUserConfig.cjs.map +1 -0
  148. package/dist/modern/utils/handleUserConfig.d.cts +8 -0
  149. package/dist/modern/utils/handleUserConfig.d.ts +8 -0
  150. package/dist/modern/utils/handleUserConfig.js +97 -0
  151. package/dist/modern/utils/handleUserConfig.js.map +1 -0
  152. package/dist/modern/utils/index.cjs +240 -0
  153. package/dist/modern/utils/index.cjs.map +1 -0
  154. package/dist/modern/utils/index.d.cts +12 -0
  155. package/dist/modern/utils/index.d.ts +12 -0
  156. package/dist/modern/utils/index.js +208 -0
  157. package/dist/modern/utils/index.js.map +1 -0
  158. package/dist/modern/utils/public-logger.cjs +46 -0
  159. package/dist/modern/utils/public-logger.cjs.map +1 -0
  160. package/dist/modern/utils/public-logger.d.cts +8 -0
  161. package/dist/modern/utils/public-logger.d.ts +8 -0
  162. package/dist/modern/utils/public-logger.js +21 -0
  163. package/dist/modern/utils/public-logger.js.map +1 -0
  164. package/dist/modern/utils/types.cjs +19 -0
  165. package/dist/modern/utils/types.cjs.map +1 -0
  166. package/dist/modern/utils/types.d.cts +99 -0
  167. package/dist/modern/utils/types.d.ts +99 -0
  168. package/dist/modern/utils/types.js +1 -0
  169. package/dist/modern/utils/types.js.map +1 -0
  170. package/package.json +35 -10
  171. package/dist/index.js +0 -2
  172. package/dist/index.js.map +0 -1
  173. package/dist/main.css +0 -89
  174. package/dist/main.css.map +0 -1
  175. package/dist/mustache.d.ts +0 -2
  176. package/dist/mustache.d.ts.map +0 -1
  177. package/dist/setupJest.d.ts +0 -1
  178. package/dist/setupJest.d.ts.map +0 -1
  179. package/dist/src/contentstack-live-preview-HOC.d.ts +0 -44
  180. package/dist/src/contentstack-live-preview-HOC.d.ts.map +0 -1
  181. package/dist/src/index.d.ts +0 -5
  182. package/dist/src/index.d.ts.map +0 -1
  183. package/dist/src/live-preview.d.ts.map +0 -1
  184. package/dist/src/utils/defaults.d.ts +0 -3
  185. package/dist/src/utils/defaults.d.ts.map +0 -1
  186. package/dist/src/utils/handleUserConfig.d.ts +0 -6
  187. package/dist/src/utils/handleUserConfig.d.ts.map +0 -1
  188. package/dist/src/utils/index.d.ts +0 -10
  189. package/dist/src/utils/index.d.ts.map +0 -1
  190. package/dist/src/utils/public-logger.d.ts.map +0 -1
  191. package/dist/src/utils/types.d.ts.map +0 -1
@@ -0,0 +1,22 @@
1
+ // src/utils/handlePageTraversal.ts
2
+ var handlePageTraversal = () => {
3
+ window.addEventListener("unload", () => {
4
+ const targetURL = document.activeElement.href;
5
+ if (targetURL) {
6
+ window.parent.postMessage(
7
+ {
8
+ from: "live-preview",
9
+ type: "url-change",
10
+ data: {
11
+ targetURL
12
+ }
13
+ },
14
+ "*"
15
+ );
16
+ }
17
+ });
18
+ };
19
+ export {
20
+ handlePageTraversal
21
+ };
22
+ //# sourceMappingURL=handlePageTraversal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/handlePageTraversal.ts"],"sourcesContent":["export const handlePageTraversal = () => {\n window.addEventListener(\"unload\", () => {\n const targetURL = (document.activeElement as HTMLAnchorElement).href;\n if (targetURL) {\n window.parent.postMessage(\n {\n from: \"live-preview\",\n type: \"url-change\",\n data: {\n targetURL,\n },\n },\n \"*\"\n );\n }\n });\n};\n"],"mappings":";AAAO,IAAM,sBAAsB,MAAM;AACrC,SAAO,iBAAiB,UAAU,MAAM;AACpC,UAAM,YAAa,SAAS,cAAoC;AAChE,QAAI,WAAW;AACX,aAAO,OAAO;AAAA,QACV;AAAA,UACI,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,CAAC;AACL;","names":[]}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/utils/handleUserConfig.ts
21
+ var handleUserConfig_exports = {};
22
+ __export(handleUserConfig_exports, {
23
+ handleInitData: () => handleInitData,
24
+ handleUserConfig: () => handleUserConfig
25
+ });
26
+ module.exports = __toCommonJS(handleUserConfig_exports);
27
+ var import__ = require("./index.cjs");
28
+ var import_public_logger = require("./public-logger.cjs");
29
+ var handleClientUrlParams = (existingConfig, userConfig) => {
30
+ existingConfig.clientUrlParams.host = userConfig.host ?? existingConfig.clientUrlParams.host;
31
+ existingConfig.clientUrlParams.protocol = userConfig.protocol ?? existingConfig.clientUrlParams.protocol;
32
+ existingConfig.clientUrlParams.port = userConfig.port ?? existingConfig.clientUrlParams.port;
33
+ if (userConfig.protocol !== void 0 && userConfig.port === void 0) {
34
+ switch (userConfig.protocol) {
35
+ case "http": {
36
+ existingConfig.clientUrlParams.port = 80;
37
+ break;
38
+ }
39
+ case "https": {
40
+ existingConfig.clientUrlParams.port = 443;
41
+ break;
42
+ }
43
+ }
44
+ }
45
+ let host = existingConfig.clientUrlParams.host;
46
+ if (host.endsWith("/")) {
47
+ host = host.slice(0, -1);
48
+ existingConfig.clientUrlParams.host = host;
49
+ }
50
+ existingConfig.clientUrlParams.url = `${existingConfig.clientUrlParams.protocol}://${existingConfig.clientUrlParams.host}:${existingConfig.clientUrlParams.port}`;
51
+ };
52
+ function isInitDataStackSdk(initObj) {
53
+ return Object.prototype.hasOwnProperty.call(initObj, "cachePolicy");
54
+ }
55
+ function isInitDataCommon(initObj) {
56
+ return !isInitDataStackSdk(initObj);
57
+ }
58
+ var handleInitData = (initData, config) => {
59
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
60
+ if (isInitDataStackSdk(initData)) {
61
+ import_public_logger.PublicLogger.warn(
62
+ "Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object."
63
+ );
64
+ const livePreviewObject = (initData == null ? void 0 : initData.live_preview) || {};
65
+ config.ssr = false;
66
+ config.runScriptsOnUpdate = livePreviewObject.runScriptsOnUpdate ?? config.runScriptsOnUpdate;
67
+ config.enable = livePreviewObject.enable ?? config.enable;
68
+ config.cleanCslpOnProduction = livePreviewObject.cleanCslpOnProduction ?? config.cleanCslpOnProduction;
69
+ config.editButton = {
70
+ enable: (0, import__.shouldRenderEditButton)(
71
+ livePreviewObject.editButton ?? config.editButton
72
+ ),
73
+ // added extra check if exclude data passed by user is array or not
74
+ exclude: Array.isArray((_a = livePreviewObject.editButton) == null ? void 0 : _a.exclude) && ((_b = livePreviewObject.editButton) == null ? void 0 : _b.exclude) ? (_c = livePreviewObject.editButton) == null ? void 0 : _c.exclude : config.editButton.exclude ?? [],
75
+ position: ((_d = livePreviewObject.editButton) == null ? void 0 : _d.position) ?? config.editButton.position ?? "top",
76
+ includeByQueryParameter: ((_e = livePreviewObject.editButton) == null ? void 0 : _e.includeByQueryParameter) ?? config.editButton.includeByQueryParameter ?? true
77
+ };
78
+ config.stackSdk = initData;
79
+ if (Object.prototype.hasOwnProperty.call(initData.headers, "api_key") && initData.headers.api_key)
80
+ config.stackDetails.apiKey = initData.headers.api_key;
81
+ if (Object.prototype.hasOwnProperty.call(initData, "environment")) {
82
+ config.stackDetails.environment = initData.environment;
83
+ }
84
+ if (Object.prototype.hasOwnProperty.call(initData, "branch")) {
85
+ config.stackDetails.branch = initData.branch;
86
+ }
87
+ handleClientUrlParams(
88
+ config,
89
+ livePreviewObject.clientUrlParams ?? config.clientUrlParams
90
+ );
91
+ } else if (isInitDataCommon(initData)) {
92
+ const stackSdk = initData.stackSdk || config.stackSdk;
93
+ config.enable = initData.enable ?? ((_f = stackSdk.live_preview) == null ? void 0 : _f.enable) ?? config.enable;
94
+ config.ssr = initData.ssr ?? ((_g = stackSdk.live_preview) == null ? void 0 : _g.ssr) ?? (typeof initData.stackSdk === "object" ? false : true) ?? true;
95
+ config.runScriptsOnUpdate = initData.runScriptsOnUpdate ?? ((_h = stackSdk.live_preview) == null ? void 0 : _h.runScriptsOnUpdate) ?? config.runScriptsOnUpdate;
96
+ config.stackSdk = stackSdk;
97
+ config.cleanCslpOnProduction = initData.cleanCslpOnProduction ?? ((_i = stackSdk.live_preview) == null ? void 0 : _i.cleanCslpOnProduction) ?? config.cleanCslpOnProduction;
98
+ config.editButton = {
99
+ enable: (0, import__.shouldRenderEditButton)(
100
+ initData.editButton ?? ((_j = stackSdk.live_preview) == null ? void 0 : _j.editButton) ?? config.editButton
101
+ ),
102
+ // added extra check if exclude data passed by user is array or not
103
+ exclude: Array.isArray((_k = initData.editButton) == null ? void 0 : _k.exclude) && ((_l = initData.editButton) == null ? void 0 : _l.exclude) ? (_m = initData.editButton) == null ? void 0 : _m.exclude : Array.isArray((_n = stackSdk.live_preview) == null ? void 0 : _n.exclude) && ((_o = stackSdk.live_preview) == null ? void 0 : _o.exclude) ? (_p = stackSdk.live_preview) == null ? void 0 : _p.exclude : config.editButton.exclude ?? [],
104
+ position: ((_q = initData.editButton) == null ? void 0 : _q.position) ?? ((_r = stackSdk.live_preview) == null ? void 0 : _r.position) ?? config.editButton.position ?? "top",
105
+ includeByQueryParameter: ((_s = initData.editButton) == null ? void 0 : _s.includeByQueryParameter) ?? ((_t = stackSdk.live_preview) == null ? void 0 : _t.includeByQueryParameter) ?? config.editButton.includeByQueryParameter ?? true
106
+ };
107
+ config.stackDetails.apiKey = ((_u = initData.stackDetails) == null ? void 0 : _u.apiKey) ?? ((_v = stackSdk.headers) == null ? void 0 : _v.api_key) ?? config.stackDetails.apiKey;
108
+ config.stackDetails.environment = ((_w = initData.stackDetails) == null ? void 0 : _w.environment) ?? stackSdk.environment ?? config.stackDetails.environment;
109
+ config.stackDetails.branch = ((_x = initData.stackDetails) == null ? void 0 : _x.branch) ?? config.stackDetails.branch ?? "main";
110
+ handleClientUrlParams(
111
+ config,
112
+ initData.clientUrlParams ?? ((_y = stackSdk.live_preview) == null ? void 0 : _y.clientUrlParams) ?? config.clientUrlParams
113
+ );
114
+ }
115
+ };
116
+ var handleUserConfig = {
117
+ clientUrlParams: handleClientUrlParams
118
+ };
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ handleInitData,
122
+ handleUserConfig
123
+ });
124
+ //# sourceMappingURL=handleUserConfig.cjs.map
@@ -0,0 +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 if (\n Object.prototype.hasOwnProperty.call(initData.headers, \"api_key\") &&\n initData.headers.api_key\n )\n config.stackDetails.apiKey = initData.headers.api_key;\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 ??\n stackSdk.headers?.api_key ??\n 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 ??\n config.stackDetails.branch ??\n \"main\";\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":[]}
@@ -0,0 +1,8 @@
1
+ import { IInitData, IStackSdk, IConfig, IClientUrlParams } from './types.cjs';
2
+
3
+ declare const handleInitData: (initData: Partial<IInitData> | Partial<IStackSdk>, config: IConfig) => void;
4
+ declare const handleUserConfig: {
5
+ clientUrlParams: (existingConfig: IConfig, userConfig: Partial<IClientUrlParams>) => void;
6
+ };
7
+
8
+ export { handleInitData, handleUserConfig };
@@ -0,0 +1,8 @@
1
+ import { IInitData, IStackSdk, IConfig, IClientUrlParams } from './types.js';
2
+
3
+ declare const handleInitData: (initData: Partial<IInitData> | Partial<IStackSdk>, config: IConfig) => void;
4
+ declare const handleUserConfig: {
5
+ clientUrlParams: (existingConfig: IConfig, userConfig: Partial<IClientUrlParams>) => void;
6
+ };
7
+
8
+ export { handleInitData, handleUserConfig };
@@ -0,0 +1,98 @@
1
+ // src/utils/handleUserConfig.ts
2
+ import { shouldRenderEditButton } from "./index.js";
3
+ import { PublicLogger } from "./public-logger.js";
4
+ var handleClientUrlParams = (existingConfig, userConfig) => {
5
+ existingConfig.clientUrlParams.host = userConfig.host ?? existingConfig.clientUrlParams.host;
6
+ existingConfig.clientUrlParams.protocol = userConfig.protocol ?? existingConfig.clientUrlParams.protocol;
7
+ existingConfig.clientUrlParams.port = userConfig.port ?? existingConfig.clientUrlParams.port;
8
+ if (userConfig.protocol !== void 0 && userConfig.port === void 0) {
9
+ switch (userConfig.protocol) {
10
+ case "http": {
11
+ existingConfig.clientUrlParams.port = 80;
12
+ break;
13
+ }
14
+ case "https": {
15
+ existingConfig.clientUrlParams.port = 443;
16
+ break;
17
+ }
18
+ }
19
+ }
20
+ let host = existingConfig.clientUrlParams.host;
21
+ if (host.endsWith("/")) {
22
+ host = host.slice(0, -1);
23
+ existingConfig.clientUrlParams.host = host;
24
+ }
25
+ existingConfig.clientUrlParams.url = `${existingConfig.clientUrlParams.protocol}://${existingConfig.clientUrlParams.host}:${existingConfig.clientUrlParams.port}`;
26
+ };
27
+ function isInitDataStackSdk(initObj) {
28
+ return Object.prototype.hasOwnProperty.call(initObj, "cachePolicy");
29
+ }
30
+ function isInitDataCommon(initObj) {
31
+ return !isInitDataStackSdk(initObj);
32
+ }
33
+ var handleInitData = (initData, config) => {
34
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
35
+ if (isInitDataStackSdk(initData)) {
36
+ PublicLogger.warn(
37
+ "Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object."
38
+ );
39
+ const livePreviewObject = (initData == null ? void 0 : initData.live_preview) || {};
40
+ config.ssr = false;
41
+ config.runScriptsOnUpdate = livePreviewObject.runScriptsOnUpdate ?? config.runScriptsOnUpdate;
42
+ config.enable = livePreviewObject.enable ?? config.enable;
43
+ config.cleanCslpOnProduction = livePreviewObject.cleanCslpOnProduction ?? config.cleanCslpOnProduction;
44
+ config.editButton = {
45
+ enable: shouldRenderEditButton(
46
+ livePreviewObject.editButton ?? config.editButton
47
+ ),
48
+ // added extra check if exclude data passed by user is array or not
49
+ exclude: Array.isArray((_a = livePreviewObject.editButton) == null ? void 0 : _a.exclude) && ((_b = livePreviewObject.editButton) == null ? void 0 : _b.exclude) ? (_c = livePreviewObject.editButton) == null ? void 0 : _c.exclude : config.editButton.exclude ?? [],
50
+ position: ((_d = livePreviewObject.editButton) == null ? void 0 : _d.position) ?? config.editButton.position ?? "top",
51
+ includeByQueryParameter: ((_e = livePreviewObject.editButton) == null ? void 0 : _e.includeByQueryParameter) ?? config.editButton.includeByQueryParameter ?? true
52
+ };
53
+ config.stackSdk = initData;
54
+ if (Object.prototype.hasOwnProperty.call(initData.headers, "api_key") && initData.headers.api_key)
55
+ config.stackDetails.apiKey = initData.headers.api_key;
56
+ if (Object.prototype.hasOwnProperty.call(initData, "environment")) {
57
+ config.stackDetails.environment = initData.environment;
58
+ }
59
+ if (Object.prototype.hasOwnProperty.call(initData, "branch")) {
60
+ config.stackDetails.branch = initData.branch;
61
+ }
62
+ handleClientUrlParams(
63
+ config,
64
+ livePreviewObject.clientUrlParams ?? config.clientUrlParams
65
+ );
66
+ } else if (isInitDataCommon(initData)) {
67
+ const stackSdk = initData.stackSdk || config.stackSdk;
68
+ config.enable = initData.enable ?? ((_f = stackSdk.live_preview) == null ? void 0 : _f.enable) ?? config.enable;
69
+ config.ssr = initData.ssr ?? ((_g = stackSdk.live_preview) == null ? void 0 : _g.ssr) ?? (typeof initData.stackSdk === "object" ? false : true) ?? true;
70
+ config.runScriptsOnUpdate = initData.runScriptsOnUpdate ?? ((_h = stackSdk.live_preview) == null ? void 0 : _h.runScriptsOnUpdate) ?? config.runScriptsOnUpdate;
71
+ config.stackSdk = stackSdk;
72
+ config.cleanCslpOnProduction = initData.cleanCslpOnProduction ?? ((_i = stackSdk.live_preview) == null ? void 0 : _i.cleanCslpOnProduction) ?? config.cleanCslpOnProduction;
73
+ config.editButton = {
74
+ enable: shouldRenderEditButton(
75
+ initData.editButton ?? ((_j = stackSdk.live_preview) == null ? void 0 : _j.editButton) ?? config.editButton
76
+ ),
77
+ // added extra check if exclude data passed by user is array or not
78
+ exclude: Array.isArray((_k = initData.editButton) == null ? void 0 : _k.exclude) && ((_l = initData.editButton) == null ? void 0 : _l.exclude) ? (_m = initData.editButton) == null ? void 0 : _m.exclude : Array.isArray((_n = stackSdk.live_preview) == null ? void 0 : _n.exclude) && ((_o = stackSdk.live_preview) == null ? void 0 : _o.exclude) ? (_p = stackSdk.live_preview) == null ? void 0 : _p.exclude : config.editButton.exclude ?? [],
79
+ position: ((_q = initData.editButton) == null ? void 0 : _q.position) ?? ((_r = stackSdk.live_preview) == null ? void 0 : _r.position) ?? config.editButton.position ?? "top",
80
+ includeByQueryParameter: ((_s = initData.editButton) == null ? void 0 : _s.includeByQueryParameter) ?? ((_t = stackSdk.live_preview) == null ? void 0 : _t.includeByQueryParameter) ?? config.editButton.includeByQueryParameter ?? true
81
+ };
82
+ config.stackDetails.apiKey = ((_u = initData.stackDetails) == null ? void 0 : _u.apiKey) ?? ((_v = stackSdk.headers) == null ? void 0 : _v.api_key) ?? config.stackDetails.apiKey;
83
+ config.stackDetails.environment = ((_w = initData.stackDetails) == null ? void 0 : _w.environment) ?? stackSdk.environment ?? config.stackDetails.environment;
84
+ config.stackDetails.branch = ((_x = initData.stackDetails) == null ? void 0 : _x.branch) ?? config.stackDetails.branch ?? "main";
85
+ handleClientUrlParams(
86
+ config,
87
+ initData.clientUrlParams ?? ((_y = stackSdk.live_preview) == null ? void 0 : _y.clientUrlParams) ?? config.clientUrlParams
88
+ );
89
+ }
90
+ };
91
+ var handleUserConfig = {
92
+ clientUrlParams: handleClientUrlParams
93
+ };
94
+ export {
95
+ handleInitData,
96
+ handleUserConfig
97
+ };
98
+ //# sourceMappingURL=handleUserConfig.js.map
@@ -0,0 +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 if (\n Object.prototype.hasOwnProperty.call(initData.headers, \"api_key\") &&\n initData.headers.api_key\n )\n config.stackDetails.apiKey = initData.headers.api_key;\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 ??\n stackSdk.headers?.api_key ??\n 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 ??\n config.stackDetails.branch ??\n \"main\";\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":[]}
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/utils/index.ts
21
+ var utils_exports = {};
22
+ __export(utils_exports, {
23
+ addLivePreviewQueryTags: () => addLivePreviewQueryTags,
24
+ createMultipleEditButton: () => createMultipleEditButton,
25
+ createSingularEditButton: () => createSingularEditButton,
26
+ getEditButtonPosition: () => getEditButtonPosition,
27
+ hasWindow: () => hasWindow,
28
+ shouldRenderEditButton: () => shouldRenderEditButton,
29
+ tooltipMultipleInnerHtml: () => tooltipMultipleInnerHtml,
30
+ tooltipSingularInnerHtml: () => tooltipSingularInnerHtml
31
+ });
32
+ module.exports = __toCommonJS(utils_exports);
33
+ var import_live_preview = require("../styles/live_preview.cjs");
34
+ var import_public_logger = require("./public-logger.cjs");
35
+ function hasWindow() {
36
+ return typeof window !== "undefined";
37
+ }
38
+ var tooltipSingularInnerHtml = `<div class="singular edit-button">
39
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
40
+ <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>
41
+ <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>
42
+ </svg>Edit
43
+ </div>`;
44
+ var tooltipMultipleInnerHtml = `<div class="edit-button" title="edit">
45
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
46
+ <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>
47
+ <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>
48
+ </svg>
49
+ </div>
50
+ <div title="click element" class="external-link-button">
51
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
52
+ <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" />
53
+ <path d="M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z" fill="#718096" />
54
+ </svg>
55
+ </div>`;
56
+ var createSingularEditButton = (editCallback) => {
57
+ const singularEditButton = document.createElement("div");
58
+ singularEditButton.classList.add("cslp-tooltip-child", "singular");
59
+ singularEditButton.setAttribute(
60
+ "data-test-id",
61
+ "cslp-singular-edit-button"
62
+ );
63
+ singularEditButton.innerHTML = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
64
+ <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>
65
+ <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>
66
+ </svg>Edit`;
67
+ singularEditButton.addEventListener("click", editCallback);
68
+ return singularEditButton;
69
+ };
70
+ var createMultipleEditButton = (editCallback, linkCallback) => {
71
+ const multipleEditButton = document.createElement("div");
72
+ multipleEditButton.classList.add("cslp-tooltip-child");
73
+ multipleEditButton.setAttribute("data-title", "Edit");
74
+ multipleEditButton.setAttribute(
75
+ "data-test-id",
76
+ "cslp-multiple-edit-button"
77
+ );
78
+ multipleEditButton.innerHTML = ` <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
79
+ <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>
80
+ <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>
81
+ </svg>`;
82
+ multipleEditButton.addEventListener("click", editCallback);
83
+ const multipleExternalLinkButton = document.createElement("div");
84
+ multipleExternalLinkButton.classList.add("cslp-tooltip-child");
85
+ multipleExternalLinkButton.setAttribute("data-title", "Go to link");
86
+ multipleExternalLinkButton.setAttribute(
87
+ "data-test-id",
88
+ "cslp-multiple-external-link-button"
89
+ );
90
+ multipleExternalLinkButton.innerHTML = ` <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
91
+ <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" />
92
+ <path d="M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z" fill="#718096" />
93
+ </svg>`;
94
+ multipleExternalLinkButton.addEventListener("click", linkCallback);
95
+ const multipleEditFragment = document.createDocumentFragment();
96
+ multipleEditFragment.appendChild(multipleEditButton);
97
+ multipleEditFragment.appendChild(multipleExternalLinkButton);
98
+ const multipleDiv = document.createElement("div");
99
+ multipleDiv.appendChild(multipleEditFragment);
100
+ multipleDiv.classList.add((0, import_live_preview.livePreviewStyles)()["multiple"]);
101
+ return multipleDiv;
102
+ };
103
+ function addLivePreviewQueryTags(link) {
104
+ try {
105
+ const docUrl = new URL(document.location.href);
106
+ const newUrl = new URL(link);
107
+ const livePreviewHash = docUrl.searchParams.get("live_preview");
108
+ const ctUid = docUrl.searchParams.get("content_type_uid");
109
+ const entryUid = docUrl.searchParams.get("entry_uid");
110
+ if (livePreviewHash && ctUid && entryUid) {
111
+ newUrl.searchParams.set("live_preview", livePreviewHash);
112
+ newUrl.searchParams.set("content_type_uid", ctUid);
113
+ newUrl.searchParams.set("entry_uid", entryUid);
114
+ }
115
+ return newUrl.href;
116
+ } catch (error) {
117
+ import_public_logger.PublicLogger.error("Error while adding live preview to URL");
118
+ return link;
119
+ }
120
+ }
121
+ function inIframe() {
122
+ return window.location !== window.parent.location;
123
+ }
124
+ function shouldRenderEditButton(editButton) {
125
+ var _a, _b;
126
+ if (!editButton.enable) {
127
+ if (editButton.enable === void 0)
128
+ import_public_logger.PublicLogger.error(
129
+ "enable key is required inside editButton object"
130
+ );
131
+ return false;
132
+ }
133
+ try {
134
+ const currentLocation = new URL(window.location.href);
135
+ const cslpButtonQueryValue = currentLocation.searchParams.get("cslp-buttons");
136
+ if (cslpButtonQueryValue !== null && editButton.includeByQueryParameter !== false)
137
+ return cslpButtonQueryValue === "false" ? false : true;
138
+ } catch (error) {
139
+ import_public_logger.PublicLogger.error(error);
140
+ }
141
+ if (inIframe() && ((_a = editButton.exclude) == null ? void 0 : _a.find(
142
+ (exclude) => exclude === "insideLivePreviewPortal"
143
+ ))) {
144
+ return false;
145
+ } else if (inIframe()) {
146
+ return true;
147
+ }
148
+ if ((_b = editButton.exclude) == null ? void 0 : _b.find(
149
+ (exclude) => exclude === "outsideLivePreviewPortal"
150
+ )) {
151
+ return false;
152
+ }
153
+ return true;
154
+ }
155
+ function getEditButtonPosition(currentHoveredElement, defaultPosition) {
156
+ if (!currentHoveredElement)
157
+ return { upperBoundOfTooltip: 0, leftBoundOfTooltip: 0 };
158
+ const cslpButtonPosition = currentHoveredElement.getAttribute(
159
+ "data-cslp-button-position"
160
+ );
161
+ if (cslpButtonPosition) {
162
+ return calculateEditButtonPosition(
163
+ currentHoveredElement,
164
+ cslpButtonPosition
165
+ );
166
+ }
167
+ return calculateEditButtonPosition(
168
+ currentHoveredElement,
169
+ defaultPosition || "top"
170
+ );
171
+ }
172
+ function calculateEditButtonPosition(currentHoveredElement, cslpButtonPosition) {
173
+ const editButtonPosition = {
174
+ upperBoundOfTooltip: 0,
175
+ leftBoundOfTooltip: 0
176
+ };
177
+ const currentRectOfElement = currentHoveredElement.getBoundingClientRect();
178
+ try {
179
+ const buttonMeasurementValues = {
180
+ width: 72,
181
+ halfWidth: 36,
182
+ height: 40,
183
+ basicMargin: 5,
184
+ widthWithMargin: 77
185
+ };
186
+ switch (cslpButtonPosition) {
187
+ case "top-center":
188
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.height;
189
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.width / 2 - buttonMeasurementValues.halfWidth + currentRectOfElement.left;
190
+ break;
191
+ case "top-right":
192
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.height;
193
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.right - buttonMeasurementValues.width;
194
+ break;
195
+ case "right":
196
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.basicMargin;
197
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.right + buttonMeasurementValues.basicMargin;
198
+ break;
199
+ case "bottom":
200
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.bottom + buttonMeasurementValues.basicMargin;
201
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.left - buttonMeasurementValues.basicMargin;
202
+ break;
203
+ case "bottom-left":
204
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.bottom + buttonMeasurementValues.basicMargin;
205
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.left - buttonMeasurementValues.basicMargin;
206
+ break;
207
+ case "bottom-center":
208
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.bottom + buttonMeasurementValues.basicMargin;
209
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.width / 2 - buttonMeasurementValues.halfWidth + currentRectOfElement.left;
210
+ break;
211
+ case "bottom-right":
212
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.bottom + buttonMeasurementValues.basicMargin;
213
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.right - buttonMeasurementValues.width;
214
+ break;
215
+ case "left":
216
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.basicMargin;
217
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.left - buttonMeasurementValues.widthWithMargin;
218
+ break;
219
+ default:
220
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.height;
221
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.left - buttonMeasurementValues.basicMargin;
222
+ break;
223
+ }
224
+ return editButtonPosition;
225
+ } catch (error) {
226
+ import_public_logger.PublicLogger.error(error);
227
+ return editButtonPosition;
228
+ }
229
+ }
230
+ // Annotate the CommonJS export names for ESM import in node:
231
+ 0 && (module.exports = {
232
+ addLivePreviewQueryTags,
233
+ createMultipleEditButton,
234
+ createSingularEditButton,
235
+ getEditButtonPosition,
236
+ hasWindow,
237
+ shouldRenderEditButton,
238
+ tooltipMultipleInnerHtml,
239
+ tooltipSingularInnerHtml
240
+ });
241
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/index.ts"],"sourcesContent":["import { livePreviewStyles } from \"../styles/live_preview\";\nimport { PublicLogger } from \"./public-logger\";\nimport { IConfigEditButton, IEditButtonPosition } from \"./types\";\n\nexport function hasWindow(): boolean {\n return typeof window !== \"undefined\";\n}\n\nexport const tooltipSingularInnerHtml = `<div class=\"singular edit-button\">\n <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 </div>`;\n\nexport const tooltipMultipleInnerHtml = `<div class=\"edit-button\" title=\"edit\">\n <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 </div>\n <div title=\"click element\" class=\"external-link-button\">\n <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 </div>`;\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(livePreviewStyles()[\"multiple\"]);\n\n return multipleDiv;\n};\n\nexport function addLivePreviewQueryTags(link: string): string {\n try {\n const docUrl: URL = new URL(document.location.href);\n const newUrl: URL = new URL(link);\n const livePreviewHash: string | null =\n docUrl.searchParams.get(\"live_preview\");\n const ctUid: string | null =\n docUrl.searchParams.get(\"content_type_uid\");\n const entryUid: string | null = docUrl.searchParams.get(\"entry_uid\");\n if (livePreviewHash && ctUid && entryUid) {\n newUrl.searchParams.set(\"live_preview\", livePreviewHash);\n newUrl.searchParams.set(\"content_type_uid\", ctUid);\n newUrl.searchParams.set(\"entry_uid\", entryUid);\n }\n return newUrl.href;\n } catch (error) {\n PublicLogger.error(\"Error while adding live preview to URL\");\n return link;\n }\n}\n\nfunction inIframe() {\n return window.location !== window.parent.location;\n}\n\nexport function shouldRenderEditButton(editButton: IConfigEditButton): boolean {\n if (!editButton.enable) {\n if (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 if (\n cslpButtonQueryValue !== null &&\n editButton.includeByQueryParameter !== false\n )\n return cslpButtonQueryValue === \"false\" ? false : true;\n } catch (error) {\n PublicLogger.error(error);\n }\n\n // case if inside live preview\n if (\n inIframe() &&\n editButton.exclude?.find(\n (exclude) => exclude === \"insideLivePreviewPortal\"\n )\n ) {\n return false;\n } else if (inIframe()) {\n return true;\n }\n\n // case outside live preview\n if (\n editButton.exclude?.find(\n (exclude) => exclude === \"outsideLivePreviewPortal\"\n )\n ) {\n return false;\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 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\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"],"mappings":"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","names":[]}
@@ -0,0 +1,12 @@
1
+ import { IConfigEditButton, IEditButtonPosition } from './types.cjs';
2
+
3
+ declare function hasWindow(): boolean;
4
+ declare const tooltipSingularInnerHtml = "<div class=\"singular edit-button\">\n <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 </div>";
5
+ declare const tooltipMultipleInnerHtml = "<div class=\"edit-button\" title=\"edit\">\n <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 </div>\n <div title=\"click element\" class=\"external-link-button\">\n <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 </div>";
6
+ declare const createSingularEditButton: (editCallback: (e: MouseEvent) => void) => HTMLDivElement;
7
+ declare const createMultipleEditButton: (editCallback: (e: MouseEvent) => void, linkCallback: (e: MouseEvent) => void) => HTMLDivElement;
8
+ declare function addLivePreviewQueryTags(link: string): string;
9
+ declare function shouldRenderEditButton(editButton: IConfigEditButton): boolean;
10
+ declare function getEditButtonPosition(currentHoveredElement: HTMLElement | null, defaultPosition: string | undefined): IEditButtonPosition;
11
+
12
+ export { addLivePreviewQueryTags, createMultipleEditButton, createSingularEditButton, getEditButtonPosition, hasWindow, shouldRenderEditButton, tooltipMultipleInnerHtml, tooltipSingularInnerHtml };