@contentstack/live-preview-utils 3.4.0 → 4.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 (182) hide show
  1. package/README.md +1 -1
  2. package/dist/legacy/common/inIframe.cjs +15 -2
  3. package/dist/legacy/common/inIframe.cjs.map +1 -1
  4. package/dist/legacy/common/inIframe.d.cts +2 -1
  5. package/dist/legacy/common/inIframe.d.ts +2 -1
  6. package/dist/legacy/common/inIframe.js +13 -1
  7. package/dist/legacy/common/inIframe.js.map +1 -1
  8. package/dist/legacy/light-sdk.cjs +1 -1
  9. package/dist/legacy/light-sdk.js +1 -1
  10. package/dist/legacy/livePreview/editButton/editButton.cjs +1 -1
  11. package/dist/legacy/livePreview/editButton/editButton.cjs.map +1 -1
  12. package/dist/legacy/livePreview/editButton/editButton.js +2 -2
  13. package/dist/legacy/livePreview/editButton/editButton.js.map +1 -1
  14. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs +7 -2
  15. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
  16. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.js +7 -2
  17. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.js.map +1 -1
  18. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +44 -8
  19. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
  20. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +46 -8
  21. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
  22. package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs +15 -0
  23. package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs.map +1 -1
  24. package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +11 -1
  25. package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +11 -1
  26. package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js +10 -0
  27. package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js.map +1 -1
  28. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
  29. package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
  30. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +4 -2
  31. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  32. package/dist/legacy/visualBuilder/components/FieldToolbar.d.cts +3 -1
  33. package/dist/legacy/visualBuilder/components/FieldToolbar.d.ts +3 -1
  34. package/dist/legacy/visualBuilder/components/FieldToolbar.js +4 -2
  35. package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
  36. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs +6 -4
  37. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  38. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js +6 -4
  39. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  40. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +6 -4
  41. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  42. package/dist/legacy/visualBuilder/generators/generateToolbar.js +6 -4
  43. package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
  44. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +16 -17
  45. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  46. package/dist/legacy/visualBuilder/listeners/mouseClick.js +16 -17
  47. package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
  48. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +63 -58
  49. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  50. package/dist/legacy/visualBuilder/listeners/mouseHover.js +63 -58
  51. package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
  52. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +72 -0
  53. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -0
  54. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +14 -0
  55. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +14 -0
  56. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +49 -0
  57. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -0
  58. package/dist/legacy/visualBuilder/utils/getEntryPermissions.cjs +2 -1
  59. package/dist/legacy/visualBuilder/utils/getEntryPermissions.cjs.map +1 -1
  60. package/dist/legacy/visualBuilder/utils/getEntryPermissions.js +2 -1
  61. package/dist/legacy/visualBuilder/utils/getEntryPermissions.js.map +1 -1
  62. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs +79 -0
  63. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -0
  64. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.cts +18 -0
  65. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.ts +18 -0
  66. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js +46 -0
  67. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -0
  68. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +4 -3
  69. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  70. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +4 -3
  71. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  72. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs +43 -14
  73. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  74. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.cts +3 -12
  75. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.ts +3 -12
  76. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js +43 -14
  77. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  78. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +2 -0
  79. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  80. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +2 -0
  81. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +2 -0
  82. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +2 -0
  83. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  84. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +6 -4
  85. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  86. package/dist/legacy/visualBuilder/utils/updateFocussedState.js +6 -4
  87. package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
  88. package/dist/legacy/visualBuilder/visualBuilder.style.cjs +3 -3
  89. package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
  90. package/dist/legacy/visualBuilder/visualBuilder.style.js +3 -3
  91. package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
  92. package/dist/modern/common/inIframe.cjs +15 -2
  93. package/dist/modern/common/inIframe.cjs.map +1 -1
  94. package/dist/modern/common/inIframe.d.cts +2 -1
  95. package/dist/modern/common/inIframe.d.ts +2 -1
  96. package/dist/modern/common/inIframe.js +13 -1
  97. package/dist/modern/common/inIframe.js.map +1 -1
  98. package/dist/modern/light-sdk.cjs +1 -1
  99. package/dist/modern/light-sdk.js +1 -1
  100. package/dist/modern/livePreview/editButton/editButton.cjs +1 -1
  101. package/dist/modern/livePreview/editButton/editButton.cjs.map +1 -1
  102. package/dist/modern/livePreview/editButton/editButton.js +2 -2
  103. package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
  104. package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs +7 -2
  105. package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
  106. package/dist/modern/livePreview/eventManager/livePreviewEventManager.js +7 -2
  107. package/dist/modern/livePreview/eventManager/livePreviewEventManager.js.map +1 -1
  108. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +43 -8
  109. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
  110. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +45 -8
  111. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
  112. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs +15 -0
  113. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs.map +1 -1
  114. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +11 -1
  115. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +11 -1
  116. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js +10 -0
  117. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js.map +1 -1
  118. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  119. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  120. package/dist/modern/visualBuilder/components/FieldToolbar.cjs +4 -2
  121. package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  122. package/dist/modern/visualBuilder/components/FieldToolbar.d.cts +3 -1
  123. package/dist/modern/visualBuilder/components/FieldToolbar.d.ts +3 -1
  124. package/dist/modern/visualBuilder/components/FieldToolbar.js +4 -2
  125. package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
  126. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs +6 -4
  127. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  128. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js +6 -4
  129. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  130. package/dist/modern/visualBuilder/generators/generateToolbar.cjs +6 -4
  131. package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  132. package/dist/modern/visualBuilder/generators/generateToolbar.js +6 -4
  133. package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
  134. package/dist/modern/visualBuilder/listeners/mouseClick.cjs +16 -17
  135. package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  136. package/dist/modern/visualBuilder/listeners/mouseClick.js +16 -17
  137. package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
  138. package/dist/modern/visualBuilder/listeners/mouseHover.cjs +63 -58
  139. package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  140. package/dist/modern/visualBuilder/listeners/mouseHover.js +63 -58
  141. package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
  142. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +72 -0
  143. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -0
  144. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +14 -0
  145. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +14 -0
  146. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +49 -0
  147. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -0
  148. package/dist/modern/visualBuilder/utils/getEntryPermissions.cjs +2 -1
  149. package/dist/modern/visualBuilder/utils/getEntryPermissions.cjs.map +1 -1
  150. package/dist/modern/visualBuilder/utils/getEntryPermissions.js +2 -1
  151. package/dist/modern/visualBuilder/utils/getEntryPermissions.js.map +1 -1
  152. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs +78 -0
  153. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -0
  154. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.cts +18 -0
  155. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.ts +18 -0
  156. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js +45 -0
  157. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -0
  158. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +4 -3
  159. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  160. package/dist/modern/visualBuilder/utils/handleIndividualFields.js +4 -3
  161. package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  162. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs +42 -13
  163. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  164. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.cts +3 -12
  165. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.ts +3 -12
  166. package/dist/modern/visualBuilder/utils/isFieldDisabled.js +42 -13
  167. package/dist/modern/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  168. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +2 -0
  169. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  170. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +2 -0
  171. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +2 -0
  172. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +2 -0
  173. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  174. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +6 -4
  175. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  176. package/dist/modern/visualBuilder/utils/updateFocussedState.js +6 -4
  177. package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
  178. package/dist/modern/visualBuilder/visualBuilder.style.cjs +3 -3
  179. package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
  180. package/dist/modern/visualBuilder/visualBuilder.style.js +3 -3
  181. package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
  182. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/livePreview/eventManager/livePreviewEventManager.ts"],"sourcesContent":["import { EventManager } from \"@contentstack/advanced-post-message\";\nimport { LIVE_PREVIEW_CHANNEL_ID } from \"./livePreviewEventManager.constant\";\n\nlet livePreviewPostMessage: EventManager | undefined;\n\nif (typeof window !== \"undefined\") {\n livePreviewPostMessage = new EventManager(LIVE_PREVIEW_CHANNEL_ID, {\n target: window.parent,\n debug: false,\n suppressErrors: true,\n });\n}\n\nexport default livePreviewPostMessage;\n"],"mappings":";;;;;;;;AAAA,mCAA6B;AAC7B,SAAS,+BAA+B;AAExC,IAAI;AAEJ,IAAI,OAAO,WAAW,aAAa;AAC/B,2BAAyB,IAAI,0CAAa,yBAAyB;AAAA,IAC/D,QAAQ,OAAO;AAAA,IACf,OAAO;AAAA,IACP,gBAAgB;AAAA,EACpB,CAAC;AACL;AAEA,IAAO,kCAAQ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/livePreview/eventManager/livePreviewEventManager.ts"],"sourcesContent":["import { EventManager } from \"@contentstack/advanced-post-message\";\nimport { LIVE_PREVIEW_CHANNEL_ID } from \"./livePreviewEventManager.constant\";\nimport { isOpeningInNewTab } from \"../../common/inIframe\";\n\nlet livePreviewPostMessage: EventManager | undefined;\n\nif (typeof window !== \"undefined\") {\n const eventOptions = {\n target: window.parent,\n debug: false,\n suppressErrors: true\n };\n\n if (isOpeningInNewTab()) {\n eventOptions.target = window.opener;\n }\n\n livePreviewPostMessage = new EventManager(LIVE_PREVIEW_CHANNEL_ID, eventOptions);\n}\n\nexport default livePreviewPostMessage;\n"],"mappings":";;;;;;;;AAAA,mCAA6B;AAC7B,SAAS,+BAA+B;AACxC,SAAS,yBAAyB;AAElC,IAAI;AAEJ,IAAI,OAAO,WAAW,aAAa;AAC/B,QAAM,eAAe;AAAA,IACjB,QAAQ,OAAO;AAAA,IACf,OAAO;AAAA,IACP,gBAAgB;AAAA,EACpB;AAEA,MAAI,kBAAkB,GAAG;AACrB,iBAAa,SAAS,OAAO;AAAA,EACjC;AAEA,2BAAyB,IAAI,0CAAa,yBAAyB,YAAY;AACnF;AAEA,IAAO,kCAAQ;","names":[]}
@@ -35,11 +35,14 @@ __export(postMessageEvent_hooks_exports, {
35
35
  useOnEntryUpdatePostMessageEvent: () => useOnEntryUpdatePostMessageEvent
36
36
  });
