@contentstack/live-preview-utils 3.0.1 → 3.1.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 (207) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/legacy/cslp/cslpdata.cjs.map +1 -1
  4. package/dist/legacy/cslp/cslpdata.js.map +1 -1
  5. package/dist/legacy/livePreview/editButton/editButton.cjs +5 -2
  6. package/dist/legacy/livePreview/editButton/editButton.cjs.map +1 -1
  7. package/dist/legacy/livePreview/editButton/editButton.js +5 -2
  8. package/dist/legacy/livePreview/editButton/editButton.js.map +1 -1
  9. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  10. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  11. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +23 -4
  12. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs.map +1 -1
  13. package/dist/legacy/preview/contentstack-live-preview-HOC.d.cts +2 -1
  14. package/dist/legacy/preview/contentstack-live-preview-HOC.d.ts +2 -1
  15. package/dist/legacy/preview/contentstack-live-preview-HOC.js +23 -4
  16. package/dist/legacy/preview/contentstack-live-preview-HOC.js.map +1 -1
  17. package/dist/legacy/timeline/compare/compare.cjs +2 -1
  18. package/dist/legacy/timeline/compare/compare.cjs.map +1 -1
  19. package/dist/legacy/timeline/compare/compare.js +2 -1
  20. package/dist/legacy/timeline/compare/compare.js.map +1 -1
  21. package/dist/legacy/types/types.cjs.map +1 -1
  22. package/dist/legacy/types/types.d.cts +2 -1
  23. package/dist/legacy/types/types.d.ts +2 -1
  24. package/dist/legacy/types/types.js.map +1 -1
  25. package/dist/legacy/utils/addLivePreviewQueryTags.cjs +49 -0
  26. package/dist/legacy/utils/addLivePreviewQueryTags.cjs.map +1 -0
  27. package/dist/legacy/utils/addLivePreviewQueryTags.d.cts +3 -0
  28. package/dist/legacy/utils/addLivePreviewQueryTags.d.ts +3 -0
  29. package/dist/legacy/utils/addLivePreviewQueryTags.js +26 -0
  30. package/dist/legacy/utils/addLivePreviewQueryTags.js.map +1 -0
  31. package/dist/legacy/utils/index.cjs +3 -21
  32. package/dist/legacy/utils/index.cjs.map +1 -1
  33. package/dist/legacy/utils/index.d.cts +4 -2
  34. package/dist/legacy/utils/index.d.ts +4 -2
  35. package/dist/legacy/utils/index.js +1 -19
  36. package/dist/legacy/utils/index.js.map +1 -1
  37. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs +62 -15
  38. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs.map +1 -1
  39. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.d.cts +3 -2
  40. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.d.ts +3 -2
  41. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.js +63 -17
  42. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.js.map +1 -1
  43. package/dist/legacy/visualBuilder/components/FieldRevert/useHandleOutsideClick.cjs +41 -0
  44. package/dist/legacy/visualBuilder/components/FieldRevert/useHandleOutsideClick.cjs.map +1 -0
  45. package/dist/legacy/visualBuilder/components/FieldRevert/useHandleOutsideClick.d.cts +3 -0
  46. package/dist/legacy/visualBuilder/components/FieldRevert/useHandleOutsideClick.d.ts +3 -0
  47. package/dist/legacy/visualBuilder/components/FieldRevert/useHandleOutsideClick.js +22 -0
  48. package/dist/legacy/visualBuilder/components/FieldRevert/useHandleOutsideClick.js.map +1 -0
  49. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +145 -147
  50. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  51. package/dist/legacy/visualBuilder/components/FieldToolbar.js +147 -149
  52. package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
  53. package/dist/legacy/visualBuilder/components/emptyBlock.cjs +1 -0
  54. package/dist/legacy/visualBuilder/components/emptyBlock.cjs.map +1 -1
  55. package/dist/legacy/visualBuilder/components/emptyBlock.js +1 -0
  56. package/dist/legacy/visualBuilder/components/emptyBlock.js.map +1 -1
  57. package/dist/legacy/visualBuilder/components/icons/variant.cjs +1 -1
  58. package/dist/legacy/visualBuilder/components/icons/variant.cjs.map +1 -1
  59. package/dist/legacy/visualBuilder/components/icons/variant.js +1 -1
  60. package/dist/legacy/visualBuilder/components/icons/variant.js.map +1 -1
  61. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +1 -1
  62. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  63. package/dist/legacy/visualBuilder/generators/generateToolbar.js +1 -1
  64. package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
  65. package/dist/legacy/visualBuilder/listeners/index.cjs +8 -2
  66. package/dist/legacy/visualBuilder/listeners/index.cjs.map +1 -1
  67. package/dist/legacy/visualBuilder/listeners/index.js +8 -2
  68. package/dist/legacy/visualBuilder/listeners/index.js.map +1 -1
  69. package/dist/legacy/visualBuilder/utils/constants.cjs +5 -2
  70. package/dist/legacy/visualBuilder/utils/constants.cjs.map +1 -1
  71. package/dist/legacy/visualBuilder/utils/constants.d.cts +2 -1
  72. package/dist/legacy/visualBuilder/utils/constants.d.ts +2 -1
  73. package/dist/legacy/visualBuilder/utils/constants.js +3 -1
  74. package/dist/legacy/visualBuilder/utils/constants.js.map +1 -1
  75. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs +17 -2
  76. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  77. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js +17 -2
  78. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  79. package/dist/legacy/visualBuilder/utils/getFieldType.cjs +6 -5
  80. package/dist/legacy/visualBuilder/utils/getFieldType.cjs.map +1 -1
  81. package/dist/legacy/visualBuilder/utils/getFieldType.js +6 -5
  82. package/dist/legacy/visualBuilder/utils/getFieldType.js.map +1 -1
  83. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.cjs +10 -0
  84. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.cjs.map +1 -1
  85. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.js +10 -0
  86. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.js.map +1 -1
  87. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +63 -39
  88. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  89. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +53 -39
  90. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  91. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.cjs +44 -0
  92. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.cjs.map +1 -0
  93. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.d.cts +3 -0
  94. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.d.ts +3 -0
  95. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.js +21 -0
  96. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.js.map +1 -0
  97. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.cjs +1 -1
  98. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.cjs.map +1 -1
  99. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.js +1 -1
  100. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.js.map +1 -1
  101. package/dist/legacy/visualBuilder/visualBuilder.style.cjs +3 -0
  102. package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
  103. package/dist/legacy/visualBuilder/visualBuilder.style.js +3 -0
  104. package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
  105. package/dist/modern/cslp/cslpdata.cjs.map +1 -1
  106. package/dist/modern/cslp/cslpdata.js.map +1 -1
  107. package/dist/modern/livePreview/editButton/editButton.cjs +4 -1
  108. package/dist/modern/livePreview/editButton/editButton.cjs.map +1 -1
  109. package/dist/modern/livePreview/editButton/editButton.js +4 -1
  110. package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
  111. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  112. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  113. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +23 -4
  114. package/dist/modern/preview/contentstack-live-preview-HOC.cjs.map +1 -1
  115. package/dist/modern/preview/contentstack-live-preview-HOC.d.cts +2 -1
  116. package/dist/modern/preview/contentstack-live-preview-HOC.d.ts +2 -1
  117. package/dist/modern/preview/contentstack-live-preview-HOC.js +23 -4
  118. package/dist/modern/preview/contentstack-live-preview-HOC.js.map +1 -1
  119. package/dist/modern/timeline/compare/compare.cjs +2 -1
  120. package/dist/modern/timeline/compare/compare.cjs.map +1 -1
  121. package/dist/modern/timeline/compare/compare.js +2 -1
  122. package/dist/modern/timeline/compare/compare.js.map +1 -1
  123. package/dist/modern/types/types.cjs.map +1 -1
  124. package/dist/modern/types/types.d.cts +2 -1
  125. package/dist/modern/types/types.d.ts +2 -1
  126. package/dist/modern/types/types.js.map +1 -1
  127. package/dist/modern/utils/addLivePreviewQueryTags.cjs +49 -0
  128. package/dist/modern/utils/addLivePreviewQueryTags.cjs.map +1 -0
  129. package/dist/modern/utils/addLivePreviewQueryTags.d.cts +3 -0
  130. package/dist/modern/utils/addLivePreviewQueryTags.d.ts +3 -0
  131. package/dist/modern/utils/addLivePreviewQueryTags.js +26 -0
  132. package/dist/modern/utils/addLivePreviewQueryTags.js.map +1 -0
  133. package/dist/modern/utils/index.cjs +3 -21
  134. package/dist/modern/utils/index.cjs.map +1 -1
  135. package/dist/modern/utils/index.d.cts +4 -2
  136. package/dist/modern/utils/index.d.ts +4 -2
  137. package/dist/modern/utils/index.js +1 -19
  138. package/dist/modern/utils/index.js.map +1 -1
  139. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs +62 -15
  140. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs.map +1 -1
  141. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.d.cts +3 -2
  142. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.d.ts +3 -2
  143. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.js +63 -17
  144. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.js.map +1 -1
  145. package/dist/modern/visualBuilder/components/FieldRevert/useHandleOutsideClick.cjs +41 -0
  146. package/dist/modern/visualBuilder/components/FieldRevert/useHandleOutsideClick.cjs.map +1 -0
  147. package/dist/modern/visualBuilder/components/FieldRevert/useHandleOutsideClick.d.cts +3 -0
  148. package/dist/modern/visualBuilder/components/FieldRevert/useHandleOutsideClick.d.ts +3 -0
  149. package/dist/modern/visualBuilder/components/FieldRevert/useHandleOutsideClick.js +22 -0
  150. package/dist/modern/visualBuilder/components/FieldRevert/useHandleOutsideClick.js.map +1 -0
  151. package/dist/modern/visualBuilder/components/FieldToolbar.cjs +144 -146
  152. package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  153. package/dist/modern/visualBuilder/components/FieldToolbar.js +146 -148
  154. package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
  155. package/dist/modern/visualBuilder/components/emptyBlock.cjs +1 -0
  156. package/dist/modern/visualBuilder/components/emptyBlock.cjs.map +1 -1
  157. package/dist/modern/visualBuilder/components/emptyBlock.js +1 -0
  158. package/dist/modern/visualBuilder/components/emptyBlock.js.map +1 -1
  159. package/dist/modern/visualBuilder/components/icons/variant.cjs +1 -1
  160. package/dist/modern/visualBuilder/components/icons/variant.cjs.map +1 -1
  161. package/dist/modern/visualBuilder/components/icons/variant.js +1 -1
  162. package/dist/modern/visualBuilder/components/icons/variant.js.map +1 -1
  163. package/dist/modern/visualBuilder/generators/generateToolbar.cjs +1 -1
  164. package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  165. package/dist/modern/visualBuilder/generators/generateToolbar.js +1 -1
  166. package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
  167. package/dist/modern/visualBuilder/listeners/index.cjs +8 -2
  168. package/dist/modern/visualBuilder/listeners/index.cjs.map +1 -1
  169. package/dist/modern/visualBuilder/listeners/index.js +8 -2
  170. package/dist/modern/visualBuilder/listeners/index.js.map +1 -1
  171. package/dist/modern/visualBuilder/utils/constants.cjs +5 -2
  172. package/dist/modern/visualBuilder/utils/constants.cjs.map +1 -1
  173. package/dist/modern/visualBuilder/utils/constants.d.cts +2 -1
  174. package/dist/modern/visualBuilder/utils/constants.d.ts +2 -1
  175. package/dist/modern/visualBuilder/utils/constants.js +3 -1
  176. package/dist/modern/visualBuilder/utils/constants.js.map +1 -1
  177. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs +17 -2
  178. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  179. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js +17 -2
  180. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  181. package/dist/modern/visualBuilder/utils/getFieldType.cjs +5 -5
  182. package/dist/modern/visualBuilder/utils/getFieldType.cjs.map +1 -1
  183. package/dist/modern/visualBuilder/utils/getFieldType.js +5 -5
  184. package/dist/modern/visualBuilder/utils/getFieldType.js.map +1 -1
  185. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.cjs +10 -0
  186. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.cjs.map +1 -1
  187. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.js +10 -0
  188. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.js.map +1 -1
  189. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +62 -39
  190. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  191. package/dist/modern/visualBuilder/utils/handleIndividualFields.js +52 -39
  192. package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  193. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.cjs +44 -0
  194. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.cjs.map +1 -0
  195. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.d.cts +3 -0
  196. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.d.ts +3 -0
  197. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.js +21 -0
  198. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.js.map +1 -0
  199. package/dist/modern/visualBuilder/utils/multipleElementAddButton.cjs +1 -1
  200. package/dist/modern/visualBuilder/utils/multipleElementAddButton.cjs.map +1 -1
  201. package/dist/modern/visualBuilder/utils/multipleElementAddButton.js +1 -1
  202. package/dist/modern/visualBuilder/utils/multipleElementAddButton.js.map +1 -1
  203. package/dist/modern/visualBuilder/visualBuilder.style.cjs +3 -0
  204. package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
  205. package/dist/modern/visualBuilder/visualBuilder.style.js +3 -0
  206. package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
  207. package/package.json +18 -6
