@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
@@ -0,0 +1,90 @@
1
+ import "../../chunk-5WRI5ZAA.js";
2
+
3
+ // src/visualBuilder/components/FieldLocationIcon.tsx
4
+ import classNames from "classnames";
5
+ import { visualBuilderStyles } from "../visualBuilder.style.js";
6
+ import { EmptyAppIcon } from "./icons/EmptyAppIcon.js";
7
+ import { MoreIcon } from "./icons/index.js";
8
+ import { VisualBuilderPostMessageEvents } from "../utils/types/postMessage.types.js";
9
+ import visualBuilderPostMessage from "../utils/visualBuilderPostMessage.js";
10
+ import { jsx, jsxs } from "preact/jsx-runtime";
11
+ var FieldLocationIcon = ({
12
+ fieldLocationData,
13
+ multipleFieldToolbarButtonClasses,
14
+ handleMoreIconClick,
15
+ moreButtonRef,
16
+ toolbarRef,
17
+ domEditStack
18
+ }) => {
19
+ if (!fieldLocationData?.apps || fieldLocationData?.apps?.length === 0) {
20
+ return null;
21
+ }
22
+ const handleAppClick = (app) => {
23
+ if (!toolbarRef.current) return;
24
+ visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FIELD_LOCATION_SELECTED_APP, {
25
+ app,
26
+ position: toolbarRef.current?.getBoundingClientRect(),
27
+ DomEditStack: domEditStack
28
+ });
29
+ };
30
+ return /* @__PURE__ */ jsxs(
31
+ "div",
32
+ {
33
+ ref: toolbarRef,
34
+ className: classNames(
35
+ visualBuilderStyles()["visual-builder__field-location-icons-container"]
36
+ ),
37
+ children: [
38
+ /* @__PURE__ */ jsx(
39
+ "hr",
40
+ {
41
+ className: visualBuilderStyles()["visual-builder__field-location-icons-container__divider"]
42
+ }
43
+ ),
44
+ /* @__PURE__ */ jsx(
45
+ "button",
46
+ {
47
+ title: fieldLocationData.apps[0].title,
48
+ className: multipleFieldToolbarButtonClasses,
49
+ "data-tooltip": fieldLocationData.apps[0].title,
50
+ onClick: (e) => {
51
+ e.preventDefault();
52
+ e.stopPropagation();
53
+ handleAppClick(fieldLocationData.apps[0]);
54
+ },
55
+ "data-testid": "field-location-icon",
56
+ children: fieldLocationData.apps[0].icon ? /* @__PURE__ */ jsx(
57
+ "img",
58
+ {
59
+ src: fieldLocationData.apps[0].icon,
60
+ alt: fieldLocationData.apps[0].title,
61
+ className: visualBuilderStyles()["visual-builder__field-location-icons-container__app-icon"]
62
+ }
63
+ ) : /* @__PURE__ */ jsx(
64
+ EmptyAppIcon,
65
+ {
66
+ id: fieldLocationData.apps[0].app_installation_uid
67
+ }
68
+ )
69
+ },
70
+ `${fieldLocationData.apps[0].uid}`
71
+ ),
72
+ fieldLocationData.apps.length > 1 && /* @__PURE__ */ jsx(
73
+ "button",
74
+ {
75
+ ref: moreButtonRef,
76
+ className: multipleFieldToolbarButtonClasses,
77
+ "data-tooltip": "More",
78
+ onClick: handleMoreIconClick,
79
+ "data-testid": "field-location-more-button",
80
+ children: /* @__PURE__ */ jsx(MoreIcon, {})
81
+ }
82
+ )
83
+ ]
84
+ }
85
+ );
86
+ };
87
+ export {
88
+ FieldLocationIcon
89
+ };
90
+ //# sourceMappingURL=FieldLocationIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/visualBuilder/components/FieldLocationIcon.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { EmptyAppIcon } from \"./icons/EmptyAppIcon\";\nimport { MoreIcon } from \"./icons\";\nimport React, { useRef } from \"preact/compat\";\nimport { LoadingIcon } from \"./icons/loading\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { CslpData } from \"../../utils/cslpdata\";\n\nexport const FieldLocationIcon = ({\n fieldLocationData,\n multipleFieldToolbarButtonClasses,\n handleMoreIconClick,\n moreButtonRef,\n toolbarRef,\n domEditStack\n}: {\n fieldLocationData: any;\n multipleFieldToolbarButtonClasses: any;\n handleMoreIconClick: () => void;\n moreButtonRef: any;\n toolbarRef: any;\n domEditStack:CslpData[]\n}) => {\n\n\n\n if (!fieldLocationData?.apps || fieldLocationData?.apps?.length === 0) {\n return null;\n }\n\n const handleAppClick = (app: any) => {\n if(!toolbarRef.current) return\n visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FIELD_LOCATION_SELECTED_APP, {\n app,\n position: toolbarRef.current?.getBoundingClientRect(),\n DomEditStack:domEditStack\n });\n };\n\n return (\n <div\n ref={toolbarRef}\n className={classNames(\n visualBuilderStyles()[\n \"visual-builder__field-location-icons-container\"\n ]\n )}\n >\n <hr\n className={visualBuilderStyles()[\"visual-builder__field-location-icons-container__divider\"]}\n />\n <button\n key={`${fieldLocationData.apps[0].uid}`}\n title={fieldLocationData.apps[0].title}\n className={multipleFieldToolbarButtonClasses}\n data-tooltip={fieldLocationData.apps[0].title}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleAppClick(fieldLocationData.apps[0]);\n }}\n data-testid=\"field-location-icon\"\n >\n {fieldLocationData.apps[0].icon ? (\n <img\n src={fieldLocationData.apps[0].icon}\n alt={fieldLocationData.apps[0].title}\n className={visualBuilderStyles()[\"visual-builder__field-location-icons-container__app-icon\"]}\n />\n ) : (\n <EmptyAppIcon\n id={fieldLocationData.apps[0].app_installation_uid}\n />\n )}\n </button>\n\n \n {\n fieldLocationData.apps.length > 1 && (\n <button\n ref={moreButtonRef}\n className={multipleFieldToolbarButtonClasses}\n data-tooltip={\"More\"}\n onClick={handleMoreIconClick}\n data-testid=\"field-location-more-button\"\n >\n <MoreIcon />\n </button>\n )\n }\n </div>\n );\n};\n"],"mappings":";;;AAAA,OAAO,gBAAgB;AACvB,SAAS,2BAA2B;AACpC,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AAGzB,SAAS,sCAAsC;AAC/C,OAAO,8BAA8B;AAmC7B,SAQI,KARJ;AAhCD,IAAM,oBAAoB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAOM;AAIF,MAAI,CAAC,mBAAmB,QAAQ,mBAAmB,MAAM,WAAW,GAAG;AACnE,WAAO;AAAA,EACX;AAEA,QAAM,iBAAiB,CAAC,QAAa;AACjC,QAAG,CAAC,WAAW,QAAS;AACxB,8BAA0B,KAAK,+BAA+B,6BAA6B;AAAA,MACvF;AAAA,MACA,UAAU,WAAW,SAAS,sBAAsB;AAAA,MACpD,cAAa;AAAA,IACjB,CAAC;AAAA,EACL;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG,KAAK;AAAA,MACL,WAAW;AAAA,QACP,oBAAoB,EAChB,gDACJ;AAAA,MACJ;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACG,WAAW,oBAAoB,EAAE,yDAAyD;AAAA;AAAA,QAC9F;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YAEG,OAAO,kBAAkB,KAAK,CAAC,EAAE;AAAA,YACjC,WAAW;AAAA,YACX,gBAAc,kBAAkB,KAAK,CAAC,EAAE;AAAA,YACxC,SAAS,CAAC,MAAM;AACb,gBAAE,eAAe;AACjB,gBAAE,gBAAgB;AAClB,6BAAe,kBAAkB,KAAK,CAAC,CAAC;AAAA,YAC3C;AAAA,YACA,eAAY;AAAA,YAEX,4BAAkB,KAAK,CAAC,EAAE,OACvB;AAAA,cAAC;AAAA;AAAA,gBACG,KAAK,kBAAkB,KAAK,CAAC,EAAE;AAAA,gBAC/B,KAAK,kBAAkB,KAAK,CAAC,EAAE;AAAA,gBAC/B,WAAW,oBAAoB,EAAE,0DAA0D;AAAA;AAAA,YAC/F,IAEA;AAAA,cAAC;AAAA;AAAA,gBACG,IAAI,kBAAkB,KAAK,CAAC,EAAE;AAAA;AAAA,YAClC;AAAA;AAAA,UApBC,GAAG,kBAAkB,KAAK,CAAC,EAAE,GAAG;AAAA,QAsBzC;AAAA,QAIA,kBAAkB,KAAK,SAAS,KAC5B;AAAA,UAAC;AAAA;AAAA,YACG,KAAK;AAAA,YACL,WAAW;AAAA,YACX,gBAAc;AAAA,YACd,SAAS;AAAA,YACT,eAAY;AAAA,YAEZ,8BAAC,YAAS;AAAA;AAAA,QACd;AAAA;AAAA;AAAA,EAGR;AAER;","names":[]}
@@ -53,6 +53,8 @@ var import_getCsDataOfElement = require("../utils/getCsDataOfElement.cjs");
53
53
  var import_variant = require("./icons/variant.cjs");