37
37
  module.exports = __toCommonJS(postMessageEvent_hooks_exports);
38
+ var import_inIframe = require("../../common/inIframe.cjs");
38
39
  var import_configManager = __toESM(require("../../configManager/configManager.cjs"), 1);
40
+ var import_logger = require("../../logger/logger.cjs");
39
41
  var import_types = require("../../types/types.cjs");
40
42
  var import_utils = require("../../utils/index.cjs");
41
43
  var import_livePreviewEventManager = __toESM(require("./livePreviewEventManager.cjs"), 1);
42
44
  var import_livePreviewEventManager2 = require("./livePreviewEventManager.constant.cjs");
45
+ var import_livePreviewPostMessageEvent = require("./types/livePreviewPostMessageEvent.type.cjs");
43
46
  function useHistoryPostMessageEvent() {
44
47
  import_livePreviewEventManager.default?.on(
45
48
  import_livePreviewEventManager2.LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,
@@ -69,12 +72,44 @@ function useOnEntryUpdatePostMessageEvent() {
69
72
  import_livePreviewEventManager.default?.on(
70
73
  import_livePreviewEventManager2.LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,
71
74
  (event) => {
72
- (0, import_configManager.setConfigFromParams)({
73
- live_preview: event.data.hash
74
- });
75
- const { ssr, onChange } = import_configManager.default.get();
76
- if (!ssr) {
77
- onChange();
75
+ try {
76
+ const { ssr, onChange } = import_configManager.default.get();
77
+ const event_type = event.data._metadata?.event_type;
78
+ (0, import_configManager.setConfigFromParams)({
79
+ live_preview: event.data.hash
80
+ });
81
+ if (!ssr && !event_type) {
82
+ onChange();
83
+ }
84
+ if ((0, import_inIframe.isOpeningInNewTab)()) {
85
+ if (!window) {
86
+ import_logger.PublicLogger.error("window is not defined");
87
+ return;
88
+ }
89
+ ;
90
+ if (ssr && !event_type) {
91
+ if (window.location.href.includes("live_preview")) {
92
+ window.location.reload();
93
+ } else {
94
+ const url = new URL(window.location.href);
95
+ url.searchParams.set("live_preview", event.data.hash);
96
+ url.searchParams.set("content_type_uid", import_configManager.default.get().stackDetails.contentTypeUid || "");
97
+ url.searchParams.set("entry_uid", import_configManager.default.get().stackDetails.entryUid || "");
98
+ window.location.href = url.toString();
99
+ }
100
+ }
101
+ if (event_type === import_livePreviewPostMessageEvent.OnChangeLivePreviewPostMessageEventTypes.HASH_CHANGE) {
102
+ const newUrl = new URL(window.location.href);
103
+ newUrl.searchParams.set("live_preview", event.data.hash);
104
+ window.history.pushState({}, "", newUrl.toString());
105
+ }
106
+ if (event_type === import_livePreviewPostMessageEvent.OnChangeLivePreviewPostMessageEventTypes.URL_CHANGE && event.data.url) {
107
+ window.location.href = event.data.url;
108
+ }
109
+ }
110
+ } catch (error) {
111
+ import_logger.PublicLogger.error("Error handling live preview update:", error);
112
+ return;
78
113
  }
79
114
  }
80
115
  );
@@ -86,7 +121,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
86
121
  config: {
87
122
  shouldReload: import_configManager.default.get().ssr,
88
123
  href: window.location.href,
89
- sdkVersion: "3.4.0",
124
+ sdkVersion: "4.0.0",
90
125
  mode: import_configManager.default.get().mode
91
126
  }
92
127
  }
@@ -106,7 +141,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
106
141
  });
107
142
  } else {
108
143
  }
109
- if (import_configManager.default.get().ssr || (0, import_utils.isOpeningInTimeline)()) {
144
+ if (import_configManager.default.get().ssr || (0, import_utils.isOpeningInTimeline)() || (0, import_inIframe.isOpeningInNewTab)()) {
110
145
  (0, import_utils.addParamsToUrl)();
111
146
  }
112
147
  import_configManager.default.set("windowType", windowType);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/livePreview/eventManager/postMessageEvent.hooks.ts"],"sourcesContent":["import Config, { setConfigFromParams } from \"../../configManager/configManager\";\nimport { ILivePreviewWindowType } from \"../../types/types\";\nimport { addParamsToUrl, isOpeningInTimeline } from \"../../utils\";\nimport livePreviewPostMessage from \"./livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"./livePreviewEventManager.constant\";\nimport {\n HistoryLivePreviewPostMessageEventData,\n LivePreviewInitEventResponse,\n OnChangeLivePreviewPostMessageEventData,\n} from \"./types/livePreviewPostMessageEvent.type\";\n\n/**\n * Registers a post message event listener for history-related events.\n * The listener handles events for forward, backward, and reload actions on the browser history.\n */\nexport function useHistoryPostMessageEvent(): void {\n livePreviewPostMessage?.on<HistoryLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,\n (event) => {\n switch (event.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n break;\n }\n default: {\n const exhaustiveCheck: never = event.data.type;\n throw new Error(`Unhandled event: ${exhaustiveCheck}`);\n }\n }\n }\n );\n}\n\n/**\n * Registers a post message event listener for updating the entry in the live preview.\n */\nexport function useOnEntryUpdatePostMessageEvent(): void {\n livePreviewPostMessage?.on<OnChangeLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,\n (event) => {\n setConfigFromParams({\n live_preview: event.data.hash,\n });\n const { ssr, onChange } = Config.get();\n if (!ssr) {\n onChange();\n }\n }\n );\n}\n\nexport function sendInitializeLivePreviewPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send<LivePreviewInitEventResponse>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.INIT,\n {\n config: {\n shouldReload: Config.get().ssr,\n href: window.location.href,\n sdkVersion: process?.env?.PACKAGE_VERSION,\n mode: Config.get().mode,\n },\n }\n )\n .then((data) => {\n const {\n contentTypeUid,\n entryUid,\n windowType = ILivePreviewWindowType.PREVIEW,\n } = data || {};\n\n // TODO: This is a fix for the issue where we were calling sending init in the builder\n // Let's remove this condition when we fix it.\n if (Config?.get()?.windowType && Config.get().windowType === ILivePreviewWindowType.BUILDER) {\n return;\n }\n\n if (contentTypeUid && entryUid) {\n // TODO: we should not use this function. Instead we should have sideEffect run automatically when we set the config.\n setConfigFromParams({\n content_type_uid: contentTypeUid,\n entry_uid: entryUid,\n });\n } else {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\n // \"init message did not contain contentTypeUid or entryUid.\"\n // );\n }\n if (Config.get().ssr || isOpeningInTimeline()) {\n addParamsToUrl();\n }\n Config.set(\"windowType\", windowType);\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!Config.get().ssr) {\n setInterval(() => {\n sendCurrentPageUrlPostMessageEvent();\n }, 1500);\n }\n\n useHistoryPostMessageEvent();\n useOnEntryUpdatePostMessageEvent();\n })\n .catch((e) => {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\"Error while sending init message\", e);\n });\n}\n\nfunction sendCurrentPageUrlPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send(LIVE_PREVIEW_POST_MESSAGE_EVENTS.CHECK_ENTRY_PAGE, {\n href: window.location.href,\n })\n .catch(() => {\n // TODO: add debug logs that runs conditionally\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA4C;AAC5C,mBAAuC;AACvC,mBAAoD;AACpD,qCAAmC;AACnC,IAAAA,kCAAiD;AAW1C,SAAS,6BAAmC;AAC/C,iCAAAC,SAAwB;AAAA,IACpB,iEAAiC;AAAA,IACjC,CAAC,UAAU;AACP,cAAQ,MAAM,KAAK,MAAM;AAAA,QACrB,KAAK,WAAW;AACZ,iBAAO,QAAQ,QAAQ;AACvB;AAAA,QACJ;AAAA,QACA,KAAK,YAAY;AACb,iBAAO,QAAQ,KAAK;AACpB;AAAA,QACJ;AAAA,QACA,KAAK,UAAU;AACX,iBAAO,QAAQ,GAAG;AAClB;AAAA,QACJ;AAAA,QACA,SAAS;AACL,gBAAM,kBAAyB,MAAM,KAAK;AAC1C,gBAAM,IAAI,MAAM,oBAAoB,eAAe,EAAE;AAAA,QACzD;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAKO,SAAS,mCAAyC;AACrD,iCAAAA,SAAwB;AAAA,IACpB,iEAAiC;AAAA,IACjC,CAAC,UAAU;AACP,oDAAoB;AAAA,QAChB,cAAc,MAAM,KAAK;AAAA,MAC7B,CAAC;AACD,YAAM,EAAE,KAAK,SAAS,IAAI,qBAAAC,QAAO,IAAI;AACrC,UAAI,CAAC,KAAK;AACN,iBAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AACJ;AAEO,SAAS,4CAAkD;AAC9D,iCAAAD,SACM;AAAA,IACE,iEAAiC;AAAA,IACjC;AAAA,MACI,QAAQ;AAAA,QACJ,cAAc,qBAAAC,QAAO,IAAI,EAAE;AAAA,QAC3B,MAAM,OAAO,SAAS;AAAA,QACtB,YAAY;AAAA,QACZ,MAAM,qBAAAA,QAAO,IAAI,EAAE;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ,EACC,KAAK,CAAC,SAAS;AACZ,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA,aAAa,oCAAuB;AAAA,IACxC,IAAI,QAAQ,CAAC;AAIb,QAAI,qBAAAA,SAAQ,IAAI,GAAG,cAAc,qBAAAA,QAAO,IAAI,EAAE,eAAe,oCAAuB,SAAS;AACzF;AAAA,IACJ;AAEA,QAAI,kBAAkB,UAAU;AAE5B,oDAAoB;AAAA,QAChB,kBAAkB;AAAA,QAClB,WAAW;AAAA,MACf,CAAC;AAAA,IACL,OAAO;AAAA,IAKP;AACA,QAAI,qBAAAA,QAAO,IAAI,EAAE,WAAO,kCAAoB,GAAG;AAC3C,uCAAe;AAAA,IACnB;AACA,yBAAAA,QAAO,IAAI,cAAc,UAAU;AAGnC,QAAI,CAAC,qBAAAA,QAAO,IAAI,EAAE,KAAK;AACnB,kBAAY,MAAM;AACd,2CAAmC;AAAA,MACvC,GAAG,IAAI;AAAA,IACX;AAEA,+BAA2B;AAC3B,qCAAiC;AAAA,EACrC,CAAC,EACA,MAAM,CAAC,MAAM;AAAA,EAGd,CAAC;AACT;AAEA,SAAS,qCAA2C;AAChD,iCAAAD,SACM,KAAK,iEAAiC,kBAAkB;AAAA,IACtD,MAAM,OAAO,SAAS;AAAA,EAC1B,CAAC,EACA,MAAM,MAAM;AAAA,EAEb,CAAC;AACT;","names":["import_livePreviewEventManager","livePreviewPostMessage","Config"]}
