@contentstack/live-preview-utils 4.1.2 → 4.2.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 (251) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/dist/legacy/{chunk-HLXJTSQ3.js → chunk-7SRLYDRL.js} +92 -92
  4. package/dist/legacy/chunk-7SRLYDRL.js.map +1 -0
  5. package/dist/legacy/light-sdk.cjs +1 -1
  6. package/dist/legacy/light-sdk.js +1 -1
  7. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs +91 -91
  8. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
  9. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.js +1 -1
  10. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  11. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  12. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
  13. package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
  14. package/dist/legacy/timeline/timelinePostMessage/timelinePostMessage.cjs +91 -91
  15. package/dist/legacy/timeline/timelinePostMessage/timelinePostMessage.cjs.map +1 -1
  16. package/dist/legacy/timeline/timelinePostMessage/timelinePostMessage.js +1 -1
  17. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +3 -1
  18. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  19. package/dist/legacy/visualBuilder/components/FieldToolbar.d.cts +2 -0
  20. package/dist/legacy/visualBuilder/components/FieldToolbar.d.ts +2 -0
  21. package/dist/legacy/visualBuilder/components/FieldToolbar.js +3 -1
  22. package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
  23. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs +61 -12
  24. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  25. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js +62 -13
  26. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  27. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +122 -0
  28. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -0
  29. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.cts +7 -0
  30. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.ts +7 -0
  31. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +99 -0
  32. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -0
  33. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +21 -4
  34. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
  35. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.d.cts +1 -1
  36. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.d.ts +1 -1
  37. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js +21 -4
  38. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
  39. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs +5 -3
  40. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  41. package/dist/legacy/visualBuilder/generators/generateOverlay.js +5 -3
  42. package/dist/legacy/visualBuilder/generators/generateOverlay.js.map +1 -1
  43. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +5 -3
  44. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  45. package/dist/legacy/visualBuilder/generators/generateToolbar.js +5 -3
  46. package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
  47. package/dist/legacy/visualBuilder/index.cjs.map +1 -1
  48. package/dist/legacy/visualBuilder/index.js.map +1 -1
  49. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +6 -3
  50. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  51. package/dist/legacy/visualBuilder/listeners/mouseClick.js +6 -3
  52. package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
  53. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +8 -4
  54. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  55. package/dist/legacy/visualBuilder/listeners/mouseHover.js +8 -4
  56. package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
  57. package/dist/legacy/visualBuilder/utils/constants.cjs +13 -0
  58. package/dist/legacy/visualBuilder/utils/constants.cjs.map +1 -1
  59. package/dist/legacy/visualBuilder/utils/constants.d.cts +10 -1
  60. package/dist/legacy/visualBuilder/utils/constants.d.ts +10 -1
  61. package/dist/legacy/visualBuilder/utils/constants.js +11 -0
  62. package/dist/legacy/visualBuilder/utils/constants.js.map +1 -1
  63. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +21 -3
  64. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -1
  65. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +5 -1
  66. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +5 -1
  67. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +21 -3
  68. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -1
  69. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.cjs +8 -0
  70. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.cjs.map +1 -1
  71. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.d.cts +5 -0
  72. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.d.ts +5 -0
  73. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.js +8 -0
  74. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.js.map +1 -1
  75. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs +7 -3
  76. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  77. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js +7 -3
  78. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  79. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +3 -3
  80. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
  81. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +3 -3
  82. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
  83. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.cjs +58 -0
  84. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.cjs.map +1 -0
  85. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.d.cts +10 -0
  86. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.d.ts +10 -0
  87. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.js +25 -0
  88. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.js.map +1 -0
  89. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +9 -7
  90. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  91. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +9 -7
  92. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  93. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +6 -2
  94. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  95. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +6 -2
  96. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  97. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs +23 -6
  98. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  99. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.cts +23 -2
  100. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.ts +23 -2
  101. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js +22 -6
  102. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  103. package/dist/legacy/visualBuilder/utils/types/index.types.cjs.map +1 -1
  104. package/dist/legacy/visualBuilder/utils/types/index.types.d.cts +1 -0
  105. package/dist/legacy/visualBuilder/utils/types/index.types.d.ts +1 -0
  106. package/dist/legacy/visualBuilder/utils/types/index.types.js.map +1 -1
  107. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +2 -0
  108. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  109. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +2 -0
  110. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +2 -0
  111. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +2 -0
  112. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  113. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +9 -4
  114. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  115. package/dist/legacy/visualBuilder/utils/updateFocussedState.js +10 -5
  116. package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
  117. package/dist/legacy/visualBuilder/utils/visualBuilderPostMessage.cjs +91 -91
  118. package/dist/legacy/visualBuilder/utils/visualBuilderPostMessage.cjs.map +1 -1
  119. package/dist/legacy/visualBuilder/utils/visualBuilderPostMessage.js +1 -1
  120. package/dist/legacy/visualBuilder/visualBuilder.style.cjs +31 -1
  121. package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
  122. package/dist/legacy/visualBuilder/visualBuilder.style.d.cts +1 -0
  123. package/dist/legacy/visualBuilder/visualBuilder.style.d.ts +1 -0
  124. package/dist/legacy/visualBuilder/visualBuilder.style.js +31 -1
  125. package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
  126. package/dist/modern/{chunk-LNSFZGX4.js → chunk-JYE4G3PN.js} +92 -92
  127. package/dist/modern/chunk-JYE4G3PN.js.map +1 -0
  128. package/dist/modern/light-sdk.cjs +1 -1
  129. package/dist/modern/light-sdk.js +1 -1
  130. package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs +91 -91
  131. package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
  132. package/dist/modern/livePreview/eventManager/livePreviewEventManager.js +1 -1
  133. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  134. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  135. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  136. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  137. package/dist/modern/timeline/timelinePostMessage/timelinePostMessage.cjs +91 -91
  138. package/dist/modern/timeline/timelinePostMessage/timelinePostMessage.cjs.map +1 -1
  139. package/dist/modern/timeline/timelinePostMessage/timelinePostMessage.js +1 -1
  140. package/dist/modern/visualBuilder/components/FieldToolbar.cjs +3 -1
  141. package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  142. package/dist/modern/visualBuilder/components/FieldToolbar.d.cts +2 -0
  143. package/dist/modern/visualBuilder/components/FieldToolbar.d.ts +2 -0
  144. package/dist/modern/visualBuilder/components/FieldToolbar.js +3 -1
  145. package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
  146. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs +60 -12
  147. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  148. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js +61 -13
  149. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  150. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +122 -0
  151. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -0
  152. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.cts +7 -0
  153. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.ts +7 -0
  154. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +99 -0
  155. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -0
  156. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +21 -4
  157. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
  158. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.d.cts +1 -1
  159. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.d.ts +1 -1
  160. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js +21 -4
  161. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
  162. package/dist/modern/visualBuilder/generators/generateOverlay.cjs +5 -3
  163. package/dist/modern/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  164. package/dist/modern/visualBuilder/generators/generateOverlay.js +5 -3
  165. package/dist/modern/visualBuilder/generators/generateOverlay.js.map +1 -1
  166. package/dist/modern/visualBuilder/generators/generateToolbar.cjs +5 -3
  167. package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  168. package/dist/modern/visualBuilder/generators/generateToolbar.js +5 -3
  169. package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
  170. package/dist/modern/visualBuilder/index.cjs.map +1 -1
  171. package/dist/modern/visualBuilder/index.js.map +1 -1
  172. package/dist/modern/visualBuilder/listeners/mouseClick.cjs +6 -3
  173. package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  174. package/dist/modern/visualBuilder/listeners/mouseClick.js +6 -3
  175. package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
  176. package/dist/modern/visualBuilder/listeners/mouseHover.cjs +8 -4
  177. package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  178. package/dist/modern/visualBuilder/listeners/mouseHover.js +8 -4
  179. package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
  180. package/dist/modern/visualBuilder/utils/constants.cjs +13 -0
  181. package/dist/modern/visualBuilder/utils/constants.cjs.map +1 -1
  182. package/dist/modern/visualBuilder/utils/constants.d.cts +10 -1
  183. package/dist/modern/visualBuilder/utils/constants.d.ts +10 -1
  184. package/dist/modern/visualBuilder/utils/constants.js +11 -0
  185. package/dist/modern/visualBuilder/utils/constants.js.map +1 -1
  186. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +21 -3
  187. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -1
  188. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +5 -1
  189. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +5 -1
  190. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +21 -3
  191. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -1
  192. package/dist/modern/visualBuilder/utils/fieldSchemaMap.cjs +8 -0
  193. package/dist/modern/visualBuilder/utils/fieldSchemaMap.cjs.map +1 -1
  194. package/dist/modern/visualBuilder/utils/fieldSchemaMap.d.cts +5 -0
  195. package/dist/modern/visualBuilder/utils/fieldSchemaMap.d.ts +5 -0
  196. package/dist/modern/visualBuilder/utils/fieldSchemaMap.js +8 -0
  197. package/dist/modern/visualBuilder/utils/fieldSchemaMap.js.map +1 -1
  198. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs +5 -1
  199. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  200. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js +5 -1
  201. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  202. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +3 -3
  203. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
  204. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +3 -3
  205. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
  206. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.cjs +57 -0
  207. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.cjs.map +1 -0
  208. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.d.cts +10 -0
  209. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.d.ts +10 -0
  210. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.js +24 -0
  211. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.js.map +1 -0
  212. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +9 -7
  213. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  214. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +9 -7
  215. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  216. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +6 -2
  217. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  218. package/dist/modern/visualBuilder/utils/handleIndividualFields.js +6 -2
  219. package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  220. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs +21 -4
  221. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  222. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.cts +23 -2
  223. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.ts +23 -2
  224. package/dist/modern/visualBuilder/utils/isFieldDisabled.js +20 -4
  225. package/dist/modern/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  226. package/dist/modern/visualBuilder/utils/types/index.types.cjs.map +1 -1
  227. package/dist/modern/visualBuilder/utils/types/index.types.d.cts +1 -0
  228. package/dist/modern/visualBuilder/utils/types/index.types.d.ts +1 -0
  229. package/dist/modern/visualBuilder/utils/types/index.types.js.map +1 -1
  230. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +2 -0
  231. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  232. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +2 -0
  233. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +2 -0
  234. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +2 -0
  235. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  236. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +9 -4
  237. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  238. package/dist/modern/visualBuilder/utils/updateFocussedState.js +10 -5
  239. package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
  240. package/dist/modern/visualBuilder/utils/visualBuilderPostMessage.cjs +91 -91
  241. package/dist/modern/visualBuilder/utils/visualBuilderPostMessage.cjs.map +1 -1
  242. package/dist/modern/visualBuilder/utils/visualBuilderPostMessage.js +1 -1
  243. package/dist/modern/visualBuilder/visualBuilder.style.cjs +31 -1
  244. package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
  245. package/dist/modern/visualBuilder/visualBuilder.style.d.cts +1 -0
  246. package/dist/modern/visualBuilder/visualBuilder.style.d.ts +1 -0
  247. package/dist/modern/visualBuilder/visualBuilder.style.js +31 -1
  248. package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
  249. package/package.json +11 -10
  250. package/dist/legacy/chunk-HLXJTSQ3.js.map +0 -1
  251. package/dist/modern/chunk-LNSFZGX4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseHover.ts"],"sourcesContent":["import { debounce, throttle } from \"lodash-es\";\nimport { getCsDataOfElement } from \"../utils/getCsDataOfElement\";\nimport { removeAddInstanceButtons } from \"../utils/multipleElementAddButton\";\nimport { generateCustomCursor } from \"../generators/generateCustomCursor\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { getFieldType } from \"../utils/getFieldType\";\n\nimport EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport { addHoverOutline } from \"../generators/generateHoverOutline\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport Config from \"../../configManager/configManager\";\nimport { isCollabThread } from \"../generators/generateThread\";\nimport { HandleBuilderInteractionParams } from \"./mouseClick\";\nimport { appendFieldPathDropdown } from \"../generators/generateToolbar\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { fetchEntryPermissionsAndStageDetails } from \"../utils/fetchEntryPermissionsAndStageDetails\";\n\nconst config = Config.get();\nexport interface HandleMouseHoverParams\n extends Pick<\n EventListenerHandlerParams,\n \"event\" | \"overlayWrapper\" | \"visualBuilderContainer\" | \"focusedToolbar\" | \"resizeObserver\"\n > {\n customCursor: HTMLDivElement | null;\n}\n\ninterface AddOutlineParams {\n editableElement: Element;\n eventDetails: VisualBuilderCslpEventDetails;\n content_type_uid: string;\n fieldPath: string;\n fieldDisabled?: boolean;\n fieldMetadata: CslpData;\n}\n\nfunction resetCustomCursor(customCursor: HTMLDivElement | null): void {\n if (customCursor) {\n generateCustomCursor({\n fieldType: \"empty\",\n customCursor: customCursor,\n });\n }\n}\n\nfunction collabCustomCursor(customCursor: HTMLDivElement | null): void {\n if (!customCursor) return;\n\n generateCustomCursor({\n fieldType: \"discussion\",\n customCursor: customCursor,\n });\n}\n\nfunction handleCursorPosition(\n event: MouseEvent,\n customCursor: HTMLDivElement | null\n): void {\n if (customCursor) {\n const mouseY = event.clientY;\n const mouseX = event.clientX;\n\n customCursor.style.left = `${mouseX}px`;\n customCursor.style.top = `${mouseY}px`;\n }\n}\n\nasync function addOutline(params?: AddOutlineParams): Promise<void> {\n if (!params) {\n return;\n }\n const {\n editableElement,\n eventDetails,\n content_type_uid,\n fieldPath,\n fieldMetadata,\n fieldDisabled,\n } = params;\n if (!editableElement) return;\n const isVariant = !!fieldMetadata.variant;\n addHoverOutline(editableElement as HTMLElement, fieldDisabled, isVariant);\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n if (!fieldSchema) return;\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: fieldMetadata.entry_uid,\n contentTypeUid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n variantUid: fieldMetadata.variant,\n });\n const { isDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n addHoverOutline(editableElement, fieldDisabled || isDisabled, isVariant);\n}\n\nconst debouncedAddOutline = debounce(addOutline, 50, { trailing: true });\nexport const cancelPendingAddOutline = () => debouncedAddOutline.cancel();\nconst showOutline = (params?: AddOutlineParams): Promise<void> | undefined => debouncedAddOutline(params);\n\nfunction hideDefaultCursor(): void {\n if (\n document?.body &&\n !document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.add(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nfunction showDefaultCursor(): void {\n if (\n document?.body &&\n document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.remove(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nexport function hideHoverOutline(\n visualBuilderContainer: HTMLDivElement | null\n): void {\n if (!visualBuilderContainer) {\n return;\n }\n const hoverOutline = visualBuilderContainer.querySelector(\n \".visual-builder__hover-outline\"\n );\n if (!hoverOutline) {\n return;\n }\n hoverOutline.classList.add(\n visualBuilderStyles()[\"visual-builder__hover-outline--hidden\"]\n );\n}\n\nexport function hideCustomCursor(customCursor: HTMLDivElement | null): void {\n showDefaultCursor();\n customCursor?.classList.remove(\"visible\");\n}\n\nexport function showCustomCursor(customCursor: HTMLDivElement | null): void {\n hideDefaultCursor();\n if (\n config.collab.enable &&\n (!config.collab.isFeedbackMode || config.collab.pauseFeedback)\n )\n return;\n customCursor?.classList.add(\"visible\");\n}\n\nconst debouncedRenderHoverToolbar = debounce(async (params: HandleBuilderInteractionParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer ||\n !params.focusedToolbar\n ) {\n return;\n }\n\n appendFieldPathDropdown(eventDetails, params.focusedToolbar, {\n isHover: true\n });\n}, 50, { trailing: true });\n\nexport const showHoverToolbar = async (params: HandleBuilderInteractionParams) => await debouncedRenderHoverToolbar(params);\n\nexport const cancelPendingHoverToolbar = () => debouncedRenderHoverToolbar.cancel();\n\nfunction isOverlay(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__overlay\");\n}\n\nfunction isContentEditable(target: HTMLElement): boolean {\n if (target.hasAttribute(\"contenteditable\"))\n return target.getAttribute(\"contenteditable\") === \"true\";\n return false;\n}\n\nfunction isFieldPathDropdown(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper\") || target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper__current-field\");\n}\n\nfunction isFieldPathParent(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper__parent-field\");\n}\n\nconst throttledMouseHover = throttle(async (params: HandleMouseHoverParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n const eventTarget = params.event.target as HTMLElement | null;\n\n if (config?.collab.enable && config?.collab.pauseFeedback) {\n hideCustomCursor(params.customCursor);\n return;\n }\n if (!eventDetails) {\n if (\n eventTarget &&\n (isOverlay(eventTarget) ||\n isContentEditable(eventTarget) ||\n isCollabThread(eventTarget))\n ) {\n handleCursorPosition(params.event, params.customCursor);\n hideCustomCursor(params.customCursor);\n return;\n }\n if (\n eventTarget &&\n (isFieldPathDropdown(eventTarget) || isFieldPathParent(eventTarget))\n ) {\n if (params.customCursor) {\n hideCustomCursor(params.customCursor);\n }\n showOutline();\n showHoverToolbar({\n event: params.event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n if (!config?.collab.enable) {\n resetCustomCursor(params.customCursor);\n }\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n handleCursorPosition(params.event, params.customCursor);\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n showCustomCursor(params.customCursor);\n collabCustomCursor(params.customCursor);\n }\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const { content_type_uid, fieldPath } = fieldMetadata;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM.isSameNode(\n editableElement\n )\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (params.customCursor) {\n const elementUnderCursor = document.elementFromPoint(\n params.event.clientX,\n params.event.clientY\n );\n if (elementUnderCursor) {\n if (\n elementUnderCursor.nodeName === \"A\" ||\n elementUnderCursor.nodeName === \"BUTTON\"\n ) {\n elementUnderCursor.classList.add(\n visualBuilderStyles()[\"visual-builder__no-cursor-style\"]\n );\n }\n }\n\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n collabCustomCursor(params.customCursor);\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n return;\n } else if (config?.collab.enable && !config?.collab.isFeedbackMode) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM !== editableElement\n ) {\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n }\n\n if (!FieldSchemaMap.hasFieldSchema(content_type_uid, fieldPath)) {\n generateCustomCursor({\n fieldType: \"loading\",\n customCursor: params.customCursor,\n });\n }\n\n // we can generate the cursor asynchronously\n generateCursor({\n eventDetails,\n customCursor: params.customCursor,\n });\n\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n }\n\n if (\n !editableElement.classList.contains(VB_EmptyBlockParentClass) &&\n !editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\n showOutline({\n editableElement,\n eventDetails,\n content_type_uid,\n fieldPath,\n fieldMetadata,\n });\n const isFocussed= VisualBuilder.VisualBuilderGlobalState.value.isFocussed;\n if(!isFocussed) {\n showHoverToolbar({\n event: params.event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n }\n );\n }\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM =\n editableElement;\n}, 10);\n\nasync function generateCursor({\n eventDetails,\n customCursor,\n}: {\n eventDetails: VisualBuilderCslpEventDetails;\n customCursor: HTMLDivElement | null;\n}) {\n if (!customCursor) return;\n const { fieldMetadata } = eventDetails;\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n );\n if (!fieldSchema) {\n return;\n }\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: fieldMetadata.entry_uid,\n contentTypeUid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n variantUid: fieldMetadata.variant,\n });\n const { isDisabled: fieldDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n const fieldType = getFieldType(fieldSchema);\n generateCustomCursor({\n fieldType,\n customCursor,\n fieldDisabled,\n });\n}\n\nconst handleMouseHover = async (\n params: HandleMouseHoverParams\n): Promise<void> => await throttledMouseHover(params);\n\nexport const cancelPendingMouseHover = () => throttledMouseHover.cancel();\n\nexport default handleMouseHover;\n"],"mappings":"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","names":["import__","Config"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseHover.ts"],"sourcesContent":["import { debounce, throttle } from \"lodash-es\";\nimport { getCsDataOfElement } from \"../utils/getCsDataOfElement\";\nimport { removeAddInstanceButtons } from \"../utils/multipleElementAddButton\";\nimport { generateCustomCursor } from \"../generators/generateCustomCursor\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { getFieldType } from \"../utils/getFieldType\";\n\nimport EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport { addHoverOutline } from \"../generators/generateHoverOutline\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport Config from \"../../configManager/configManager\";\nimport { isCollabThread } from \"../generators/generateThread\";\nimport { HandleBuilderInteractionParams } from \"./mouseClick\";\nimport { appendFieldPathDropdown } from \"../generators/generateToolbar\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { fetchEntryPermissionsAndStageDetails } from \"../utils/fetchEntryPermissionsAndStageDetails\";\n\nconst config = Config.get();\nexport interface HandleMouseHoverParams\n extends Pick<\n EventListenerHandlerParams,\n \"event\" | \"overlayWrapper\" | \"visualBuilderContainer\" | \"focusedToolbar\" | \"resizeObserver\"\n > {\n customCursor: HTMLDivElement | null;\n}\n\ninterface AddOutlineParams {\n editableElement: Element;\n eventDetails: VisualBuilderCslpEventDetails;\n content_type_uid: string;\n fieldPath: string;\n fieldDisabled?: boolean;\n fieldMetadata: CslpData;\n}\n\nfunction resetCustomCursor(customCursor: HTMLDivElement | null): void {\n if (customCursor) {\n generateCustomCursor({\n fieldType: \"empty\",\n customCursor: customCursor,\n });\n }\n}\n\nfunction collabCustomCursor(customCursor: HTMLDivElement | null): void {\n if (!customCursor) return;\n\n generateCustomCursor({\n fieldType: \"discussion\",\n customCursor: customCursor,\n });\n}\n\nfunction handleCursorPosition(\n event: MouseEvent,\n customCursor: HTMLDivElement | null\n): void {\n if (customCursor) {\n const mouseY = event.clientY;\n const mouseX = event.clientX;\n\n customCursor.style.left = `${mouseX}px`;\n customCursor.style.top = `${mouseY}px`;\n }\n}\n\nasync function addOutline(params?: AddOutlineParams): Promise<void> {\n if (!params) {\n return;\n }\n const {\n editableElement,\n eventDetails,\n content_type_uid,\n fieldPath,\n fieldMetadata,\n fieldDisabled,\n } = params;\n if (!editableElement) return;\n const isVariant = !!fieldMetadata.variant;\n addHoverOutline(editableElement as HTMLElement, fieldDisabled, isVariant);\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n if (!fieldSchema) return;\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: fieldMetadata.entry_uid,\n contentTypeUid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n variantUid: fieldMetadata.variant,\n fieldPathWithIndex: fieldMetadata.fieldPathWithIndex,\n });\n const { isDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n resolvedVariantPermissions,\n entryAcl,\n entryWorkflowStageDetails\n );\n addHoverOutline(editableElement, fieldDisabled || isDisabled, isVariant);\n}\n\nconst debouncedAddOutline = debounce(addOutline, 50, { trailing: true });\nexport const cancelPendingAddOutline = () => debouncedAddOutline.cancel();\nconst showOutline = (params?: AddOutlineParams): Promise<void> | undefined => debouncedAddOutline(params);\n\nfunction hideDefaultCursor(): void {\n if (\n document?.body &&\n !document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.add(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nfunction showDefaultCursor(): void {\n if (\n document?.body &&\n document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.remove(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nexport function hideHoverOutline(\n visualBuilderContainer: HTMLDivElement | null\n): void {\n if (!visualBuilderContainer) {\n return;\n }\n const hoverOutline = visualBuilderContainer.querySelector(\n \".visual-builder__hover-outline\"\n );\n if (!hoverOutline) {\n return;\n }\n hoverOutline.classList.add(\n visualBuilderStyles()[\"visual-builder__hover-outline--hidden\"]\n );\n}\n\nexport function hideCustomCursor(customCursor: HTMLDivElement | null): void {\n showDefaultCursor();\n customCursor?.classList.remove(\"visible\");\n}\n\nexport function showCustomCursor(customCursor: HTMLDivElement | null): void {\n hideDefaultCursor();\n if (\n config.collab.enable &&\n (!config.collab.isFeedbackMode || config.collab.pauseFeedback)\n )\n return;\n customCursor?.classList.add(\"visible\");\n}\n\nconst debouncedRenderHoverToolbar = debounce(async (params: HandleBuilderInteractionParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer ||\n !params.focusedToolbar\n ) {\n return;\n }\n\n appendFieldPathDropdown(eventDetails, params.focusedToolbar, {\n isHover: true\n });\n}, 50, { trailing: true });\n\nexport const showHoverToolbar = async (params: HandleBuilderInteractionParams) => await debouncedRenderHoverToolbar(params);\n\nexport const cancelPendingHoverToolbar = () => debouncedRenderHoverToolbar.cancel();\n\nfunction isOverlay(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__overlay\");\n}\n\nfunction isContentEditable(target: HTMLElement): boolean {\n if (target.hasAttribute(\"contenteditable\"))\n return target.getAttribute(\"contenteditable\") === \"true\";\n return false;\n}\n\nfunction isFieldPathDropdown(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper\") || target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper__current-field\");\n}\n\nfunction isFieldPathParent(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper__parent-field\");\n}\n\nconst throttledMouseHover = throttle(async (params: HandleMouseHoverParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n const eventTarget = params.event.target as HTMLElement | null;\n\n if (config?.collab.enable && config?.collab.pauseFeedback) {\n hideCustomCursor(params.customCursor);\n return;\n }\n if (!eventDetails) {\n if (\n eventTarget &&\n (isOverlay(eventTarget) ||\n isContentEditable(eventTarget) ||\n isCollabThread(eventTarget))\n ) {\n handleCursorPosition(params.event, params.customCursor);\n hideCustomCursor(params.customCursor);\n return;\n }\n if (\n eventTarget &&\n (isFieldPathDropdown(eventTarget) || isFieldPathParent(eventTarget))\n ) {\n if (params.customCursor) {\n hideCustomCursor(params.customCursor);\n }\n showOutline();\n showHoverToolbar({\n event: params.event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n if (!config?.collab.enable) {\n resetCustomCursor(params.customCursor);\n }\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n handleCursorPosition(params.event, params.customCursor);\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n showCustomCursor(params.customCursor);\n collabCustomCursor(params.customCursor);\n }\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const { content_type_uid, fieldPath } = fieldMetadata;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM.isSameNode(\n editableElement\n )\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (params.customCursor) {\n const elementUnderCursor = document.elementFromPoint(\n params.event.clientX,\n params.event.clientY\n );\n if (elementUnderCursor) {\n if (\n elementUnderCursor.nodeName === \"A\" ||\n elementUnderCursor.nodeName === \"BUTTON\"\n ) {\n elementUnderCursor.classList.add(\n visualBuilderStyles()[\"visual-builder__no-cursor-style\"]\n );\n }\n }\n\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n collabCustomCursor(params.customCursor);\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n return;\n } else if (config?.collab.enable && !config?.collab.isFeedbackMode) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM !== editableElement\n ) {\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n }\n\n if (!FieldSchemaMap.hasFieldSchema(content_type_uid, fieldPath)) {\n generateCustomCursor({\n fieldType: \"loading\",\n customCursor: params.customCursor,\n });\n }\n\n // we can generate the cursor asynchronously\n generateCursor({\n eventDetails,\n customCursor: params.customCursor,\n });\n\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n }\n\n if (\n !editableElement.classList.contains(VB_EmptyBlockParentClass) &&\n !editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\n showOutline({\n editableElement,\n eventDetails,\n content_type_uid,\n fieldPath,\n fieldMetadata,\n });\n const isFocussed= VisualBuilder.VisualBuilderGlobalState.value.isFocussed;\n if(!isFocussed) {\n showHoverToolbar({\n event: params.event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n }\n );\n }\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM =\n editableElement;\n}, 10);\n\nasync function generateCursor({\n eventDetails,\n customCursor,\n}: {\n eventDetails: VisualBuilderCslpEventDetails;\n customCursor: HTMLDivElement | null;\n}) {\n if (!customCursor) return;\n const { fieldMetadata } = eventDetails;\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n );\n if (!fieldSchema) {\n return;\n }\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: fieldMetadata.entry_uid,\n contentTypeUid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n variantUid: fieldMetadata.variant,\n fieldPathWithIndex: fieldMetadata.fieldPathWithIndex,\n });\n const { isDisabled: fieldDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n resolvedVariantPermissions,\n entryAcl,\n entryWorkflowStageDetails\n );\n const fieldType = getFieldType(fieldSchema);\n generateCustomCursor({\n fieldType,\n customCursor,\n fieldDisabled,\n });\n}\n\nconst handleMouseHover = async (\n params: HandleMouseHoverParams\n): Promise<void> => await throttledMouseHover(params);\n\nexport const cancelPendingMouseHover = () => throttledMouseHover.cancel();\n\nexport default handleMouseHover;\n"],"mappings":"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","names":["import__","Config"]}
