@contentstack/live-preview-utils 3.3.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 (266) 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 +47 -9
  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/utils/addLivePreviewQueryTags.cjs +7 -1
  31. package/dist/legacy/utils/addLivePreviewQueryTags.cjs.map +1 -1
  32. package/dist/legacy/utils/addLivePreviewQueryTags.js +7 -1
  33. package/dist/legacy/utils/addLivePreviewQueryTags.js.map +1 -1
  34. package/dist/legacy/utils/index.cjs +8 -4
  35. package/dist/legacy/utils/index.cjs.map +1 -1
  36. package/dist/legacy/utils/index.js +8 -4
  37. package/dist/legacy/utils/index.js.map +1 -1
  38. package/dist/legacy/visualBuilder/components/FieldLocationAppList.cjs +186 -0
  39. package/dist/legacy/visualBuilder/components/FieldLocationAppList.cjs.map +1 -0
  40. package/dist/legacy/visualBuilder/components/FieldLocationAppList.d.cts +35 -0
  41. package/dist/legacy/visualBuilder/components/FieldLocationAppList.d.ts +35 -0
  42. package/dist/legacy/visualBuilder/components/FieldLocationAppList.js +153 -0
  43. package/dist/legacy/visualBuilder/components/FieldLocationAppList.js.map +1 -0
  44. package/dist/legacy/visualBuilder/components/FieldLocationIcon.cjs +125 -0
  45. package/dist/legacy/visualBuilder/components/FieldLocationIcon.cjs.map +1 -0
  46. package/dist/legacy/visualBuilder/components/FieldLocationIcon.d.cts +13 -0
  47. package/dist/legacy/visualBuilder/components/FieldLocationIcon.d.ts +13 -0
  48. package/dist/legacy/visualBuilder/components/FieldLocationIcon.js +92 -0
  49. package/dist/legacy/visualBuilder/components/FieldLocationIcon.js.map +1 -0
  50. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +185 -117
  51. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  52. package/dist/legacy/visualBuilder/components/FieldToolbar.d.cts +3 -1
  53. package/dist/legacy/visualBuilder/components/FieldToolbar.d.ts +3 -1
  54. package/dist/legacy/visualBuilder/components/FieldToolbar.js +186 -118
  55. package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
  56. package/dist/legacy/visualBuilder/components/emptyBlock.cjs +26 -5
  57. package/dist/legacy/visualBuilder/components/emptyBlock.cjs.map +1 -1
  58. package/dist/legacy/visualBuilder/components/emptyBlock.js +26 -5
  59. package/dist/legacy/visualBuilder/components/emptyBlock.js.map +1 -1
  60. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs +6 -4
  61. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  62. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js +6 -4
  63. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  64. package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.cjs +78 -0
  65. package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.cjs.map +1 -0
  66. package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.d.cts +9 -0
  67. package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.d.ts +9 -0
  68. package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.js +53 -0
  69. package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.js.map +1 -0
  70. package/dist/legacy/visualBuilder/components/icons/index.cjs +19 -0
  71. package/dist/legacy/visualBuilder/components/icons/index.cjs.map +1 -1
  72. package/dist/legacy/visualBuilder/components/icons/index.d.cts +2 -1
  73. package/dist/legacy/visualBuilder/components/icons/index.d.ts +2 -1
  74. package/dist/legacy/visualBuilder/components/icons/index.js +18 -0
  75. package/dist/legacy/visualBuilder/components/icons/index.js.map +1 -1
  76. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +8 -5
  77. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  78. package/dist/legacy/visualBuilder/generators/generateToolbar.js +8 -5
  79. package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
  80. package/dist/legacy/visualBuilder/index.cjs +11 -1
  81. package/dist/legacy/visualBuilder/index.cjs.map +1 -1
  82. package/dist/legacy/visualBuilder/index.js +11 -1
  83. package/dist/legacy/visualBuilder/index.js.map +1 -1
  84. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +16 -17
  85. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  86. package/dist/legacy/visualBuilder/listeners/mouseClick.js +16 -17
  87. package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
  88. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +67 -59
  89. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  90. package/dist/legacy/visualBuilder/listeners/mouseHover.js +67 -59
  91. package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
  92. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +72 -0
  93. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -0
  94. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +14 -0
  95. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +14 -0
  96. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +49 -0
  97. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -0
  98. package/dist/legacy/visualBuilder/utils/getEntryPermissions.cjs +2 -1
  99. package/dist/legacy/visualBuilder/utils/getEntryPermissions.cjs.map +1 -1
  100. package/dist/legacy/visualBuilder/utils/getEntryPermissions.js +2 -1
  101. package/dist/legacy/visualBuilder/utils/getEntryPermissions.js.map +1 -1
  102. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs +79 -0
  103. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -0
  104. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.cts +18 -0
  105. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.ts +18 -0
  106. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js +46 -0
  107. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -0
  108. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +4 -3
  109. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  110. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +4 -3
  111. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  112. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs +43 -14
  113. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  114. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.cts +3 -12
  115. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.ts +3 -12
  116. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js +43 -14
  117. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  118. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +5 -0
  119. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  120. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +6 -1
  121. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +6 -1
  122. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +5 -0
  123. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  124. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +6 -4
  125. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  126. package/dist/legacy/visualBuilder/utils/updateFocussedState.js +6 -4
  127. package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
  128. package/dist/legacy/visualBuilder/visualBuilder.style.cjs +118 -3
  129. package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
  130. package/dist/legacy/visualBuilder/visualBuilder.style.d.cts +18 -0
  131. package/dist/legacy/visualBuilder/visualBuilder.style.d.ts +18 -0
  132. package/dist/legacy/visualBuilder/visualBuilder.style.js +118 -3
  133. package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
  134. package/dist/modern/common/inIframe.cjs +15 -2
  135. package/dist/modern/common/inIframe.cjs.map +1 -1
  136. package/dist/modern/common/inIframe.d.cts +2 -1
  137. package/dist/modern/common/inIframe.d.ts +2 -1
  138. package/dist/modern/common/inIframe.js +13 -1
  139. package/dist/modern/common/inIframe.js.map +1 -1
  140. package/dist/modern/light-sdk.cjs +1 -1
  141. package/dist/modern/light-sdk.js +1 -1
  142. package/dist/modern/livePreview/editButton/editButton.cjs +1 -1
  143. package/dist/modern/livePreview/editButton/editButton.cjs.map +1 -1
  144. package/dist/modern/livePreview/editButton/editButton.js +2 -2
  145. package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
  146. package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs +7 -2
  147. package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
  148. package/dist/modern/livePreview/eventManager/livePreviewEventManager.js +7 -2
  149. package/dist/modern/livePreview/eventManager/livePreviewEventManager.js.map +1 -1
  150. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +43 -8
  151. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
  152. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +46 -9
  153. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
  154. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs +15 -0
  155. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs.map +1 -1
  156. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +11 -1
  157. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +11 -1
  158. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js +10 -0
  159. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js.map +1 -1
  160. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  161. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  162. package/dist/modern/utils/addLivePreviewQueryTags.cjs +7 -1
  163. package/dist/modern/utils/addLivePreviewQueryTags.cjs.map +1 -1
  164. package/dist/modern/utils/addLivePreviewQueryTags.js +7 -1
  165. package/dist/modern/utils/addLivePreviewQueryTags.js.map +1 -1
  166. package/dist/modern/utils/index.cjs +8 -4
  167. package/dist/modern/utils/index.cjs.map +1 -1
  168. package/dist/modern/utils/index.js +8 -4
  169. package/dist/modern/utils/index.js.map +1 -1
  170. package/dist/modern/visualBuilder/components/FieldLocationAppList.cjs +185 -0
  171. package/dist/modern/visualBuilder/components/FieldLocationAppList.cjs.map +1 -0
  172. package/dist/modern/visualBuilder/components/FieldLocationAppList.d.cts +35 -0
  173. package/dist/modern/visualBuilder/components/FieldLocationAppList.d.ts +35 -0
  174. package/dist/modern/visualBuilder/components/FieldLocationAppList.js +152 -0
  175. package/dist/modern/visualBuilder/components/FieldLocationAppList.js.map +1 -0
  176. package/dist/modern/visualBuilder/components/FieldLocationIcon.cjs +123 -0
  177. package/dist/modern/visualBuilder/components/FieldLocationIcon.cjs.map +1 -0
  178. package/dist/modern/visualBuilder/components/FieldLocationIcon.d.cts +13 -0
  179. package/dist/modern/visualBuilder/components/FieldLocationIcon.d.ts +13 -0
  180. package/dist/modern/visualBuilder/components/FieldLocationIcon.js +90 -0
  181. package/dist/modern/visualBuilder/components/FieldLocationIcon.js.map +1 -0
  182. package/dist/modern/visualBuilder/components/FieldToolbar.cjs +184 -117
  183. package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  184. package/dist/modern/visualBuilder/components/FieldToolbar.d.cts +3 -1
  185. package/dist/modern/visualBuilder/components/FieldToolbar.d.ts +3 -1
  186. package/dist/modern/visualBuilder/components/FieldToolbar.js +185 -118
  187. package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
  188. package/dist/modern/visualBuilder/components/emptyBlock.cjs +26 -5
  189. package/dist/modern/visualBuilder/components/emptyBlock.cjs.map +1 -1
  190. package/dist/modern/visualBuilder/components/emptyBlock.js +26 -5
  191. package/dist/modern/visualBuilder/components/emptyBlock.js.map +1 -1
  192. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs +6 -4
  193. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  194. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js +6 -4
  195. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  196. package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.cjs +78 -0
  197. package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.cjs.map +1 -0
  198. package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.d.cts +9 -0
  199. package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.d.ts +9 -0
  200. package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.js +53 -0
  201. package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.js.map +1 -0
  202. package/dist/modern/visualBuilder/components/icons/index.cjs +19 -0
  203. package/dist/modern/visualBuilder/components/icons/index.cjs.map +1 -1
  204. package/dist/modern/visualBuilder/components/icons/index.d.cts +2 -1
  205. package/dist/modern/visualBuilder/components/icons/index.d.ts +2 -1
  206. package/dist/modern/visualBuilder/components/icons/index.js +18 -0
  207. package/dist/modern/visualBuilder/components/icons/index.js.map +1 -1
  208. package/dist/modern/visualBuilder/generators/generateToolbar.cjs +8 -5
  209. package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  210. package/dist/modern/visualBuilder/generators/generateToolbar.js +8 -5
  211. package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
  212. package/dist/modern/visualBuilder/index.cjs +10 -0
  213. package/dist/modern/visualBuilder/index.cjs.map +1 -1
  214. package/dist/modern/visualBuilder/index.js +10 -0
  215. package/dist/modern/visualBuilder/index.js.map +1 -1
  216. package/dist/modern/visualBuilder/listeners/mouseClick.cjs +16 -17
  217. package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  218. package/dist/modern/visualBuilder/listeners/mouseClick.js +16 -17
  219. package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
  220. package/dist/modern/visualBuilder/listeners/mouseHover.cjs +67 -59
  221. package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  222. package/dist/modern/visualBuilder/listeners/mouseHover.js +67 -59
  223. package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
  224. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +72 -0
  225. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -0
  226. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +14 -0
  227. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +14 -0
  228. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +49 -0
  229. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -0
  230. package/dist/modern/visualBuilder/utils/getEntryPermissions.cjs +2 -1
  231. package/dist/modern/visualBuilder/utils/getEntryPermissions.cjs.map +1 -1
  232. package/dist/modern/visualBuilder/utils/getEntryPermissions.js +2 -1
  233. package/dist/modern/visualBuilder/utils/getEntryPermissions.js.map +1 -1
  234. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs +78 -0
  235. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -0
  236. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.cts +18 -0
  237. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.ts +18 -0
  238. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js +45 -0
  239. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -0
  240. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +4 -3
  241. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  242. package/dist/modern/visualBuilder/utils/handleIndividualFields.js +4 -3
  243. package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  244. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs +42 -13
  245. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  246. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.cts +3 -12
  247. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.ts +3 -12
  248. package/dist/modern/visualBuilder/utils/isFieldDisabled.js +42 -13
  249. package/dist/modern/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  250. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +5 -0
  251. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  252. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +6 -1
  253. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +6 -1
  254. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +5 -0
  255. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  256. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +6 -4
  257. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  258. package/dist/modern/visualBuilder/utils/updateFocussedState.js +6 -4
  259. package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
  260. package/dist/modern/visualBuilder/visualBuilder.style.cjs +118 -3
  261. package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
  262. package/dist/modern/visualBuilder/visualBuilder.style.d.cts +18 -0
  263. package/dist/modern/visualBuilder/visualBuilder.style.d.ts +18 -0
  264. package/dist/modern/visualBuilder/visualBuilder.style.js +118 -3
  265. package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
  266. package/package.json +1 -1