1
+ {"version":3,"sources":["../../../../src/livePreview/eventManager/postMessageEvent.hooks.ts"],"sourcesContent":["import { isOpeningInNewTab } from \"../../common/inIframe\";\nimport Config, { setConfigFromParams } from \"../../configManager/configManager\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport { ILivePreviewWindowType } from \"../../types/types\";\nimport { addParamsToUrl, isOpeningInTimeline } from \"../../utils\";\nimport livePreviewPostMessage from \"./livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"./livePreviewEventManager.constant\";\nimport {\n HistoryLivePreviewPostMessageEventData,\n LivePreviewInitEventResponse,\n OnChangeLivePreviewPostMessageEventData,\n OnChangeLivePreviewPostMessageEventTypes,\n} from \"./types/livePreviewPostMessageEvent.type\";\n\n/**\n * Registers a post message event listener for history-related events.\n * The listener handles events for forward, backward, and reload actions on the browser history.\n */\nexport function useHistoryPostMessageEvent(): void {\n livePreviewPostMessage?.on<HistoryLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,\n (event) => {\n switch (event.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n break;\n }\n default: {\n const exhaustiveCheck: never = event.data.type;\n throw new Error(`Unhandled event: ${exhaustiveCheck}`);\n }\n }\n }\n );\n}\n\n/**\n * Registers a post message event listener for updating the entry in the live preview.\n */\nexport function useOnEntryUpdatePostMessageEvent(): void {\n livePreviewPostMessage?.on<OnChangeLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,\n (event) => {\n try {\n const { ssr, onChange } = Config.get();\n const event_type = event.data._metadata?.event_type;\n setConfigFromParams({\n live_preview: event.data.hash,\n });\n\n // This section will run when there is a change in the entry and the website is CSR\n if (!ssr && !event_type) {\n onChange();\n } \n\n if(isOpeningInNewTab()) {\n if(!window) {\n PublicLogger.error(\"window is not defined\");\n return;\n };\n \n // This section will run when there is a change in the entry and the website is SSR\n if(ssr && !event_type) {\n if(window.location.href.includes(\"live_preview\")) {\n window.location.reload();\n } else {\n const url = new URL(window.location.href);\n url.searchParams.set(\"live_preview\", event.data.hash);\n url.searchParams.set(\"content_type_uid\", Config.get().stackDetails.contentTypeUid || \"\");\n url.searchParams.set(\"entry_uid\", Config.get().stackDetails.entryUid || \"\");\n window.location.href = url.toString();\n }\n }\n \n // This section will run when the hash changes and the website is SSR or CSR\n if(event_type === OnChangeLivePreviewPostMessageEventTypes.HASH_CHANGE){\n const newUrl = new URL(window.location.href);\n newUrl.searchParams.set(\"live_preview\", event.data.hash);\n window.history.pushState({}, \"\", newUrl.toString());\n }\n \n // This section will run when the URL of the page changes\n if(event_type === OnChangeLivePreviewPostMessageEventTypes.URL_CHANGE && event.data.url){\n window.location.href = event.data.url;\n }\n }\n\n \n } catch (error) {\n PublicLogger.error(\"Error handling live preview update:\", error);\n return;\n }\n }\n );\n}\n\nexport function sendInitializeLivePreviewPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send<LivePreviewInitEventResponse>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.INIT,\n {\n config: {\n shouldReload: Config.get().ssr,\n href: window.location.href,\n sdkVersion: process?.env?.PACKAGE_VERSION,\n mode: Config.get().mode,\n },\n }\n )\n .then((data) => {\n const {\n contentTypeUid,\n entryUid,\n windowType = ILivePreviewWindowType.PREVIEW,\n } = data || {};\n\n // TODO: This is a fix for the issue where we were calling sending init in the builder\n // Let's remove this condition when we fix it.\n if (Config?.get()?.windowType && Config.get().windowType === ILivePreviewWindowType.BUILDER) {\n return;\n }\n\n if (contentTypeUid && entryUid) {\n // TODO: we should not use this function. Instead we should have sideEffect run automatically when we set the config.\n setConfigFromParams({\n content_type_uid: contentTypeUid,\n entry_uid: entryUid,\n });\n } else {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\n // \"init message did not contain contentTypeUid or entryUid.\"\n // );\n }\n if (Config.get().ssr || isOpeningInTimeline() || isOpeningInNewTab()) {\n addParamsToUrl();\n }\n Config.set(\"windowType\", windowType);\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!Config.get().ssr) {\n setInterval(() => {\n sendCurrentPageUrlPostMessageEvent();\n }, 1500);\n }\n\n useHistoryPostMessageEvent();\n useOnEntryUpdatePostMessageEvent();\n })\n .catch((e) => {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\"Error while sending init message\", e);\n });\n}\n\nfunction sendCurrentPageUrlPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send(LIVE_PREVIEW_POST_MESSAGE_EVENTS.CHECK_ENTRY_PAGE, {\n href: window.location.href,\n })\n .catch(() => {\n // TODO: add debug logs that runs conditionally\n });\n}\n"],"mappings":"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","names":["import_livePreviewEventManager","livePreviewPostMessage","Config"]}
@@ -1,11 +1,16 @@
1
1
  import "../../chunk-5WRI5ZAA.js";
2
2
 
3
3
  // src/livePreview/eventManager/postMessageEvent.hooks.ts
4
+ import { isOpeningInNewTab } from "../../common/inIframe.js";
4
5
  import Config, { setConfigFromParams } from "../../configManager/configManager.js";
6
+ import { PublicLogger } from "../../logger/logger.js";
5
7
  import { ILivePreviewWindowType } from "../../types/types.js";
6
8
  import { addParamsToUrl, isOpeningInTimeline } from "../../utils/index.js";
7
9
  import livePreviewPostMessage from "./livePreviewEventManager.js";