54
54
  var import_FieldRevertComponent = require("./FieldRevert/FieldRevertComponent.cjs");
55
55
  var import_loading = require("./icons/loading.cjs");
56
+ var import_FieldLocationAppList = require("./FieldLocationAppList.cjs");
57
+ var import_FieldLocationIcon = require("./FieldLocationIcon.cjs");
56
58
  var import_jsx_runtime = require("preact/jsx-runtime");
57
59
  var TOOLTIP_TOP_EDGE_BUFFER = 96;
58
60
  function handleReplaceAsset(fieldMetadata) {
@@ -98,10 +100,18 @@ function FieldToolbarComponent(props) {
98
100
  const {
99
101
  eventDetails,
100
102
  isVariant: isVariantOrParentOfVariant,
101
- entryPermissions
103
+ entryPermissions,
104
+ entryWorkflowStageDetails
102
105
  } = props;
103
106
  const { fieldMetadata, editableElement: targetElement } = eventDetails;
104
107
  const [isFormLoading, setIsFormLoading] = (0, import_compat.useState)(false);
108
+ const [fieldLocationData, setFieldLocationData] = (0, import_compat.useState)(null);
109
+ const [displayAllApps, setDisplayAllApps] = (0, import_compat.useState)(false);
110
+ const moreButtonRef = (0, import_compat.useRef)(null);
111
+ const toolbarRef = (0, import_compat.useRef)(null);
112
+ const [appListPosition, setAppListPosition] = (0, import_compat.useState)(
113
+ "right"
114
+ );
105
115
  const parentPath = fieldMetadata?.multipleFieldMetadata?.parentDetails?.parentCslpValue || "";
106
116
  const isVariant = !!fieldMetadata?.variant || isVariantOrParentOfVariant;
107
117
  const direction = (0, import_getChildrenDirection.default)(targetElement, parentPath);
@@ -116,6 +126,7 @@ function FieldToolbarComponent(props) {
116
126
  let Icon = null;
117
127
  let fieldType = null;
118
128
  let isWholeMultipleField = false;
129
+ const APP_LIST_MIN_WIDTH = 230;
119
130
  let disableFieldActions = false;
120
131
  if (fieldSchema) {
121
132
  const { isDisabled } = (0, import_isFieldDisabled.isFieldDisabled)(
@@ -124,19 +135,38 @@ function FieldToolbarComponent(props) {
124
135
  editableElement: targetElement,
125
136
  fieldMetadata
126
137
  },
127
- entryPermissions
138
+ entryPermissions,
139
+ entryWorkflowStageDetails
128
140
  );
129
141
  disableFieldActions = isDisabled;
130
142
  fieldType = (0, import_getFieldType.getFieldType)(fieldSchema);
131
- isModalEditable = import_constants.ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType);
132
143
  Icon = import_fields.fieldIcons[fieldType];
133
144
  isMultiple = fieldSchema.multiple || false;
134
145
  if (fieldType === import_types.FieldDataType.REFERENCE)
135
146
  isMultiple = fieldSchema.field_metadata.ref_multiple;
136
147
  isWholeMultipleField = isMultiple && (fieldMetadata.fieldPathWithIndex === fieldMetadata.instance.fieldPathWithIndex || fieldMetadata.multipleFieldMetadata?.index === -1);
148
+ isModalEditable = import_constants.ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType) && !isWholeMultipleField;
137
149
  isReplaceAllowed = import_constants.ALLOWED_REPLACE_FIELDS.includes(fieldType) && !isWholeMultipleField;
138
150
  }
151
+ const domEditStack = (0, import_getCsDataOfElement.getDOMEditStack)(eventDetails.editableElement);
139
152
  const invertTooltipPosition = targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;
153
+ const handleMoreIconClick = () => {
154
+ if (toolbarRef.current) {
155
+ const rect = toolbarRef.current.getBoundingClientRect();
156
+ const spaceRight = window.innerWidth - rect.right;
157
+ const spaceLeft = rect.left;
158
+ let position = "";
159
+ if (spaceRight < APP_LIST_MIN_WIDTH) {
160
+ position = "left";
161
+ } else if (spaceRight > APP_LIST_MIN_WIDTH) {
162
+ position = "right";
163
+ } else {
164
+ position = spaceRight > spaceLeft ? "right" : "left";
165
+ }
166
+ setAppListPosition(position);
167
+ }
168
+ setDisplayAllApps(!displayAllApps);
169
+ };
140
170
  const editButton = Icon ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
141
171
  "button",
142
172
  {
@@ -285,6 +315,19 @@ function FieldToolbarComponent(props) {
285
315
  event?.unregister();
286
316
  };
287
317
  }, []);