@@ -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
 
@@ -1,5 +1,6 @@
1
1
  import { VisualBuilderCslpEventDetails } from '../types/visualBuilder.types.js';
2
2
  import { EntryPermissions } from '../utils/getEntryPermissions.js';
3
+ import { WorkflowStageDetails } from '../utils/getWorkflowStageDetails.js';
3
4
  import '../../cslp/types/cslp.types.js';
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
 
@@ -25,7 +25,7 @@ import { fieldIcons } from "./icons/fields/index.js";
25
25
  import classNames from "classnames";
26
26
  import { visualBuilderStyles } from "../visualBuilder.style.js";
27
27
  import CommentIcon from "./CommentIcon.js";
28
- import { useEffect, useState } from "preact/compat";
28
+ import { useEffect, useState, useRef } from "preact/compat";
29
29
  import { FieldSchemaMap } from "../utils/fieldSchemaMap.js";
30
30
  import { isFieldDisabled } from "../utils/isFieldDisabled.js";
31
31
  import { FormIcon } from "./icons/index.js";
@@ -37,6 +37,8 @@ import {
37
37
  VariantRevertDropdown
38
38
  } from "./FieldRevert/FieldRevertComponent.js";
39
39
  import { LoadingIcon } from "./icons/loading.js";
40
+ import { FieldLocationAppList } from "./FieldLocationAppList.js";
41
+ import { FieldLocationIcon } from "./FieldLocationIcon.js";
40
42
  import { Fragment, jsx, jsxs } from "preact/jsx-runtime";