@@ -33,7 +33,6 @@ __export(FieldToolbar_exports, {
33
33
  default: () => FieldToolbar_default
34
34
  });
35
35
  module.exports = __toCommonJS(FieldToolbar_exports);
36
- var import_signals = require("@preact/signals");
37
36
  var import_getChildrenDirection = __toESM(require("../utils/getChildrenDirection.cjs"), 1);
38
37
  var import_constants = require("../utils/constants.cjs");
39
38
  var import_getFieldType = require("../utils/getFieldType.cjs");
@@ -90,25 +89,25 @@ function handleEdit(fieldMetadata) {
90
89
  function handleFormFieldFocus(eventDetails) {
91
90
  var _a;
92
91
  const { editableElement, fieldMetadata, cslpData } = eventDetails;
93
- (_a = import_visualBuilderPostMessage.default) == null ? void 0 : _a.send(
94
- import_postMessage.VisualBuilderPostMessageEvents.TOGGLE_FORM,
95
- {
96
- fieldMetadata,
97
- cslpData
98
- }
99
- ).then(() => {
92
+ (_a = import_visualBuilderPostMessage.default) == null ? void 0 : _a.send(import_postMessage.VisualBuilderPostMessageEvents.TOGGLE_FORM, {
93
+ fieldMetadata,
94
+ cslpData
95
+ }).then(() => {
100
96
  var _a2;
101
- (_a2 = import_visualBuilderPostMessage.default) == null ? void 0 : _a2.send(import_postMessage.VisualBuilderPostMessageEvents.FOCUS_FIELD, {
102
- DOMEditStack: (0, import_getCsDataOfElement.getDOMEditStack)(editableElement)
103
- });
97
+ (_a2 = import_visualBuilderPostMessage.default) == null ? void 0 : _a2.send(
98
+ import_postMessage.VisualBuilderPostMessageEvents.FOCUS_FIELD,
99
+ {
100
+ DOMEditStack: (0, import_getCsDataOfElement.getDOMEditStack)(editableElement)
101
+ }
102
+ );
104
103
  });
105
104
  }
106
105
  function FieldToolbarComponent(props) {
107
106
  var _a, _b, _c, _d, _e;
108
107
  const { eventDetails } = props;
109
108
  const { fieldMetadata, editableElement: targetElement } = eventDetails;
110
- const direction = (0, import_signals.useSignal)("");
111
109
  const parentPath = ((_b = (_a = fieldMetadata == null ? void 0 : fieldMetadata.multipleFieldMetadata) == null ? void 0 : _a.parentDetails) == null ? void 0 : _b.parentCslpValue) || "";
110
+ const direction = (0, import_getChildrenDirection.default)(targetElement, parentPath);
112
111
  const isVariant = !!(fieldMetadata == null ? void 0 : fieldMetadata.variant);
113
112
  const [fieldSchema, setFieldSchema] = (0, import_compat.useState)(
114
113
  null
@@ -122,13 +121,10 @@ function FieldToolbarComponent(props) {
122
121
  let fieldType = null;
123
122
  let isWholeMultipleField = false;
124
123
  if (fieldSchema) {
125
- const { isDisabled } = (0, import_isFieldDisabled.isFieldDisabled)(
126
- fieldSchema,
127
- {
128
- editableElement: targetElement,
129
- fieldMetadata
130
- }
131
- );
124
+ const { isDisabled } = (0, import_isFieldDisabled.isFieldDisabled)(fieldSchema, {
125
+ editableElement: targetElement,
126
+ fieldMetadata
127
+ });
132
128
  if (isDisabled) {
133
129
  return null;
134
130
  }
@@ -144,7 +140,6 @@ function FieldToolbarComponent(props) {
144
140
  return null;
145
141
  }
146
142
  }
147
- direction.value = (0, import_getChildrenDirection.default)(targetElement, parentPath);
148
143
  const invertTooltipPosition = targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;
149
144
  const editButton = Icon ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
150
145
  "button",
@@ -262,21 +257,25 @@ function FieldToolbarComponent(props) {
262
257
  if (fieldSchema2) {
263
258
  setFieldSchema(fieldSchema2);
264
259
  }
265
- const variantStatus = await (0, import_FieldRevertComponent.getFieldVariantStatus)(
266
- fieldMetadata.fieldPathWithIndex
267
- );
260
+ const variantStatus = await (0, import_FieldRevertComponent.getFieldVariantStatus)(fieldMetadata);
268
261
  setFieldVariantStatus(variantStatus ?? import_FieldRevertComponent.BASE_VARIANT_STATUS);
269
262
  }
270
263
  fetchFieldSchema();
271
264
  }, [fieldMetadata]);
272
265
  (0, import_compat.useEffect)(() => {
273
266
  var _a2;
274
- (_a2 = import_visualBuilderPostMessage.default) == null ? void 0 : _a2.on(import_postMessage.VisualBuilderPostMessageEvents.DELETE_INSTANCE, (args) => {
275
- var _a3;
276
- if (((_a3 = args.data) == null ? void 0 : _a3.path) === fieldMetadata.instance.fieldPathWithIndex) {
277
- props.hideOverlay();
267
+ const event = (_a2 = import_visualBuilderPostMessage.default) == null ? void 0 : _a2.on(
268
+ import_postMessage.VisualBuilderPostMessageEvents.DELETE_INSTANCE,
269
+ (args) => {
270
+ var _a3;
271
+ if (((_a3 = args.data) == null ? void 0 : _a3.path) === fieldMetadata.instance.fieldPathWithIndex) {
272
+ props.hideOverlay();
273
+ }
278
274
  }
279
- });
275
+ );
276
+ return () => {
277
+ event == null ? void 0 : event.unregister();
278
+ };
280
279
  }, []);
281
280
  const multipleFieldToolbarButtonClasses = (0, import_classnames.default)(
282
281
  "visual-builder__button visual-builder__button--secondary",
@@ -288,132 +287,131 @@ function FieldToolbarComponent(props) {
288
287
  [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__tooltip--bottom"]]: invertTooltipPosition
289
288
  }
290
289
  );
291
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
290
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
292
291
  "div",
293
292
  {
294
293
  className: (0, import_classnames.default)(
295
294
  "visual-builder__field-toolbar-container",
296
295
  (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__field-toolbar-container"]
297
296
  ),
298
- children: [
299
- isVariant && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
300
- import_FieldRevertComponent.FieldRevertComponent,
301
- {
302
- fieldDataName: fieldMetadata.fieldPathWithIndex,
303
- fieldMetadata,
304
- variantStatus: fieldVariantStatus,
305
- isOpen: isOpenVariantRevert,
306
- closeDropdown: closeVariantDropdown
307
- }
308
- ),
309
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
310
- "div",
311
- {
312
- className: (0, import_classnames.default)(
313
- "visual-builder__focused-toolbar__multiple-field-toolbar",
314
- (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__focused-toolbar__multiple-field-toolbar"]
315
- ),
316
- "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar",
317
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
318
- "div",
319
- {
320
- className: (0, import_classnames.default)(
321
- "visual-builder__focused-toolbar__button-group",
322
- (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__focused-toolbar__button-group"]
323
- ),
324
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
325
- isVariant ? variantButton : null,
326
- isMultiple && !isWholeMultipleField ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
327
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
328
- "button",
329
- {
330
- "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button",
331
- className: multipleFieldToolbarButtonClasses,
332
- "data-tooltip": direction.value === "vertical" ? "Move up" : "Move left",
333
- onClick: (e) => {
334
- e.preventDefault();
335
- e.stopPropagation();
336
- (0, import_instanceHandlers.handleMoveInstance)(
337
- fieldMetadata,
338
- "previous"
339
- );
340
- },
341
- disabled: disableMoveLeft,
342
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
343
- import_icons.MoveLeftIcon,
344
- {
345
- className: (0, import_classnames.default)({
346
- "visual-builder__rotate--90": direction.value === "vertical",
347
- [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__rotate--90"]]: direction.value === "vertical"
348
- }),
349
- disabled: disableMoveLeft
350
- }
351
- )
352
- }
353
- ),
354
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
355
- "button",
356
- {
357
- "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button",
358
- className: multipleFieldToolbarButtonClasses,
359
- "data-tooltip": direction.value === "vertical" ? "Move down" : "Move right",
360
- onClick: (e) => {
361
- e.preventDefault();
362
- e.stopPropagation();
363
- (0, import_instanceHandlers.handleMoveInstance)(
364
- fieldMetadata,
365
- "next"
366
- );
367
- },
368
- disabled: disableMoveRight,
369
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
370
- import_icons.MoveRightIcon,
371
- {
372
- className: (0, import_classnames.default)({
373
- "visual-builder__rotate--90": direction.value === "vertical",
374
- [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__rotate--90"]]: direction.value === "vertical"
375
- }),
376
- disabled: disableMoveRight
377
- }
378
- )
379
- }
380
- ),
381
- isModalEditable ? editButton : null,
382
- formButton,
383
- isReplaceAllowed ? replaceButton : null,
384
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
385
- "button",
386
- {
387
- "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__delete-button",
388
- className: multipleFieldToolbarButtonClasses,
389
- "data-tooltip": "Delete",
390
- onClick: (e) => {
391
- e.preventDefault();
392
- e.stopPropagation();
393
- (0, import_instanceHandlers.handleDeleteInstance)(fieldMetadata);
394
- },
395
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DeleteIcon, {})
396
- }
397
- )
398
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
399
- isModalEditable ? editButton : null,
400
- isReplaceAllowed ? replaceButton : null,
401
- formButton,
402
- fieldSchema ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
403
- import_CommentIcon.default,
404
- {
405
- fieldMetadata,
406
- fieldSchema,
407
- invertTooltipPosition
408
- }
409
- ) : null
410
- ] })
297
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
298
+ "div",
299
+ {
300
+ className: (0, import_classnames.default)(
301
+ "visual-builder__focused-toolbar__multiple-field-toolbar",
302
+ (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__focused-toolbar__multiple-field-toolbar"]
303
+ ),
304
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar",
305
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
306
+ "div",
307
+ {
308
+ className: (0, import_classnames.default)(
309
+ "visual-builder__focused-toolbar__button-group",
310
+ (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__focused-toolbar__button-group"]
311
+ ),
312
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
313
+ isVariant ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
314
+ import_FieldRevertComponent.VariantRevertDropdown,
315
+ {
316
+ fieldDataName: fieldMetadata.fieldPathWithIndex,
317
+ fieldMetadata,
318
+ variantStatus: fieldVariantStatus,
319
+ isOpen: isOpenVariantRevert,
320
+ closeDropdown: closeVariantDropdown,
321
+ invertTooltipPosition,
322
+ toggleVariantDropdown
323
+ }
324
+ ) : null,
325
+ isMultiple && !isWholeMultipleField ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
326
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
327
+ "button",
328
+ {
329
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button",
330
+ className: multipleFieldToolbarButtonClasses,
331
+ "data-tooltip": direction === "vertical" ? "Move up" : "Move left",
332
+ onClick: (e) => {
333
+ e.preventDefault();
334
+ e.stopPropagation();
335
+ (0, import_instanceHandlers.handleMoveInstance)(
336
+ fieldMetadata,
337
+ "previous"
338
+ );
339
+ },
340
+ disabled: disableMoveLeft,
341
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
342
+ import_icons.MoveLeftIcon,
343
+ {
344
+ className: (0, import_classnames.default)({
345
+ "visual-builder__rotate--90": direction === "vertical",
346
+ [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__rotate--90"]]: direction === "vertical"
347
+ }),
348
+ disabled: disableMoveLeft
349
+ }
350
+ )
351
+ }
352
+ ),
353
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
354
+ "button",
355
+ {
356
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button",
357
+ className: multipleFieldToolbarButtonClasses,
358
+ "data-tooltip": direction === "vertical" ? "Move down" : "Move right",
359
+ onClick: (e) => {
360
+ e.preventDefault();
361
+ e.stopPropagation();
362
+ (0, import_instanceHandlers.handleMoveInstance)(
363
+ fieldMetadata,
364
+ "next"
365
+ );
366
+ },
367
+ disabled: disableMoveRight,
368
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
369
+ import_icons.MoveRightIcon,
370
+ {
371
+ className: (0, import_classnames.default)({
372
+ "visual-builder__rotate--90": direction === "vertical",
373
+ [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__rotate--90"]]: direction === "vertical"
374
+ }),
375
+ disabled: disableMoveRight
376
+ }
377
+ )
378
+ }
379
+ ),
380
+ isModalEditable ? editButton : null,
381
+ formButton,
382
+ isReplaceAllowed ? replaceButton : null,
383
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
384
+ "button",
385
+ {
386
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__delete-button",
387
+ className: multipleFieldToolbarButtonClasses,
388
+ "data-tooltip": "Delete",
389
+ onClick: (e) => {
390
+ e.preventDefault();
391
+ e.stopPropagation();
392
+ (0, import_instanceHandlers.handleDeleteInstance)(fieldMetadata);
393
+ },
394
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DeleteIcon, {})
395
+ }
396
+ )
397
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
398
+ isModalEditable ? editButton : null,
399
+ isReplaceAllowed ? replaceButton : null,
400
+ formButton,
401
+ fieldSchema ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
402
+ import_CommentIcon.default,
403
+ {
404
+ fieldMetadata,
405
+ fieldSchema,
406
+ invertTooltipPosition
407
+ }
408
+ ) : null
411
409
  ] })
