@contentstack/live-preview-utils 1.4.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +1 -10
  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,208 @@
1
+ // src/utils/index.ts
2
+ import { livePreviewStyles } from "../styles/live_preview.js";
3
+ import { PublicLogger } from "./public-logger.js";
4
+ function hasWindow() {
5
+ return typeof window !== "undefined";
6
+ }
7
+ var tooltipSingularInnerHtml = `<div class="singular edit-button">
8
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
9
+ <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>
10
+ <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>
11
+ </svg>Edit
12
+ </div>`;
13
+ var tooltipMultipleInnerHtml = `<div class="edit-button" title="edit">
14
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
15
+ <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>
16
+ <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>
17
+ </svg>
18
+ </div>
19
+ <div title="click element" class="external-link-button">
20
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
21
+ <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" />
22
+ <path d="M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z" fill="#718096" />
23
+ </svg>
24
+ </div>`;
25
+ var createSingularEditButton = (editCallback) => {
26
+ const singularEditButton = document.createElement("div");
27
+ singularEditButton.classList.add("cslp-tooltip-child", "singular");
28
+ singularEditButton.setAttribute(
29
+ "data-test-id",
30
+ "cslp-singular-edit-button"
31
+ );
32
+ singularEditButton.innerHTML = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
33
+ <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>
34
+ <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>
35
+ </svg>Edit`;
36
+ singularEditButton.addEventListener("click", editCallback);
37
+ return singularEditButton;
38
+ };
39
+ var createMultipleEditButton = (editCallback, linkCallback) => {
40
+ const multipleEditButton = document.createElement("div");
41
+ multipleEditButton.classList.add("cslp-tooltip-child");
42
+ multipleEditButton.setAttribute("data-title", "Edit");
43
+ multipleEditButton.setAttribute(
44
+ "data-test-id",
45
+ "cslp-multiple-edit-button"
46
+ );
47
+ multipleEditButton.innerHTML = ` <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
48
+ <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>
49
+ <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>
50
+ </svg>`;
51
+ multipleEditButton.addEventListener("click", editCallback);
52
+ const multipleExternalLinkButton = document.createElement("div");
53
+ multipleExternalLinkButton.classList.add("cslp-tooltip-child");
54
+ multipleExternalLinkButton.setAttribute("data-title", "Go to link");
55
+ multipleExternalLinkButton.setAttribute(
56
+ "data-test-id",
57
+ "cslp-multiple-external-link-button"
58
+ );
59
+ multipleExternalLinkButton.innerHTML = ` <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
60
+ <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" />
61
+ <path d="M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z" fill="#718096" />
62
+ </svg>`;
63
+ multipleExternalLinkButton.addEventListener("click", linkCallback);
64
+ const multipleEditFragment = document.createDocumentFragment();
65
+ multipleEditFragment.appendChild(multipleEditButton);
66
+ multipleEditFragment.appendChild(multipleExternalLinkButton);
67
+ const multipleDiv = document.createElement("div");
68
+ multipleDiv.appendChild(multipleEditFragment);
69
+ multipleDiv.classList.add(livePreviewStyles()["multiple"]);
70
+ return multipleDiv;
71
+ };
72
+ function addLivePreviewQueryTags(link) {
73
+ try {
74
+ const docUrl = new URL(document.location.href);
75
+ const newUrl = new URL(link);
76
+ const livePreviewHash = docUrl.searchParams.get("live_preview");
77
+ const ctUid = docUrl.searchParams.get("content_type_uid");
78
+ const entryUid = docUrl.searchParams.get("entry_uid");
79
+ if (livePreviewHash && ctUid && entryUid) {
80
+ newUrl.searchParams.set("live_preview", livePreviewHash);
81
+ newUrl.searchParams.set("content_type_uid", ctUid);
82
+ newUrl.searchParams.set("entry_uid", entryUid);
83
+ }
84
+ return newUrl.href;
85
+ } catch (error) {
86
+ PublicLogger.error("Error while adding live preview to URL");
87
+ return link;
88
+ }
89
+ }
90
+ function inIframe() {
91
+ return window.location !== window.parent.location;
92
+ }
93
+ function shouldRenderEditButton(editButton) {
94
+ if (!editButton.enable) {
95
+ if (editButton.enable === void 0)
96
+ PublicLogger.error(
97
+ "enable key is required inside editButton object"
98
+ );
99
+ return false;
100
+ }
101
+ try {
102
+ const currentLocation = new URL(window.location.href);
103
+ const cslpButtonQueryValue = currentLocation.searchParams.get("cslp-buttons");
104
+ if (cslpButtonQueryValue !== null && editButton.includeByQueryParameter !== false)
105
+ return cslpButtonQueryValue === "false" ? false : true;
106
+ } catch (error) {
107
+ PublicLogger.error(error);
108
+ }
109
+ if (inIframe() && editButton.exclude?.find(
110
+ (exclude) => exclude === "insideLivePreviewPortal"
111
+ )) {
112
+ return false;
113
+ } else if (inIframe()) {
114
+ return true;
115
+ }
116
+ if (editButton.exclude?.find(
117
+ (exclude) => exclude === "outsideLivePreviewPortal"
118
+ )) {
119
+ return false;
120
+ }
121
+ return true;
122
+ }
123
+ function getEditButtonPosition(currentHoveredElement, defaultPosition) {
124
+ if (!currentHoveredElement)
125
+ return { upperBoundOfTooltip: 0, leftBoundOfTooltip: 0 };
126
+ const cslpButtonPosition = currentHoveredElement.getAttribute(
127
+ "data-cslp-button-position"
128
+ );
129
+ if (cslpButtonPosition) {
130
+ return calculateEditButtonPosition(
131
+ currentHoveredElement,
132
+ cslpButtonPosition
133
+ );
134
+ }
135
+ return calculateEditButtonPosition(
136
+ currentHoveredElement,
137
+ defaultPosition || "top"
138
+ );
139
+ }
140
+ function calculateEditButtonPosition(currentHoveredElement, cslpButtonPosition) {
141
+ const editButtonPosition = {
142
+ upperBoundOfTooltip: 0,
143
+ leftBoundOfTooltip: 0
144
+ };
145
+ const currentRectOfElement = currentHoveredElement.getBoundingClientRect();
146
+ try {
147
+ const buttonMeasurementValues = {
148
+ width: 72,
149
+ halfWidth: 36,
150
+ height: 40,
151
+ basicMargin: 5,
152
+ widthWithMargin: 77
153
+ };
154
+ switch (cslpButtonPosition) {
155
+ case "top-center":
156
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.height;
157
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.width / 2 - buttonMeasurementValues.halfWidth + currentRectOfElement.left;
158
+ break;
159
+ case "top-right":
160
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.height;
161
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.right - buttonMeasurementValues.width;
162
+ break;
163
+ case "right":
164
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.basicMargin;
165
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.right + buttonMeasurementValues.basicMargin;
166
+ break;
167
+ case "bottom":
168
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.bottom + buttonMeasurementValues.basicMargin;
169
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.left - buttonMeasurementValues.basicMargin;
170
+ break;
171
+ case "bottom-left":
172
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.bottom + buttonMeasurementValues.basicMargin;
173
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.left - buttonMeasurementValues.basicMargin;
174
+ break;
175
+ case "bottom-center":
176
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.bottom + buttonMeasurementValues.basicMargin;
177
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.width / 2 - buttonMeasurementValues.halfWidth + currentRectOfElement.left;
178
+ break;
179
+ case "bottom-right":
180
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.bottom + buttonMeasurementValues.basicMargin;
181
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.right - buttonMeasurementValues.width;
182
+ break;
183
+ case "left":
184
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.basicMargin;
185
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.left - buttonMeasurementValues.widthWithMargin;
186
+ break;
187
+ default:
188
+ editButtonPosition.upperBoundOfTooltip = currentRectOfElement.top - buttonMeasurementValues.height;
189
+ editButtonPosition.leftBoundOfTooltip = currentRectOfElement.left - buttonMeasurementValues.basicMargin;
190
+ break;
191
+ }
192
+ return editButtonPosition;
193
+ } catch (error) {
194
+ PublicLogger.error(error);
195
+ return editButtonPosition;
196
+ }
197
+ }
198
+ export {
199
+ addLivePreviewQueryTags,
200
+ createMultipleEditButton,
201
+ createSingularEditButton,
202
+ getEditButtonPosition,
203
+ hasWindow,
204
+ shouldRenderEditButton,
205
+ tooltipMultipleInnerHtml,
206
+ tooltipSingularInnerHtml
207
+ };
208
+ //# sourceMappingURL=index.js.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,46 @@
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/public-logger.ts
21
+ var public_logger_exports = {};
22
+ __export(public_logger_exports, {
23
+ PublicLogger: () => PublicLogger
24
+ });
25
+ module.exports = __toCommonJS(public_logger_exports);
26
+ var PublicLogger = class {
27
+ static logEvent(logCallback, message) {
28
+ if (process.env.NODE_ENV !== "test") {
29
+ logCallback("Live_Preview_SDK:", ...message);
30
+ }
31
+ }
32
+ static error(...data) {
33
+ this.logEvent(console.error, data);
34
+ }
35
+ static warn(...data) {
36
+ this.logEvent(console.warn, data);
37
+ }
38
+ static debug(...data) {
39
+ this.logEvent(console.debug, data);
40
+ }
41
+ };
42
+ // Annotate the CommonJS export names for ESM import in node:
43
+ 0 && (module.exports = {
44
+ PublicLogger
45
+ });
46
+ //# sourceMappingURL=public-logger.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/public-logger.ts"],"sourcesContent":["export class PublicLogger {\n private static logEvent(\n logCallback:\n | Console[\"log\"]\n | Console[\"warn\"]\n | Console[\"error\"]\n | Console[\"debug\"]\n | Console[\"info\"],\n message: any[]\n ): void {\n if (process.env.NODE_ENV !== \"test\") {\n logCallback(\"Live_Preview_SDK:\", ...message);\n }\n }\n\n public static error(...data: any[]): void {\n this.logEvent(console.error, data);\n }\n\n public static warn(...data: any[]): void {\n this.logEvent(console.warn, data);\n }\n\n public static debug(...data: any[]): void {\n this.logEvent(console.debug, data);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,eAAN,MAAmB;AAAA,EACtB,OAAe,SACX,aAMA,SACI;AACJ,QAAI,QAAQ,IAAI,aAAa,QAAQ;AACjC,kBAAY,qBAAqB,GAAG,OAAO;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AAAA,EAEA,OAAc,QAAQ,MAAmB;AACrC,SAAK,SAAS,QAAQ,MAAM,IAAI;AAAA,EACpC;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AACJ;","names":[]}
@@ -0,0 +1,8 @@
1
+ declare class PublicLogger {
2
+ private static logEvent;
3
+ static error(...data: any[]): void;
4
+ static warn(...data: any[]): void;
5
+ static debug(...data: any[]): void;
6
+ }
7
+
8
+ export { PublicLogger };
@@ -0,0 +1,8 @@
1
+ declare class PublicLogger {
2
+ private static logEvent;
3
+ static error(...data: any[]): void;
4
+ static warn(...data: any[]): void;
5
+ static debug(...data: any[]): void;
6
+ }
7
+
8
+ export { PublicLogger };
@@ -0,0 +1,21 @@
1
+ // src/utils/public-logger.ts
2
+ var PublicLogger = class {
3
+ static logEvent(logCallback, message) {
4
+ if (process.env.NODE_ENV !== "test") {
5
+ logCallback("Live_Preview_SDK:", ...message);
6
+ }
7
+ }
8
+ static error(...data) {
9
+ this.logEvent(console.error, data);
10
+ }
11
+ static warn(...data) {
12
+ this.logEvent(console.warn, data);
13
+ }
14
+ static debug(...data) {
15
+ this.logEvent(console.debug, data);
16
+ }
17
+ };
18
+ export {
19
+ PublicLogger
20
+ };
21
+ //# sourceMappingURL=public-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/public-logger.ts"],"sourcesContent":["export class PublicLogger {\n private static logEvent(\n logCallback:\n | Console[\"log\"]\n | Console[\"warn\"]\n | Console[\"error\"]\n | Console[\"debug\"]\n | Console[\"info\"],\n message: any[]\n ): void {\n if (process.env.NODE_ENV !== \"test\") {\n logCallback(\"Live_Preview_SDK:\", ...message);\n }\n }\n\n public static error(...data: any[]): void {\n this.logEvent(console.error, data);\n }\n\n public static warn(...data: any[]): void {\n this.logEvent(console.warn, data);\n }\n\n public static debug(...data: any[]): void {\n this.logEvent(console.debug, data);\n }\n}\n"],"mappings":";AAAO,IAAM,eAAN,MAAmB;AAAA,EACtB,OAAe,SACX,aAMA,SACI;AACJ,QAAI,QAAQ,IAAI,aAAa,QAAQ;AACjC,kBAAY,qBAAqB,GAAG,OAAO;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AAAA,EAEA,OAAc,QAAQ,MAAmB;AACrC,SAAK,SAAS,QAAQ,MAAM,IAAI;AAAA,EACpC;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AACJ;","names":[]}
@@ -0,0 +1,19 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/utils/types.ts
17
+ var types_exports = {};
18
+ module.exports = __toCommonJS(types_exports);
19
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/types.ts"],"sourcesContent":["export declare interface IEditEntrySearchParams {\n hash?: string;\n entry_uid?: string;\n content_type_uid?: string;\n /**\n * @deprecated pass this value as hash instead\n */\n live_preview?: string;\n}\n\nexport declare interface IClientUrlParams {\n protocol: \"http\" | \"https\";\n host: string;\n port: string | number;\n url: string;\n}\n\nexport declare interface IStackSdk {\n live_preview: { [key: string]: any } & Partial<IConfig>;\n [key: string]: any;\n headers: {\n api_key: string;\n };\n environment: string;\n}\n\nexport declare interface IStackDetails {\n apiKey: string;\n environment: string;\n branch: string;\n contentTypeUid: string;\n entryUid: string;\n}\n\nexport declare interface IInitStackDetails {\n apiKey: string;\n environment: string;\n branch: string;\n}\nexport declare interface IConfig {\n ssr: boolean;\n enable: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: IStackDetails;\n clientUrlParams: IClientUrlParams;\n stackSdk: IStackSdk;\n onChange: () => void;\n runScriptsOnUpdate: boolean;\n hash: string;\n editButton: IConfigEditButton;\n}\n\nexport declare interface IConfigEditButton {\n enable: boolean;\n exclude?: (\"insideLivePreviewPortal\" | \"outsideLivePreviewPortal\")[];\n includeByQueryParameter?: boolean;\n position?:\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"top-center\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"bottom-center\";\n}\n\nexport declare interface IInitData {\n ssr: boolean;\n runScriptsOnUpdate: boolean;\n enable: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: Partial<IInitStackDetails>;\n clientUrlParams: Partial<Omit<IClientUrlParams, \"url\">>;\n stackSdk: IStackSdk;\n editButton: IConfigEditButton;\n}\n\n// Post message types\n\nexport declare interface ILivePreviewMessageCommon {\n from: \"live-preview\";\n}\n\nexport type ILivePreviewReceivePostMessages =\n | IClientDataMessage\n | IInitAckMessage\n | IHistoryMessage;\nexport declare interface IClientDataMessage extends ILivePreviewMessageCommon {\n type: \"client-data-send\";\n data: {\n hash: string;\n };\n}\n\nexport declare interface IInitAckMessage extends ILivePreviewMessageCommon {\n type: \"init-ack\";\n data: {\n contentTypeUid: string;\n entryUid: string;\n };\n}\n\nexport declare interface IHistoryMessage extends ILivePreviewMessageCommon {\n type: \"history\";\n data: {\n type: \"forward\" | \"backward\" | \"reload\";\n };\n}\n\nexport declare interface IEditButtonPosition {\n upperBoundOfTooltip: number;\n leftBoundOfTooltip: number;\n}\n\n// end of Post message types\n\nexport declare type OnEntryChangeCallback = () => void;\n\nexport declare type OnEntryChangeConfig = {\n skipInitialRender?: boolean;\n};\n\nexport declare type OnEntryChangeCallbackUID = string;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,99 @@
1
+ declare interface IEditEntrySearchParams {
2
+ hash?: string;
3
+ entry_uid?: string;
4
+ content_type_uid?: string;
5
+ /**
6
+ * @deprecated pass this value as hash instead
7
+ */
8
+ live_preview?: string;
9
+ }
10
+ declare interface IClientUrlParams {
11
+ protocol: "http" | "https";
12
+ host: string;
13
+ port: string | number;
14
+ url: string;
15
+ }
16
+ declare interface IStackSdk {
17
+ live_preview: {
18
+ [key: string]: any;
19
+ } & Partial<IConfig>;
20
+ [key: string]: any;
21
+ headers: {
22
+ api_key: string;
23
+ };
24
+ environment: string;
25
+ }
26
+ declare interface IStackDetails {
27
+ apiKey: string;
28
+ environment: string;
29
+ branch: string;
30
+ contentTypeUid: string;
31
+ entryUid: string;
32
+ }
33
+ declare interface IInitStackDetails {
34
+ apiKey: string;
35
+ environment: string;
36
+ branch: string;
37
+ }
38
+ declare interface IConfig {
39
+ ssr: boolean;
40
+ enable: boolean;
41
+ cleanCslpOnProduction: boolean;
42
+ stackDetails: IStackDetails;
43
+ clientUrlParams: IClientUrlParams;
44
+ stackSdk: IStackSdk;
45
+ onChange: () => void;
46
+ runScriptsOnUpdate: boolean;
47
+ hash: string;
48
+ editButton: IConfigEditButton;
49
+ }
50
+ declare interface IConfigEditButton {
51
+ enable: boolean;
52
+ exclude?: ("insideLivePreviewPortal" | "outsideLivePreviewPortal")[];
53
+ includeByQueryParameter?: boolean;
54
+ position?: "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "top-center" | "bottom-left" | "bottom-right" | "bottom-center";
55
+ }
56
+ declare interface IInitData {
57
+ ssr: boolean;
58
+ runScriptsOnUpdate: boolean;
59
+ enable: boolean;
60
+ cleanCslpOnProduction: boolean;
61
+ stackDetails: Partial<IInitStackDetails>;
62
+ clientUrlParams: Partial<Omit<IClientUrlParams, "url">>;
63
+ stackSdk: IStackSdk;
64
+ editButton: IConfigEditButton;
65
+ }
66
+ declare interface ILivePreviewMessageCommon {
67
+ from: "live-preview";
68
+ }
69
+ type ILivePreviewReceivePostMessages = IClientDataMessage | IInitAckMessage | IHistoryMessage;
70
+ declare interface IClientDataMessage extends ILivePreviewMessageCommon {
71
+ type: "client-data-send";
72
+ data: {
73
+ hash: string;
74
+ };
75
+ }
76
+ declare interface IInitAckMessage extends ILivePreviewMessageCommon {
77
+ type: "init-ack";
78
+ data: {
79
+ contentTypeUid: string;
80
+ entryUid: string;
81
+ };
82
+ }
83
+ declare interface IHistoryMessage extends ILivePreviewMessageCommon {
84
+ type: "history";
85
+ data: {
86
+ type: "forward" | "backward" | "reload";
87
+ };
88
+ }
89
+ declare interface IEditButtonPosition {
90
+ upperBoundOfTooltip: number;
91
+ leftBoundOfTooltip: number;
92
+ }
93
+ declare type OnEntryChangeCallback = () => void;
94
+ declare type OnEntryChangeConfig = {
95
+ skipInitialRender?: boolean;
96
+ };
97
+ declare type OnEntryChangeCallbackUID = string;
98
+
99
+ export type { IClientDataMessage, IClientUrlParams, IConfig, IConfigEditButton, IEditButtonPosition, IEditEntrySearchParams, IHistoryMessage, IInitAckMessage, IInitData, IInitStackDetails, ILivePreviewMessageCommon, ILivePreviewReceivePostMessages, IStackDetails, IStackSdk, OnEntryChangeCallback, OnEntryChangeCallbackUID, OnEntryChangeConfig };
@@ -0,0 +1,99 @@
1
+ declare interface IEditEntrySearchParams {
2
+ hash?: string;
3
+ entry_uid?: string;
4
+ content_type_uid?: string;
5
+ /**
6
+ * @deprecated pass this value as hash instead
7
+ */
8
+ live_preview?: string;
9
+ }
10
+ declare interface IClientUrlParams {
11
+ protocol: "http" | "https";
12
+ host: string;
13
+ port: string | number;
14
+ url: string;
15
+ }
16
+ declare interface IStackSdk {
17
+ live_preview: {
18
+ [key: string]: any;
19
+ } & Partial<IConfig>;
20
+ [key: string]: any;
21
+ headers: {
22
+ api_key: string;
23
+ };
24
+ environment: string;
25
+ }
26
+ declare interface IStackDetails {
27
+ apiKey: string;
28
+ environment: string;
29
+ branch: string;
30
+ contentTypeUid: string;
31
+ entryUid: string;
32
+ }
33
+ declare interface IInitStackDetails {
34
+ apiKey: string;
35
+ environment: string;
36
+ branch: string;
37
+ }
38
+ declare interface IConfig {
39
+ ssr: boolean;
40
+ enable: boolean;
41
+ cleanCslpOnProduction: boolean;
42
+ stackDetails: IStackDetails;
43
+ clientUrlParams: IClientUrlParams;
44
+ stackSdk: IStackSdk;
45
+ onChange: () => void;
46
+ runScriptsOnUpdate: boolean;
47
+ hash: string;
48
+ editButton: IConfigEditButton;
49
+ }
50
+ declare interface IConfigEditButton {
51
+ enable: boolean;
52
+ exclude?: ("insideLivePreviewPortal" | "outsideLivePreviewPortal")[];
53
+ includeByQueryParameter?: boolean;
54
+ position?: "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "top-center" | "bottom-left" | "bottom-right" | "bottom-center";
55
+ }
56
+ declare interface IInitData {
57
+ ssr: boolean;
58
+ runScriptsOnUpdate: boolean;
59
+ enable: boolean;
60
+ cleanCslpOnProduction: boolean;
61
+ stackDetails: Partial<IInitStackDetails>;
62
+ clientUrlParams: Partial<Omit<IClientUrlParams, "url">>;
63
+ stackSdk: IStackSdk;
64
+ editButton: IConfigEditButton;
65
+ }
66
+ declare interface ILivePreviewMessageCommon {
67
+ from: "live-preview";
68
+ }
69
+ type ILivePreviewReceivePostMessages = IClientDataMessage | IInitAckMessage | IHistoryMessage;
70
+ declare interface IClientDataMessage extends ILivePreviewMessageCommon {
71
+ type: "client-data-send";
72
+ data: {
73
+ hash: string;
74
+ };
75
+ }
76
+ declare interface IInitAckMessage extends ILivePreviewMessageCommon {
77
+ type: "init-ack";
78
+ data: {
79
+ contentTypeUid: string;
80
+ entryUid: string;
81
+ };
82
+ }
83
+ declare interface IHistoryMessage extends ILivePreviewMessageCommon {
84
+ type: "history";
85
+ data: {
86
+ type: "forward" | "backward" | "reload";
87
+ };
88
+ }
89
+ declare interface IEditButtonPosition {
90
+ upperBoundOfTooltip: number;
91
+ leftBoundOfTooltip: number;
92
+ }
93
+ declare type OnEntryChangeCallback = () => void;
94
+ declare type OnEntryChangeConfig = {
95
+ skipInitialRender?: boolean;
96
+ };
97
+ declare type OnEntryChangeCallbackUID = string;
98
+
99
+ export type { IClientDataMessage, IClientUrlParams, IConfig, IConfigEditButton, IEditButtonPosition, IEditEntrySearchParams, IHistoryMessage, IInitAckMessage, IInitData, IInitStackDetails, ILivePreviewMessageCommon, ILivePreviewReceivePostMessages, IStackDetails, IStackSdk, OnEntryChangeCallback, OnEntryChangeCallbackUID, OnEntryChangeConfig };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}