8
10
  import { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from "./livePreviewEventManager.constant.js";
11
+ import {
12
+ OnChangeLivePreviewPostMessageEventTypes
13
+ } from "./types/livePreviewPostMessageEvent.type.js";
9
14
  function useHistoryPostMessageEvent() {
10
15
  livePreviewPostMessage?.on(
11
16
  LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,
@@ -35,12 +40,44 @@ function useOnEntryUpdatePostMessageEvent() {
35
40
  livePreviewPostMessage?.on(
36
41
  LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,
37
42
  (event) => {
38
- setConfigFromParams({
39
- live_preview: event.data.hash
40
- });
41
- const { ssr, onChange } = Config.get();
42
- if (!ssr) {
43
- onChange();
43
+ try {
44
+ const { ssr, onChange } = Config.get();
45
+ const event_type = event.data._metadata?.event_type;
46
+ setConfigFromParams({
47
+ live_preview: event.data.hash
48
+ });
49
+ if (!ssr && !event_type) {
50
+ onChange();
51
+ }
52
+ if (isOpeningInNewTab()) {
53
+ if (!window) {
54
+ PublicLogger.error("window is not defined");
55
+ return;
56
+ }
57
+ ;
58
+ if (ssr && !event_type) {
59
+ if (window.location.href.includes("live_preview")) {
60
+ window.location.reload();
61
+ } else {
62
+ const url = new URL(window.location.href);
63
+ url.searchParams.set("live_preview", event.data.hash);
64
+ url.searchParams.set("content_type_uid", Config.get().stackDetails.contentTypeUid || "");
65
+ url.searchParams.set("entry_uid", Config.get().stackDetails.entryUid || "");
66
+ window.location.href = url.toString();
67
+ }
68
+ }
69
+ if (event_type === OnChangeLivePreviewPostMessageEventTypes.HASH_CHANGE) {
70
+ const newUrl = new URL(window.location.href);
71
+ newUrl.searchParams.set("live_preview", event.data.hash);
72
+ window.history.pushState({}, "", newUrl.toString());
73
+ }
74
+ if (event_type === OnChangeLivePreviewPostMessageEventTypes.URL_CHANGE && event.data.url) {
75
+ window.location.href = event.data.url;
76
+ }
77
+ }
78
+ } catch (error) {
79
+ PublicLogger.error("Error handling live preview update:", error);
80
+ return;
44
81
  }
45
82
  }
46
83
  );
@@ -52,7 +89,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
52
89
  config: {
53
90
  shouldReload: Config.get().ssr,
54
91
  href: window.location.href,
55
- sdkVersion: "3.4.0",
92
+ sdkVersion: "4.0.0",
56
93
  mode: Config.get().mode
57
94
  }
58
95
  }
@@ -72,7 +109,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
72
109
  });
73
110
  } else {
74
111
  }
75
- if (Config.get().ssr || isOpeningInTimeline()) {
112
+ if (Config.get().ssr || isOpeningInTimeline() || isOpeningInNewTab()) {
76
113
  addParamsToUrl();
77
114
  }
78
115
  Config.set("windowType", windowType);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/livePreview/eventManager/postMessageEvent.hooks.ts"],"sourcesContent":["import Config, { setConfigFromParams } from \"../../configManager/configManager\";\nimport { ILivePreviewWindowType } from \"../../types/types\";\nimport { addParamsToUrl, isOpeningInTimeline } from \"../../utils\";\nimport livePreviewPostMessage from \"./livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"./livePreviewEventManager.constant\";\nimport {\n HistoryLivePreviewPostMessageEventData,\n LivePreviewInitEventResponse,\n OnChangeLivePreviewPostMessageEventData,\n} from \"./types/livePreviewPostMessageEvent.type\";\n\n/**\n * Registers a post message event listener for history-related events.\n * The listener handles events for forward, backward, and reload actions on the browser history.\n */\nexport function useHistoryPostMessageEvent(): void {\n livePreviewPostMessage?.on<HistoryLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,\n (event) => {\n switch (event.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n break;\n }\n default: {\n const exhaustiveCheck: never = event.data.type;\n throw new Error(`Unhandled event: ${exhaustiveCheck}`);\n }\n }\n }\n );\n}\n\n/**\n * Registers a post message event listener for updating the entry in the live preview.\n */\nexport function useOnEntryUpdatePostMessageEvent(): void {\n livePreviewPostMessage?.on<OnChangeLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,\n (event) => {\n setConfigFromParams({\n live_preview: event.data.hash,\n });\n const { ssr, onChange } = Config.get();\n if (!ssr) {\n onChange();\n }\n }\n );\n}\n\nexport function sendInitializeLivePreviewPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send<LivePreviewInitEventResponse>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.INIT,\n {\n config: {\n shouldReload: Config.get().ssr,\n href: window.location.href,\n sdkVersion: process?.env?.PACKAGE_VERSION,\n mode: Config.get().mode,\n },\n }\n )\n .then((data) => {\n const {\n contentTypeUid,\n entryUid,\n windowType = ILivePreviewWindowType.PREVIEW,\n } = data || {};\n\n // TODO: This is a fix for the issue where we were calling sending init in the builder\n // Let's remove this condition when we fix it.\n if (Config?.get()?.windowType && Config.get().windowType === ILivePreviewWindowType.BUILDER) {\n return;\n }\n\n if (contentTypeUid && entryUid) {\n // TODO: we should not use this function. Instead we should have sideEffect run automatically when we set the config.\n setConfigFromParams({\n content_type_uid: contentTypeUid,\n entry_uid: entryUid,\n });\n } else {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\n // \"init message did not contain contentTypeUid or entryUid.\"\n // );\n }\n if (Config.get().ssr || isOpeningInTimeline()) {\n addParamsToUrl();\n }\n Config.set(\"windowType\", windowType);\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!Config.get().ssr) {\n setInterval(() => {\n sendCurrentPageUrlPostMessageEvent();\n }, 1500);\n }\n\n useHistoryPostMessageEvent();\n useOnEntryUpdatePostMessageEvent();\n })\n .catch((e) => {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\"Error while sending init message\", e);\n });\n}\n\nfunction sendCurrentPageUrlPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send(LIVE_PREVIEW_POST_MESSAGE_EVENTS.CHECK_ENTRY_PAGE, {\n href: window.location.href,\n })\n .catch(() => {\n // TODO: add debug logs that runs conditionally\n });\n}\n"],"mappings":";;;AAAA,OAAO,UAAU,2BAA2B;AAC5C,SAAS,8BAA8B;AACvC,SAAS,gBAAgB,2BAA2B;AACpD,OAAO,4BAA4B;AACnC,SAAS,wCAAwC;AAW1C,SAAS,6BAAmC;AAC/C,0BAAwB;AAAA,IACpB,iCAAiC;AAAA,IACjC,CAAC,UAAU;AACP,cAAQ,MAAM,KAAK,MAAM;AAAA,QACrB,KAAK,WAAW;AACZ,iBAAO,QAAQ,QAAQ;AACvB;AAAA,QACJ;AAAA,QACA,KAAK,YAAY;AACb,iBAAO,QAAQ,KAAK;AACpB;AAAA,QACJ;AAAA,QACA,KAAK,UAAU;AACX,iBAAO,QAAQ,GAAG;AAClB;AAAA,QACJ;AAAA,QACA,SAAS;AACL,gBAAM,kBAAyB,MAAM,KAAK;AAC1C,gBAAM,IAAI,MAAM,oBAAoB,eAAe,EAAE;AAAA,QACzD;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAKO,SAAS,mCAAyC;AACrD,0BAAwB;AAAA,IACpB,iCAAiC;AAAA,IACjC,CAAC,UAAU;AACP,0BAAoB;AAAA,QAChB,cAAc,MAAM,KAAK;AAAA,MAC7B,CAAC;AACD,YAAM,EAAE,KAAK,SAAS,IAAI,OAAO,IAAI;AACrC,UAAI,CAAC,KAAK;AACN,iBAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AACJ;AAEO,SAAS,4CAAkD;AAC9D,0BACM;AAAA,IACE,iCAAiC;AAAA,IACjC;AAAA,MACI,QAAQ;AAAA,QACJ,cAAc,OAAO,IAAI,EAAE;AAAA,QAC3B,MAAM,OAAO,SAAS;AAAA,QACtB,YAAY;AAAA,QACZ,MAAM,OAAO,IAAI,EAAE;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ,EACC,KAAK,CAAC,SAAS;AACZ,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA,aAAa,uBAAuB;AAAA,IACxC,IAAI,QAAQ,CAAC;AAIb,QAAI,QAAQ,IAAI,GAAG,cAAc,OAAO,IAAI,EAAE,eAAe,uBAAuB,SAAS;AACzF;AAAA,IACJ;AAEA,QAAI,kBAAkB,UAAU;AAE5B,0BAAoB;AAAA,QAChB,kBAAkB;AAAA,QAClB,WAAW;AAAA,MACf,CAAC;AAAA,IACL,OAAO;AAAA,IAKP;AACA,QAAI,OAAO,IAAI,EAAE,OAAO,oBAAoB,GAAG;AAC3C,qBAAe;AAAA,IACnB;AACA,WAAO,IAAI,cAAc,UAAU;AAGnC,QAAI,CAAC,OAAO,IAAI,EAAE,KAAK;AACnB,kBAAY,MAAM;AACd,2CAAmC;AAAA,MACvC,GAAG,IAAI;AAAA,IACX;AAEA,+BAA2B;AAC3B,qCAAiC;AAAA,EACrC,CAAC,EACA,MAAM,CAAC,MAAM;AAAA,EAGd,CAAC;AACT;AAEA,SAAS,qCAA2C;AAChD,0BACM,KAAK,iCAAiC,kBAAkB;AAAA,IACtD,MAAM,OAAO,SAAS;AAAA,EAC1B,CAAC,EACA,MAAM,MAAM;AAAA,EAEb,CAAC;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../src/livePreview/eventManager/postMessageEvent.hooks.ts"],"sourcesContent":["import { isOpeningInNewTab } from \"../../common/inIframe\";\nimport Config, { setConfigFromParams } from \"../../configManager/configManager\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport { ILivePreviewWindowType } from \"../../types/types\";\nimport { addParamsToUrl, isOpeningInTimeline } from \"../../utils\";\nimport livePreviewPostMessage from \"./livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"./livePreviewEventManager.constant\";\nimport {\n HistoryLivePreviewPostMessageEventData,\n LivePreviewInitEventResponse,\n OnChangeLivePreviewPostMessageEventData,\n OnChangeLivePreviewPostMessageEventTypes,\n} from \"./types/livePreviewPostMessageEvent.type\";\n\n/**\n * Registers a post message event listener for history-related events.\n * The listener handles events for forward, backward, and reload actions on the browser history.\n */\nexport function useHistoryPostMessageEvent(): void {\n livePreviewPostMessage?.on<HistoryLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,\n (event) => {\n switch (event.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n break;\n }\n default: {\n const exhaustiveCheck: never = event.data.type;\n throw new Error(`Unhandled event: ${exhaustiveCheck}`);\n }\n }\n }\n );\n}\n\n/**\n * Registers a post message event listener for updating the entry in the live preview.\n */\nexport function useOnEntryUpdatePostMessageEvent(): void {\n livePreviewPostMessage?.on<OnChangeLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,\n (event) => {\n try {\n const { ssr, onChange } = Config.get();\n const event_type = event.data._metadata?.event_type;\n setConfigFromParams({\n live_preview: event.data.hash,\n });\n\n // This section will run when there is a change in the entry and the website is CSR\n if (!ssr && !event_type) {\n onChange();\n } \n\n if(isOpeningInNewTab()) {\n if(!window) {\n PublicLogger.error(\"window is not defined\");\n return;\n };\n \n // This section will run when there is a change in the entry and the website is SSR\n if(ssr && !event_type) {\n if(window.location.href.includes(\"live_preview\")) {\n window.location.reload();\n } else {\n const url = new URL(window.location.href);\n url.searchParams.set(\"live_preview\", event.data.hash);\n url.searchParams.set(\"content_type_uid\", Config.get().stackDetails.contentTypeUid || \"\");\n url.searchParams.set(\"entry_uid\", Config.get().stackDetails.entryUid || \"\");\n window.location.href = url.toString();\n }\n }\n \n // This section will run when the hash changes and the website is SSR or CSR\n if(event_type === OnChangeLivePreviewPostMessageEventTypes.HASH_CHANGE){\n const newUrl = new URL(window.location.href);\n newUrl.searchParams.set(\"live_preview\", event.data.hash);\n window.history.pushState({}, \"\", newUrl.toString());\n }\n \n // This section will run when the URL of the page changes\n if(event_type === OnChangeLivePreviewPostMessageEventTypes.URL_CHANGE && event.data.url){\n window.location.href = event.data.url;\n }\n }\n\n \n } catch (error) {\n PublicLogger.error(\"Error handling live preview update:\", error);\n return;\n }\n }\n );\n}\n\nexport function sendInitializeLivePreviewPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send<LivePreviewInitEventResponse>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.INIT,\n {\n config: {\n shouldReload: Config.get().ssr,\n href: window.location.href,\n sdkVersion: process?.env?.PACKAGE_VERSION,\n mode: Config.get().mode,\n },\n }\n )\n .then((data) => {\n const {\n contentTypeUid,\n entryUid,\n windowType = ILivePreviewWindowType.PREVIEW,\n } = data || {};\n\n // TODO: This is a fix for the issue where we were calling sending init in the builder\n // Let's remove this condition when we fix it.\n if (Config?.get()?.windowType && Config.get().windowType === ILivePreviewWindowType.BUILDER) {\n return;\n }\n\n if (contentTypeUid && entryUid) {\n // TODO: we should not use this function. Instead we should have sideEffect run automatically when we set the config.\n setConfigFromParams({\n content_type_uid: contentTypeUid,\n entry_uid: entryUid,\n });\n } else {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\n // \"init message did not contain contentTypeUid or entryUid.\"\n // );\n }\n if (Config.get().ssr || isOpeningInTimeline() || isOpeningInNewTab()) {\n addParamsToUrl();\n }\n Config.set(\"windowType\", windowType);\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!Config.get().ssr) {\n setInterval(() => {\n sendCurrentPageUrlPostMessageEvent();\n }, 1500);\n }\n\n useHistoryPostMessageEvent();\n useOnEntryUpdatePostMessageEvent();\n })\n .catch((e) => {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\"Error while sending init message\", e);\n });\n}\n\nfunction sendCurrentPageUrlPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send(LIVE_PREVIEW_POST_MESSAGE_EVENTS.CHECK_ENTRY_PAGE, {\n href: window.location.href,\n })\n .catch(() => {\n // TODO: add debug logs that runs conditionally\n });\n}\n"],"mappings":"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","names":[]}
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
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
+ };
6
10
  var __copyProps = (to, from, except, desc) => {
7
11
  if (from && typeof from === "object" || typeof from === "function") {
8
12
  for (let key of __getOwnPropNames(from))
@@ -15,5 +19,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
15
19
 
16
20
  // src/livePreview/eventManager/types/livePreviewPostMessageEvent.type.ts
17
21
  var livePreviewPostMessageEvent_type_exports = {};
22
+ __export(livePreviewPostMessageEvent_type_exports, {
23
+ OnChangeLivePreviewPostMessageEventTypes: () => OnChangeLivePreviewPostMessageEventTypes
24
+ });
18
25
  module.exports = __toCommonJS(livePreviewPostMessageEvent_type_exports);
26
+ var OnChangeLivePreviewPostMessageEventTypes = {
27
+ HASH_CHANGE: "hash_change",
28
+ URL_CHANGE: "url_change"
29
+ };
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ OnChangeLivePreviewPostMessageEventTypes
33
+ });
19
34
  //# sourceMappingURL=livePreviewPostMessageEvent.type.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/livePreview/eventManager/types/livePreviewPostMessageEvent.type.ts"],"sourcesContent":["import { ILivePreviewWindowType } from \"../../../types/types\";\n\nexport interface HistoryLivePreviewPostMessageEventData {\n type: \"forward\" | \"backward\" | \"reload\";\n}\n\nexport interface OnChangeLivePreviewPostMessageEventData {\n hash: string;\n}\n\nexport interface LivePreviewInitEventResponse {\n contentTypeUid: string;\n entryUid: string;\n windowType: ILivePreviewWindowType;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/livePreview/eventManager/types/livePreviewPostMessageEvent.type.ts"],"sourcesContent":["import { ILivePreviewWindowType } from \"../../../types/types\";\n\nexport const OnChangeLivePreviewPostMessageEventTypes = {\n HASH_CHANGE: \"hash_change\",\n URL_CHANGE: \"url_change\"\n} as const;\n\nexport interface HistoryLivePreviewPostMessageEventData {\n type: \"forward\" | \"backward\" | \"reload\";\n}\n\nexport interface OnChangeLivePreviewPostMessageEventData {\n hash: string;\n entry_uid?: string;\n content_type_uid?: string;\n url?: string;\n _metadata?: {\n event_type: typeof OnChangeLivePreviewPostMessageEventTypes[keyof typeof OnChangeLivePreviewPostMessageEventTypes];\n }\n}\n\nexport interface LivePreviewInitEventResponse {\n contentTypeUid: string;\n entryUid: string;\n windowType: ILivePreviewWindowType;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,IAAM,2CAA2C;AAAA,EACpD,aAAa;AAAA,EACb,YAAY;AAChB;","names":[]}