412
- }
413
- )
414
- }
415
- )
416
- ]
410
+ ] })
411
+ }
412
+ )
413
+ }
414
+ )
417
415
  }
418
416
  );
419
417
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/components/FieldToolbar.tsx"],"sourcesContent":["import { useSignal } from \"@preact/signals\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\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} from \"./icons\";\nimport { fieldIcons } from \"./icons/fields\";\nimport classNames from \"classnames\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport CommentIcon from \"./CommentIcon\";\nimport React, { useEffect, useState } 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 FieldRevertComponent,\n getFieldVariantStatus,\n IVariantStatus,\n} from \"./FieldRevert/FieldRevertComponent\";\n\nexport type FieldDetails = Pick<VisualBuilderCslpEventDetails, \"editableElement\" | \"fieldMetadata\">;\n\nconst TOOLTIP_TOP_EDGE_BUFFER = 96;\n\ninterface MultipleFieldToolbarProps {\n eventDetails: VisualBuilderCslpEventDetails;\n hideOverlay: () => void;\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, fieldMetadata, cslpData } = eventDetails;\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.TOGGLE_FORM,\n {\n fieldMetadata,\n cslpData,\n }\n ).then(() => {\n visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FOCUS_FIELD, {\n DOMEditStack: getDOMEditStack(editableElement),\n });\n });\n}\n\nfunction FieldToolbarComponent(\n props: MultipleFieldToolbarProps\n): JSX.Element | null {\n const { eventDetails } = props;\n const { fieldMetadata, editableElement: targetElement } = eventDetails;\n const direction = useSignal(\"\");\n const parentPath =\n fieldMetadata?.multipleFieldMetadata?.parentDetails?.parentCslpValue ||\n \"\";\n const isVariant = !!fieldMetadata?.variant;\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\n if(fieldSchema) {\n const { isDisabled } = isFieldDisabled(\n fieldSchema,\n {\n editableElement: targetElement,\n fieldMetadata\n }\n );\n\n // field is disabled, no actions needed\n if (isDisabled) {\n return null;\n }\n\n fieldType = getFieldType(fieldSchema);\n isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType);\n isReplaceAllowed = ALLOWED_REPLACE_FIELDS.includes(fieldType);\n\n Icon = fieldIcons[fieldType];\n\n isMultiple = fieldSchema.multiple || false;\n if(fieldType === FieldDataType.REFERENCE)\n isMultiple = (fieldSchema as IReferenceContentTypeSchema).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 = isMultiple &&\n (fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.instance.fieldPathWithIndex ||\n fieldMetadata.multipleFieldMetadata?.index === -1);\n\n if (DEFAULT_MULTIPLE_FIELDS.includes(fieldType) && isWholeMultipleField) {\n return null;\n }\n }\n\n direction.value = getChildrenDirection(targetElement, parentPath);\n\n const invertTooltipPosition =\n targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;\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 >\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 >\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 data-tooltip={\"Form\"}\n data-testid={`visual-builder-form`}\n onClick={(e) => {\n handleFormFieldFocus(eventDetails);\n }}\n >\n <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 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(\n fieldMetadata.fieldPathWithIndex\n );\n setFieldVariantStatus(variantStatus ?? BASE_VARIANT_STATUS);\n }\n fetchFieldSchema();\n }, [fieldMetadata]);\n\n useEffect(() => {\n visualBuilderPostMessage?.on(VisualBuilderPostMessageEvents.DELETE_INSTANCE, (args: { data: { path: string } }) => {\n if(args.data?.path === fieldMetadata.instance.fieldPathWithIndex){\n props.hideOverlay()\n }\n })\n }, [])\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 {isVariant && (\n <FieldRevertComponent\n fieldDataName={fieldMetadata.fieldPathWithIndex}\n fieldMetadata={fieldMetadata}\n variantStatus={fieldVariantStatus}\n isOpen={isOpenVariantRevert}\n closeDropdown={closeVariantDropdown}\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 ? variantButton : 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.value === \"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={disableMoveLeft}\n >\n <MoveLeftIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction.value === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction.value === \"vertical\",\n })}\n disabled={disableMoveLeft}\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.value === \"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={disableMoveRight}\n >\n <MoveRightIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction.value === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction.value === \"vertical\",\n })}\n disabled={disableMoveRight}\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 >\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 </div>\n </div>\n </div>\n );\n}\n\nexport default FieldToolbarComponent;\n"],"mappings":"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","names":["import_icons","visualBuilderPostMessage","_a","getChildrenDirection","classNames","fieldSchema","CommentIcon"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/components/FieldToolbar.tsx"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\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} from \"./icons\";\nimport { fieldIcons } from \"./icons/fields\";\nimport classNames from \"classnames\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport CommentIcon from \"./CommentIcon\";\nimport React, { useEffect, useState } 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 FieldRevertComponent,\n getFieldVariantStatus,\n IVariantStatus,\n VariantRevertDropdown,\n} from \"./FieldRevert/FieldRevertComponent\";\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}\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, fieldMetadata, cslpData } = eventDetails;\n visualBuilderPostMessage\n ?.send(VisualBuilderPostMessageEvents.TOGGLE_FORM, {\n fieldMetadata,\n cslpData,\n })\n .then(() => {\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.FOCUS_FIELD,\n {\n DOMEditStack: getDOMEditStack(editableElement),\n }\n );\n });\n}\n\nfunction FieldToolbarComponent(\n props: MultipleFieldToolbarProps\n): JSX.Element | null {\n const { eventDetails } = props;\n const { fieldMetadata, editableElement: targetElement } = eventDetails;\n\n const parentPath =\n fieldMetadata?.multipleFieldMetadata?.parentDetails?.parentCslpValue ||\n \"\";\n const direction = getChildrenDirection(targetElement, parentPath);\n const isVariant = !!fieldMetadata?.variant;\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\n if (fieldSchema) {\n const { isDisabled } = isFieldDisabled(fieldSchema, {\n editableElement: targetElement,\n fieldMetadata,\n });\n\n // field is disabled, no actions needed\n if (isDisabled) {\n return null;\n }\n\n fieldType = getFieldType(fieldSchema);\n isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType);\n isReplaceAllowed = ALLOWED_REPLACE_FIELDS.includes(fieldType);\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 if (\n DEFAULT_MULTIPLE_FIELDS.includes(fieldType) &&\n isWholeMultipleField\n ) {\n return null;\n }\n }\n\n const invertTooltipPosition =\n targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;\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 >\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 >\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 data-tooltip={\"Form\"}\n data-testid={`visual-builder-form`}\n onClick={(e) => {\n handleFormFieldFocus(eventDetails);\n }}\n >\n <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 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 return () => {\n event?.unregister();\n };\n }, []);\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 />\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={disableMoveLeft}\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={disableMoveLeft}\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={disableMoveRight}\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={disableMoveRight}\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 >\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 </div>\n </div>\n </div>\n );\n}\n\nexport default FieldToolbarComponent;\n"],"mappings":"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","names":["import_icons","visualBuilderPostMessage","_a","getChildrenDirection","classNames","fieldSchema","CommentIcon"]}