41
43
  var TOOLTIP_TOP_EDGE_BUFFER = 96;
42
44
  function handleReplaceAsset(fieldMetadata) {
@@ -87,10 +89,18 @@ function FieldToolbarComponent(props) {
87
89
  const {
88
90
  eventDetails,
89
91
  isVariant: isVariantOrParentOfVariant,
90
- entryPermissions
92
+ entryPermissions,
93
+ entryWorkflowStageDetails
91
94
  } = props;
92
95
  const { fieldMetadata, editableElement: targetElement } = eventDetails;
93
96
  const [isFormLoading, setIsFormLoading] = useState(false);
97
+ const [fieldLocationData, setFieldLocationData] = useState(null);
98
+ const [displayAllApps, setDisplayAllApps] = useState(false);
99
+ const moreButtonRef = useRef(null);
100
+ const toolbarRef = useRef(null);
101
+ const [appListPosition, setAppListPosition] = useState(
102
+ "right"
103
+ );
94
104
  const parentPath = ((_b = (_a = fieldMetadata == null ? void 0 : fieldMetadata.multipleFieldMetadata) == null ? void 0 : _a.parentDetails) == null ? void 0 : _b.parentCslpValue) || "";
95
105
  const isVariant = !!(fieldMetadata == null ? void 0 : fieldMetadata.variant) || isVariantOrParentOfVariant;
96
106
  const direction = getChildrenDirection(targetElement, parentPath);
@@ -105,6 +115,7 @@ function FieldToolbarComponent(props) {
105
115
  let Icon = null;
106
116
  let fieldType = null;
107
117
  let isWholeMultipleField = false;
118
+ const APP_LIST_MIN_WIDTH = 230;
108
119
  let disableFieldActions = false;
109
120
  if (fieldSchema) {
110
121
  const { isDisabled } = isFieldDisabled(
@@ -113,19 +124,38 @@ function FieldToolbarComponent(props) {
113
124
  editableElement: targetElement,
114
125
  fieldMetadata
115
126
  },
116
- entryPermissions
127
+ entryPermissions,
128
+ entryWorkflowStageDetails
117
129
  );
118
130
  disableFieldActions = isDisabled;
119
131
  fieldType = getFieldType(fieldSchema);
120
- isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType);
121
132
  Icon = fieldIcons[fieldType];
122
133
  isMultiple = fieldSchema.multiple || false;
123
134
  if (fieldType === FieldDataType.REFERENCE)
124
135
  isMultiple = fieldSchema.field_metadata.ref_multiple;
125
136
  isWholeMultipleField = isMultiple && (fieldMetadata.fieldPathWithIndex === fieldMetadata.instance.fieldPathWithIndex || ((_c = fieldMetadata.multipleFieldMetadata) == null ? void 0 : _c.index) === -1);
137
+ isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType) && !isWholeMultipleField;
126
138
  isReplaceAllowed = ALLOWED_REPLACE_FIELDS.includes(fieldType) && !isWholeMultipleField;
127
139
  }
140
+ const domEditStack = getDOMEditStack(eventDetails.editableElement);
128
141
  const invertTooltipPosition = targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;
142
+ const handleMoreIconClick = () => {
143
+ if (toolbarRef.current) {
144
+ const rect = toolbarRef.current.getBoundingClientRect();
145
+ const spaceRight = window.innerWidth - rect.right;
146
+ const spaceLeft = rect.left;
147
+ let position = "";
148
+ if (spaceRight < APP_LIST_MIN_WIDTH) {
149
+ position = "left";
150
+ } else if (spaceRight > APP_LIST_MIN_WIDTH) {
151
+ position = "right";
152
+ } else {
153
+ position = spaceRight > spaceLeft ? "right" : "left";
154
+ }
155
+ setAppListPosition(position);
156
+ }
157
+ setDisplayAllApps(!displayAllApps);
158
+ };
129
159
  const editButton = Icon ? /* @__PURE__ */ jsx(
130
160
  "button",
131
161
  {
@@ -276,6 +306,20 @@ function FieldToolbarComponent(props) {
276
306
  event == null ? void 0 : event.unregister();
277
307
  };
278
308
  }, []);
309
+ useEffect(() => {
310
+ const fetchFieldLocationData = async () => {
311
+ var _a2;
312
+ try {
313
+ const event = await ((_a2 = visualBuilderPostMessage) == null ? void 0 : _a2.send(VisualBuilderPostMessageEvents.FIELD_LOCATION_DATA, {
314
+ domEditStack: getDOMEditStack(eventDetails.editableElement)
315
+ }));
316
+ setFieldLocationData(event);
317
+ } catch (error) {
318
+ console.error("Error fetching field location data:", error);
319
+ }
320
+ };
321
+ fetchFieldLocationData();
322
+ }, [eventDetails.editableElement]);
279
323
  const multipleFieldToolbarButtonClasses = classNames(
280
324
  "visual-builder__button visual-builder__button--secondary",
281
325
  visualBuilderStyles()["visual-builder__button"],
@@ -286,133 +330,157 @@ function FieldToolbarComponent(props) {
286
330
  [visualBuilderStyles()["visual-builder__tooltip--bottom"]]: invertTooltipPosition
287
331
  }
288
332
  );
289
- return /* @__PURE__ */ jsx(
333
+ return /* @__PURE__ */ jsxs(
290
334
  "div",
291
335
  {
292
336
  className: classNames(
293
337
  "visual-builder__field-toolbar-container",
294
338
  visualBuilderStyles()["visual-builder__field-toolbar-container"]
295
339
  ),
296
- children: /* @__PURE__ */ jsx(
297
- "div",
298
- {
299
- className: classNames(
300
- "visual-builder__focused-toolbar__multiple-field-toolbar",
301
- visualBuilderStyles()["visual-builder__focused-toolbar__multiple-field-toolbar"]
302
- ),
303
- "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar",
304
- children: /* @__PURE__ */ jsx(
305
- "div",
306
- {
307
- className: classNames(
308
- "visual-builder__focused-toolbar__button-group",
309
- visualBuilderStyles()["visual-builder__focused-toolbar__button-group"]
310
- ),
311
- children: /* @__PURE__ */ jsxs(Fragment, { children: [
312
- isVariant ? /* @__PURE__ */ jsx(
313
- VariantRevertDropdown,
314
- {
315
- fieldDataName: fieldMetadata.fieldPathWithIndex,
316
- fieldMetadata,
317
- variantStatus: fieldVariantStatus,
318
- isOpen: isOpenVariantRevert,
319
- closeDropdown: closeVariantDropdown,
320
- invertTooltipPosition,
321
- toggleVariantDropdown,
322
- disabled: disableFieldActions
323
- }
324
- ) : null,
325
- isMultiple && !isWholeMultipleField ? /* @__PURE__ */ jsxs(Fragment, { children: [
326
- /* @__PURE__ */ 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
- handleMoveInstance(
336
- fieldMetadata,
337
- "previous"
338
- );
339
- },
340
- disabled: disableFieldActions || disableMoveLeft,
341
- children: /* @__PURE__ */ jsx(
342
- MoveLeftIcon,
343
- {
344
- className: classNames({
345
- "visual-builder__rotate--90": direction === "vertical",
346
- [visualBuilderStyles()["visual-builder__rotate--90"]]: direction === "vertical"
347
- }),
348
- disabled: disableFieldActions || disableMoveLeft
349
- }
350
- )
351
- }
352
- ),
353
- /* @__PURE__ */ jsx(
354
- "button",
340
+ children: [
341
+ /* @__PURE__ */ jsx(
342
+ "div",
343
+ {
344
+ className: classNames(
345
+ "visual-builder__focused-toolbar__multiple-field-toolbar",
346
+ visualBuilderStyles()["visual-builder__focused-toolbar__multiple-field-toolbar"]
347
+ ),
348
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar",
349
+ children: /* @__PURE__ */ jsx(
350
+ "div",
351
+ {
352
+ className: classNames(
353
+ "visual-builder__focused-toolbar__button-group",
354
+ visualBuilderStyles()["visual-builder__focused-toolbar__button-group"]
355
+ ),
356
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
357
+ isVariant ? /* @__PURE__ */ jsx(
358
+ VariantRevertDropdown,
355
359
  {
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
- handleMoveInstance(
363
- fieldMetadata,
364
- "next"
365
- );
366
- },
367
- disabled: disableFieldActions || disableMoveRight,
368
- children: /* @__PURE__ */ jsx(
369
- MoveRightIcon,
370
- {
371
- className: classNames({
372
- "visual-builder__rotate--90": direction === "vertical",
373
- [visualBuilderStyles()["visual-builder__rotate--90"]]: direction === "vertical"
374
- }),
375
- disabled: disableFieldActions || disableMoveRight
376
- }
377
- )
360
+ fieldDataName: fieldMetadata.fieldPathWithIndex,
361
+ fieldMetadata,
362
+ variantStatus: fieldVariantStatus,
363
+ isOpen: isOpenVariantRevert,
364
+ closeDropdown: closeVariantDropdown,
365
+ invertTooltipPosition,
366
+ toggleVariantDropdown,
367
+ disabled: disableFieldActions
378
368
  }
379
- ),
380
- isModalEditable ? editButton : null,
381
- formButton,
382
- isReplaceAllowed ? replaceButton : null,
369
+ ) : null,
370
+ isMultiple && !isWholeMultipleField ? /* @__PURE__ */ jsxs(Fragment, { children: [
371
+ /* @__PURE__ */ jsx(
372
+ "button",
373
+ {
374
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button",
375
+ className: multipleFieldToolbarButtonClasses,
376
+ "data-tooltip": direction === "vertical" ? "Move up" : "Move left",
377
+ onClick: (e) => {
378
+ e.preventDefault();
379
+ e.stopPropagation();
380
+ handleMoveInstance(
381
+ fieldMetadata,
382
+ "previous"
383
+ );
384
+ },
385
+ disabled: disableFieldActions || disableMoveLeft,
386
+ children: /* @__PURE__ */ jsx(
387
+ MoveLeftIcon,
388
+ {
389
+ className: classNames({
390
+ "visual-builder__rotate--90": direction === "vertical",
391
+ [visualBuilderStyles()["visual-builder__rotate--90"]]: direction === "vertical"
392
+ }),
393
+ disabled: disableFieldActions || disableMoveLeft
394
+ }
395
+ )
396
+ }
397
+ ),
398
+ /* @__PURE__ */ jsx(
399
+ "button",
400
+ {
401
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button",
402
+ className: multipleFieldToolbarButtonClasses,
403
+ "data-tooltip": direction === "vertical" ? "Move down" : "Move right",
404
+ onClick: (e) => {
405
+ e.preventDefault();
406
+ e.stopPropagation();
407
+ handleMoveInstance(
408
+ fieldMetadata,
409
+ "next"
410
+ );
411
+ },
412
+ disabled: disableFieldActions || disableMoveRight,
413
+ children: /* @__PURE__ */ jsx(
414
+ MoveRightIcon,
415
+ {
416
+ className: classNames({
417
+ "visual-builder__rotate--90": direction === "vertical",
418
+ [visualBuilderStyles()["visual-builder__rotate--90"]]: direction === "vertical"
419
+ }),
420
+ disabled: disableFieldActions || disableMoveRight
421
+ }
422
+ )
423
+ }
424
+ ),
425
+ isModalEditable ? editButton : null,
426
+ formButton,
427
+ isReplaceAllowed ? replaceButton : null,
428
+ /* @__PURE__ */ jsx(
429
+ "button",
430
+ {
431
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__delete-button",
432
+ className: multipleFieldToolbarButtonClasses,
433
+ "data-tooltip": "Delete",
434
+ onClick: (e) => {
435
+ e.preventDefault();
436
+ e.stopPropagation();
437
+ handleDeleteInstance(fieldMetadata);
438
+ },
439
+ disabled: disableFieldActions,
440
+ children: /* @__PURE__ */ jsx(DeleteIcon, {})
441
+ }
442
+ )
443
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
444
+ isModalEditable ? editButton : null,
445
+ isReplaceAllowed ? replaceButton : null,
446
+ formButton,
447
+ fieldSchema ? /* @__PURE__ */ jsx(
448
+ CommentIcon,
449
+ {
450
+ fieldMetadata,
451
+ fieldSchema,
452
+ invertTooltipPosition
453
+ }
454
+ ) : null
455
+ ] }),
383
456
  /* @__PURE__ */ jsx(
384
- "button",
457
+ FieldLocationIcon,
385
458
  {
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
- handleDeleteInstance(fieldMetadata);
393
- },
394
- disabled: disableFieldActions,
395
- children: /* @__PURE__ */ jsx(DeleteIcon, {})
459
+ fieldLocationData,
460
+ multipleFieldToolbarButtonClasses,
461
+ handleMoreIconClick,
462
+ moreButtonRef,
463
+ toolbarRef,
464
+ domEditStack
396
465
  }
397
466
  )
398
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
399
- isModalEditable ? editButton : null,
400
- isReplaceAllowed ? replaceButton : null,
401
- formButton,
402
- fieldSchema ? /* @__PURE__ */ jsx(
403
- CommentIcon,
404
- {
405
- fieldMetadata,
406
- fieldSchema,
407
- invertTooltipPosition
408
- }
409
- ) : null
410
467
  ] })
411
- ] })
412
- }
413
- )
414
- }
415
- )
468
+ }
469
+ )
470
+ }
471
+ ),
472
+ displayAllApps && /* @__PURE__ */ jsx(
473
+ FieldLocationAppList,
474
+ {
475
+ toolbarRef,
476
+ apps: (fieldLocationData == null ? void 0 : fieldLocationData.apps) || [],
477
+ position: appListPosition,
478
+ domEditStack,
479
+ setDisplayAllApps,
480
+ displayAllApps
481
+ }
482
+ )
483
+ ]
416
484
  }