@@ -60,15 +60,17 @@ async function addOutline(params) {
60
60
  fieldPath
61
61
  );
62
62
  if (!fieldSchema) return;
63
- const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } = await fetchEntryPermissionsAndStageDetails({
63
+ const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } = await fetchEntryPermissionsAndStageDetails({
64
64
  entryUid: fieldMetadata.entry_uid,
65
65
  contentTypeUid: fieldMetadata.content_type_uid,
66
66
  locale: fieldMetadata.locale,
67
- variantUid: fieldMetadata.variant
67
+ variantUid: fieldMetadata.variant,
68
+ fieldPathWithIndex: fieldMetadata.fieldPathWithIndex
68
69
  });
69
70
  const { isDisabled } = isFieldDisabled(
70
71
  fieldSchema,
71
72
  eventDetails,
73
+ resolvedVariantPermissions,
72
74
  entryAcl,
73
75
  entryWorkflowStageDetails
74
76
  );
@@ -274,15 +276,17 @@ async function generateCursor({
274
276
  if (!fieldSchema) {
275
277
  return;
276
278
  }
277
- const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } = await fetchEntryPermissionsAndStageDetails({
279
+ const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } = await fetchEntryPermissionsAndStageDetails({
278
280
  entryUid: fieldMetadata.entry_uid,
279
281
  contentTypeUid: fieldMetadata.content_type_uid,
280
282
  locale: fieldMetadata.locale,
281
- variantUid: fieldMetadata.variant
283
+ variantUid: fieldMetadata.variant,
284
+ fieldPathWithIndex: fieldMetadata.fieldPathWithIndex
282
285
  });
283
286
  const { isDisabled: fieldDisabled } = isFieldDisabled(
284
287
  fieldSchema,
285
288
  eventDetails,
289
+ resolvedVariantPermissions,
286
290
  entryAcl,
287
291
  entryWorkflowStageDetails
288
292
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseHover.ts"],"sourcesContent":["import { debounce, throttle } from \"lodash-es\";\nimport { getCsDataOfElement } from \"../utils/getCsDataOfElement\";\nimport { removeAddInstanceButtons } from \"../utils/multipleElementAddButton\";\nimport { generateCustomCursor } from \"../generators/generateCustomCursor\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { getFieldType } from \"../utils/getFieldType\";\n\nimport EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport { addHoverOutline } from \"../generators/generateHoverOutline\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport Config from \"../../configManager/configManager\";\nimport { isCollabThread } from \"../generators/generateThread\";\nimport { HandleBuilderInteractionParams } from \"./mouseClick\";\nimport { appendFieldPathDropdown } from \"../generators/generateToolbar\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { fetchEntryPermissionsAndStageDetails } from \"../utils/fetchEntryPermissionsAndStageDetails\";\n\nconst config = Config.get();\nexport interface HandleMouseHoverParams\n extends Pick<\n EventListenerHandlerParams,\n \"event\" | \"overlayWrapper\" | \"visualBuilderContainer\" | \"focusedToolbar\" | \"resizeObserver\"\n > {\n customCursor: HTMLDivElement | null;\n}\n\ninterface AddOutlineParams {\n editableElement: Element;\n eventDetails: VisualBuilderCslpEventDetails;\n content_type_uid: string;\n fieldPath: string;\n fieldDisabled?: boolean;\n fieldMetadata: CslpData;\n}\n\nfunction resetCustomCursor(customCursor: HTMLDivElement | null): void {\n if (customCursor) {\n generateCustomCursor({\n fieldType: \"empty\",\n customCursor: customCursor,\n });\n }\n}\n\nfunction collabCustomCursor(customCursor: HTMLDivElement | null): void {\n if (!customCursor) return;\n\n generateCustomCursor({\n fieldType: \"discussion\",\n customCursor: customCursor,\n });\n}\n\nfunction handleCursorPosition(\n event: MouseEvent,\n customCursor: HTMLDivElement | null\n): void {\n if (customCursor) {\n const mouseY = event.clientY;\n const mouseX = event.clientX;\n\n customCursor.style.left = `${mouseX}px`;\n customCursor.style.top = `${mouseY}px`;\n }\n}\n\nasync function addOutline(params?: AddOutlineParams): Promise<void> {\n if (!params) {\n return;\n }\n const {\n editableElement,\n eventDetails,\n content_type_uid,\n fieldPath,\n fieldMetadata,\n fieldDisabled,\n } = params;\n if (!editableElement) return;\n const isVariant = !!fieldMetadata.variant;\n addHoverOutline(editableElement as HTMLElement, fieldDisabled, isVariant);\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n if (!fieldSchema) return;\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: fieldMetadata.entry_uid,\n contentTypeUid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n variantUid: fieldMetadata.variant,\n });\n const { isDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n addHoverOutline(editableElement, fieldDisabled || isDisabled, isVariant);\n}\n\nconst debouncedAddOutline = debounce(addOutline, 50, { trailing: true });\nexport const cancelPendingAddOutline = () => debouncedAddOutline.cancel();\nconst showOutline = (params?: AddOutlineParams): Promise<void> | undefined => debouncedAddOutline(params);\n\nfunction hideDefaultCursor(): void {\n if (\n document?.body &&\n !document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.add(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nfunction showDefaultCursor(): void {\n if (\n document?.body &&\n document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.remove(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nexport function hideHoverOutline(\n visualBuilderContainer: HTMLDivElement | null\n): void {\n if (!visualBuilderContainer) {\n return;\n }\n const hoverOutline = visualBuilderContainer.querySelector(\n \".visual-builder__hover-outline\"\n );\n if (!hoverOutline) {\n return;\n }\n hoverOutline.classList.add(\n visualBuilderStyles()[\"visual-builder__hover-outline--hidden\"]\n );\n}\n\nexport function hideCustomCursor(customCursor: HTMLDivElement | null): void {\n showDefaultCursor();\n customCursor?.classList.remove(\"visible\");\n}\n\nexport function showCustomCursor(customCursor: HTMLDivElement | null): void {\n hideDefaultCursor();\n if (\n config.collab.enable &&\n (!config.collab.isFeedbackMode || config.collab.pauseFeedback)\n )\n return;\n customCursor?.classList.add(\"visible\");\n}\n\nconst debouncedRenderHoverToolbar = debounce(async (params: HandleBuilderInteractionParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer ||\n !params.focusedToolbar\n ) {\n return;\n }\n\n appendFieldPathDropdown(eventDetails, params.focusedToolbar, {\n isHover: true\n });\n}, 50, { trailing: true });\n\nexport const showHoverToolbar = async (params: HandleBuilderInteractionParams) => await debouncedRenderHoverToolbar(params);\n\nexport const cancelPendingHoverToolbar = () => debouncedRenderHoverToolbar.cancel();\n\nfunction isOverlay(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__overlay\");\n}\n\nfunction isContentEditable(target: HTMLElement): boolean {\n if (target.hasAttribute(\"contenteditable\"))\n return target.getAttribute(\"contenteditable\") === \"true\";\n return false;\n}\n\nfunction isFieldPathDropdown(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper\") || target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper__current-field\");\n}\n\nfunction isFieldPathParent(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper__parent-field\");\n}\n\nconst throttledMouseHover = throttle(async (params: HandleMouseHoverParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n const eventTarget = params.event.target as HTMLElement | null;\n\n if (config?.collab.enable && config?.collab.pauseFeedback) {\n hideCustomCursor(params.customCursor);\n return;\n }\n if (!eventDetails) {\n if (\n eventTarget &&\n (isOverlay(eventTarget) ||\n isContentEditable(eventTarget) ||\n isCollabThread(eventTarget))\n ) {\n handleCursorPosition(params.event, params.customCursor);\n hideCustomCursor(params.customCursor);\n return;\n }\n if (\n eventTarget &&\n (isFieldPathDropdown(eventTarget) || isFieldPathParent(eventTarget))\n ) {\n if (params.customCursor) {\n hideCustomCursor(params.customCursor);\n }\n showOutline();\n showHoverToolbar({\n event: params.event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n if (!config?.collab.enable) {\n resetCustomCursor(params.customCursor);\n }\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n handleCursorPosition(params.event, params.customCursor);\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n showCustomCursor(params.customCursor);\n collabCustomCursor(params.customCursor);\n }\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const { content_type_uid, fieldPath } = fieldMetadata;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM.isSameNode(\n editableElement\n )\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (params.customCursor) {\n const elementUnderCursor = document.elementFromPoint(\n params.event.clientX,\n params.event.clientY\n );\n if (elementUnderCursor) {\n if (\n elementUnderCursor.nodeName === \"A\" ||\n elementUnderCursor.nodeName === \"BUTTON\"\n ) {\n elementUnderCursor.classList.add(\n visualBuilderStyles()[\"visual-builder__no-cursor-style\"]\n );\n }\n }\n\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n collabCustomCursor(params.customCursor);\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n return;\n } else if (config?.collab.enable && !config?.collab.isFeedbackMode) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM !== editableElement\n ) {\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n }\n\n if (!FieldSchemaMap.hasFieldSchema(content_type_uid, fieldPath)) {\n generateCustomCursor({\n fieldType: \"loading\",\n customCursor: params.customCursor,\n });\n }\n\n // we can generate the cursor asynchronously\n generateCursor({\n eventDetails,\n customCursor: params.customCursor,\n });\n\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n }\n\n if (\n !editableElement.classList.contains(VB_EmptyBlockParentClass) &&\n !editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\n showOutline({\n editableElement,\n eventDetails,\n content_type_uid,\n fieldPath,\n fieldMetadata,\n });\n const isFocussed= VisualBuilder.VisualBuilderGlobalState.value.isFocussed;\n if(!isFocussed) {\n showHoverToolbar({\n event: params.event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n }\n );\n }\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM =\n editableElement;\n}, 10);\n\nasync function generateCursor({\n eventDetails,\n customCursor,\n}: {\n eventDetails: VisualBuilderCslpEventDetails;\n customCursor: HTMLDivElement | null;\n}) {\n if (!customCursor) return;\n const { fieldMetadata } = eventDetails;\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n );\n if (!fieldSchema) {\n return;\n }\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: fieldMetadata.entry_uid,\n contentTypeUid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n variantUid: fieldMetadata.variant,\n });\n const { isDisabled: fieldDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n const fieldType = getFieldType(fieldSchema);\n generateCustomCursor({\n fieldType,\n customCursor,\n fieldDisabled,\n });\n}\n\nconst handleMouseHover = async (\n params: HandleMouseHoverParams\n): Promise<void> => await throttledMouseHover(params);\n\nexport const cancelPendingMouseHover = () => throttledMouseHover.cancel();\n\nexport default handleMouseHover;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseHover.ts"],"sourcesContent":["import { debounce, throttle } from \"lodash-es\";\nimport { getCsDataOfElement } from \"../utils/getCsDataOfElement\";\nimport { removeAddInstanceButtons } from \"../utils/multipleElementAddButton\";\nimport { generateCustomCursor } from \"../generators/generateCustomCursor\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { getFieldType } from \"../utils/getFieldType\";\n\nimport EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport { addHoverOutline } from \"../generators/generateHoverOutline\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport Config from \"../../configManager/configManager\";\nimport { isCollabThread } from \"../generators/generateThread\";\nimport { HandleBuilderInteractionParams } from \"./mouseClick\";\nimport { appendFieldPathDropdown } from \"../generators/generateToolbar\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { fetchEntryPermissionsAndStageDetails } from \"../utils/fetchEntryPermissionsAndStageDetails\";\n\nconst config = Config.get();\nexport interface HandleMouseHoverParams\n extends Pick<\n EventListenerHandlerParams,\n \"event\" | \"overlayWrapper\" | \"visualBuilderContainer\" | \"focusedToolbar\" | \"resizeObserver\"\n > {\n customCursor: HTMLDivElement | null;\n}\n\ninterface AddOutlineParams {\n editableElement: Element;\n eventDetails: VisualBuilderCslpEventDetails;\n content_type_uid: string;\n fieldPath: string;\n fieldDisabled?: boolean;\n fieldMetadata: CslpData;\n}\n\nfunction resetCustomCursor(customCursor: HTMLDivElement | null): void {\n if (customCursor) {\n generateCustomCursor({\n fieldType: \"empty\",\n customCursor: customCursor,\n });\n }\n}\n\nfunction collabCustomCursor(customCursor: HTMLDivElement | null): void {\n if (!customCursor) return;\n\n generateCustomCursor({\n fieldType: \"discussion\",\n customCursor: customCursor,\n });\n}\n\nfunction handleCursorPosition(\n event: MouseEvent,\n customCursor: HTMLDivElement | null\n): void {\n if (customCursor) {\n const mouseY = event.clientY;\n const mouseX = event.clientX;\n\n customCursor.style.left = `${mouseX}px`;\n customCursor.style.top = `${mouseY}px`;\n }\n}\n\nasync function addOutline(params?: AddOutlineParams): Promise<void> {\n if (!params) {\n return;\n }\n const {\n editableElement,\n eventDetails,\n content_type_uid,\n fieldPath,\n fieldMetadata,\n fieldDisabled,\n } = params;\n if (!editableElement) return;\n const isVariant = !!fieldMetadata.variant;\n addHoverOutline(editableElement as HTMLElement, fieldDisabled, isVariant);\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n if (!fieldSchema) return;\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: fieldMetadata.entry_uid,\n contentTypeUid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n variantUid: fieldMetadata.variant,\n fieldPathWithIndex: fieldMetadata.fieldPathWithIndex,\n });\n const { isDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n resolvedVariantPermissions,\n entryAcl,\n entryWorkflowStageDetails\n );\n addHoverOutline(editableElement, fieldDisabled || isDisabled, isVariant);\n}\n\nconst debouncedAddOutline = debounce(addOutline, 50, { trailing: true });\nexport const cancelPendingAddOutline = () => debouncedAddOutline.cancel();\nconst showOutline = (params?: AddOutlineParams): Promise<void> | undefined => debouncedAddOutline(params);\n\nfunction hideDefaultCursor(): void {\n if (\n document?.body &&\n !document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.add(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nfunction showDefaultCursor(): void {\n if (\n document?.body &&\n document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.remove(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nexport function hideHoverOutline(\n visualBuilderContainer: HTMLDivElement | null\n): void {\n if (!visualBuilderContainer) {\n return;\n }\n const hoverOutline = visualBuilderContainer.querySelector(\n \".visual-builder__hover-outline\"\n );\n if (!hoverOutline) {\n return;\n }\n hoverOutline.classList.add(\n visualBuilderStyles()[\"visual-builder__hover-outline--hidden\"]\n );\n}\n\nexport function hideCustomCursor(customCursor: HTMLDivElement | null): void {\n showDefaultCursor();\n customCursor?.classList.remove(\"visible\");\n}\n\nexport function showCustomCursor(customCursor: HTMLDivElement | null): void {\n hideDefaultCursor();\n if (\n config.collab.enable &&\n (!config.collab.isFeedbackMode || config.collab.pauseFeedback)\n )\n return;\n customCursor?.classList.add(\"visible\");\n}\n\nconst debouncedRenderHoverToolbar = debounce(async (params: HandleBuilderInteractionParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer ||\n !params.focusedToolbar\n ) {\n return;\n }\n\n appendFieldPathDropdown(eventDetails, params.focusedToolbar, {\n isHover: true\n });\n}, 50, { trailing: true });\n\nexport const showHoverToolbar = async (params: HandleBuilderInteractionParams) => await debouncedRenderHoverToolbar(params);\n\nexport const cancelPendingHoverToolbar = () => debouncedRenderHoverToolbar.cancel();\n\nfunction isOverlay(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__overlay\");\n}\n\nfunction isContentEditable(target: HTMLElement): boolean {\n if (target.hasAttribute(\"contenteditable\"))\n return target.getAttribute(\"contenteditable\") === \"true\";\n return false;\n}\n\nfunction isFieldPathDropdown(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper\") || target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper__current-field\");\n}\n\nfunction isFieldPathParent(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__focused-toolbar__field-label-wrapper__parent-field\");\n}\n\nconst throttledMouseHover = throttle(async (params: HandleMouseHoverParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n const eventTarget = params.event.target as HTMLElement | null;\n\n if (config?.collab.enable && config?.collab.pauseFeedback) {\n hideCustomCursor(params.customCursor);\n return;\n }\n if (!eventDetails) {\n if (\n eventTarget &&\n (isOverlay(eventTarget) ||\n isContentEditable(eventTarget) ||\n isCollabThread(eventTarget))\n ) {\n handleCursorPosition(params.event, params.customCursor);\n hideCustomCursor(params.customCursor);\n return;\n }\n if (\n eventTarget &&\n (isFieldPathDropdown(eventTarget) || isFieldPathParent(eventTarget))\n ) {\n if (params.customCursor) {\n hideCustomCursor(params.customCursor);\n }\n showOutline();\n showHoverToolbar({\n event: params.event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n if (!config?.collab.enable) {\n resetCustomCursor(params.customCursor);\n }\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n handleCursorPosition(params.event, params.customCursor);\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n showCustomCursor(params.customCursor);\n collabCustomCursor(params.customCursor);\n }\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const { content_type_uid, fieldPath } = fieldMetadata;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM.isSameNode(\n editableElement\n )\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (params.customCursor) {\n const elementUnderCursor = document.elementFromPoint(\n params.event.clientX,\n params.event.clientY\n );\n if (elementUnderCursor) {\n if (\n elementUnderCursor.nodeName === \"A\" ||\n elementUnderCursor.nodeName === \"BUTTON\"\n ) {\n elementUnderCursor.classList.add(\n visualBuilderStyles()[\"visual-builder__no-cursor-style\"]\n );\n }\n }\n\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n collabCustomCursor(params.customCursor);\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n return;\n } else if (config?.collab.enable && !config?.collab.isFeedbackMode) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM !== editableElement\n ) {\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n }\n\n if (!FieldSchemaMap.hasFieldSchema(content_type_uid, fieldPath)) {\n generateCustomCursor({\n fieldType: \"loading\",\n customCursor: params.customCursor,\n });\n }\n\n // we can generate the cursor asynchronously\n generateCursor({\n eventDetails,\n customCursor: params.customCursor,\n });\n\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n }\n\n if (\n !editableElement.classList.contains(VB_EmptyBlockParentClass) &&\n !editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\n showOutline({\n editableElement,\n eventDetails,\n content_type_uid,\n fieldPath,\n fieldMetadata,\n });\n const isFocussed= VisualBuilder.VisualBuilderGlobalState.value.isFocussed;\n if(!isFocussed) {\n showHoverToolbar({\n event: params.event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n }\n );\n }\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM =\n editableElement;\n}, 10);\n\nasync function generateCursor({\n eventDetails,\n customCursor,\n}: {\n eventDetails: VisualBuilderCslpEventDetails;\n customCursor: HTMLDivElement | null;\n}) {\n if (!customCursor) return;\n const { fieldMetadata } = eventDetails;\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n );\n if (!fieldSchema) {\n return;\n }\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: fieldMetadata.entry_uid,\n contentTypeUid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n variantUid: fieldMetadata.variant,\n fieldPathWithIndex: fieldMetadata.fieldPathWithIndex,\n });\n const { isDisabled: fieldDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n resolvedVariantPermissions,\n entryAcl,\n entryWorkflowStageDetails\n );\n const fieldType = getFieldType(fieldSchema);\n generateCustomCursor({\n fieldType,\n customCursor,\n fieldDisabled,\n });\n}\n\nconst handleMouseHover = async (\n params: HandleMouseHoverParams\n): Promise<void> => await throttledMouseHover(params);\n\nexport const cancelPendingMouseHover = () => throttledMouseHover.cancel();\n\nexport default handleMouseHover;\n"],"mappings":"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","names":[]}
@@ -26,11 +26,13 @@ __export(constants_exports, {
26
26
  DATA_CSLP_ATTR_SELECTOR: () => DATA_CSLP_ATTR_SELECTOR,
27
27
  DEFAULT_MULTIPLE_FIELDS: () => DEFAULT_MULTIPLE_FIELDS,
28
28
  LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX: () => LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX,
29
+ RESULT_TYPES: () => RESULT_TYPES,
29
30
  RIGHT_EDGE_BUFFER: () => RIGHT_EDGE_BUFFER,
30
31
  TOOLBAR_EDGE_BUFFER: () => TOOLBAR_EDGE_BUFFER,
31
32
  TOP_EDGE_BUFFER: () => TOP_EDGE_BUFFER,
32
33
  VISUAL_BUILDER_CHANNEL_ID: () => VISUAL_BUILDER_CHANNEL_ID,
33
34
  VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY: () => VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
35
+ WORKFLOW_STAGES: () => WORKFLOW_STAGES,
34
36
  maxMessageLength: () => maxMessageLength,
35
37
  mentionLimit: () => mentionLimit,
36
38
  numericInputRegex: () => numericInputRegex,
@@ -46,6 +48,15 @@ var TOP_EDGE_BUFFER = 42;
46
48
  var RIGHT_EDGE_BUFFER = 180;
47
49
  var TOOLBAR_EDGE_BUFFER = 8;
48
50
  var DATA_CSLP_ATTR_SELECTOR = "data-cslp";
51
+ var RESULT_TYPES = Object.freeze({
52
+ SUCCESS: "success",
53
+ ERROR: "error"
54
+ });
55
+ var WORKFLOW_STAGES = Object.freeze({
56
+ REVIEW: "Review Stage",
57
+ FINAL_REVIEW: "Final Review",
58
+ UNKNOWN: "Unknown"
59
+ });
49
60
  var ALLOWED_INLINE_EDITABLE_FIELD = [
50
61
  import_types.FieldDataType.SINGLELINE,
51
62
  import_types.FieldDataType.MULTILINE,
@@ -80,11 +91,13 @@ var maxMessageLength = 500;
80
91
  DATA_CSLP_ATTR_SELECTOR,
81
92
  DEFAULT_MULTIPLE_FIELDS,
82
93
  LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX,
94
+ RESULT_TYPES,
83
95
  RIGHT_EDGE_BUFFER,
84
96
  TOOLBAR_EDGE_BUFFER,
85
97
  TOP_EDGE_BUFFER,
86
98
  VISUAL_BUILDER_CHANNEL_ID,
87
99
  VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
100
+ WORKFLOW_STAGES,
88
101
  maxMessageLength,
89
102
  mentionLimit,
90
103
  numericInputRegex,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/constants.ts"],"sourcesContent":["import { FieldDataType } from \"./types/index.types\";\n\nexport const numericInputRegex = /^-?\\d*(\\.\\d*)?([eE][-+]?\\d*)?$/;\n\nexport const VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY = \"data-cslp-field-type\";\n\nexport const VISUAL_BUILDER_CHANNEL_ID = \"visual-builder\";\n\nexport const LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX = 2;\n\n// Minimum distance from top edge to prevent toolbar from being hidden\nexport const TOP_EDGE_BUFFER = 42;\nexport const RIGHT_EDGE_BUFFER = 180;\n\nexport const TOOLBAR_EDGE_BUFFER = 8;\n\nexport const DATA_CSLP_ATTR_SELECTOR = \"data-cslp\";\n\n/**\n * The field that can be directly modified using contenteditable=true.\n * This includes all text fields like title and numbers.\n */\nexport const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.SINGLELINE,\n FieldDataType.MULTILINE,\n FieldDataType.NUMBER,\n];\n\nexport const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.HTML_RTE,\n FieldDataType.MARKDOWN_RTE,\n FieldDataType.JSON_RTE,\n FieldDataType.CUSTOM_FIELD,\n FieldDataType.LINK,\n FieldDataType.ISODATE,\n FieldDataType.URL,\n];\n\nexport const ALLOWED_REPLACE_FIELDS: FieldDataType[] = [\n FieldDataType.REFERENCE,\n FieldDataType.FILE,\n];\n\nexport const DEFAULT_MULTIPLE_FIELDS: FieldDataType[] = [\n FieldDataType.GLOBAL_FIELD,\n FieldDataType.GROUP,\n FieldDataType.BLOCK,\n];\n\nexport const unicodeNonBreakingSpace = \"\\u00A0\";\n\nexport const mentionLimit = 20;\nexport const maxMessageLength = 500;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAEvB,IAAM,oBAAoB;AAE1B,IAAM,0CAA0C;AAEhD,IAAM,4BAA4B;AAElC,IAAM,mCAAmC;AAGzC,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAE1B,IAAM,sBAAsB;AAE5B,IAAM,0BAA0B;AAMhC,IAAM,gCAAiD;AAAA,EAC1D,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA0B;AAEhC,IAAM,eAAe;AACrB,IAAM,mBAAmB;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/constants.ts"],"sourcesContent":["import { FieldDataType } from \"./types/index.types\";\n\nexport const numericInputRegex = /^-?\\d*(\\.\\d*)?([eE][-+]?\\d*)?$/;\n\nexport const VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY = \"data-cslp-field-type\";\n\nexport const VISUAL_BUILDER_CHANNEL_ID = \"visual-builder\";\n\nexport const LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX = 2;\n\n// Minimum distance from top edge to prevent toolbar from being hidden\nexport const TOP_EDGE_BUFFER = 42;\nexport const RIGHT_EDGE_BUFFER = 180;\n\nexport const TOOLBAR_EDGE_BUFFER = 8;\n\nexport const DATA_CSLP_ATTR_SELECTOR = \"data-cslp\";\n\nexport const RESULT_TYPES = Object.freeze({\n SUCCESS: \"success\",\n ERROR: \"error\",\n});\n\nexport const WORKFLOW_STAGES = Object.freeze({\n REVIEW: \"Review Stage\",\n FINAL_REVIEW: \"Final Review\",\n UNKNOWN: \"Unknown\",\n});\n\n/**\n * The field that can be directly modified using contenteditable=true.\n * This includes all text fields like title and numbers.\n */\nexport const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.SINGLELINE,\n FieldDataType.MULTILINE,\n FieldDataType.NUMBER,\n];\n\nexport const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.HTML_RTE,\n FieldDataType.MARKDOWN_RTE,\n FieldDataType.JSON_RTE,\n FieldDataType.CUSTOM_FIELD,\n FieldDataType.LINK,\n FieldDataType.ISODATE,\n FieldDataType.URL,\n];\n\nexport const ALLOWED_REPLACE_FIELDS: FieldDataType[] = [\n FieldDataType.REFERENCE,\n FieldDataType.FILE,\n];\n\nexport const DEFAULT_MULTIPLE_FIELDS: FieldDataType[] = [\n FieldDataType.GLOBAL_FIELD,\n FieldDataType.GROUP,\n FieldDataType.BLOCK,\n];\n\nexport const unicodeNonBreakingSpace = \"\\u00A0\";\n\nexport const mentionLimit = 20;\nexport const maxMessageLength = 500;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAEvB,IAAM,oBAAoB;AAE1B,IAAM,0CAA0C;AAEhD,IAAM,4BAA4B;AAElC,IAAM,mCAAmC;AAGzC,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAE1B,IAAM,sBAAsB;AAE5B,IAAM,0BAA0B;AAEhC,IAAM,eAAe,OAAO,OAAO;AAAA,EACtC,SAAS;AAAA,EACT,OAAO;AACX,CAAC;AAEM,IAAM,kBAAkB,OAAO,OAAO;AAAA,EACzC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,SAAS;AACb,CAAC;AAMM,IAAM,gCAAiD;AAAA,EAC1D,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA0B;AAEhC,IAAM,eAAe;AACrB,IAAM,mBAAmB;","names":[]}
@@ -9,6 +9,15 @@ declare const TOP_EDGE_BUFFER = 42;
9
9
  declare const RIGHT_EDGE_BUFFER = 180;
10
10
  declare const TOOLBAR_EDGE_BUFFER = 8;
11
11
  declare const DATA_CSLP_ATTR_SELECTOR = "data-cslp";
12
+ declare const RESULT_TYPES: Readonly<{
13
+ SUCCESS: "success";
14
+ ERROR: "error";
15
+ }>;
16
+ declare const WORKFLOW_STAGES: Readonly<{
17
+ REVIEW: "Review Stage";
18
+ FINAL_REVIEW: "Final Review";
19
+ UNKNOWN: "Unknown";
20
+ }>;
12
21
  /**
13
22
  * The field that can be directly modified using contenteditable=true.
14
23
  * This includes all text fields like title and numbers.
@@ -21,4 +30,4 @@ declare const unicodeNonBreakingSpace = "\u00A0";
21
30
  declare const mentionLimit = 20;
22
31
  declare const maxMessageLength = 500;
23
32
 
24
- export { ALLOWED_INLINE_EDITABLE_FIELD, ALLOWED_MODAL_EDITABLE_FIELD, ALLOWED_REPLACE_FIELDS, DATA_CSLP_ATTR_SELECTOR, DEFAULT_MULTIPLE_FIELDS, LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX, RIGHT_EDGE_BUFFER, TOOLBAR_EDGE_BUFFER, TOP_EDGE_BUFFER, VISUAL_BUILDER_CHANNEL_ID, VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY, maxMessageLength, mentionLimit, numericInputRegex, unicodeNonBreakingSpace };
33
+ export { ALLOWED_INLINE_EDITABLE_FIELD, ALLOWED_MODAL_EDITABLE_FIELD, ALLOWED_REPLACE_FIELDS, DATA_CSLP_ATTR_SELECTOR, DEFAULT_MULTIPLE_FIELDS, LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX, RESULT_TYPES, RIGHT_EDGE_BUFFER, TOOLBAR_EDGE_BUFFER, TOP_EDGE_BUFFER, VISUAL_BUILDER_CHANNEL_ID, VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY, WORKFLOW_STAGES, maxMessageLength, mentionLimit, numericInputRegex, unicodeNonBreakingSpace };
@@ -9,6 +9,15 @@ declare const TOP_EDGE_BUFFER = 42;
9
9
  declare const RIGHT_EDGE_BUFFER = 180;
10
10
  declare const TOOLBAR_EDGE_BUFFER = 8;
11
11
  declare const DATA_CSLP_ATTR_SELECTOR = "data-cslp";
12
+ declare const RESULT_TYPES: Readonly<{
13
+ SUCCESS: "success";
14
+ ERROR: "error";
15
+ }>;
16
+ declare const WORKFLOW_STAGES: Readonly<{
17
+ REVIEW: "Review Stage";
18
+ FINAL_REVIEW: "Final Review";
19
+ UNKNOWN: "Unknown";
20
+ }>;
12
21
  /**
13
22
  * The field that can be directly modified using contenteditable=true.
14
23
  * This includes all text fields like title and numbers.
@@ -21,4 +30,4 @@ declare const unicodeNonBreakingSpace = "\u00A0";
21
30
  declare const mentionLimit = 20;
22
31
  declare const maxMessageLength = 500;
23
32
 
24
- export { ALLOWED_INLINE_EDITABLE_FIELD, ALLOWED_MODAL_EDITABLE_FIELD, ALLOWED_REPLACE_FIELDS, DATA_CSLP_ATTR_SELECTOR, DEFAULT_MULTIPLE_FIELDS, LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX, RIGHT_EDGE_BUFFER, TOOLBAR_EDGE_BUFFER, TOP_EDGE_BUFFER, VISUAL_BUILDER_CHANNEL_ID, VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY, maxMessageLength, mentionLimit, numericInputRegex, unicodeNonBreakingSpace };
33
+ export { ALLOWED_INLINE_EDITABLE_FIELD, ALLOWED_MODAL_EDITABLE_FIELD, ALLOWED_REPLACE_FIELDS, DATA_CSLP_ATTR_SELECTOR, DEFAULT_MULTIPLE_FIELDS, LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX, RESULT_TYPES, RIGHT_EDGE_BUFFER, TOOLBAR_EDGE_BUFFER, TOP_EDGE_BUFFER, VISUAL_BUILDER_CHANNEL_ID, VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY, WORKFLOW_STAGES, maxMessageLength, mentionLimit, numericInputRegex, unicodeNonBreakingSpace };
@@ -10,6 +10,15 @@ var TOP_EDGE_BUFFER = 42;
10
10
  var RIGHT_EDGE_BUFFER = 180;
11
11
  var TOOLBAR_EDGE_BUFFER = 8;
12
12
  var DATA_CSLP_ATTR_SELECTOR = "data-cslp";
13
+ var RESULT_TYPES = Object.freeze({
14
+ SUCCESS: "success",
15
+ ERROR: "error"
16
+ });
17
+ var WORKFLOW_STAGES = Object.freeze({
18
+ REVIEW: "Review Stage",
19
+ FINAL_REVIEW: "Final Review",
20
+ UNKNOWN: "Unknown"
21
+ });
13
22
  var ALLOWED_INLINE_EDITABLE_FIELD = [
14
23
  FieldDataType.SINGLELINE,
15
24
  FieldDataType.MULTILINE,
@@ -43,11 +52,13 @@ export {
43
52
  DATA_CSLP_ATTR_SELECTOR,
44
53
  DEFAULT_MULTIPLE_FIELDS,
45
54
  LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX,
55
+ RESULT_TYPES,
46
56
  RIGHT_EDGE_BUFFER,
47
57
  TOOLBAR_EDGE_BUFFER,
48
58
  TOP_EDGE_BUFFER,
49
59
  VISUAL_BUILDER_CHANNEL_ID,
50
60
  VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
61
+ WORKFLOW_STAGES,
51
62
  maxMessageLength,
52
63
  mentionLimit,
53
64
  numericInputRegex,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/constants.ts"],"sourcesContent":["import { FieldDataType } from \"./types/index.types\";\n\nexport const numericInputRegex = /^-?\\d*(\\.\\d*)?([eE][-+]?\\d*)?$/;\n\nexport const VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY = \"data-cslp-field-type\";\n\nexport const VISUAL_BUILDER_CHANNEL_ID = \"visual-builder\";\n\nexport const LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX = 2;\n\n// Minimum distance from top edge to prevent toolbar from being hidden\nexport const TOP_EDGE_BUFFER = 42;\nexport const RIGHT_EDGE_BUFFER = 180;\n\nexport const TOOLBAR_EDGE_BUFFER = 8;\n\nexport const DATA_CSLP_ATTR_SELECTOR = \"data-cslp\";\n\n/**\n * The field that can be directly modified using contenteditable=true.\n * This includes all text fields like title and numbers.\n */\nexport const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.SINGLELINE,\n FieldDataType.MULTILINE,\n FieldDataType.NUMBER,\n];\n\nexport const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.HTML_RTE,\n FieldDataType.MARKDOWN_RTE,\n FieldDataType.JSON_RTE,\n FieldDataType.CUSTOM_FIELD,\n FieldDataType.LINK,\n FieldDataType.ISODATE,\n FieldDataType.URL,\n];\n\nexport const ALLOWED_REPLACE_FIELDS: FieldDataType[] = [\n FieldDataType.REFERENCE,\n FieldDataType.FILE,\n];\n\nexport const DEFAULT_MULTIPLE_FIELDS: FieldDataType[] = [\n FieldDataType.GLOBAL_FIELD,\n FieldDataType.GROUP,\n FieldDataType.BLOCK,\n];\n\nexport const unicodeNonBreakingSpace = \"\\u00A0\";\n\nexport const mentionLimit = 20;\nexport const maxMessageLength = 500;\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAEvB,IAAM,oBAAoB;AAE1B,IAAM,0CAA0C;AAEhD,IAAM,4BAA4B;AAElC,IAAM,mCAAmC;AAGzC,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAE1B,IAAM,sBAAsB;AAE5B,IAAM,0BAA0B;AAMhC,IAAM,gCAAiD;AAAA,EAC1D,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,0BAA0B;AAEhC,IAAM,eAAe;AACrB,IAAM,mBAAmB;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/constants.ts"],"sourcesContent":["import { FieldDataType } from \"./types/index.types\";\n\nexport const numericInputRegex = /^-?\\d*(\\.\\d*)?([eE][-+]?\\d*)?$/;\n\nexport const VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY = \"data-cslp-field-type\";\n\nexport const VISUAL_BUILDER_CHANNEL_ID = \"visual-builder\";\n\nexport const LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX = 2;\n\n// Minimum distance from top edge to prevent toolbar from being hidden\nexport const TOP_EDGE_BUFFER = 42;\nexport const RIGHT_EDGE_BUFFER = 180;\n\nexport const TOOLBAR_EDGE_BUFFER = 8;\n\nexport const DATA_CSLP_ATTR_SELECTOR = \"data-cslp\";\n\nexport const RESULT_TYPES = Object.freeze({\n SUCCESS: \"success\",\n ERROR: \"error\",\n});\n\nexport const WORKFLOW_STAGES = Object.freeze({\n REVIEW: \"Review Stage\",\n FINAL_REVIEW: \"Final Review\",\n UNKNOWN: \"Unknown\",\n});\n\n/**\n * The field that can be directly modified using contenteditable=true.\n * This includes all text fields like title and numbers.\n */\nexport const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.SINGLELINE,\n FieldDataType.MULTILINE,\n FieldDataType.NUMBER,\n];\n\nexport const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.HTML_RTE,\n FieldDataType.MARKDOWN_RTE,\n FieldDataType.JSON_RTE,\n FieldDataType.CUSTOM_FIELD,\n FieldDataType.LINK,\n FieldDataType.ISODATE,\n FieldDataType.URL,\n];\n\nexport const ALLOWED_REPLACE_FIELDS: FieldDataType[] = [\n FieldDataType.REFERENCE,\n FieldDataType.FILE,\n];\n\nexport const DEFAULT_MULTIPLE_FIELDS: FieldDataType[] = [\n FieldDataType.GLOBAL_FIELD,\n FieldDataType.GROUP,\n FieldDataType.BLOCK,\n];\n\nexport const unicodeNonBreakingSpace = \"\\u00A0\";\n\nexport const mentionLimit = 20;\nexport const maxMessageLength = 500;\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAEvB,IAAM,oBAAoB;AAE1B,IAAM,0CAA0C;AAEhD,IAAM,4BAA4B;AAElC,IAAM,mCAAmC;AAGzC,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAE1B,IAAM,sBAAsB;AAE5B,IAAM,0BAA0B;AAEhC,IAAM,eAAe,OAAO,OAAO;AAAA,EACtC,SAAS;AAAA,EACT,OAAO;AACX,CAAC;AAEM,IAAM,kBAAkB,OAAO,OAAO;AAAA,EACzC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,SAAS;AACb,CAAC;AAMM,IAAM,gCAAiD;AAAA,EAC1D,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,0BAA0B;AAEhC,IAAM,eAAe;AACrB,IAAM,mBAAmB;","names":[]}
@@ -24,18 +24,27 @@ __export(fetchEntryPermissionsAndStageDetails_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(fetchEntryPermissionsAndStageDetails_exports);
26
26
  var import_getEntryPermissionsCached = require("./getEntryPermissionsCached.cjs");
27
+ var import_getResolvedVariantPermissions = require("./getResolvedVariantPermissions.cjs");
27
28
  var import_getWorkflowStageDetails = require("./getWorkflowStageDetails.cjs");
28
29
  async function fetchEntryPermissionsAndStageDetails({
29
30
  entryUid,
30
31
  contentTypeUid,
31
32
  locale,
32
- variantUid
33
+ variantUid,
34
+ fieldPathWithIndex
33
35
  }) {
34
36
  const entryAclPromise = (0, import_getEntryPermissionsCached.getEntryPermissionsCached)({
35
37
  entryUid,
36
38
  contentTypeUid,
37
39
  locale
38
40
  });
41
+ const resolvedVariantPermissionsPromise = (0, import_getResolvedVariantPermissions.getResolvedVariantPermissions)({
42
+ entry_uid: entryUid,
43
+ content_type_uid: contentTypeUid,
44
+ locale,
45
+ variant: variantUid,
46
+ fieldPathWithIndex
47
+ });
39
48
  const entryWorkflowStageDetailsPromise = (0, import_getWorkflowStageDetails.getWorkflowStageDetails)({
40
49
  entryUid,
41
50
  contentTypeUid,
@@ -44,7 +53,8 @@ async function fetchEntryPermissionsAndStageDetails({
44
53
  });
45
54
  const results = await Promise.allSettled([
46
55
  entryAclPromise,
47
- entryWorkflowStageDetailsPromise
56
+ entryWorkflowStageDetailsPromise,
57
+ resolvedVariantPermissionsPromise
48
58
  ]);
49
59
  if (results[0].status === "rejected") {
50
60
  console.debug(
@@ -58,11 +68,19 @@ async function fetchEntryPermissionsAndStageDetails({
58
68
  results[1].reason
59
69
  );
60
70
  }
71
+ if (results[2].status === "rejected") {
72
+ console.debug(
73
+ "[Visual Builder] Error retrieving resolved variant permissions",
74
+ results[2].reason
75
+ );
76
+ }
61
77
  const acl = results[0].status === "fulfilled" ? results[0].value : void 0;
62
78
  const workflowStage = results[1].status === "fulfilled" ? results[1].value : void 0;
79
+ const resolvedVariantPermissions = results[2].status === "fulfilled" ? results[2].value : void 0;
63
80
  return {
64
81
  acl,
65
- workflowStage
82
+ workflowStage,
83
+ resolvedVariantPermissions
66
84
  };
67
85
  }
68
86
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.ts"],"sourcesContent":["import { getEntryPermissionsCached } from \"./getEntryPermissionsCached\";\nimport { getWorkflowStageDetails } from \"./getWorkflowStageDetails\";\n\nexport async function fetchEntryPermissionsAndStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n}: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n variantUid?: string | undefined;\n}) {\n const entryAclPromise = getEntryPermissionsCached({\n entryUid,\n contentTypeUid,\n locale,\n });\n const entryWorkflowStageDetailsPromise = getWorkflowStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n });\n const results = await Promise.allSettled([\n entryAclPromise,\n entryWorkflowStageDetailsPromise,\n ]);\n if (results[0].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving entry permissions\",\n results[0].reason\n );\n }\n if (results[1].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving entry stage details\",\n results[1].reason\n );\n }\n const acl =\n results[0].status === \"fulfilled\" ? results[0].value : undefined;\n const workflowStage =\n results[1].status === \"fulfilled\" ? results[1].value : undefined;\n return {\n acl,\n workflowStage,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAA0C;AAC1C,qCAAwC;AAExC,eAAsB,qCAAqC;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAKG;AACC,QAAM,sBAAkB,4DAA0B;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,QAAM,uCAAmC,wDAAwB;AAAA,IAC7D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,QAAM,UAAU,MAAM,QAAQ,WAAW;AAAA,IACrC;AAAA,IACA;AAAA,EACJ,CAAC;AACD,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,QAAM,MACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,QAAM,gBACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,SAAO;AAAA,IACH;AAAA,IACA;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.ts"],"sourcesContent":["import { getEntryPermissionsCached } from \"./getEntryPermissionsCached\";\nimport { getResolvedVariantPermissions } from \"./getResolvedVariantPermissions\";\nimport { getWorkflowStageDetails } from \"./getWorkflowStageDetails\";\n\nexport async function fetchEntryPermissionsAndStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n fieldPathWithIndex,\n}: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n fieldPathWithIndex: string;\n variantUid?: string | undefined;\n}) {\n const entryAclPromise = getEntryPermissionsCached({\n entryUid,\n contentTypeUid,\n locale,\n });\n const resolvedVariantPermissionsPromise = getResolvedVariantPermissions({\n entry_uid: entryUid,\n content_type_uid: contentTypeUid,\n locale,\n variant: variantUid,\n fieldPathWithIndex,\n });\n const entryWorkflowStageDetailsPromise = getWorkflowStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n });\n const results = await Promise.allSettled([\n entryAclPromise,\n entryWorkflowStageDetailsPromise,\n resolvedVariantPermissionsPromise\n ]);\n if (results[0].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving entry permissions\",\n results[0].reason\n );\n }\n if (results[1].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving entry stage details\",\n results[1].reason\n );\n }\n if (results[2].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving resolved variant permissions\",\n results[2].reason\n );\n }\n const acl =\n results[0].status === \"fulfilled\" ? results[0].value : undefined;\n const workflowStage =\n results[1].status === \"fulfilled\" ? results[1].value : undefined;\n const resolvedVariantPermissions =\n results[2].status === \"fulfilled\" ? results[2].value : undefined;\n return {\n acl,\n workflowStage,\n resolvedVariantPermissions,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAA0C;AAC1C,2CAA8C;AAC9C,qCAAwC;AAExC,eAAsB,qCAAqC;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAMG;AACC,QAAM,sBAAkB,4DAA0B;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,QAAM,wCAAoC,oEAA8B;AAAA,IACpE,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB;AAAA,IACA,SAAS;AAAA,IACT;AAAA,EACJ,CAAC;AACD,QAAM,uCAAmC,wDAAwB;AAAA,IAC7D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,QAAM,UAAU,MAAM,QAAQ,WAAW;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,QAAM,MACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,QAAM,gBACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,QAAM,6BACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;","names":[]}
@@ -1,14 +1,18 @@
1
+ import { ResolvedVariantPermissions } from './getResolvedVariantPermissions.cjs';
1
2
  import { WorkflowStageDetails } from './getWorkflowStageDetails.cjs';
2
3
  import { EntryPermissions } from './getEntryPermissions.cjs';
4
+ import '../../cslp/types/cslp.types.cjs';
3
5
 
4
- declare function fetchEntryPermissionsAndStageDetails({ entryUid, contentTypeUid, locale, variantUid, }: {
6
+ declare function fetchEntryPermissionsAndStageDetails({ entryUid, contentTypeUid, locale, variantUid, fieldPathWithIndex, }: {
5
7
  entryUid: string;
6
8
  contentTypeUid: string;
7
9
  locale: string;
10
+ fieldPathWithIndex: string;
8
11
  variantUid?: string | undefined;
9
12
  }): Promise<{
10
13
  acl: EntryPermissions | undefined;
11
14
  workflowStage: WorkflowStageDetails | undefined;
15
+ resolvedVariantPermissions: ResolvedVariantPermissions | undefined;
12
16
  }>;
13
17
 
14
18
  export { fetchEntryPermissionsAndStageDetails };
@@ -1,14 +1,18 @@
1
+ import { ResolvedVariantPermissions } from './getResolvedVariantPermissions.js';
1
2
  import { WorkflowStageDetails } from './getWorkflowStageDetails.js';
2
3
  import { EntryPermissions } from './getEntryPermissions.js';
4
+ import '../../cslp/types/cslp.types.js';
3
5
 
4
- declare function fetchEntryPermissionsAndStageDetails({ entryUid, contentTypeUid, locale, variantUid, }: {
6
+ declare function fetchEntryPermissionsAndStageDetails({ entryUid, contentTypeUid, locale, variantUid, fieldPathWithIndex, }: {
5
7
  entryUid: string;
6
8
  contentTypeUid: string;
7
9
  locale: string;
10
+ fieldPathWithIndex: string;
8
11
  variantUid?: string | undefined;
9
12
  }): Promise<{
10
13
  acl: EntryPermissions | undefined;
11
14
  workflowStage: WorkflowStageDetails | undefined;
15
+ resolvedVariantPermissions: ResolvedVariantPermissions | undefined;
12
16
  }>;
13
17
 
14
18
  export { fetchEntryPermissionsAndStageDetails };
@@ -2,18 +2,27 @@ import "../../chunk-5WRI5ZAA.js";
2
2
 
3
3
  // src/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.ts
4
4
  import { getEntryPermissionsCached } from "./getEntryPermissionsCached.js";
5
+ import { getResolvedVariantPermissions } from "./getResolvedVariantPermissions.js";
5
6
  import { getWorkflowStageDetails } from "./getWorkflowStageDetails.js";
6
7
  async function fetchEntryPermissionsAndStageDetails({
7
8
  entryUid,
8
9
  contentTypeUid,
9
10
  locale,
10
- variantUid
11
+ variantUid,
12
+ fieldPathWithIndex
11
13
  }) {
12
14
  const entryAclPromise = getEntryPermissionsCached({
13
15
  entryUid,
14
16
  contentTypeUid,
15
17
  locale
16
18
  });
19
+ const resolvedVariantPermissionsPromise = getResolvedVariantPermissions({
20
+ entry_uid: entryUid,
21
+ content_type_uid: contentTypeUid,
22
+ locale,
23
+ variant: variantUid,
24
+ fieldPathWithIndex
25
+ });
17
26
  const entryWorkflowStageDetailsPromise = getWorkflowStageDetails({
18
27
  entryUid,
19
28
  contentTypeUid,
@@ -22,7 +31,8 @@ async function fetchEntryPermissionsAndStageDetails({
22
31
  });
23
32
  const results = await Promise.allSettled([
24
33
  entryAclPromise,
25
- entryWorkflowStageDetailsPromise
34
+ entryWorkflowStageDetailsPromise,
35
+ resolvedVariantPermissionsPromise
26
36
  ]);
27
37
  if (results[0].status === "rejected") {
28
38
  console.debug(
@@ -36,11 +46,19 @@ async function fetchEntryPermissionsAndStageDetails({
36
46
  results[1].reason
37
47
  );
38
48
  }
49
+ if (results[2].status === "rejected") {
50
+ console.debug(
51
+ "[Visual Builder] Error retrieving resolved variant permissions",
52
+ results[2].reason
53
+ );
54
+ }
39
55
  const acl = results[0].status === "fulfilled" ? results[0].value : void 0;
40
56
  const workflowStage = results[1].status === "fulfilled" ? results[1].value : void 0;
57
+ const resolvedVariantPermissions = results[2].status === "fulfilled" ? results[2].value : void 0;
41
58
  return {
42
59
  acl,
43
- workflowStage
60
+ workflowStage,
61
+ resolvedVariantPermissions
44
62
  };
45
63
  }
46
64
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.ts"],"sourcesContent":["import { getEntryPermissionsCached } from \"./getEntryPermissionsCached\";\nimport { getWorkflowStageDetails } from \"./getWorkflowStageDetails\";\n\nexport async function fetchEntryPermissionsAndStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n}: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n variantUid?: string | undefined;\n}) {\n const entryAclPromise = getEntryPermissionsCached({\n entryUid,\n contentTypeUid,\n locale,\n });\n const entryWorkflowStageDetailsPromise = getWorkflowStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n });\n const results = await Promise.allSettled([\n entryAclPromise,\n entryWorkflowStageDetailsPromise,\n ]);\n if (results[0].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving entry permissions\",\n results[0].reason\n );\n }\n if (results[1].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving entry stage details\",\n results[1].reason\n );\n }\n const acl =\n results[0].status === \"fulfilled\" ? results[0].value : undefined;\n const workflowStage =\n results[1].status === \"fulfilled\" ? results[1].value : undefined;\n return {\n acl,\n workflowStage,\n };\n}\n"],"mappings":";;;AAAA,SAAS,iCAAiC;AAC1C,SAAS,+BAA+B;AAExC,eAAsB,qCAAqC;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAKG;AACC,QAAM,kBAAkB,0BAA0B;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,QAAM,mCAAmC,wBAAwB;AAAA,IAC7D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,QAAM,UAAU,MAAM,QAAQ,WAAW;AAAA,IACrC;AAAA,IACA;AAAA,EACJ,CAAC;AACD,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,QAAM,MACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,QAAM,gBACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,SAAO;AAAA,IACH;AAAA,IACA;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.ts"],"sourcesContent":["import { getEntryPermissionsCached } from \"./getEntryPermissionsCached\";\nimport { getResolvedVariantPermissions } from \"./getResolvedVariantPermissions\";\nimport { getWorkflowStageDetails } from \"./getWorkflowStageDetails\";\n\nexport async function fetchEntryPermissionsAndStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n fieldPathWithIndex,\n}: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n fieldPathWithIndex: string;\n variantUid?: string | undefined;\n}) {\n const entryAclPromise = getEntryPermissionsCached({\n entryUid,\n contentTypeUid,\n locale,\n });\n const resolvedVariantPermissionsPromise = getResolvedVariantPermissions({\n entry_uid: entryUid,\n content_type_uid: contentTypeUid,\n locale,\n variant: variantUid,\n fieldPathWithIndex,\n });\n const entryWorkflowStageDetailsPromise = getWorkflowStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n });\n const results = await Promise.allSettled([\n entryAclPromise,\n entryWorkflowStageDetailsPromise,\n resolvedVariantPermissionsPromise\n ]);\n if (results[0].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving entry permissions\",\n results[0].reason\n );\n }\n if (results[1].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving entry stage details\",\n results[1].reason\n );\n }\n if (results[2].status === \"rejected\") {\n console.debug(\n \"[Visual Builder] Error retrieving resolved variant permissions\",\n results[2].reason\n );\n }\n const acl =\n results[0].status === \"fulfilled\" ? results[0].value : undefined;\n const workflowStage =\n results[1].status === \"fulfilled\" ? results[1].value : undefined;\n const resolvedVariantPermissions =\n results[2].status === \"fulfilled\" ? results[2].value : undefined;\n return {\n acl,\n workflowStage,\n resolvedVariantPermissions,\n };\n}\n"],"mappings":";;;AAAA,SAAS,iCAAiC;AAC1C,SAAS,qCAAqC;AAC9C,SAAS,+BAA+B;AAExC,eAAsB,qCAAqC;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAMG;AACC,QAAM,kBAAkB,0BAA0B;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,QAAM,oCAAoC,8BAA8B;AAAA,IACpE,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB;AAAA,IACA,SAAS;AAAA,IACT;AAAA,EACJ,CAAC;AACD,QAAM,mCAAmC,wBAAwB;AAAA,IAC7D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,QAAM,UAAU,MAAM,QAAQ,WAAW;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,MAAI,QAAQ,CAAC,EAAE,WAAW,YAAY;AAClC,YAAQ;AAAA,MACJ;AAAA,MACA,QAAQ,CAAC,EAAE;AAAA,IACf;AAAA,EACJ;AACA,QAAM,MACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,QAAM,gBACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,QAAM,6BACF,QAAQ,CAAC,EAAE,WAAW,cAAc,QAAQ,CAAC,EAAE,QAAQ;AAC3D,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;","names":[]}
@@ -86,6 +86,14 @@ var _FieldSchemaMap = class _FieldSchemaMap {
86
86
  static setFieldSchema(contentTypeUid, fieldSchemaMap) {
87
87
  _FieldSchemaMap.fieldSchema[contentTypeUid] = fieldSchemaMap;
88
88
  }
89
+ /**
90
+ * Clears the field schemas for a specific content type.
91
+ * @param contentTypeUid The unique identifier of the content type.
92
+ */
93
+ static clearContentTypeSchema(contentTypeUid) {
94
+ delete _FieldSchemaMap.fieldSchema[contentTypeUid];
95
+ delete _FieldSchemaMap.fieldSchemaPromise[contentTypeUid];
96
+ }
89
97
  /**
90
98
  * Clears the field schema cache.
91
99
  */