318
+ (0, import_compat.useEffect)(() => {
319
+ const fetchFieldLocationData = async () => {
320
+ try {
321
+ const event = await import_visualBuilderPostMessage.default?.send(import_postMessage.VisualBuilderPostMessageEvents.FIELD_LOCATION_DATA, {
322
+ domEditStack: (0, import_getCsDataOfElement.getDOMEditStack)(eventDetails.editableElement)
323
+ });
324
+ setFieldLocationData(event);
325
+ } catch (error) {
326
+ console.error("Error fetching field location data:", error);
327
+ }
328
+ };
329
+ fetchFieldLocationData();
330
+ }, [eventDetails.editableElement]);
288
331
  const multipleFieldToolbarButtonClasses = (0, import_classnames.default)(
289
332
  "visual-builder__button visual-builder__button--secondary",
290
333
  (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__button"],
@@ -295,133 +338,157 @@ function FieldToolbarComponent(props) {
295
338
  [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__tooltip--bottom"]]: invertTooltipPosition
296
339
  }
297
340
  );
298
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
341
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
299
342
  "div",
300
343
  {
301
344
  className: (0, import_classnames.default)(
302
345
  "visual-builder__field-toolbar-container",
303
346
  (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__field-toolbar-container"]
304
347
  ),
305
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
306
- "div",
307
- {
308
- className: (0, import_classnames.default)(
309
- "visual-builder__focused-toolbar__multiple-field-toolbar",
310
- (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__focused-toolbar__multiple-field-toolbar"]
311
- ),
312
- "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar",
313
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
314
- "div",
315
- {
316
- className: (0, import_classnames.default)(
317
- "visual-builder__focused-toolbar__button-group",
318
- (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__focused-toolbar__button-group"]
319
- ),
320
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
321
- isVariant ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
322
- import_FieldRevertComponent.VariantRevertDropdown,
323
- {
324
- fieldDataName: fieldMetadata.fieldPathWithIndex,
325
- fieldMetadata,
326
- variantStatus: fieldVariantStatus,
327
- isOpen: isOpenVariantRevert,
328
- closeDropdown: closeVariantDropdown,
329
- invertTooltipPosition,
330
- toggleVariantDropdown,
331
- disabled: disableFieldActions
332
- }
333
- ) : null,
334
- isMultiple && !isWholeMultipleField ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
335
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
336
- "button",
337
- {
338
- "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button",
339
- className: multipleFieldToolbarButtonClasses,
340
- "data-tooltip": direction === "vertical" ? "Move up" : "Move left",
341
- onClick: (e) => {
342
- e.preventDefault();
343
- e.stopPropagation();
344
- (0, import_instanceHandlers.handleMoveInstance)(
345
- fieldMetadata,
346
- "previous"
347
- );
348
- },
349
- disabled: disableFieldActions || disableMoveLeft,
350
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
351
- import_icons.MoveLeftIcon,
352
- {
353
- className: (0, import_classnames.default)({
354
- "visual-builder__rotate--90": direction === "vertical",
355
- [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__rotate--90"]]: direction === "vertical"
356
- }),
357
- disabled: disableFieldActions || disableMoveLeft
358
- }
359
- )
360
- }
361
- ),
362
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
363
- "button",
348
+ children: [
349
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
350
+ "div",
351
+ {
352
+ className: (0, import_classnames.default)(
353
+ "visual-builder__focused-toolbar__multiple-field-toolbar",
354
+ (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__focused-toolbar__multiple-field-toolbar"]
355
+ ),
356
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar",
357
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
358
+ "div",
359
+ {
360
+ className: (0, import_classnames.default)(
361
+ "visual-builder__focused-toolbar__button-group",
362
+ (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__focused-toolbar__button-group"]
363
+ ),
364
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
365
+ isVariant ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
366
+ import_FieldRevertComponent.VariantRevertDropdown,
364
367
  {
365
- "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button",
366
- className: multipleFieldToolbarButtonClasses,
367
- "data-tooltip": direction === "vertical" ? "Move down" : "Move right",
368
- onClick: (e) => {
369
- e.preventDefault();
370
- e.stopPropagation();
371
- (0, import_instanceHandlers.handleMoveInstance)(
372
- fieldMetadata,
373
- "next"
374
- );
375
- },
376
- disabled: disableFieldActions || disableMoveRight,
377
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
378
- import_icons.MoveRightIcon,
379
- {
380
- className: (0, import_classnames.default)({
381
- "visual-builder__rotate--90": direction === "vertical",
382
- [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__rotate--90"]]: direction === "vertical"
383
- }),
384
- disabled: disableFieldActions || disableMoveRight
385
- }
386
- )
368
+ fieldDataName: fieldMetadata.fieldPathWithIndex,
369
+ fieldMetadata,
370
+ variantStatus: fieldVariantStatus,
371
+ isOpen: isOpenVariantRevert,
372
+ closeDropdown: closeVariantDropdown,
373
+ invertTooltipPosition,
374
+ toggleVariantDropdown,
375
+ disabled: disableFieldActions
387
376
  }
388
- ),
389
- isModalEditable ? editButton : null,
390
- formButton,
391
- isReplaceAllowed ? replaceButton : null,
377
+ ) : null,
378
+ isMultiple && !isWholeMultipleField ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
379
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
380
+ "button",
381
+ {
382
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button",
383
+ className: multipleFieldToolbarButtonClasses,
384
+ "data-tooltip": direction === "vertical" ? "Move up" : "Move left",
385
+ onClick: (e) => {
386
+ e.preventDefault();
387
+ e.stopPropagation();
388
+ (0, import_instanceHandlers.handleMoveInstance)(
389
+ fieldMetadata,
390
+ "previous"
391
+ );
392
+ },
393
+ disabled: disableFieldActions || disableMoveLeft,
394
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
395
+ import_icons.MoveLeftIcon,
396
+ {
397
+ className: (0, import_classnames.default)({
398
+ "visual-builder__rotate--90": direction === "vertical",
399
+ [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__rotate--90"]]: direction === "vertical"
400
+ }),
401
+ disabled: disableFieldActions || disableMoveLeft
402
+ }
403
+ )
404
+ }
405
+ ),
406
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
407
+ "button",
408
+ {
409
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button",
410
+ className: multipleFieldToolbarButtonClasses,
411
+ "data-tooltip": direction === "vertical" ? "Move down" : "Move right",
412
+ onClick: (e) => {
413
+ e.preventDefault();
414
+ e.stopPropagation();
415
+ (0, import_instanceHandlers.handleMoveInstance)(
416
+ fieldMetadata,
417
+ "next"
418
+ );
419
+ },
420
+ disabled: disableFieldActions || disableMoveRight,
421
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
422
+ import_icons.MoveRightIcon,
423
+ {
424
+ className: (0, import_classnames.default)({
425
+ "visual-builder__rotate--90": direction === "vertical",
426
+ [(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__rotate--90"]]: direction === "vertical"
427
+ }),
428
+ disabled: disableFieldActions || disableMoveRight
429
+ }
430
+ )
431
+ }
432
+ ),
433
+ isModalEditable ? editButton : null,
434
+ formButton,
435
+ isReplaceAllowed ? replaceButton : null,
436
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
437
+ "button",
438
+ {
439
+ "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__delete-button",
440
+ className: multipleFieldToolbarButtonClasses,
441
+ "data-tooltip": "Delete",
442
+ onClick: (e) => {
443
+ e.preventDefault();
444
+ e.stopPropagation();
445
+ (0, import_instanceHandlers.handleDeleteInstance)(fieldMetadata);
446
+ },
447
+ disabled: disableFieldActions,
448
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DeleteIcon, {})
449
+ }
450
+ )
451
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
452
+ isModalEditable ? editButton : null,
453
+ isReplaceAllowed ? replaceButton : null,
454
+ formButton,
455
+ fieldSchema ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
456
+ import_CommentIcon.default,
457
+ {
458
+ fieldMetadata,
459
+ fieldSchema,
460
+ invertTooltipPosition
461
+ }
462
+ ) : null
463
+ ] }),
392
464
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
393
- "button",
465
+ import_FieldLocationIcon.FieldLocationIcon,
394
466
  {
395
- "data-testid": "visual-builder__focused-toolbar__multiple-field-toolbar__delete-button",
396
- className: multipleFieldToolbarButtonClasses,
397
- "data-tooltip": "Delete",
398
- onClick: (e) => {
399
- e.preventDefault();
400
- e.stopPropagation();
401
- (0, import_instanceHandlers.handleDeleteInstance)(fieldMetadata);
402
- },
403
- disabled: disableFieldActions,
404
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DeleteIcon, {})
467
+ fieldLocationData,
468
+ multipleFieldToolbarButtonClasses,
469
+ handleMoreIconClick,
470
+ moreButtonRef,
471
+ toolbarRef,
472
+ domEditStack
405
473
  }
406
474
  )