@@ -1,11 +1,21 @@
1
1
  import { ILivePreviewWindowType } from '../../../types/types.cjs';
2
2
  import '../../../visualBuilder/types/collab.types.cjs';
3
3
 
4
+ declare const OnChangeLivePreviewPostMessageEventTypes: {
5
+ readonly HASH_CHANGE: "hash_change";
6
+ readonly URL_CHANGE: "url_change";
7
+ };
4
8
  interface HistoryLivePreviewPostMessageEventData {
5
9
  type: "forward" | "backward" | "reload";
6
10
  }
7
11
  interface OnChangeLivePreviewPostMessageEventData {
8
12
  hash: string;
13
+ entry_uid?: string;
14
+ content_type_uid?: string;
15
+ url?: string;
16
+ _metadata?: {
17
+ event_type: typeof OnChangeLivePreviewPostMessageEventTypes[keyof typeof OnChangeLivePreviewPostMessageEventTypes];
18
+ };
9
19
  }
10
20
  interface LivePreviewInitEventResponse {
11
21
  contentTypeUid: string;
@@ -13,4 +23,4 @@ interface LivePreviewInitEventResponse {
13
23
  windowType: ILivePreviewWindowType;
14
24
  }
15
25
 
16
- export type { HistoryLivePreviewPostMessageEventData, LivePreviewInitEventResponse, OnChangeLivePreviewPostMessageEventData };
26
+ export { type HistoryLivePreviewPostMessageEventData, type LivePreviewInitEventResponse, type OnChangeLivePreviewPostMessageEventData, OnChangeLivePreviewPostMessageEventTypes };
@@ -1,11 +1,21 @@
1
1
  import { ILivePreviewWindowType } from '../../../types/types.js';
2
2
  import '../../../visualBuilder/types/collab.types.js';
3
3
 
4
+ declare const OnChangeLivePreviewPostMessageEventTypes: {
5
+ readonly HASH_CHANGE: "hash_change";
6
+ readonly URL_CHANGE: "url_change";
7
+ };
4
8
  interface HistoryLivePreviewPostMessageEventData {
5
9
  type: "forward" | "backward" | "reload";
6
10
  }
7
11
  interface OnChangeLivePreviewPostMessageEventData {
8
12
  hash: string;
13
+ entry_uid?: string;
14
+ content_type_uid?: string;
15
+ url?: string;
16
+ _metadata?: {
17
+ event_type: typeof OnChangeLivePreviewPostMessageEventTypes[keyof typeof OnChangeLivePreviewPostMessageEventTypes];
18
+ };
9
19
  }
10
20
  interface LivePreviewInitEventResponse {
11
21
  contentTypeUid: string;
@@ -13,4 +23,4 @@ interface LivePreviewInitEventResponse {
13
23
  windowType: ILivePreviewWindowType;
14
24
  }
15
25
 
16
- export type { HistoryLivePreviewPostMessageEventData, LivePreviewInitEventResponse, OnChangeLivePreviewPostMessageEventData };
26
+ export { type HistoryLivePreviewPostMessageEventData, type LivePreviewInitEventResponse, type OnChangeLivePreviewPostMessageEventData, OnChangeLivePreviewPostMessageEventTypes };
@@ -1 +1,11 @@
1
+ import "../../../chunk-5WRI5ZAA.js";
2
+
3
+ // src/livePreview/eventManager/types/livePreviewPostMessageEvent.type.ts
4
+ var OnChangeLivePreviewPostMessageEventTypes = {
5
+ HASH_CHANGE: "hash_change",
6
+ URL_CHANGE: "url_change"
7
+ };
8
+ export {
9
+ OnChangeLivePreviewPostMessageEventTypes
10
+ };
1
11
  //# sourceMappingURL=livePreviewPostMessageEvent.type.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../../../../../src/livePreview/eventManager/types/livePreviewPostMessageEvent.type.ts"],"sourcesContent":["import { ILivePreviewWindowType } from \"../../../types/types\";\n\nexport const OnChangeLivePreviewPostMessageEventTypes = {\n HASH_CHANGE: \"hash_change\",\n URL_CHANGE: \"url_change\"\n} as const;\n\nexport interface HistoryLivePreviewPostMessageEventData {\n type: \"forward\" | \"backward\" | \"reload\";\n}\n\nexport interface OnChangeLivePreviewPostMessageEventData {\n hash: string;\n entry_uid?: string;\n content_type_uid?: string;\n url?: string;\n _metadata?: {\n event_type: typeof OnChangeLivePreviewPostMessageEventTypes[keyof typeof OnChangeLivePreviewPostMessageEventTypes];\n }\n}\n\nexport interface LivePreviewInitEventResponse {\n contentTypeUid: string;\n entryUid: string;\n windowType: ILivePreviewWindowType;\n}\n"],"mappings":";;;AAEO,IAAM,2CAA2C;AAAA,EACpD,aAAa;AAAA,EACb,YAAY;AAChB;","names":[]}
@@ -227,7 +227,7 @@ var _ContentstackLivePreview = class _ContentstackLivePreview {
227
227
  * @returns The version of the SDK as a string.
228
228
  */
229
229
  static getSdkVersion() {
230
- return "3.4.0";
230
+ return "4.0.0";
231
231
  }
232
232
  };
233
233
  _ContentstackLivePreview.previewConstructors = {};
@@ -195,7 +195,7 @@ var _ContentstackLivePreview = class _ContentstackLivePreview {
195
195
  * @returns The version of the SDK as a string.
196
196
  */
197
197
  static getSdkVersion() {
198
- return "3.4.0";
198
+ return "4.0.0";
199
199
  }
200
200
  };
201
201
  _ContentstackLivePreview.previewConstructors = {};
@@ -100,7 +100,8 @@ function FieldToolbarComponent(props) {
100
100
  const {
101
101
  eventDetails,
102
102
  isVariant: isVariantOrParentOfVariant,
103
- entryPermissions
103
+ entryPermissions,
104
+ entryWorkflowStageDetails
104
105
  } = props;
105
106
  const { fieldMetadata, editableElement: targetElement } = eventDetails;
106
107
  const [isFormLoading, setIsFormLoading] = (0, import_compat.useState)(false);
@@ -134,7 +135,8 @@ function FieldToolbarComponent(props) {
134
135
  editableElement: targetElement,
135
136
  fieldMetadata
136
137
  },
137
- entryPermissions
138
+ entryPermissions,
139
+ entryWorkflowStageDetails
138
140
  );
139
141
  disableFieldActions = isDisabled;
140
142
  fieldType = (0, import_getFieldType.getFieldType)(fieldSchema);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/components/FieldToolbar.tsx"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { CslpData as CslpDataUtil } from \"../../utils/cslpdata\";\nimport getChildrenDirection from \"../utils/getChildrenDirection\";\nimport {\n ALLOWED_MODAL_EDITABLE_FIELD,\n ALLOWED_REPLACE_FIELDS,\n DEFAULT_MULTIPLE_FIELDS,\n} from \"../utils/constants\";\nimport { getFieldType } from \"../utils/getFieldType\";\nimport {\n handleDeleteInstance,\n handleMoveInstance,\n} from \"../utils/instanceHandlers\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { FieldDataType, ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport {\n CaretIcon,\n DeleteIcon,\n MoveLeftIcon,\n MoveRightIcon,\n ReplaceAssetIcon,\n MoreIcon,\n} from \"./icons\";\nimport { fieldIcons } from \"./icons/fields\";\nimport classNames from \"classnames\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport CommentIcon from \"./CommentIcon\";\nimport React, { useEffect, useState, useRef } from \"preact/compat\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { IReferenceContentTypeSchema } from \"../../cms/types/contentTypeSchema.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { FormIcon } from \"./icons\";\nimport { getDOMEditStack } from \"../utils/getCsDataOfElement\";\nimport { VariantIcon } from \"./icons/variant\";\nimport {\n BASE_VARIANT_STATUS,\n getFieldVariantStatus,\n IVariantStatus,\n VariantRevertDropdown,\n} from \"./FieldRevert/FieldRevertComponent\";\nimport { LoadingIcon } from \"./icons/loading\";\nimport { EntryPermissions } from \"../utils/getEntryPermissions\";\nimport { EmptyAppIcon } from \"./icons/EmptyAppIcon\";\nimport { FieldLocationAppList } from \"./FieldLocationAppList\";\nimport { FieldLocationIcon } from \"./FieldLocationIcon\";\n\n\nexport type FieldDetails = Pick<\n VisualBuilderCslpEventDetails,\n \"editableElement\" | \"fieldMetadata\"\n>;\n\nconst TOOLTIP_TOP_EDGE_BUFFER = 96;\n\ninterface MultipleFieldToolbarProps {\n eventDetails: VisualBuilderCslpEventDetails;\n hideOverlay: () => void;\n isVariant?: boolean;\n entryPermissions?: EntryPermissions;\n}\n\nfunction handleReplaceAsset(fieldMetadata: CslpData) {\n // TODO avoid sending whole fieldMetadata\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_ASSET_MODAL,\n {\n fieldMetadata,\n }\n );\n}\n\nfunction handleReplaceReference(fieldMetadata: CslpData) {\n const isMultipleInstance =\n fieldMetadata.multipleFieldMetadata.index > -1 &&\n fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.multipleFieldMetadata.parentDetails?.parentPath;\n const entryPath = isMultipleInstance\n ? fieldMetadata.instance.fieldPathWithIndex\n : fieldMetadata.fieldPathWithIndex;\n\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_REFERENCE_MODAL,\n {\n entry_uid: fieldMetadata.entry_uid,\n content_type_uid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n fieldPath: fieldMetadata.fieldPath,\n fieldPathWithIndex: fieldMetadata.fieldPathWithIndex,\n entryPath,\n }\n );\n}\n\nfunction handleEdit(fieldMetadata: CslpData) {\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_FIELD_EDIT_MODAL,\n { fieldMetadata }\n );\n}\n\nfunction handleFormFieldFocus(eventDetails: VisualBuilderCslpEventDetails) {\n const { editableElement } = eventDetails;\n return visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.FOCUS_FIELD,\n {\n DOMEditStack: getDOMEditStack(editableElement),\n toggleVisibility: true,\n }\n );\n}\n\nfunction FieldToolbarComponent(\n props: MultipleFieldToolbarProps\n): JSX.Element | null {\n const {\n eventDetails,\n isVariant: isVariantOrParentOfVariant,\n entryPermissions,\n } = props;\n const { fieldMetadata, editableElement: targetElement } = eventDetails;\n const [isFormLoading, setIsFormLoading] = useState(false);\n const [fieldLocationData, setFieldLocationData] = useState<any>(null);\n const [displayAllApps, setDisplayAllApps] = useState(false);\n const moreButtonRef = useRef<HTMLButtonElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n const [appListPosition, setAppListPosition] = useState<\"left\" | \"right\">(\n \"right\"\n );\n\n const parentPath =\n fieldMetadata?.multipleFieldMetadata?.parentDetails?.parentCslpValue ||\n \"\";\n const isVariant = !!fieldMetadata?.variant || isVariantOrParentOfVariant;\n const direction = getChildrenDirection(targetElement, parentPath);\n const [fieldSchema, setFieldSchema] = useState<ISchemaFieldMap | null>(\n null\n );\n const [fieldVariantStatus, setFieldVariantStatus] =\n useState<IVariantStatus>(BASE_VARIANT_STATUS);\n const [isOpenVariantRevert, setIsOpenVariantRevert] =\n useState<boolean>(false);\n\n let isModalEditable = false;\n let isReplaceAllowed = false;\n let isMultiple = false;\n let Icon = null;\n let fieldType = null;\n let isWholeMultipleField = false;\n const APP_LIST_MIN_WIDTH = 230;\n\n let disableFieldActions = false;\n if (fieldSchema) {\n const { isDisabled } = isFieldDisabled(\n fieldSchema,\n {\n editableElement: targetElement,\n fieldMetadata,\n },\n entryPermissions\n );\n disableFieldActions = isDisabled;\n\n fieldType = getFieldType(fieldSchema);\n \n\n Icon = fieldIcons[fieldType];\n\n isMultiple = fieldSchema.multiple || false;\n if (fieldType === FieldDataType.REFERENCE)\n isMultiple = (fieldSchema as IReferenceContentTypeSchema)\n .field_metadata.ref_multiple;\n\n // field is multiple but an instance is not selected\n // instead the whole field (all instances) is selected.\n // Currently, when whole featured_blogs is selected in canvas,\n // the fieldPathWithIndex and instance.fieldPathWithIndex are the same\n // cannot rely on -1 index, as the non-negative index then refers to the index of\n // the featured_blogs block in page_components\n // It is not needed except taxanomy.\n isWholeMultipleField =\n isMultiple &&\n (fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.instance.fieldPathWithIndex ||\n fieldMetadata.multipleFieldMetadata?.index === -1);\n\n isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType) && !isWholeMultipleField;\n\n isReplaceAllowed =\n ALLOWED_REPLACE_FIELDS.includes(fieldType) && !isWholeMultipleField;\n // if (\n // DEFAULT_MULTIPLE_FIELDS.includes(fieldType) &&\n // isWholeMultipleField &&\n // !isVariant\n // ) {\n // return null;\n // }\n }\n\n const domEditStack=getDOMEditStack(eventDetails.editableElement) as CslpDataUtil[]\n\n\n const invertTooltipPosition =\n targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;\n\n const handleMoreIconClick = () => {\n if (toolbarRef.current) {\n const rect = toolbarRef.current.getBoundingClientRect();\n const spaceRight = window.innerWidth - rect.right;\n const spaceLeft = rect.left;\n let position = \"\";\n\n if (spaceRight < APP_LIST_MIN_WIDTH) {\n position = \"left\";\n } else if (spaceRight > APP_LIST_MIN_WIDTH) {\n position = \"right\";\n } else {\n position = spaceRight > spaceLeft ? \"right\" : \"left\";\n }\n setAppListPosition(position as \"left\" | \"right\");\n }\n\n setDisplayAllApps(!displayAllApps);\n };\n\n const editButton = Icon ? (\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__edit-button\"\n className={classNames(\n \"visual-builder__button visual-builder__button--secondary visual-builder__button--edit\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__button--edit\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Edit\"}\n onClick={(e) => {\n // TODO the listener for field path is attached to the common parent requiring\n // propagation to be stopped, should ideally only attach onClick to fieldpath dropdown\n e.preventDefault();\n e.stopPropagation();\n handleEdit(fieldMetadata);\n }}\n disabled={disableFieldActions}\n >\n <Icon />\n </button>\n ) : null;\n\n const replaceButton = fieldType ? (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Replace\"}\n data-testid={`visual-builder-replace-${fieldType}`}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n if (fieldType === FieldDataType.REFERENCE) {\n handleReplaceReference(fieldMetadata);\n return;\n } else if (fieldType === FieldDataType.FILE) {\n handleReplaceAsset(fieldMetadata);\n return;\n }\n }}\n disabled={disableFieldActions}\n >\n <ReplaceAssetIcon />\n </button>\n ) : null;\n\n const formButton = (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n },\n {\n [visualBuilderStyles()[\n \"visual-builder__button--comment-loader\"\n ]]: isFormLoading,\n \"visual-builder__button--comment-loader\": isFormLoading,\n }\n )}\n data-tooltip={\"Form\"}\n data-testid={`visual-builder-form`}\n onClick={async (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsFormLoading(true);\n try {\n await handleFormFieldFocus(eventDetails);\n } finally {\n setIsFormLoading(false);\n }\n }}\n disabled={isFormLoading}\n >\n {isFormLoading ? <LoadingIcon /> : <FormIcon />}\n </button>\n );\n\n const toggleVariantDropdown = () => {\n setIsOpenVariantRevert(!isOpenVariantRevert);\n };\n\n const closeVariantDropdown = () => {\n setIsOpenVariantRevert(false);\n };\n\n const variantButton = (\n <button\n className={classNames(\n \"visual-builder__variant-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n visualBuilderStyles()[\"visual-builder__variant-button\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Variant Revert\"}\n data-testid={`visual-builder-canvas-variant-revert`}\n onClick={toggleVariantDropdown}\n >\n <VariantIcon />\n <CaretIcon open={isOpenVariantRevert} />\n </button>\n );\n\n // TODO sibling count is incorrect for this purpose\n\n const totalElementCount = targetElement?.parentNode?.childElementCount ?? 1;\n const indexOfElement = fieldMetadata?.multipleFieldMetadata?.index;\n\n const disableMoveLeft = indexOfElement === 0; // first element\n const disableMoveRight = indexOfElement === totalElementCount - 1; // last element\n\n useEffect(() => {\n async function fetchFieldSchema() {\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n );\n if (fieldSchema) {\n setFieldSchema(fieldSchema);\n }\n const variantStatus = await getFieldVariantStatus(fieldMetadata);\n setFieldVariantStatus(variantStatus ?? BASE_VARIANT_STATUS);\n }\n fetchFieldSchema();\n }, [fieldMetadata]);\n\n useEffect(() => {\n const event = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.DELETE_INSTANCE,\n (args: { data: { path: string } }) => {\n if (\n args.data?.path ===\n fieldMetadata.instance.fieldPathWithIndex\n ) {\n props.hideOverlay();\n }\n }\n );\n\n return () => {\n event?.unregister();\n };\n }, []);\n\n\n\n useEffect(() => {\n const fetchFieldLocationData = async () => {\n try {\n const event = await visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FIELD_LOCATION_DATA, {\n domEditStack: getDOMEditStack(eventDetails.editableElement)\n });\n \n setFieldLocationData(event)\n } catch (error) {\n console.error('Error fetching field location data:', error);\n }\n };\n\n fetchFieldLocationData();\n }, [eventDetails.editableElement]);\n\n const multipleFieldToolbarButtonClasses = classNames(\n \"visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n );\n\n return (\n <div\n className={classNames(\n \"visual-builder__field-toolbar-container\",\n visualBuilderStyles()[\"visual-builder__field-toolbar-container\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__multiple-field-toolbar\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__multiple-field-toolbar\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar\"\n >\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__button-group\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__button-group\"\n ]\n )}\n >\n <>\n {isVariant ? (\n <VariantRevertDropdown\n fieldDataName={fieldMetadata.fieldPathWithIndex}\n fieldMetadata={fieldMetadata}\n variantStatus={fieldVariantStatus}\n isOpen={isOpenVariantRevert}\n closeDropdown={closeVariantDropdown}\n invertTooltipPosition={invertTooltipPosition}\n toggleVariantDropdown={toggleVariantDropdown}\n disabled={disableFieldActions}\n />\n ) : null}\n {isMultiple && !isWholeMultipleField ? (\n <>\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction === \"vertical\"\n ? \"Move up\"\n : \"Move left\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"previous\"\n );\n }}\n disabled={\n disableFieldActions || disableMoveLeft\n }\n >\n <MoveLeftIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction === \"vertical\",\n })}\n disabled={\n disableFieldActions ||\n disableMoveLeft\n }\n />\n </button>\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction === \"vertical\"\n ? \"Move down\"\n : \"Move right\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"next\"\n );\n }}\n disabled={\n disableFieldActions || disableMoveRight\n }\n >\n <MoveRightIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction === \"vertical\",\n })}\n disabled={\n disableFieldActions ||\n disableMoveRight\n }\n />\n </button>\n\n {isModalEditable ? editButton : null}\n {formButton}\n {isReplaceAllowed ? replaceButton : null}\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__delete-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\"Delete\"}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleDeleteInstance(fieldMetadata);\n }}\n disabled={disableFieldActions}\n >\n <DeleteIcon />\n </button>\n </>\n ) : (\n <>\n {isModalEditable ? editButton : null}\n {isReplaceAllowed ? replaceButton : null}\n {formButton}\n {fieldSchema ? (\n <CommentIcon\n fieldMetadata={fieldMetadata}\n fieldSchema={fieldSchema}\n invertTooltipPosition={\n invertTooltipPosition\n }\n />\n ) : null}\n </>\n )}\n\n <FieldLocationIcon\n fieldLocationData={fieldLocationData}\n multipleFieldToolbarButtonClasses={\n multipleFieldToolbarButtonClasses\n }\n handleMoreIconClick={handleMoreIconClick}\n moreButtonRef={moreButtonRef}\n toolbarRef={toolbarRef}\n domEditStack={domEditStack}\n />\n </>\n </div>\n </div>\n {displayAllApps && (\n <FieldLocationAppList\n toolbarRef={toolbarRef}\n apps={fieldLocationData?.apps || ([] as any[])}\n position={appListPosition}\n domEditStack={domEditStack}\n setDisplayAllApps={setDisplayAllApps}\n displayAllApps={displayAllApps}\n />\n )}\n </div>\n );\n}\n\nexport default FieldToolbarComponent;\n"],"mappings":"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","names":["import_icons","visualBuilderPostMessage","getChildrenDirection","classNames","fieldSchema","CommentIcon"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/components/FieldToolbar.tsx"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { CslpData as CslpDataUtil } from \"../../utils/cslpdata\";\nimport getChildrenDirection from \"../utils/getChildrenDirection\";\nimport {\n ALLOWED_MODAL_EDITABLE_FIELD,\n ALLOWED_REPLACE_FIELDS,\n} from \"../utils/constants\";\nimport { getFieldType } from \"../utils/getFieldType\";\nimport {\n handleDeleteInstance,\n handleMoveInstance,\n} from \"../utils/instanceHandlers\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { FieldDataType, ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport {\n CaretIcon,\n DeleteIcon,\n MoveLeftIcon,\n MoveRightIcon,\n ReplaceAssetIcon,\n} from \"./icons\";\nimport { fieldIcons } from \"./icons/fields\";\nimport classNames from \"classnames\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport CommentIcon from \"./CommentIcon\";\nimport React, { useEffect, useState, useRef } from \"preact/compat\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { IReferenceContentTypeSchema } from \"../../cms/types/contentTypeSchema.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { FormIcon } from \"./icons\";\nimport { getDOMEditStack } from \"../utils/getCsDataOfElement\";\nimport { VariantIcon } from \"./icons/variant\";\nimport {\n BASE_VARIANT_STATUS,\n getFieldVariantStatus,\n IVariantStatus,\n VariantRevertDropdown,\n} from \"./FieldRevert/FieldRevertComponent\";\nimport { LoadingIcon } from \"./icons/loading\";\nimport { EntryPermissions } from \"../utils/getEntryPermissions\";\nimport { FieldLocationAppList } from \"./FieldLocationAppList\";\nimport { FieldLocationIcon } from \"./FieldLocationIcon\";\nimport { WorkflowStageDetails } from \"../utils/getWorkflowStageDetails\";\n\nexport type FieldDetails = Pick<\n VisualBuilderCslpEventDetails,\n \"editableElement\" | \"fieldMetadata\"\n>;\n\nconst TOOLTIP_TOP_EDGE_BUFFER = 96;\n\ninterface MultipleFieldToolbarProps {\n eventDetails: VisualBuilderCslpEventDetails;\n hideOverlay: () => void;\n isVariant?: boolean;\n entryPermissions?: EntryPermissions | undefined;\n entryWorkflowStageDetails?: WorkflowStageDetails | undefined;\n}\n\nfunction handleReplaceAsset(fieldMetadata: CslpData) {\n // TODO avoid sending whole fieldMetadata\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_ASSET_MODAL,\n {\n fieldMetadata,\n }\n );\n}\n\nfunction handleReplaceReference(fieldMetadata: CslpData) {\n const isMultipleInstance =\n fieldMetadata.multipleFieldMetadata.index > -1 &&\n fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.multipleFieldMetadata.parentDetails?.parentPath;\n const entryPath = isMultipleInstance\n ? fieldMetadata.instance.fieldPathWithIndex\n : fieldMetadata.fieldPathWithIndex;\n\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_REFERENCE_MODAL,\n {\n entry_uid: fieldMetadata.entry_uid,\n content_type_uid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n fieldPath: fieldMetadata.fieldPath,\n fieldPathWithIndex: fieldMetadata.fieldPathWithIndex,\n entryPath,\n }\n );\n}\n\nfunction handleEdit(fieldMetadata: CslpData) {\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_FIELD_EDIT_MODAL,\n { fieldMetadata }\n );\n}\n\nfunction handleFormFieldFocus(eventDetails: VisualBuilderCslpEventDetails) {\n const { editableElement } = eventDetails;\n return visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.FOCUS_FIELD,\n {\n DOMEditStack: getDOMEditStack(editableElement),\n toggleVisibility: true,\n }\n );\n}\n\nfunction FieldToolbarComponent(\n props: MultipleFieldToolbarProps\n): JSX.Element | null {\n const {\n eventDetails,\n isVariant: isVariantOrParentOfVariant,\n entryPermissions,\n entryWorkflowStageDetails,\n } = props;\n const { fieldMetadata, editableElement: targetElement } = eventDetails;\n const [isFormLoading, setIsFormLoading] = useState(false);\n const [fieldLocationData, setFieldLocationData] = useState<any>(null);\n const [displayAllApps, setDisplayAllApps] = useState(false);\n const moreButtonRef = useRef<HTMLButtonElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n const [appListPosition, setAppListPosition] = useState<\"left\" | \"right\">(\n \"right\"\n );\n\n const parentPath =\n fieldMetadata?.multipleFieldMetadata?.parentDetails?.parentCslpValue ||\n \"\";\n const isVariant = !!fieldMetadata?.variant || isVariantOrParentOfVariant;\n const direction = getChildrenDirection(targetElement, parentPath);\n const [fieldSchema, setFieldSchema] = useState<ISchemaFieldMap | null>(\n null\n );\n const [fieldVariantStatus, setFieldVariantStatus] =\n useState<IVariantStatus>(BASE_VARIANT_STATUS);\n const [isOpenVariantRevert, setIsOpenVariantRevert] =\n useState<boolean>(false);\n\n let isModalEditable = false;\n let isReplaceAllowed = false;\n let isMultiple = false;\n let Icon = null;\n let fieldType = null;\n let isWholeMultipleField = false;\n const APP_LIST_MIN_WIDTH = 230;\n\n let disableFieldActions = false;\n if (fieldSchema) {\n const { isDisabled } = isFieldDisabled(\n fieldSchema,\n {\n editableElement: targetElement,\n fieldMetadata,\n },\n entryPermissions,\n entryWorkflowStageDetails\n );\n disableFieldActions = isDisabled;\n\n fieldType = getFieldType(fieldSchema);\n\n Icon = fieldIcons[fieldType];\n\n isMultiple = fieldSchema.multiple || false;\n if (fieldType === FieldDataType.REFERENCE)\n isMultiple = (fieldSchema as IReferenceContentTypeSchema)\n .field_metadata.ref_multiple;\n\n // field is multiple but an instance is not selected\n // instead the whole field (all instances) is selected.\n // Currently, when whole featured_blogs is selected in canvas,\n // the fieldPathWithIndex and instance.fieldPathWithIndex are the same\n // cannot rely on -1 index, as the non-negative index then refers to the index of\n // the featured_blogs block in page_components\n // It is not needed except taxanomy.\n isWholeMultipleField =\n isMultiple &&\n (fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.instance.fieldPathWithIndex ||\n fieldMetadata.multipleFieldMetadata?.index === -1);\n\n isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType) && !isWholeMultipleField;\n\n isReplaceAllowed =\n ALLOWED_REPLACE_FIELDS.includes(fieldType) && !isWholeMultipleField;\n // if (\n // DEFAULT_MULTIPLE_FIELDS.includes(fieldType) &&\n // isWholeMultipleField &&\n // !isVariant\n // ) {\n // return null;\n // }\n }\n\n const domEditStack=getDOMEditStack(eventDetails.editableElement) as CslpDataUtil[]\n\n\n const invertTooltipPosition =\n targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;\n\n const handleMoreIconClick = () => {\n if (toolbarRef.current) {\n const rect = toolbarRef.current.getBoundingClientRect();\n const spaceRight = window.innerWidth - rect.right;\n const spaceLeft = rect.left;\n let position = \"\";\n\n if (spaceRight < APP_LIST_MIN_WIDTH) {\n position = \"left\";\n } else if (spaceRight > APP_LIST_MIN_WIDTH) {\n position = \"right\";\n } else {\n position = spaceRight > spaceLeft ? \"right\" : \"left\";\n }\n setAppListPosition(position as \"left\" | \"right\");\n }\n\n setDisplayAllApps(!displayAllApps);\n };\n\n const editButton = Icon ? (\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__edit-button\"\n className={classNames(\n \"visual-builder__button visual-builder__button--secondary visual-builder__button--edit\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__button--edit\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Edit\"}\n onClick={(e) => {\n // TODO the listener for field path is attached to the common parent requiring\n // propagation to be stopped, should ideally only attach onClick to fieldpath dropdown\n e.preventDefault();\n e.stopPropagation();\n handleEdit(fieldMetadata);\n }}\n disabled={disableFieldActions}\n >\n <Icon />\n </button>\n ) : null;\n\n const replaceButton = fieldType ? (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Replace\"}\n data-testid={`visual-builder-replace-${fieldType}`}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n if (fieldType === FieldDataType.REFERENCE) {\n handleReplaceReference(fieldMetadata);\n return;\n } else if (fieldType === FieldDataType.FILE) {\n handleReplaceAsset(fieldMetadata);\n return;\n }\n }}\n disabled={disableFieldActions}\n >\n <ReplaceAssetIcon />\n </button>\n ) : null;\n\n const formButton = (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n },\n {\n [visualBuilderStyles()[\n \"visual-builder__button--comment-loader\"\n ]]: isFormLoading,\n \"visual-builder__button--comment-loader\": isFormLoading,\n }\n )}\n data-tooltip={\"Form\"}\n data-testid={`visual-builder-form`}\n onClick={async (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsFormLoading(true);\n try {\n await handleFormFieldFocus(eventDetails);\n } finally {\n setIsFormLoading(false);\n }\n }}\n disabled={isFormLoading}\n >\n {isFormLoading ? <LoadingIcon /> : <FormIcon />}\n </button>\n );\n\n const toggleVariantDropdown = () => {\n setIsOpenVariantRevert(!isOpenVariantRevert);\n };\n\n const closeVariantDropdown = () => {\n setIsOpenVariantRevert(false);\n };\n\n const variantButton = (\n <button\n className={classNames(\n \"visual-builder__variant-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n visualBuilderStyles()[\"visual-builder__variant-button\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Variant Revert\"}\n data-testid={`visual-builder-canvas-variant-revert`}\n onClick={toggleVariantDropdown}\n >\n <VariantIcon />\n <CaretIcon open={isOpenVariantRevert} />\n </button>\n );\n\n // TODO sibling count is incorrect for this purpose\n\n const totalElementCount = targetElement?.parentNode?.childElementCount ?? 1;\n const indexOfElement = fieldMetadata?.multipleFieldMetadata?.index;\n\n const disableMoveLeft = indexOfElement === 0; // first element\n const disableMoveRight = indexOfElement === totalElementCount - 1; // last element\n\n useEffect(() => {\n async function fetchFieldSchema() {\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n );\n if (fieldSchema) {\n setFieldSchema(fieldSchema);\n }\n const variantStatus = await getFieldVariantStatus(fieldMetadata);\n setFieldVariantStatus(variantStatus ?? BASE_VARIANT_STATUS);\n }\n fetchFieldSchema();\n }, [fieldMetadata]);\n\n useEffect(() => {\n const event = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.DELETE_INSTANCE,\n (args: { data: { path: string } }) => {\n if (\n args.data?.path ===\n fieldMetadata.instance.fieldPathWithIndex\n ) {\n props.hideOverlay();\n }\n }\n );\n\n return () => {\n event?.unregister();\n };\n }, []);\n\n useEffect(() => {\n const fetchFieldLocationData = async () => {\n try {\n const event = await visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FIELD_LOCATION_DATA, {\n domEditStack: getDOMEditStack(eventDetails.editableElement)\n });\n \n setFieldLocationData(event)\n } catch (error) {\n console.error('Error fetching field location data:', error);\n }\n };\n\n fetchFieldLocationData();\n }, [eventDetails.editableElement]);\n\n const multipleFieldToolbarButtonClasses = classNames(\n \"visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n );\n\n return (\n <div\n className={classNames(\n \"visual-builder__field-toolbar-container\",\n visualBuilderStyles()[\"visual-builder__field-toolbar-container\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__multiple-field-toolbar\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__multiple-field-toolbar\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar\"\n >\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__button-group\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__button-group\"\n ]\n )}\n >\n <>\n {isVariant ? (\n <VariantRevertDropdown\n fieldDataName={fieldMetadata.fieldPathWithIndex}\n fieldMetadata={fieldMetadata}\n variantStatus={fieldVariantStatus}\n isOpen={isOpenVariantRevert}\n closeDropdown={closeVariantDropdown}\n invertTooltipPosition={invertTooltipPosition}\n toggleVariantDropdown={toggleVariantDropdown}\n disabled={disableFieldActions}\n />\n ) : null}\n {isMultiple && !isWholeMultipleField ? (\n <>\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction === \"vertical\"\n ? \"Move up\"\n : \"Move left\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"previous\"\n );\n }}\n disabled={\n disableFieldActions || disableMoveLeft\n }\n >\n <MoveLeftIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction === \"vertical\",\n })}\n disabled={\n disableFieldActions ||\n disableMoveLeft\n }\n />\n </button>\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction === \"vertical\"\n ? \"Move down\"\n : \"Move right\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"next\"\n );\n }}\n disabled={\n disableFieldActions || disableMoveRight\n }\n >\n <MoveRightIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction === \"vertical\",\n })}\n disabled={\n disableFieldActions ||\n disableMoveRight\n }\n />\n </button>\n\n {isModalEditable ? editButton : null}\n {formButton}\n {isReplaceAllowed ? replaceButton : null}\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__delete-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\"Delete\"}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleDeleteInstance(fieldMetadata);\n }}\n disabled={disableFieldActions}\n >\n <DeleteIcon />\n </button>\n </>\n ) : (\n <>\n {isModalEditable ? editButton : null}\n {isReplaceAllowed ? replaceButton : null}\n {formButton}\n {fieldSchema ? (\n <CommentIcon\n fieldMetadata={fieldMetadata}\n fieldSchema={fieldSchema}\n invertTooltipPosition={\n invertTooltipPosition\n }\n />\n ) : null}\n </>\n )}\n\n <FieldLocationIcon\n fieldLocationData={fieldLocationData}\n multipleFieldToolbarButtonClasses={\n multipleFieldToolbarButtonClasses\n }\n handleMoreIconClick={handleMoreIconClick}\n moreButtonRef={moreButtonRef}\n toolbarRef={toolbarRef}\n domEditStack={domEditStack}\n />\n </>\n </div>\n </div>\n {displayAllApps && (\n <FieldLocationAppList\n toolbarRef={toolbarRef}\n apps={fieldLocationData?.apps || ([] as any[])}\n position={appListPosition}\n domEditStack={domEditStack}\n setDisplayAllApps={setDisplayAllApps}\n displayAllApps={displayAllApps}\n />\n )}\n </div>\n );\n}\n\nexport default FieldToolbarComponent;\n"],"mappings":"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","names":["import_icons","visualBuilderPostMessage","getChildrenDirection","classNames","fieldSchema","CommentIcon"]}
@@ -1,5 +1,6 @@
1
1
  import { VisualBuilderCslpEventDetails } from '../types/visualBuilder.types.cjs';
2
2
  import { EntryPermissions } from '../utils/getEntryPermissions.cjs';
3
+ import { WorkflowStageDetails } from '../utils/getWorkflowStageDetails.cjs';
3
4
  import '../../cslp/types/cslp.types.cjs';
4
5
 
5
6
  type FieldDetails = Pick<VisualBuilderCslpEventDetails, "editableElement" | "fieldMetadata">;
@@ -7,7 +8,8 @@ interface MultipleFieldToolbarProps {
7
8
  eventDetails: VisualBuilderCslpEventDetails;
8
9
  hideOverlay: () => void;
9
10
  isVariant?: boolean;
10
- entryPermissions?: EntryPermissions;
11
+ entryPermissions?: EntryPermissions | undefined;
12
+ entryWorkflowStageDetails?: WorkflowStageDetails | undefined;
11
13
  }
12
14
  declare function FieldToolbarComponent(props: MultipleFieldToolbarProps): JSX.Element | null;
13
15