417
485
  );
418
486
  }
@@ -1 +1 @@
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 getFieldVariantStatus,\n IVariantStatus,\n VariantRevertDropdown,\n} from \"./FieldRevert/FieldRevertComponent\";\nimport { LoadingIcon } from \"./icons/loading\";\nimport { EntryPermissions } from \"../utils/getEntryPermissions\";\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\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\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 isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.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 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 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 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 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 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 </div>\n </div>\n </div>\n );\n}\n\nexport default FieldToolbarComponent;\n"],"mappings":"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","names":["fieldSchema","_a"]}
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":["fieldSchema","_a"]}
@@ -38,6 +38,7 @@ var import_visualBuilder = require("../visualBuilder.style.cjs");
38
38
  var import_visualBuilderPostMessage = __toESM(require("../utils/visualBuilderPostMessage.cjs"), 1);
39
39
  var import_multipleElementAddButton = require("../utils/multipleElementAddButton.cjs");
40
40
  var import_postMessage = require("../utils/types/postMessage.types.cjs");
41
+ var import_lodash_es = require("lodash-es");
41
42
  var import_jsx_runtime = require("preact/jsx-runtime");
42
43
  function EmptyBlock(props) {
43
44
  const { details } = props;
@@ -72,9 +73,20 @@ function EmptyBlock(props) {
72
73
  (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__empty-block-title"]
73
74
  ),
74
75
  children: [
75
- "There are no ",
76
- blockParentName.toLowerCase(),
77
- " on this page yet. Click the button below to add one."
76
+ "This page doesn\u2019t have any",
77
+ " ",
78
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
79
+ "span",
80
+ {
81
+ className: (0, import_classnames.default)(
82
+ "visual-builder__empty-block-field-name",
83
+ (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__empty-block-field-name"]
84
+ ),
85
+ children: (0, import_lodash_es.startCase)((0, import_lodash_es.toLower)(blockParentName))
86
+ }
87
+ ),
88
+ " ",
89
+ "added. Click the button below to add one."
78
90
  ]
79
91
  }
80
92
  ),
@@ -89,8 +101,17 @@ function EmptyBlock(props) {
89
101
  type: "button",
90
102
  "data-testid": "visual-builder__empty-block-add-button",
91
103
  children: [
92
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("i", { className: "fas fa-plus" }),
93
- " \xA0",
104
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
105
+ "span",
106
+ {
107
+ className: (0, import_classnames.default)(
108
+ "visual-builder__empty-block-plus-icon",
109
+ (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__empty-block-plus-icon"]
110
+ ),
111
+ children: "+"
112
+ }
113
+ ),
114
+ "\xA0 Add ",
94
115
  blockParentName
95
116
  ]
96
117
  }