407
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
408
- isModalEditable ? editButton : null,
409
- isReplaceAllowed ? replaceButton : null,
410
- formButton,
411
- fieldSchema ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
412
- import_CommentIcon.default,
413
- {
414
- fieldMetadata,
415
- fieldSchema,
416
- invertTooltipPosition
417
- }
418
- ) : null
419
475
  ] })
420
- ] })
421
- }
422
- )
423
- }
424
- )
476
+ }
477
+ )
478
+ }
479
+ ),
480
+ displayAllApps && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
481
+ import_FieldLocationAppList.FieldLocationAppList,
482
+ {
483
+ toolbarRef,
484
+ apps: fieldLocationData?.apps || [],
485
+ position: appListPosition,
486
+ domEditStack,
487
+ setDisplayAllApps,
488
+ displayAllApps
489
+ }
490
+ )
491
+ ]
425
492
  }
426
493
  );
427
494
  }
@@ -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":["import_icons","visualBuilderPostMessage","getChildrenDirection","classNames","fieldSchema","CommentIcon"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/components/FieldToolbar.tsx"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { CslpData as CslpDataUtil } from \"../../utils/cslpdata\";\nimport getChildrenDirection from \"../utils/getChildrenDirection\";\nimport {\n ALLOWED_MODAL_EDITABLE_FIELD,\n ALLOWED_REPLACE_FIELDS,\n} from \"../utils/constants\";\nimport { getFieldType } from \"../utils/getFieldType\";\nimport {\n handleDeleteInstance,\n handleMoveInstance,\n} from \"../utils/instanceHandlers\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { FieldDataType, ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport {\n CaretIcon,\n DeleteIcon,\n MoveLeftIcon,\n MoveRightIcon,\n ReplaceAssetIcon,\n} from \"./icons\";\nimport { fieldIcons } from \"./icons/fields\";\nimport classNames from \"classnames\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport CommentIcon from \"./CommentIcon\";\nimport React, { useEffect, useState, useRef } from \"preact/compat\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { IReferenceContentTypeSchema } from \"../../cms/types/contentTypeSchema.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { FormIcon } from \"./icons\";\nimport { getDOMEditStack } from \"../utils/getCsDataOfElement\";\nimport { VariantIcon } from \"./icons/variant\";\nimport {\n BASE_VARIANT_STATUS,\n getFieldVariantStatus,\n IVariantStatus,\n VariantRevertDropdown,\n} from \"./FieldRevert/FieldRevertComponent\";\nimport { LoadingIcon } from \"./icons/loading\";\nimport { EntryPermissions } from \"../utils/getEntryPermissions\";\nimport { FieldLocationAppList } from \"./FieldLocationAppList\";\nimport { FieldLocationIcon } from \"./FieldLocationIcon\";\nimport { WorkflowStageDetails } from \"../utils/getWorkflowStageDetails\";\n\nexport type FieldDetails = Pick<\n VisualBuilderCslpEventDetails,\n \"editableElement\" | \"fieldMetadata\"\n>;\n\nconst TOOLTIP_TOP_EDGE_BUFFER = 96;\n\ninterface MultipleFieldToolbarProps {\n eventDetails: VisualBuilderCslpEventDetails;\n hideOverlay: () => void;\n isVariant?: boolean;\n entryPermissions?: EntryPermissions | undefined;\n entryWorkflowStageDetails?: WorkflowStageDetails | undefined;\n}\n\nfunction handleReplaceAsset(fieldMetadata: CslpData) {\n // TODO avoid sending whole fieldMetadata\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_ASSET_MODAL,\n {\n fieldMetadata,\n }\n );\n}\n\nfunction handleReplaceReference(fieldMetadata: CslpData) {\n const isMultipleInstance =\n fieldMetadata.multipleFieldMetadata.index > -1 &&\n fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.multipleFieldMetadata.parentDetails?.parentPath;\n const entryPath = isMultipleInstance\n ? fieldMetadata.instance.fieldPathWithIndex\n : fieldMetadata.fieldPathWithIndex;\n\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_REFERENCE_MODAL,\n {\n entry_uid: fieldMetadata.entry_uid,\n content_type_uid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n fieldPath: fieldMetadata.fieldPath,\n fieldPathWithIndex: fieldMetadata.fieldPathWithIndex,\n entryPath,\n }\n );\n}\n\nfunction handleEdit(fieldMetadata: CslpData) {\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_FIELD_EDIT_MODAL,\n { fieldMetadata }\n );\n}\n\nfunction handleFormFieldFocus(eventDetails: VisualBuilderCslpEventDetails) {\n const { editableElement } = eventDetails;\n return visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.FOCUS_FIELD,\n {\n DOMEditStack: getDOMEditStack(editableElement),\n toggleVisibility: true,\n }\n );\n}\n\nfunction FieldToolbarComponent(\n props: MultipleFieldToolbarProps\n): JSX.Element | null {\n const {\n eventDetails,\n isVariant: isVariantOrParentOfVariant,\n entryPermissions,\n entryWorkflowStageDetails,\n } = props;\n const { fieldMetadata, editableElement: targetElement } = eventDetails;\n const [isFormLoading, setIsFormLoading] = useState(false);\n const [fieldLocationData, setFieldLocationData] = useState<any>(null);\n const [displayAllApps, setDisplayAllApps] = useState(false);\n const moreButtonRef = useRef<HTMLButtonElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n const [appListPosition, setAppListPosition] = useState<\"left\" | \"right\">(\n \"right\"\n );\n\n const parentPath =\n fieldMetadata?.multipleFieldMetadata?.parentDetails?.parentCslpValue ||\n \"\";\n const isVariant = !!fieldMetadata?.variant || isVariantOrParentOfVariant;\n const direction = getChildrenDirection(targetElement, parentPath);\n const [fieldSchema, setFieldSchema] = useState<ISchemaFieldMap | null>(\n null\n );\n const [fieldVariantStatus, setFieldVariantStatus] =\n useState<IVariantStatus>(BASE_VARIANT_STATUS);\n const [isOpenVariantRevert, setIsOpenVariantRevert] =\n useState<boolean>(false);\n\n let isModalEditable = false;\n let isReplaceAllowed = false;\n let isMultiple = false;\n let Icon = null;\n let fieldType = null;\n let isWholeMultipleField = false;\n const APP_LIST_MIN_WIDTH = 230;\n\n let disableFieldActions = false;\n if (fieldSchema) {\n const { isDisabled } = isFieldDisabled(\n fieldSchema,\n {\n editableElement: targetElement,\n fieldMetadata,\n },\n entryPermissions,\n entryWorkflowStageDetails\n );\n disableFieldActions = isDisabled;\n\n fieldType = getFieldType(fieldSchema);\n\n Icon = fieldIcons[fieldType];\n\n isMultiple = fieldSchema.multiple || false;\n if (fieldType === FieldDataType.REFERENCE)\n isMultiple = (fieldSchema as IReferenceContentTypeSchema)\n .field_metadata.ref_multiple;\n\n // field is multiple but an instance is not selected\n // instead the whole field (all instances) is selected.\n // Currently, when whole featured_blogs is selected in canvas,\n // the fieldPathWithIndex and instance.fieldPathWithIndex are the same\n // cannot rely on -1 index, as the non-negative index then refers to the index of\n // the featured_blogs block in page_components\n // It is not needed except taxanomy.\n isWholeMultipleField =\n isMultiple &&\n (fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.instance.fieldPathWithIndex ||\n fieldMetadata.multipleFieldMetadata?.index === -1);\n\n isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType) && !isWholeMultipleField;\n\n isReplaceAllowed =\n ALLOWED_REPLACE_FIELDS.includes(fieldType) && !isWholeMultipleField;\n // if (\n // DEFAULT_MULTIPLE_FIELDS.includes(fieldType) &&\n // isWholeMultipleField &&\n // !isVariant\n // ) {\n // return null;\n // }\n }\n\n const domEditStack=getDOMEditStack(eventDetails.editableElement) as CslpDataUtil[]\n\n\n const invertTooltipPosition =\n targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;\n\n const handleMoreIconClick = () => {\n if (toolbarRef.current) {\n const rect = toolbarRef.current.getBoundingClientRect();\n const spaceRight = window.innerWidth - rect.right;\n const spaceLeft = rect.left;\n let position = \"\";\n\n if (spaceRight < APP_LIST_MIN_WIDTH) {\n position = \"left\";\n } else if (spaceRight > APP_LIST_MIN_WIDTH) {\n position = \"right\";\n } else {\n position = spaceRight > spaceLeft ? \"right\" : \"left\";\n }\n setAppListPosition(position as \"left\" | \"right\");\n }\n\n setDisplayAllApps(!displayAllApps);\n };\n\n const editButton = Icon ? (\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__edit-button\"\n className={classNames(\n \"visual-builder__button visual-builder__button--secondary visual-builder__button--edit\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__button--edit\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Edit\"}\n onClick={(e) => {\n // TODO the listener for field path is attached to the common parent requiring\n // propagation to be stopped, should ideally only attach onClick to fieldpath dropdown\n e.preventDefault();\n e.stopPropagation();\n handleEdit(fieldMetadata);\n }}\n disabled={disableFieldActions}\n >\n <Icon />\n </button>\n ) : null;\n\n const replaceButton = fieldType ? (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Replace\"}\n data-testid={`visual-builder-replace-${fieldType}`}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n if (fieldType === FieldDataType.REFERENCE) {\n handleReplaceReference(fieldMetadata);\n return;\n } else if (fieldType === FieldDataType.FILE) {\n handleReplaceAsset(fieldMetadata);\n return;\n }\n }}\n disabled={disableFieldActions}\n >\n <ReplaceAssetIcon />\n </button>\n ) : null;\n\n const formButton = (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n },\n {\n [visualBuilderStyles()[\n \"visual-builder__button--comment-loader\"\n ]]: isFormLoading,\n \"visual-builder__button--comment-loader\": isFormLoading,\n }\n )}\n data-tooltip={\"Form\"}\n data-testid={`visual-builder-form`}\n onClick={async (e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsFormLoading(true);\n try {\n await handleFormFieldFocus(eventDetails);\n } finally {\n setIsFormLoading(false);\n }\n }}\n disabled={isFormLoading}\n >\n {isFormLoading ? <LoadingIcon /> : <FormIcon />}\n </button>\n );\n\n const toggleVariantDropdown = () => {\n setIsOpenVariantRevert(!isOpenVariantRevert);\n };\n\n const closeVariantDropdown = () => {\n setIsOpenVariantRevert(false);\n };\n\n const variantButton = (\n <button\n className={classNames(\n \"visual-builder__variant-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n visualBuilderStyles()[\"visual-builder__variant-button\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Variant Revert\"}\n data-testid={`visual-builder-canvas-variant-revert`}\n onClick={toggleVariantDropdown}\n >\n <VariantIcon />\n <CaretIcon open={isOpenVariantRevert} />\n </button>\n );\n\n // TODO sibling count is incorrect for this purpose\n\n const totalElementCount = targetElement?.parentNode?.childElementCount ?? 1;\n const indexOfElement = fieldMetadata?.multipleFieldMetadata?.index;\n\n const disableMoveLeft = indexOfElement === 0; // first element\n const disableMoveRight = indexOfElement === totalElementCount - 1; // last element\n\n useEffect(() => {\n async function fetchFieldSchema() {\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n );\n if (fieldSchema) {\n setFieldSchema(fieldSchema);\n }\n const variantStatus = await getFieldVariantStatus(fieldMetadata);\n setFieldVariantStatus(variantStatus ?? BASE_VARIANT_STATUS);\n }\n fetchFieldSchema();\n }, [fieldMetadata]);\n\n useEffect(() => {\n const event = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.DELETE_INSTANCE,\n (args: { data: { path: string } }) => {\n if (\n args.data?.path ===\n fieldMetadata.instance.fieldPathWithIndex\n ) {\n props.hideOverlay();\n }\n }\n );\n\n return () => {\n event?.unregister();\n };\n }, []);\n\n useEffect(() => {\n const fetchFieldLocationData = async () => {\n try {\n const event = await visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FIELD_LOCATION_DATA, {\n domEditStack: getDOMEditStack(eventDetails.editableElement)\n });\n \n setFieldLocationData(event)\n } catch (error) {\n console.error('Error fetching field location data:', error);\n }\n };\n\n fetchFieldLocationData();\n }, [eventDetails.editableElement]);\n\n const multipleFieldToolbarButtonClasses = classNames(\n \"visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n );\n\n return (\n <div\n className={classNames(\n \"visual-builder__field-toolbar-container\",\n visualBuilderStyles()[\"visual-builder__field-toolbar-container\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__multiple-field-toolbar\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__multiple-field-toolbar\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar\"\n >\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__button-group\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__button-group\"\n ]\n )}\n >\n <>\n {isVariant ? (\n <VariantRevertDropdown\n fieldDataName={fieldMetadata.fieldPathWithIndex}\n fieldMetadata={fieldMetadata}\n variantStatus={fieldVariantStatus}\n isOpen={isOpenVariantRevert}\n closeDropdown={closeVariantDropdown}\n invertTooltipPosition={invertTooltipPosition}\n toggleVariantDropdown={toggleVariantDropdown}\n disabled={disableFieldActions}\n />\n ) : null}\n {isMultiple && !isWholeMultipleField ? (\n <>\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction === \"vertical\"\n ? \"Move up\"\n : \"Move left\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"previous\"\n );\n }}\n disabled={\n disableFieldActions || disableMoveLeft\n }\n >\n <MoveLeftIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction === \"vertical\",\n })}\n disabled={\n disableFieldActions ||\n disableMoveLeft\n }\n />\n </button>\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction === \"vertical\"\n ? \"Move down\"\n : \"Move right\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"next\"\n );\n }}\n disabled={\n disableFieldActions || disableMoveRight\n }\n >\n <MoveRightIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction === \"vertical\",\n })}\n disabled={\n disableFieldActions ||\n disableMoveRight\n }\n />\n </button>\n\n {isModalEditable ? editButton : null}\n {formButton}\n {isReplaceAllowed ? replaceButton : null}\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__delete-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\"Delete\"}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleDeleteInstance(fieldMetadata);\n }}\n disabled={disableFieldActions}\n >\n <DeleteIcon />\n </button>\n </>\n ) : (\n <>\n {isModalEditable ? editButton : null}\n {isReplaceAllowed ? replaceButton : null}\n {formButton}\n {fieldSchema ? (\n <CommentIcon\n fieldMetadata={fieldMetadata}\n fieldSchema={fieldSchema}\n invertTooltipPosition={\n invertTooltipPosition\n }\n />\n ) : null}\n </>\n )}\n\n <FieldLocationIcon\n fieldLocationData={fieldLocationData}\n multipleFieldToolbarButtonClasses={\n multipleFieldToolbarButtonClasses\n }\n handleMoreIconClick={handleMoreIconClick}\n moreButtonRef={moreButtonRef}\n toolbarRef={toolbarRef}\n domEditStack={domEditStack}\n />\n </>\n </div>\n </div>\n {displayAllApps && (\n <FieldLocationAppList\n toolbarRef={toolbarRef}\n apps={fieldLocationData?.apps || ([] as any[])}\n position={appListPosition}\n domEditStack={domEditStack}\n setDisplayAllApps={setDisplayAllApps}\n displayAllApps={displayAllApps}\n />\n )}\n </div>\n );\n}\n\nexport default FieldToolbarComponent;\n"],"mappings":"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","names":["import_icons","visualBuilderPostMessage","getChildrenDirection","classNames","fieldSchema","CommentIcon"]}