@contentstack/live-preview-utils 4.1.1 → 4.1.3

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 (262) hide show
  1. package/README.md +1 -1
  2. package/dist/legacy/light-sdk.cjs +1 -1
  3. package/dist/legacy/light-sdk.js +1 -1
  4. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  5. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  6. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
  7. package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
  8. package/dist/legacy/visualBuilder/collab.style.cjs +2 -2
  9. package/dist/legacy/visualBuilder/collab.style.cjs.map +1 -1
  10. package/dist/legacy/visualBuilder/collab.style.js +2 -2
  11. package/dist/legacy/visualBuilder/collab.style.js.map +1 -1
  12. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +3 -1
  13. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -1
  14. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +3 -1
  15. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -1
  16. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +3 -1
  17. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  18. package/dist/legacy/visualBuilder/components/FieldToolbar.d.cts +2 -0
  19. package/dist/legacy/visualBuilder/components/FieldToolbar.d.ts +2 -0
  20. package/dist/legacy/visualBuilder/components/FieldToolbar.js +3 -1
  21. package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
  22. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs +61 -12
  23. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  24. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js +62 -13
  25. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  26. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +122 -0
  27. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -0
  28. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.cts +7 -0
  29. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.ts +7 -0
  30. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +99 -0
  31. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -0
  32. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +21 -4
  33. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
  34. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.d.cts +1 -1
  35. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.d.ts +1 -1
  36. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js +21 -4
  37. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
  38. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs +5 -3
  39. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  40. package/dist/legacy/visualBuilder/generators/generateOverlay.js +5 -3
  41. package/dist/legacy/visualBuilder/generators/generateOverlay.js.map +1 -1
  42. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +5 -3
  43. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  44. package/dist/legacy/visualBuilder/generators/generateToolbar.js +5 -3
  45. package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
  46. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.d.cts +4 -4
  47. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.d.ts +4 -4
  48. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.cts +3 -3
  49. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.ts +3 -3
  50. package/dist/legacy/visualBuilder/index.cjs.map +1 -1
  51. package/dist/legacy/visualBuilder/index.js.map +1 -1
  52. package/dist/legacy/visualBuilder/listeners/index.cjs +8 -0
  53. package/dist/legacy/visualBuilder/listeners/index.cjs.map +1 -1
  54. package/dist/legacy/visualBuilder/listeners/index.js +11 -0
  55. package/dist/legacy/visualBuilder/listeners/index.js.map +1 -1
  56. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +6 -3
  57. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  58. package/dist/legacy/visualBuilder/listeners/mouseClick.js +6 -3
  59. package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
  60. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +20 -5
  61. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  62. package/dist/legacy/visualBuilder/listeners/mouseHover.d.cts +4 -1
  63. package/dist/legacy/visualBuilder/listeners/mouseHover.d.ts +4 -1
  64. package/dist/legacy/visualBuilder/listeners/mouseHover.js +17 -5
  65. package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
  66. package/dist/legacy/visualBuilder/utils/constants.cjs +13 -0
  67. package/dist/legacy/visualBuilder/utils/constants.cjs.map +1 -1
  68. package/dist/legacy/visualBuilder/utils/constants.d.cts +10 -1
  69. package/dist/legacy/visualBuilder/utils/constants.d.ts +10 -1
  70. package/dist/legacy/visualBuilder/utils/constants.js +11 -0
  71. package/dist/legacy/visualBuilder/utils/constants.js.map +1 -1
  72. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +21 -3
  73. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -1
  74. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +5 -1
  75. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +5 -1
  76. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +21 -3
  77. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -1
  78. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.cjs +8 -0
  79. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.cjs.map +1 -1
  80. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.d.cts +5 -0
  81. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.d.ts +5 -0
  82. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.js +8 -0
  83. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.js.map +1 -1
  84. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs +7 -3
  85. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  86. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js +7 -3
  87. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  88. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +3 -3
  89. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
  90. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +3 -3
  91. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
  92. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.cjs +58 -0
  93. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.cjs.map +1 -0
  94. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.d.cts +10 -0
  95. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.d.ts +10 -0
  96. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.js +25 -0
  97. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.js.map +1 -0
  98. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +9 -7
  99. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  100. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +9 -7
  101. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  102. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +6 -2
  103. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  104. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +6 -2
  105. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  106. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs +23 -6
  107. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  108. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.cts +23 -2
  109. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.ts +23 -2
  110. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js +22 -6
  111. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  112. package/dist/legacy/visualBuilder/utils/types/index.types.cjs.map +1 -1
  113. package/dist/legacy/visualBuilder/utils/types/index.types.d.cts +1 -0
  114. package/dist/legacy/visualBuilder/utils/types/index.types.d.ts +1 -0
  115. package/dist/legacy/visualBuilder/utils/types/index.types.js.map +1 -1
  116. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +2 -0
  117. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  118. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +2 -0
  119. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +2 -0
  120. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +2 -0
  121. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  122. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +9 -4
  123. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  124. package/dist/legacy/visualBuilder/utils/updateFocussedState.js +10 -5
  125. package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
  126. package/dist/legacy/visualBuilder/visualBuilder.style.cjs +36 -6
  127. package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
  128. package/dist/legacy/visualBuilder/visualBuilder.style.d.cts +1 -0
  129. package/dist/legacy/visualBuilder/visualBuilder.style.d.ts +1 -0
  130. package/dist/legacy/visualBuilder/visualBuilder.style.js +36 -6
  131. package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
  132. package/dist/modern/light-sdk.cjs +1 -1
  133. package/dist/modern/light-sdk.js +1 -1
  134. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  135. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  136. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  137. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  138. package/dist/modern/visualBuilder/collab.style.cjs +2 -2
  139. package/dist/modern/visualBuilder/collab.style.cjs.map +1 -1
  140. package/dist/modern/visualBuilder/collab.style.js +2 -2
  141. package/dist/modern/visualBuilder/collab.style.js.map +1 -1
  142. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +3 -1
  143. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -1
  144. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +3 -1
  145. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -1
  146. package/dist/modern/visualBuilder/components/FieldToolbar.cjs +3 -1
  147. package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  148. package/dist/modern/visualBuilder/components/FieldToolbar.d.cts +2 -0
  149. package/dist/modern/visualBuilder/components/FieldToolbar.d.ts +2 -0
  150. package/dist/modern/visualBuilder/components/FieldToolbar.js +3 -1
  151. package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
  152. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs +60 -12
  153. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  154. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js +61 -13
  155. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  156. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +122 -0
  157. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -0
  158. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.cts +7 -0
  159. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.ts +7 -0
  160. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +99 -0
  161. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -0
  162. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +21 -4
  163. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
  164. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.d.cts +1 -1
  165. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.d.ts +1 -1
  166. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js +21 -4
  167. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
  168. package/dist/modern/visualBuilder/generators/generateOverlay.cjs +5 -3
  169. package/dist/modern/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  170. package/dist/modern/visualBuilder/generators/generateOverlay.js +5 -3
  171. package/dist/modern/visualBuilder/generators/generateOverlay.js.map +1 -1
  172. package/dist/modern/visualBuilder/generators/generateToolbar.cjs +5 -3
  173. package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  174. package/dist/modern/visualBuilder/generators/generateToolbar.js +5 -3
  175. package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
  176. package/dist/modern/visualBuilder/hooks/useCollabIndicator.d.cts +4 -4
  177. package/dist/modern/visualBuilder/hooks/useCollabIndicator.d.ts +4 -4
  178. package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.cts +3 -3
  179. package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.ts +3 -3
  180. package/dist/modern/visualBuilder/index.cjs.map +1 -1
  181. package/dist/modern/visualBuilder/index.js.map +1 -1
  182. package/dist/modern/visualBuilder/listeners/index.cjs +7 -0
  183. package/dist/modern/visualBuilder/listeners/index.cjs.map +1 -1
  184. package/dist/modern/visualBuilder/listeners/index.js +10 -0
  185. package/dist/modern/visualBuilder/listeners/index.js.map +1 -1
  186. package/dist/modern/visualBuilder/listeners/mouseClick.cjs +6 -3
  187. package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  188. package/dist/modern/visualBuilder/listeners/mouseClick.js +6 -3
  189. package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
  190. package/dist/modern/visualBuilder/listeners/mouseHover.cjs +20 -5
  191. package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  192. package/dist/modern/visualBuilder/listeners/mouseHover.d.cts +4 -1
  193. package/dist/modern/visualBuilder/listeners/mouseHover.d.ts +4 -1
  194. package/dist/modern/visualBuilder/listeners/mouseHover.js +17 -5
  195. package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
  196. package/dist/modern/visualBuilder/utils/constants.cjs +13 -0
  197. package/dist/modern/visualBuilder/utils/constants.cjs.map +1 -1
  198. package/dist/modern/visualBuilder/utils/constants.d.cts +10 -1
  199. package/dist/modern/visualBuilder/utils/constants.d.ts +10 -1
  200. package/dist/modern/visualBuilder/utils/constants.js +11 -0
  201. package/dist/modern/visualBuilder/utils/constants.js.map +1 -1
  202. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +21 -3
  203. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -1
  204. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +5 -1
  205. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +5 -1
  206. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +21 -3
  207. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -1
  208. package/dist/modern/visualBuilder/utils/fieldSchemaMap.cjs +8 -0
  209. package/dist/modern/visualBuilder/utils/fieldSchemaMap.cjs.map +1 -1
  210. package/dist/modern/visualBuilder/utils/fieldSchemaMap.d.cts +5 -0
  211. package/dist/modern/visualBuilder/utils/fieldSchemaMap.d.ts +5 -0
  212. package/dist/modern/visualBuilder/utils/fieldSchemaMap.js +8 -0
  213. package/dist/modern/visualBuilder/utils/fieldSchemaMap.js.map +1 -1
  214. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs +5 -1
  215. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  216. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js +5 -1
  217. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  218. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +3 -3
  219. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
  220. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +3 -3
  221. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
  222. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.cjs +57 -0
  223. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.cjs.map +1 -0
  224. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.d.cts +10 -0
  225. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.d.ts +10 -0
  226. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.js +24 -0
  227. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.js.map +1 -0
  228. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +9 -7
  229. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  230. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +9 -7
  231. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  232. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +6 -2
  233. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  234. package/dist/modern/visualBuilder/utils/handleIndividualFields.js +6 -2
  235. package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  236. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs +21 -4
  237. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  238. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.cts +23 -2
  239. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.ts +23 -2
  240. package/dist/modern/visualBuilder/utils/isFieldDisabled.js +20 -4
  241. package/dist/modern/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  242. package/dist/modern/visualBuilder/utils/types/index.types.cjs.map +1 -1
  243. package/dist/modern/visualBuilder/utils/types/index.types.d.cts +1 -0
  244. package/dist/modern/visualBuilder/utils/types/index.types.d.ts +1 -0
  245. package/dist/modern/visualBuilder/utils/types/index.types.js.map +1 -1
  246. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +2 -0
  247. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  248. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +2 -0
  249. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +2 -0
  250. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +2 -0
  251. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  252. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +9 -4
  253. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  254. package/dist/modern/visualBuilder/utils/updateFocussedState.js +10 -5
  255. package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
  256. package/dist/modern/visualBuilder/visualBuilder.style.cjs +36 -6
  257. package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
  258. package/dist/modern/visualBuilder/visualBuilder.style.d.cts +1 -0
  259. package/dist/modern/visualBuilder/visualBuilder.style.d.ts +1 -0
  260. package/dist/modern/visualBuilder/visualBuilder.style.js +36 -6
  261. package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
  262. package/package.json +8 -7
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/visualBuilder/utils/getResolvedVariantPermissions.ts
31
+ var getResolvedVariantPermissions_exports = {};
32
+ __export(getResolvedVariantPermissions_exports, {
33
+ getResolvedVariantPermissions: () => getResolvedVariantPermissions
34
+ });
35
+ module.exports = __toCommonJS(getResolvedVariantPermissions_exports);
36
+ var import_postMessage = require("./types/postMessage.types.cjs");
37
+ var import_visualBuilderPostMessage = __toESM(require("./visualBuilderPostMessage.cjs"), 1);
38
+ async function getResolvedVariantPermissions(fieldContext) {
39
+ var _a;
40
+ try {
41
+ const result = await ((_a = import_visualBuilderPostMessage.default) == null ? void 0 : _a.send(import_postMessage.VisualBuilderPostMessageEvents.GET_RESOLVED_VARIANT_PERMISSIONS, fieldContext));
42
+ return result ?? {
43
+ update: true,
44
+ error: true
45
+ };
46
+ } catch (e) {
47
+ console.warn("Error retrieving resolved variant permissions", e);
48
+ return {
49
+ update: true,
50
+ error: true
51
+ };
52
+ }
53
+ }
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ getResolvedVariantPermissions
57
+ });
58
+ //# sourceMappingURL=getResolvedVariantPermissions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getResolvedVariantPermissions.ts"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\n\nexport type FieldContext = Pick<CslpData, \"content_type_uid\" | \"entry_uid\" | \"locale\" | \"variant\" | \"fieldPathWithIndex\">;\n\nexport interface ResolvedVariantPermissions {\n update: boolean;\n error?: boolean;\n}\n\nexport async function getResolvedVariantPermissions(fieldContext: FieldContext) {\n try {\n const result = await visualBuilderPostMessage?.send<ResolvedVariantPermissions>(VisualBuilderPostMessageEvents.GET_RESOLVED_VARIANT_PERMISSIONS, fieldContext);\n return result ?? {\n update: true,\n error: true,\n };\n }\n catch(e) {\n console.warn(\"Error retrieving resolved variant permissions\", e);\n return {\n update: true,\n error: true,\n };\n }\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,yBAA+C;AAC/C,sCAAqC;AASrC,eAAsB,8BAA8B,cAA4B;AAXhF;AAYE,MAAI;AACF,UAAM,SAAS,QAAM,qCAAAA,YAAA,mBAA0B,KAAiC,kDAA+B,kCAAkC;AACjJ,WAAO,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF,SACM,GAAG;AACP,YAAQ,KAAK,iDAAiD,CAAC;AAC/D,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["visualBuilderPostMessage"]}
@@ -0,0 +1,10 @@
1
+ import { CslpData } from '../../cslp/types/cslp.types.cjs';
2
+
3
+ type FieldContext = Pick<CslpData, "content_type_uid" | "entry_uid" | "locale" | "variant" | "fieldPathWithIndex">;
4
+ interface ResolvedVariantPermissions {
5
+ update: boolean;
6
+ error?: boolean;
7
+ }
8
+ declare function getResolvedVariantPermissions(fieldContext: FieldContext): Promise<ResolvedVariantPermissions>;
9
+
10
+ export { type FieldContext, type ResolvedVariantPermissions, getResolvedVariantPermissions };
@@ -0,0 +1,10 @@
1
+ import { CslpData } from '../../cslp/types/cslp.types.js';
2
+
3
+ type FieldContext = Pick<CslpData, "content_type_uid" | "entry_uid" | "locale" | "variant" | "fieldPathWithIndex">;
4
+ interface ResolvedVariantPermissions {
5
+ update: boolean;
6
+ error?: boolean;
7
+ }
8
+ declare function getResolvedVariantPermissions(fieldContext: FieldContext): Promise<ResolvedVariantPermissions>;
9
+
10
+ export { type FieldContext, type ResolvedVariantPermissions, getResolvedVariantPermissions };
@@ -0,0 +1,25 @@
1
+ import "../../chunk-5WRI5ZAA.js";
2
+
3
+ // src/visualBuilder/utils/getResolvedVariantPermissions.ts
4
+ import { VisualBuilderPostMessageEvents } from "./types/postMessage.types.js";
5
+ import visualBuilderPostMessage from "./visualBuilderPostMessage.js";
6
+ async function getResolvedVariantPermissions(fieldContext) {
7
+ var _a;
8
+ try {
9
+ const result = await ((_a = visualBuilderPostMessage) == null ? void 0 : _a.send(VisualBuilderPostMessageEvents.GET_RESOLVED_VARIANT_PERMISSIONS, fieldContext));
10
+ return result ?? {
11
+ update: true,
12
+ error: true
13
+ };
14
+ } catch (e) {
15
+ console.warn("Error retrieving resolved variant permissions", e);
16
+ return {
17
+ update: true,
18
+ error: true
19
+ };
20
+ }
21
+ }
22
+ export {
23
+ getResolvedVariantPermissions
24
+ };
25
+ //# sourceMappingURL=getResolvedVariantPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getResolvedVariantPermissions.ts"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\n\nexport type FieldContext = Pick<CslpData, \"content_type_uid\" | \"entry_uid\" | \"locale\" | \"variant\" | \"fieldPathWithIndex\">;\n\nexport interface ResolvedVariantPermissions {\n update: boolean;\n error?: boolean;\n}\n\nexport async function getResolvedVariantPermissions(fieldContext: FieldContext) {\n try {\n const result = await visualBuilderPostMessage?.send<ResolvedVariantPermissions>(VisualBuilderPostMessageEvents.GET_RESOLVED_VARIANT_PERMISSIONS, fieldContext);\n return result ?? {\n update: true,\n error: true,\n };\n }\n catch(e) {\n console.warn(\"Error retrieving resolved variant permissions\", e);\n return {\n update: true,\n error: true,\n };\n }\n}"],"mappings":";;;AACA,SAAS,sCAAsC;AAC/C,OAAO,8BAA8B;AASrC,eAAsB,8BAA8B,cAA4B;AAXhF;AAYE,MAAI;AACF,UAAM,SAAS,QAAM,qDAA0B,KAAiC,+BAA+B,kCAAkC;AACjJ,WAAO,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF,SACM,GAAG;AACP,YAAQ,KAAK,iDAAiD,CAAC;AAC/D,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
@@ -48,14 +48,16 @@ function getVisualBuilderRedirectionUrl() {
48
48
  }
49
49
  searchParams.set("target-url", window.location.href);
50
50
  const elementWithDataCslp = document.querySelector(`[data-cslp]`);
51
+ let localeToUse = locale;
51
52
  if (elementWithDataCslp) {
52
- const cslpData = elementWithDataCslp.getAttribute(
53
- "data-cslp"
54
- );
55
- const { locale: locale2 } = (0, import_cslp.extractDetailsFromCslp)(cslpData);
56
- searchParams.set("locale", locale2);
57
- } else if (locale) {
58
- searchParams.set("locale", locale);
53
+ const cslpData = elementWithDataCslp.getAttribute("data-cslp");
54
+ if (cslpData) {
55
+ const { locale: cslpLocale } = (0, import_cslp.extractDetailsFromCslp)(cslpData);
56
+ localeToUse = cslpLocale;
57
+ }
58
+ }
59
+ if (localeToUse) {
60
+ searchParams.set("locale", localeToUse);
59
61
  }
60
62
  const completeURL = new URL(
61
63
  `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\n\n/**\n * Returns the redirection URL for the Visual builder.\n * @returns {URL} The redirection URL.\n */\nexport default function getVisualBuilderRedirectionUrl(): URL {\n const { stackDetails, clientUrlParams } = Config.get();\n const { branch, apiKey, environment, locale } = stackDetails;\n const { url: appUrl } = clientUrlParams;\n\n const searchParams = new URLSearchParams();\n if (branch) {\n searchParams.set(\"branch\", branch);\n }\n if (environment) {\n searchParams.set(\"environment\", environment);\n }\n\n searchParams.set(\"target-url\", window.location.href);\n\n // get the locale from the data cslp attribute\n const elementWithDataCslp = document.querySelector(`[data-cslp]`);\n\n if (elementWithDataCslp) {\n const cslpData = elementWithDataCslp.getAttribute(\n \"data-cslp\"\n ) as string;\n const { locale } = extractDetailsFromCslp(cslpData);\n\n searchParams.set(\"locale\", locale);\n } else if (locale) {\n searchParams.set(\"locale\", locale);\n }\n\n const completeURL = new URL(\n `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,\n appUrl\n );\n return completeURL;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAmB;AACnB,kBAAuC;AAMxB,SAAR,iCAAuD;AAC1D,QAAM,EAAE,cAAc,gBAAgB,IAAI,qBAAAA,QAAO,IAAI;AACrD,QAAM,EAAE,QAAQ,QAAQ,aAAa,OAAO,IAAI;AAChD,QAAM,EAAE,KAAK,OAAO,IAAI;AAExB,QAAM,eAAe,IAAI,gBAAgB;AACzC,MAAI,QAAQ;AACR,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AACA,MAAI,aAAa;AACb,iBAAa,IAAI,eAAe,WAAW;AAAA,EAC/C;AAEA,eAAa,IAAI,cAAc,OAAO,SAAS,IAAI;AAGnD,QAAM,sBAAsB,SAAS,cAAc,aAAa;AAEhE,MAAI,qBAAqB;AACrB,UAAM,WAAW,oBAAoB;AAAA,MACjC;AAAA,IACJ;AACA,UAAM,EAAE,QAAAC,QAAO,QAAI,oCAAuB,QAAQ;AAElD,iBAAa,IAAI,UAAUA,OAAM;AAAA,EACrC,WAAW,QAAQ;AACf,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AAEA,QAAM,cAAc,IAAI;AAAA,IACpB,aAAa,MAAM,mBAAmB,aAAa,SAAS,CAAC;AAAA,IAC7D;AAAA,EACJ;AACA,SAAO;AACX;","names":["Config","locale"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\n\n/**\n * Returns the redirection URL for the Visual builder.\n * @returns {URL} The redirection URL.\n */\nexport default function getVisualBuilderRedirectionUrl(): URL {\n const { stackDetails, clientUrlParams } = Config.get();\n const { branch, apiKey, environment, locale } = stackDetails;\n const { url: appUrl } = clientUrlParams;\n\n const searchParams = new URLSearchParams();\n if (branch) {\n searchParams.set(\"branch\", branch);\n }\n if (environment) {\n searchParams.set(\"environment\", environment);\n }\n\n searchParams.set(\"target-url\", window.location.href);\n\n // get the locale from the data cslp attribute\n const elementWithDataCslp = document.querySelector(`[data-cslp]`);\n let localeToUse = locale;\n\n if (elementWithDataCslp) {\n const cslpData = elementWithDataCslp.getAttribute(\"data-cslp\");\n if (cslpData) {\n const { locale: cslpLocale } = extractDetailsFromCslp(cslpData);\n localeToUse = cslpLocale;\n }\n }\n\n if (localeToUse) {\n searchParams.set(\"locale\", localeToUse);\n }\n\n const completeURL = new URL(\n `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,\n appUrl\n );\n return completeURL;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAmB;AACnB,kBAAuC;AAMxB,SAAR,iCAAuD;AAC1D,QAAM,EAAE,cAAc,gBAAgB,IAAI,qBAAAA,QAAO,IAAI;AACrD,QAAM,EAAE,QAAQ,QAAQ,aAAa,OAAO,IAAI;AAChD,QAAM,EAAE,KAAK,OAAO,IAAI;AAExB,QAAM,eAAe,IAAI,gBAAgB;AACzC,MAAI,QAAQ;AACR,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AACA,MAAI,aAAa;AACb,iBAAa,IAAI,eAAe,WAAW;AAAA,EAC/C;AAEA,eAAa,IAAI,cAAc,OAAO,SAAS,IAAI;AAGnD,QAAM,sBAAsB,SAAS,cAAc,aAAa;AAChE,MAAI,cAAc;AAElB,MAAI,qBAAqB;AACrB,UAAM,WAAW,oBAAoB,aAAa,WAAW;AAC7D,QAAI,UAAU;AACV,YAAM,EAAE,QAAQ,WAAW,QAAI,oCAAuB,QAAQ;AAC9D,oBAAc;AAAA,IAClB;AAAA,EACJ;AAEA,MAAI,aAAa;AACb,iBAAa,IAAI,UAAU,WAAW;AAAA,EAC1C;AAEA,QAAM,cAAc,IAAI;AAAA,IACpB,aAAa,MAAM,mBAAmB,aAAa,SAAS,CAAC;AAAA,IAC7D;AAAA,EACJ;AACA,SAAO;AACX;","names":["Config"]}
@@ -16,14 +16,16 @@ function getVisualBuilderRedirectionUrl() {
16
16
  }
17
17
  searchParams.set("target-url", window.location.href);
18
18
  const elementWithDataCslp = document.querySelector(`[data-cslp]`);
19
+ let localeToUse = locale;
19
20
  if (elementWithDataCslp) {
20
- const cslpData = elementWithDataCslp.getAttribute(
21
- "data-cslp"
22
- );
23
- const { locale: locale2 } = extractDetailsFromCslp(cslpData);
24
- searchParams.set("locale", locale2);
25
- } else if (locale) {
26
- searchParams.set("locale", locale);
21
+ const cslpData = elementWithDataCslp.getAttribute("data-cslp");
22
+ if (cslpData) {
23
+ const { locale: cslpLocale } = extractDetailsFromCslp(cslpData);
24
+ localeToUse = cslpLocale;
25
+ }
26
+ }
27
+ if (localeToUse) {
28
+ searchParams.set("locale", localeToUse);
27
29
  }
28
30
  const completeURL = new URL(
29
31
  `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\n\n/**\n * Returns the redirection URL for the Visual builder.\n * @returns {URL} The redirection URL.\n */\nexport default function getVisualBuilderRedirectionUrl(): URL {\n const { stackDetails, clientUrlParams } = Config.get();\n const { branch, apiKey, environment, locale } = stackDetails;\n const { url: appUrl } = clientUrlParams;\n\n const searchParams = new URLSearchParams();\n if (branch) {\n searchParams.set(\"branch\", branch);\n }\n if (environment) {\n searchParams.set(\"environment\", environment);\n }\n\n searchParams.set(\"target-url\", window.location.href);\n\n // get the locale from the data cslp attribute\n const elementWithDataCslp = document.querySelector(`[data-cslp]`);\n\n if (elementWithDataCslp) {\n const cslpData = elementWithDataCslp.getAttribute(\n \"data-cslp\"\n ) as string;\n const { locale } = extractDetailsFromCslp(cslpData);\n\n searchParams.set(\"locale\", locale);\n } else if (locale) {\n searchParams.set(\"locale\", locale);\n }\n\n const completeURL = new URL(\n `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,\n appUrl\n );\n return completeURL;\n}\n"],"mappings":";;;AAAA,OAAO,YAAY;AACnB,SAAS,8BAA8B;AAMxB,SAAR,iCAAuD;AAC1D,QAAM,EAAE,cAAc,gBAAgB,IAAI,OAAO,IAAI;AACrD,QAAM,EAAE,QAAQ,QAAQ,aAAa,OAAO,IAAI;AAChD,QAAM,EAAE,KAAK,OAAO,IAAI;AAExB,QAAM,eAAe,IAAI,gBAAgB;AACzC,MAAI,QAAQ;AACR,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AACA,MAAI,aAAa;AACb,iBAAa,IAAI,eAAe,WAAW;AAAA,EAC/C;AAEA,eAAa,IAAI,cAAc,OAAO,SAAS,IAAI;AAGnD,QAAM,sBAAsB,SAAS,cAAc,aAAa;AAEhE,MAAI,qBAAqB;AACrB,UAAM,WAAW,oBAAoB;AAAA,MACjC;AAAA,IACJ;AACA,UAAM,EAAE,QAAAA,QAAO,IAAI,uBAAuB,QAAQ;AAElD,iBAAa,IAAI,UAAUA,OAAM;AAAA,EACrC,WAAW,QAAQ;AACf,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AAEA,QAAM,cAAc,IAAI;AAAA,IACpB,aAAa,MAAM,mBAAmB,aAAa,SAAS,CAAC;AAAA,IAC7D;AAAA,EACJ;AACA,SAAO;AACX;","names":["locale"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\n\n/**\n * Returns the redirection URL for the Visual builder.\n * @returns {URL} The redirection URL.\n */\nexport default function getVisualBuilderRedirectionUrl(): URL {\n const { stackDetails, clientUrlParams } = Config.get();\n const { branch, apiKey, environment, locale } = stackDetails;\n const { url: appUrl } = clientUrlParams;\n\n const searchParams = new URLSearchParams();\n if (branch) {\n searchParams.set(\"branch\", branch);\n }\n if (environment) {\n searchParams.set(\"environment\", environment);\n }\n\n searchParams.set(\"target-url\", window.location.href);\n\n // get the locale from the data cslp attribute\n const elementWithDataCslp = document.querySelector(`[data-cslp]`);\n let localeToUse = locale;\n\n if (elementWithDataCslp) {\n const cslpData = elementWithDataCslp.getAttribute(\"data-cslp\");\n if (cslpData) {\n const { locale: cslpLocale } = extractDetailsFromCslp(cslpData);\n localeToUse = cslpLocale;\n }\n }\n\n if (localeToUse) {\n searchParams.set(\"locale\", localeToUse);\n }\n\n const completeURL = new URL(\n `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,\n appUrl\n );\n return completeURL;\n}\n"],"mappings":";;;AAAA,OAAO,YAAY;AACnB,SAAS,8BAA8B;AAMxB,SAAR,iCAAuD;AAC1D,QAAM,EAAE,cAAc,gBAAgB,IAAI,OAAO,IAAI;AACrD,QAAM,EAAE,QAAQ,QAAQ,aAAa,OAAO,IAAI;AAChD,QAAM,EAAE,KAAK,OAAO,IAAI;AAExB,QAAM,eAAe,IAAI,gBAAgB;AACzC,MAAI,QAAQ;AACR,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AACA,MAAI,aAAa;AACb,iBAAa,IAAI,eAAe,WAAW;AAAA,EAC/C;AAEA,eAAa,IAAI,cAAc,OAAO,SAAS,IAAI;AAGnD,QAAM,sBAAsB,SAAS,cAAc,aAAa;AAChE,MAAI,cAAc;AAElB,MAAI,qBAAqB;AACrB,UAAM,WAAW,oBAAoB,aAAa,WAAW;AAC7D,QAAI,UAAU;AACV,YAAM,EAAE,QAAQ,WAAW,IAAI,uBAAuB,QAAQ;AAC9D,oBAAc;AAAA,IAClB;AAAA,EACJ;AAEA,MAAI,aAAa;AACb,iBAAa,IAAI,UAAU,WAAW;AAAA,EAC1C;AAEA,QAAM,cAAc,IAAI;AAAA,IACpB,aAAa,MAAM,mBAAmB,aAAa,SAAS,CAAC;AAAA,IAC7D;AAAA,EACJ;AACA,SAAO;AACX;","names":[]}
@@ -44,6 +44,7 @@ async function handleIndividualFields(eventDetails, elements) {
44
44
  content_type_uid,
45
45
  entry_uid,
46
46
  locale,
47
+ variant,
47
48
  fieldPath,
48
49
  fieldPathWithIndex
49
50
  } = fieldMetadata;
@@ -55,14 +56,17 @@ async function handleIndividualFields(eventDetails, elements) {
55
56
  )
56
57
  ]);
57
58
  const fieldType = (0, import_getFieldType.getFieldType)(fieldSchema);
58
- const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } = await (0, import_fetchEntryPermissionsAndStageDetails.fetchEntryPermissionsAndStageDetails)({
59
+ const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } = await (0, import_fetchEntryPermissionsAndStageDetails.fetchEntryPermissionsAndStageDetails)({
59
60
  entryUid: entry_uid,
60
61
  contentTypeUid: content_type_uid,
61
- locale
62
+ locale,
63
+ variantUid: variant,
64
+ fieldPathWithIndex
62
65
  });
63
66
  const { isDisabled: disabled } = (0, import_isFieldDisabled.isFieldDisabled)(
64
67
  fieldSchema,
65
68
  eventDetails,
69
+ resolvedVariantPermissions,
66
70
  entryAcl,
67
71
  entryWorkflowStageDetails
68
72
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/handleIndividualFields.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY } from \"./constants\";\nimport { FieldSchemaMap } from \"./fieldSchemaMap\";\nimport { getFieldData } from \"./getFieldData\";\nimport { getFieldType } from \"./getFieldType\";\nimport { handleFieldInput, handleFieldKeyDown } from \"./handleFieldMouseDown\";\nimport { isFieldDisabled } from \"./isFieldDisabled\";\nimport {\n handleAddButtonsForMultiple,\n removeAddInstanceButtons,\n} from \"./multipleElementAddButton\";\nimport { isFieldMultiple } from \"./isFieldMultiple\";\nimport { handleInlineEditableField } from \"./handleInlineEditableField\";\nimport { VisualBuilderEditContext } from \"./types/index.types\";\nimport { pasteAsPlainText } from \"./pasteAsPlainText\";\nimport { removeFieldToolbar } from \"../generators/generateToolbar\";\nimport { fetchEntryPermissionsAndStageDetails } from \"./fetchEntryPermissionsAndStageDetails\";\n\n/**\n * It handles all the fields based on their data type and its \"multiple\" property.\n * @param eventDetails The event details object that contain cslp and field metadata.\n * @param elements The elements object that contain the visual builder wrapper.\n */\nexport async function handleIndividualFields(\n eventDetails: VisualBuilderCslpEventDetails,\n elements: VisualBuilderEditContext\n): Promise<void> {\n const { fieldMetadata, editableElement } = eventDetails;\n const { visualBuilderContainer, lastEditedField, resizeObserver } =\n elements;\n const {\n content_type_uid,\n entry_uid,\n locale,\n fieldPath,\n fieldPathWithIndex,\n } = fieldMetadata;\n\n const [fieldSchema, expectedFieldData] = await Promise.all([\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath),\n getFieldData(\n { content_type_uid, entry_uid, locale },\n fieldPathWithIndex\n ),\n ]);\n\n const fieldType = getFieldType(fieldSchema);\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: entry_uid,\n contentTypeUid: content_type_uid,\n locale,\n });\n const { isDisabled: disabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n editableElement.setAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n fieldType\n );\n\n if (isFieldMultiple(fieldSchema)) {\n if (lastEditedField !== editableElement) {\n const addButtonLabel =\n fieldSchema.data_type === \"blocks\"\n ? // ? `Add ${fieldSchema.display_name ?? \"Modular Block\"}`\n \"Add Section\"\n : undefined;\n\n handleAddButtonsForMultiple(\n eventDetails,\n {\n editableElement: eventDetails.editableElement,\n visualBuilderContainer: visualBuilderContainer,\n resizeObserver: resizeObserver,\n },\n {\n fieldSchema,\n expectedFieldData,\n disabled,\n label: addButtonLabel,\n }\n );\n }\n }\n\n if (disabled) {\n return;\n }\n handleInlineEditableField({\n fieldType,\n fieldSchema,\n fieldMetadata,\n expectedFieldData,\n editableElement: editableElement as HTMLElement,\n elements,\n });\n}\n\nexport function cleanIndividualFieldResidual(elements: {\n overlayWrapper: HTMLDivElement;\n visualBuilderContainer: HTMLDivElement | null;\n focusedToolbar: HTMLDivElement | null;\n resizeObserver: ResizeObserver;\n}): void {\n const { overlayWrapper, visualBuilderContainer, focusedToolbar } = elements;\n\n removeAddInstanceButtons(\n {\n eventTarget: null,\n visualBuilderContainer: visualBuilderContainer,\n overlayWrapper: overlayWrapper,\n },\n true\n );\n\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (previousSelectedEditableDOM) {\n previousSelectedEditableDOM.removeAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n );\n previousSelectedEditableDOM.removeAttribute(\"contenteditable\");\n previousSelectedEditableDOM.removeEventListener(\n \"input\",\n handleFieldInput\n );\n previousSelectedEditableDOM.removeEventListener(\n \"keydown\",\n handleFieldKeyDown\n );\n\n previousSelectedEditableDOM.removeEventListener(\n \"paste\",\n pasteAsPlainText\n );\n // Note - this happens in two places, 1. hideOverlay and 2. here\n // TODO maybe see all usages of both functions and try to do it in one place\n elements.resizeObserver.unobserve(previousSelectedEditableDOM);\n }\n\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \".visual-builder__pseudo-editable-element\"\n );\n if (pseudoEditableElement) {\n elements.resizeObserver.unobserve(pseudoEditableElement);\n pseudoEditableElement.removeEventListener(\"paste\", pasteAsPlainText);\n pseudoEditableElement.remove();\n if (previousSelectedEditableDOM) {\n (previousSelectedEditableDOM as HTMLElement).style.removeProperty(\n \"visibility\"\n );\n }\n }\n\n if (focusedToolbar) {\n removeFieldToolbar(focusedToolbar);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAA8B;AAE9B,uBAAwD;AACxD,4BAA+B;AAC/B,0BAA6B;AAC7B,0BAA6B;AAC7B,kCAAqD;AACrD,6BAAgC;AAChC,sCAGO;AACP,6BAAgC;AAChC,uCAA0C;AAE1C,8BAAiC;AACjC,6BAAmC;AACnC,kDAAqD;AAOrD,eAAsB,uBAClB,cACA,UACa;AACb,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAC3C,QAAM,EAAE,wBAAwB,iBAAiB,eAAe,IAC5D;AACJ,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,QAAM,CAAC,aAAa,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,qCAAe,eAAe,kBAAkB,SAAS;AAAA,QACzD;AAAA,MACI,EAAE,kBAAkB,WAAW,OAAO;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,gBAAY,kCAAa,WAAW;AAE1C,QAAM,EAAE,KAAK,UAAU,eAAe,0BAA0B,IAC5D,UAAM,kFAAqC;AAAA,IACvC,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB;AAAA,EACJ,CAAC;AACL,QAAM,EAAE,YAAY,SAAS,QAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,kBAAgB;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AAEA,UAAI,wCAAgB,WAAW,GAAG;AAC9B,QAAI,oBAAoB,iBAAiB;AACrC,YAAM,iBACF,YAAY,cAAc;AAAA;AAAA,QAEpB;AAAA,UACA;AAEV;AAAA,QACI;AAAA,QACA;AAAA,UACI,iBAAiB,aAAa;AAAA,UAC9B;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,UAAU;AACV;AAAA,EACJ;AACA,kEAA0B;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,6BAA6B,UAKpC;AACL,QAAM,EAAE,gBAAgB,wBAAwB,eAAe,IAAI;AAEnE;AAAA,IACI;AAAA,MACI,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,8BACF,uBAAc,yBAAyB,MAClC;AACT,MAAI,6BAA6B;AAC7B,gCAA4B;AAAA,MACxB;AAAA,IACJ;AACA,gCAA4B,gBAAgB,iBAAiB;AAC7D,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AACA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAEA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAGA,aAAS,eAAe,UAAU,2BAA2B;AAAA,EACjE;AAEA,QAAM,wBAAwB,iEAAwB;AAAA,IAClD;AAAA;AAEJ,MAAI,uBAAuB;AACvB,aAAS,eAAe,UAAU,qBAAqB;AACvD,0BAAsB,oBAAoB,SAAS,wCAAgB;AACnE,0BAAsB,OAAO;AAC7B,QAAI,6BAA6B;AAC7B,MAAC,4BAA4C,MAAM;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,gBAAgB;AAChB,mDAAmB,cAAc;AAAA,EACrC;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/handleIndividualFields.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY } from \"./constants\";\nimport { FieldSchemaMap } from \"./fieldSchemaMap\";\nimport { getFieldData } from \"./getFieldData\";\nimport { getFieldType } from \"./getFieldType\";\nimport { handleFieldInput, handleFieldKeyDown } from \"./handleFieldMouseDown\";\nimport { isFieldDisabled } from \"./isFieldDisabled\";\nimport {\n handleAddButtonsForMultiple,\n removeAddInstanceButtons,\n} from \"./multipleElementAddButton\";\nimport { isFieldMultiple } from \"./isFieldMultiple\";\nimport { handleInlineEditableField } from \"./handleInlineEditableField\";\nimport { VisualBuilderEditContext } from \"./types/index.types\";\nimport { pasteAsPlainText } from \"./pasteAsPlainText\";\nimport { removeFieldToolbar } from \"../generators/generateToolbar\";\nimport { fetchEntryPermissionsAndStageDetails } from \"./fetchEntryPermissionsAndStageDetails\";\n\n/**\n * It handles all the fields based on their data type and its \"multiple\" property.\n * @param eventDetails The event details object that contain cslp and field metadata.\n * @param elements The elements object that contain the visual builder wrapper.\n */\nexport async function handleIndividualFields(\n eventDetails: VisualBuilderCslpEventDetails,\n elements: VisualBuilderEditContext\n): Promise<void> {\n const { fieldMetadata, editableElement } = eventDetails;\n const { visualBuilderContainer, lastEditedField, resizeObserver } =\n elements;\n const {\n content_type_uid,\n entry_uid,\n locale,\n variant,\n fieldPath,\n fieldPathWithIndex,\n } = fieldMetadata;\n\n const [fieldSchema, expectedFieldData] = await Promise.all([\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath),\n getFieldData(\n { content_type_uid, entry_uid, locale },\n fieldPathWithIndex\n ),\n ]);\n\n const fieldType = getFieldType(fieldSchema);\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: entry_uid,\n contentTypeUid: content_type_uid,\n locale,\n variantUid: variant,\n fieldPathWithIndex,\n });\n const { isDisabled: disabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n resolvedVariantPermissions,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n editableElement.setAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n fieldType\n );\n\n if (isFieldMultiple(fieldSchema)) {\n if (lastEditedField !== editableElement) {\n const addButtonLabel =\n fieldSchema.data_type === \"blocks\"\n ? // ? `Add ${fieldSchema.display_name ?? \"Modular Block\"}`\n \"Add Section\"\n : undefined;\n\n handleAddButtonsForMultiple(\n eventDetails,\n {\n editableElement: eventDetails.editableElement,\n visualBuilderContainer: visualBuilderContainer,\n resizeObserver: resizeObserver,\n },\n {\n fieldSchema,\n expectedFieldData,\n disabled,\n label: addButtonLabel,\n }\n );\n }\n }\n\n if (disabled) {\n return;\n }\n handleInlineEditableField({\n fieldType,\n fieldSchema,\n fieldMetadata,\n expectedFieldData,\n editableElement: editableElement as HTMLElement,\n elements,\n });\n}\n\nexport function cleanIndividualFieldResidual(elements: {\n overlayWrapper: HTMLDivElement;\n visualBuilderContainer: HTMLDivElement | null;\n focusedToolbar: HTMLDivElement | null;\n resizeObserver: ResizeObserver;\n}): void {\n const { overlayWrapper, visualBuilderContainer, focusedToolbar } = elements;\n\n removeAddInstanceButtons(\n {\n eventTarget: null,\n visualBuilderContainer: visualBuilderContainer,\n overlayWrapper: overlayWrapper,\n },\n true\n );\n\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (previousSelectedEditableDOM) {\n previousSelectedEditableDOM.removeAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n );\n previousSelectedEditableDOM.removeAttribute(\"contenteditable\");\n previousSelectedEditableDOM.removeEventListener(\n \"input\",\n handleFieldInput\n );\n previousSelectedEditableDOM.removeEventListener(\n \"keydown\",\n handleFieldKeyDown\n );\n\n previousSelectedEditableDOM.removeEventListener(\n \"paste\",\n pasteAsPlainText\n );\n // Note - this happens in two places, 1. hideOverlay and 2. here\n // TODO maybe see all usages of both functions and try to do it in one place\n elements.resizeObserver.unobserve(previousSelectedEditableDOM);\n }\n\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \".visual-builder__pseudo-editable-element\"\n );\n if (pseudoEditableElement) {\n elements.resizeObserver.unobserve(pseudoEditableElement);\n pseudoEditableElement.removeEventListener(\"paste\", pasteAsPlainText);\n pseudoEditableElement.remove();\n if (previousSelectedEditableDOM) {\n (previousSelectedEditableDOM as HTMLElement).style.removeProperty(\n \"visibility\"\n );\n }\n }\n\n if (focusedToolbar) {\n removeFieldToolbar(focusedToolbar);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAA8B;AAE9B,uBAAwD;AACxD,4BAA+B;AAC/B,0BAA6B;AAC7B,0BAA6B;AAC7B,kCAAqD;AACrD,6BAAgC;AAChC,sCAGO;AACP,6BAAgC;AAChC,uCAA0C;AAE1C,8BAAiC;AACjC,6BAAmC;AACnC,kDAAqD;AAOrD,eAAsB,uBAClB,cACA,UACa;AACb,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAC3C,QAAM,EAAE,wBAAwB,iBAAiB,eAAe,IAC5D;AACJ,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,QAAM,CAAC,aAAa,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,qCAAe,eAAe,kBAAkB,SAAS;AAAA,QACzD;AAAA,MACI,EAAE,kBAAkB,WAAW,OAAO;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,gBAAY,kCAAa,WAAW;AAE1C,QAAM,EAAE,KAAK,UAAU,eAAe,2BAA2B,2BAA2B,IACxF,UAAM,kFAAqC;AAAA,IACvC,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACJ,CAAC;AACL,QAAM,EAAE,YAAY,SAAS,QAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,kBAAgB;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AAEA,UAAI,wCAAgB,WAAW,GAAG;AAC9B,QAAI,oBAAoB,iBAAiB;AACrC,YAAM,iBACF,YAAY,cAAc;AAAA;AAAA,QAEpB;AAAA,UACA;AAEV;AAAA,QACI;AAAA,QACA;AAAA,UACI,iBAAiB,aAAa;AAAA,UAC9B;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,UAAU;AACV;AAAA,EACJ;AACA,kEAA0B;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,6BAA6B,UAKpC;AACL,QAAM,EAAE,gBAAgB,wBAAwB,eAAe,IAAI;AAEnE;AAAA,IACI;AAAA,MACI,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,8BACF,uBAAc,yBAAyB,MAClC;AACT,MAAI,6BAA6B;AAC7B,gCAA4B;AAAA,MACxB;AAAA,IACJ;AACA,gCAA4B,gBAAgB,iBAAiB;AAC7D,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AACA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAEA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAGA,aAAS,eAAe,UAAU,2BAA2B;AAAA,EACjE;AAEA,QAAM,wBAAwB,iEAAwB;AAAA,IAClD;AAAA;AAEJ,MAAI,uBAAuB;AACvB,aAAS,eAAe,UAAU,qBAAqB;AACvD,0BAAsB,oBAAoB,SAAS,wCAAgB;AACnE,0BAAsB,OAAO;AAC7B,QAAI,6BAA6B;AAC7B,MAAC,4BAA4C,MAAM;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,gBAAgB;AAChB,mDAAmB,cAAc;AAAA,EACrC;AACJ;","names":[]}
@@ -24,6 +24,7 @@ async function handleIndividualFields(eventDetails, elements) {
24
24
  content_type_uid,
25
25
  entry_uid,
26
26
  locale,
27
+ variant,
27
28
  fieldPath,
28
29
  fieldPathWithIndex
29
30
  } = fieldMetadata;
@@ -35,14 +36,17 @@ async function handleIndividualFields(eventDetails, elements) {
35
36
  )
36
37
  ]);
37
38
  const fieldType = getFieldType(fieldSchema);
38
- const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } = await fetchEntryPermissionsAndStageDetails({
39
+ const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } = await fetchEntryPermissionsAndStageDetails({
39
40
  entryUid: entry_uid,
40
41
  contentTypeUid: content_type_uid,
41
- locale
42
+ locale,
43
+ variantUid: variant,
44
+ fieldPathWithIndex
42
45
  });
43
46
  const { isDisabled: disabled } = isFieldDisabled(
44
47
  fieldSchema,
45
48
  eventDetails,
49
+ resolvedVariantPermissions,
46
50
  entryAcl,
47
51
  entryWorkflowStageDetails
48
52
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/handleIndividualFields.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY } from \"./constants\";\nimport { FieldSchemaMap } from \"./fieldSchemaMap\";\nimport { getFieldData } from \"./getFieldData\";\nimport { getFieldType } from \"./getFieldType\";\nimport { handleFieldInput, handleFieldKeyDown } from \"./handleFieldMouseDown\";\nimport { isFieldDisabled } from \"./isFieldDisabled\";\nimport {\n handleAddButtonsForMultiple,\n removeAddInstanceButtons,\n} from \"./multipleElementAddButton\";\nimport { isFieldMultiple } from \"./isFieldMultiple\";\nimport { handleInlineEditableField } from \"./handleInlineEditableField\";\nimport { VisualBuilderEditContext } from \"./types/index.types\";\nimport { pasteAsPlainText } from \"./pasteAsPlainText\";\nimport { removeFieldToolbar } from \"../generators/generateToolbar\";\nimport { fetchEntryPermissionsAndStageDetails } from \"./fetchEntryPermissionsAndStageDetails\";\n\n/**\n * It handles all the fields based on their data type and its \"multiple\" property.\n * @param eventDetails The event details object that contain cslp and field metadata.\n * @param elements The elements object that contain the visual builder wrapper.\n */\nexport async function handleIndividualFields(\n eventDetails: VisualBuilderCslpEventDetails,\n elements: VisualBuilderEditContext\n): Promise<void> {\n const { fieldMetadata, editableElement } = eventDetails;\n const { visualBuilderContainer, lastEditedField, resizeObserver } =\n elements;\n const {\n content_type_uid,\n entry_uid,\n locale,\n fieldPath,\n fieldPathWithIndex,\n } = fieldMetadata;\n\n const [fieldSchema, expectedFieldData] = await Promise.all([\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath),\n getFieldData(\n { content_type_uid, entry_uid, locale },\n fieldPathWithIndex\n ),\n ]);\n\n const fieldType = getFieldType(fieldSchema);\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: entry_uid,\n contentTypeUid: content_type_uid,\n locale,\n });\n const { isDisabled: disabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n editableElement.setAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n fieldType\n );\n\n if (isFieldMultiple(fieldSchema)) {\n if (lastEditedField !== editableElement) {\n const addButtonLabel =\n fieldSchema.data_type === \"blocks\"\n ? // ? `Add ${fieldSchema.display_name ?? \"Modular Block\"}`\n \"Add Section\"\n : undefined;\n\n handleAddButtonsForMultiple(\n eventDetails,\n {\n editableElement: eventDetails.editableElement,\n visualBuilderContainer: visualBuilderContainer,\n resizeObserver: resizeObserver,\n },\n {\n fieldSchema,\n expectedFieldData,\n disabled,\n label: addButtonLabel,\n }\n );\n }\n }\n\n if (disabled) {\n return;\n }\n handleInlineEditableField({\n fieldType,\n fieldSchema,\n fieldMetadata,\n expectedFieldData,\n editableElement: editableElement as HTMLElement,\n elements,\n });\n}\n\nexport function cleanIndividualFieldResidual(elements: {\n overlayWrapper: HTMLDivElement;\n visualBuilderContainer: HTMLDivElement | null;\n focusedToolbar: HTMLDivElement | null;\n resizeObserver: ResizeObserver;\n}): void {\n const { overlayWrapper, visualBuilderContainer, focusedToolbar } = elements;\n\n removeAddInstanceButtons(\n {\n eventTarget: null,\n visualBuilderContainer: visualBuilderContainer,\n overlayWrapper: overlayWrapper,\n },\n true\n );\n\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (previousSelectedEditableDOM) {\n previousSelectedEditableDOM.removeAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n );\n previousSelectedEditableDOM.removeAttribute(\"contenteditable\");\n previousSelectedEditableDOM.removeEventListener(\n \"input\",\n handleFieldInput\n );\n previousSelectedEditableDOM.removeEventListener(\n \"keydown\",\n handleFieldKeyDown\n );\n\n previousSelectedEditableDOM.removeEventListener(\n \"paste\",\n pasteAsPlainText\n );\n // Note - this happens in two places, 1. hideOverlay and 2. here\n // TODO maybe see all usages of both functions and try to do it in one place\n elements.resizeObserver.unobserve(previousSelectedEditableDOM);\n }\n\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \".visual-builder__pseudo-editable-element\"\n );\n if (pseudoEditableElement) {\n elements.resizeObserver.unobserve(pseudoEditableElement);\n pseudoEditableElement.removeEventListener(\"paste\", pasteAsPlainText);\n pseudoEditableElement.remove();\n if (previousSelectedEditableDOM) {\n (previousSelectedEditableDOM as HTMLElement).style.removeProperty(\n \"visibility\"\n );\n }\n }\n\n if (focusedToolbar) {\n removeFieldToolbar(focusedToolbar);\n }\n}\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAE9B,SAAS,+CAA+C;AACxD,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB,0BAA0B;AACrD,SAAS,uBAAuB;AAChC;AAAA,EACI;AAAA,EACA;AAAA,OACG;AACP,SAAS,uBAAuB;AAChC,SAAS,iCAAiC;AAE1C,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,4CAA4C;AAOrD,eAAsB,uBAClB,cACA,UACa;AACb,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAC3C,QAAM,EAAE,wBAAwB,iBAAiB,eAAe,IAC5D;AACJ,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,QAAM,CAAC,aAAa,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,eAAe,eAAe,kBAAkB,SAAS;AAAA,IACzD;AAAA,MACI,EAAE,kBAAkB,WAAW,OAAO;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,YAAY,aAAa,WAAW;AAE1C,QAAM,EAAE,KAAK,UAAU,eAAe,0BAA0B,IAC5D,MAAM,qCAAqC;AAAA,IACvC,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB;AAAA,EACJ,CAAC;AACL,QAAM,EAAE,YAAY,SAAS,IAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,kBAAgB;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AAEA,MAAI,gBAAgB,WAAW,GAAG;AAC9B,QAAI,oBAAoB,iBAAiB;AACrC,YAAM,iBACF,YAAY,cAAc;AAAA;AAAA,QAEpB;AAAA,UACA;AAEV;AAAA,QACI;AAAA,QACA;AAAA,UACI,iBAAiB,aAAa;AAAA,UAC9B;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,UAAU;AACV;AAAA,EACJ;AACA,4BAA0B;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,6BAA6B,UAKpC;AACL,QAAM,EAAE,gBAAgB,wBAAwB,eAAe,IAAI;AAEnE;AAAA,IACI;AAAA,MACI,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,8BACF,cAAc,yBAAyB,MAClC;AACT,MAAI,6BAA6B;AAC7B,gCAA4B;AAAA,MACxB;AAAA,IACJ;AACA,gCAA4B,gBAAgB,iBAAiB;AAC7D,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AACA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAEA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAGA,aAAS,eAAe,UAAU,2BAA2B;AAAA,EACjE;AAEA,QAAM,wBAAwB,iEAAwB;AAAA,IAClD;AAAA;AAEJ,MAAI,uBAAuB;AACvB,aAAS,eAAe,UAAU,qBAAqB;AACvD,0BAAsB,oBAAoB,SAAS,gBAAgB;AACnE,0BAAsB,OAAO;AAC7B,QAAI,6BAA6B;AAC7B,MAAC,4BAA4C,MAAM;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,gBAAgB;AAChB,uBAAmB,cAAc;AAAA,EACrC;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/handleIndividualFields.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY } from \"./constants\";\nimport { FieldSchemaMap } from \"./fieldSchemaMap\";\nimport { getFieldData } from \"./getFieldData\";\nimport { getFieldType } from \"./getFieldType\";\nimport { handleFieldInput, handleFieldKeyDown } from \"./handleFieldMouseDown\";\nimport { isFieldDisabled } from \"./isFieldDisabled\";\nimport {\n handleAddButtonsForMultiple,\n removeAddInstanceButtons,\n} from \"./multipleElementAddButton\";\nimport { isFieldMultiple } from \"./isFieldMultiple\";\nimport { handleInlineEditableField } from \"./handleInlineEditableField\";\nimport { VisualBuilderEditContext } from \"./types/index.types\";\nimport { pasteAsPlainText } from \"./pasteAsPlainText\";\nimport { removeFieldToolbar } from \"../generators/generateToolbar\";\nimport { fetchEntryPermissionsAndStageDetails } from \"./fetchEntryPermissionsAndStageDetails\";\n\n/**\n * It handles all the fields based on their data type and its \"multiple\" property.\n * @param eventDetails The event details object that contain cslp and field metadata.\n * @param elements The elements object that contain the visual builder wrapper.\n */\nexport async function handleIndividualFields(\n eventDetails: VisualBuilderCslpEventDetails,\n elements: VisualBuilderEditContext\n): Promise<void> {\n const { fieldMetadata, editableElement } = eventDetails;\n const { visualBuilderContainer, lastEditedField, resizeObserver } =\n elements;\n const {\n content_type_uid,\n entry_uid,\n locale,\n variant,\n fieldPath,\n fieldPathWithIndex,\n } = fieldMetadata;\n\n const [fieldSchema, expectedFieldData] = await Promise.all([\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath),\n getFieldData(\n { content_type_uid, entry_uid, locale },\n fieldPathWithIndex\n ),\n ]);\n\n const fieldType = getFieldType(fieldSchema);\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: entry_uid,\n contentTypeUid: content_type_uid,\n locale,\n variantUid: variant,\n fieldPathWithIndex,\n });\n const { isDisabled: disabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n resolvedVariantPermissions,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n editableElement.setAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n fieldType\n );\n\n if (isFieldMultiple(fieldSchema)) {\n if (lastEditedField !== editableElement) {\n const addButtonLabel =\n fieldSchema.data_type === \"blocks\"\n ? // ? `Add ${fieldSchema.display_name ?? \"Modular Block\"}`\n \"Add Section\"\n : undefined;\n\n handleAddButtonsForMultiple(\n eventDetails,\n {\n editableElement: eventDetails.editableElement,\n visualBuilderContainer: visualBuilderContainer,\n resizeObserver: resizeObserver,\n },\n {\n fieldSchema,\n expectedFieldData,\n disabled,\n label: addButtonLabel,\n }\n );\n }\n }\n\n if (disabled) {\n return;\n }\n handleInlineEditableField({\n fieldType,\n fieldSchema,\n fieldMetadata,\n expectedFieldData,\n editableElement: editableElement as HTMLElement,\n elements,\n });\n}\n\nexport function cleanIndividualFieldResidual(elements: {\n overlayWrapper: HTMLDivElement;\n visualBuilderContainer: HTMLDivElement | null;\n focusedToolbar: HTMLDivElement | null;\n resizeObserver: ResizeObserver;\n}): void {\n const { overlayWrapper, visualBuilderContainer, focusedToolbar } = elements;\n\n removeAddInstanceButtons(\n {\n eventTarget: null,\n visualBuilderContainer: visualBuilderContainer,\n overlayWrapper: overlayWrapper,\n },\n true\n );\n\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (previousSelectedEditableDOM) {\n previousSelectedEditableDOM.removeAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n );\n previousSelectedEditableDOM.removeAttribute(\"contenteditable\");\n previousSelectedEditableDOM.removeEventListener(\n \"input\",\n handleFieldInput\n );\n previousSelectedEditableDOM.removeEventListener(\n \"keydown\",\n handleFieldKeyDown\n );\n\n previousSelectedEditableDOM.removeEventListener(\n \"paste\",\n pasteAsPlainText\n );\n // Note - this happens in two places, 1. hideOverlay and 2. here\n // TODO maybe see all usages of both functions and try to do it in one place\n elements.resizeObserver.unobserve(previousSelectedEditableDOM);\n }\n\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \".visual-builder__pseudo-editable-element\"\n );\n if (pseudoEditableElement) {\n elements.resizeObserver.unobserve(pseudoEditableElement);\n pseudoEditableElement.removeEventListener(\"paste\", pasteAsPlainText);\n pseudoEditableElement.remove();\n if (previousSelectedEditableDOM) {\n (previousSelectedEditableDOM as HTMLElement).style.removeProperty(\n \"visibility\"\n );\n }\n }\n\n if (focusedToolbar) {\n removeFieldToolbar(focusedToolbar);\n }\n}\n"],"mappings":"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","names":[]}
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/visualBuilder/utils/isFieldDisabled.ts
31
31
  var isFieldDisabled_exports = {};
32
32
  __export(isFieldDisabled_exports, {
33
+ DisableReason: () => DisableReason,
33
34
  isFieldDisabled: () => isFieldDisabled
34
35
  });
35
36
  module.exports = __toCommonJS(isFieldDisabled_exports);
@@ -38,7 +39,11 @@ var import__ = require("../index.cjs");
38
39
  var DisableReason = {
39
40
  ReadOnly: "You have only read access to this field",
40
41
  LocalizedEntry: "Editing this field is restricted in localized entries",
41
- UnlinkedVariant: "This field is not editable as it is not linked to the selected variant",
42
+ ResolvedVariantPermissions: "This field does not exist in the selected variant",
43
+ UnlinkedVariant: "This field is not editable as it is not linked to the selected variant.",
44
+ CanLinkVariant: "Click here to link a variant",
45
+ UnderlinedAndClickableWord: "here",
46
+ CannotLinkVariant: "Contact your stack admin or owner to link it.",
42
47
  AudienceMode: "To edit an experience, open the Audience widget and click the Edit icon.",
43
48
  DisabledVariant: "This field is not editable as it doesn't match the selected variant",
44
49
  UnlocalizedVariant: "This field is not editable as it is not localized",
@@ -55,8 +60,9 @@ var getDisableReason = (flags, params) => {
55
60
  return DisableReason.LocalizedEntry;
56
61
  if (flags.updateRestrictDueToUnlocalizedVariant)
57
62
  return DisableReason.UnlocalizedVariant;
58
- if (flags.updateRestrictDueToUnlinkVariant)
59
- return DisableReason.UnlinkedVariant;
63
+ if (flags.updateRestrictDueToUnlinkVariant) {
64
+ return flags.canLinkVariant ? `${DisableReason.UnlinkedVariant} ${DisableReason.CanLinkVariant} ` : `${DisableReason.UnlinkedVariant} ${DisableReason.CannotLinkVariant}`;
65
+ }
60
66
  if (flags.updateRestrictDueToAudienceMode)
61
67
  return DisableReason.AudienceMode;
62
68
  if (flags.updateRestrictDueToDisabledVariant)
@@ -74,10 +80,13 @@ var getDisableReason = (flags, params) => {
74
80
  stageName: (params == null ? void 0 : params.stageName) ? params.stageName : "Unknown"
75
81
  });
76
82
  }
83
+ if (flags.updateRestrictDueToResolvedVariantPermissions) {
84
+ return DisableReason.ResolvedVariantPermissions;
85
+ }
77
86
  return DisableReason.None;
78
87
  };
79
- var isFieldDisabled = (fieldSchemaMap, eventFieldDetails, entryPermissions, entryWorkflowStageDetails) => {
80
- var _a, _b, _c;
88
+ var isFieldDisabled = (fieldSchemaMap, eventFieldDetails, resolvedVariantPermissions, entryPermissions, entryWorkflowStageDetails) => {
89
+ var _a, _b, _c, _d;
81
90
  const { editableElement, fieldMetadata } = eventFieldDetails;
82
91
  const masterLocale = import_configManager.default.get().stackDetails.masterLocale || "en-us";
83
92
  const { locale: cmsLocale, variant } = import__.VisualBuilder.VisualBuilderGlobalState.value;
@@ -88,12 +97,16 @@ var isFieldDisabled = (fieldSchemaMap, eventFieldDetails, entryPermissions, entr
88
97
  updateRestrictDueToUnlinkVariant: Boolean(
89
98
  (_b = fieldSchemaMap == null ? void 0 : fieldSchemaMap.field_metadata) == null ? void 0 : _b.isUnlinkedVariant
90
99
  ),
100
+ canLinkVariant: Boolean((_c = fieldSchemaMap == null ? void 0 : fieldSchemaMap.field_metadata) == null ? void 0 : _c.canLinkVariant),
91
101
  updateRestrictDueToUnlocalizedVariant: Boolean(
92
102
  variant && fieldMetadata.locale !== cmsLocale
93
103
  ),
94
104
  updateRestrictDueToNonLocalizableFields: Boolean(
95
105
  (fieldSchemaMap == null ? void 0 : fieldSchemaMap.non_localizable) && masterLocale !== fieldMetadata.locale
96
106
  ),
107
+ updateRestrictDueToResolvedVariantPermissions: resolvedVariantPermissions ? Boolean(
108
+ !resolvedVariantPermissions.update
109
+ ) : false,
97
110
  updateRestrictDueToAudienceMode: false,
98
111
  updateRestrictDueToDisabledVariant: false
99
112
  };
@@ -103,6 +116,9 @@ var isFieldDisabled = (fieldSchemaMap, eventFieldDetails, entryPermissions, entr
103
116
  if (entryWorkflowStageDetails && !entryWorkflowStageDetails.permissions.entry.update) {
104
117
  flags.updateRestrictDueToWorkflowStagePermission = true;
105
118
  }
119
+ if (import__.VisualBuilder.VisualBuilderGlobalState.value.audienceMode && editableElement.classList.contains("visual-builder__lower-order-variant-field")) {
120
+ flags.updateRestrictDueToDisabledVariant = resolvedVariantPermissions ? !!resolvedVariantPermissions.error : false;
121
+ }
106
122
  if (import__.VisualBuilder.VisualBuilderGlobalState.value.audienceMode && !editableElement.classList.contains("visual-builder__variant-field") && !editableElement.classList.contains("visual-builder__base-field")) {
107
123
  if (editableElement.classList.contains(
108
124
  "visual-builder__disabled-variant-field"
@@ -114,12 +130,13 @@ var isFieldDisabled = (fieldSchemaMap, eventFieldDetails, entryPermissions, entr
114
130
  }
115
131
  const isDisabled = Object.values(flags).some(Boolean);
116
132
  const reason = getDisableReason(flags, {
117
- stageName: (_c = entryWorkflowStageDetails == null ? void 0 : entryWorkflowStageDetails.stage) == null ? void 0 : _c.name
133
+ stageName: (_d = entryWorkflowStageDetails == null ? void 0 : entryWorkflowStageDetails.stage) == null ? void 0 : _d.name
118
134
  });
119
135
  return { isDisabled, reason };
120
136
  };
121
137
  // Annotate the CommonJS export names for ESM import in node:
122
138
  0 && (module.exports = {
139
+ DisableReason,
123
140
  isFieldDisabled
124
141
  });
125
142
  //# sourceMappingURL=isFieldDisabled.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/isFieldDisabled.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { ISchemaFieldMap } from \"./types/index.types\";\nimport { VisualBuilder } from \"..\";\nimport { FieldDetails } from \"../components/FieldToolbar\";\nimport { EntryPermissions } from \"./getEntryPermissions\";\nimport { WorkflowStageDetails } from \"./getWorkflowStageDetails\";\n\nconst DisableReason = {\n ReadOnly: \"You have only read access to this field\",\n LocalizedEntry: \"Editing this field is restricted in localized entries\",\n UnlinkedVariant:\n \"This field is not editable as it is not linked to the selected variant\",\n AudienceMode: \"To edit an experience, open the Audience widget and click the Edit icon.\",\n DisabledVariant:\n \"This field is not editable as it doesn't match the selected variant\",\n UnlocalizedVariant: \"This field is not editable as it is not localized\",\n None: \"\",\n EntryUpdateRestricted: \"You do not have permission to edit this entry\",\n WorkflowStagePermission: ({ stageName }: { stageName: string }) =>\n `You do not have Edit access to this entry on the '${stageName}' workflow stage`,\n EntryUpdateRestrictedRoleAndWorkflowStage: ({\n stageName,\n }: {\n stageName: string;\n }) =>\n `Editing is restricted for your role or by the rules for the '${stageName}' stage. Contact your admin for edit access.`,\n} as const;\n\ninterface FieldDisableState {\n isDisabled: boolean;\n reason: string;\n}\n\nconst getDisableReason = (\n flags: Record<string, boolean>,\n params?: Record<string, any>\n) => {\n if (flags.updateRestrictDueToRole) return DisableReason.ReadOnly;\n if (flags.updateRestrictDueToNonLocalizableFields)\n return DisableReason.LocalizedEntry;\n if (flags.updateRestrictDueToUnlocalizedVariant)\n return DisableReason.UnlocalizedVariant;\n if (flags.updateRestrictDueToUnlinkVariant)\n return DisableReason.UnlinkedVariant;\n if (flags.updateRestrictDueToAudienceMode)\n return DisableReason.AudienceMode;\n if (flags.updateRestrictDueToDisabledVariant)\n return DisableReason.DisabledVariant;\n if (\n flags.updateRestrictDueToEntryUpdateRestriction &&\n flags.updateRestrictDueToWorkflowStagePermission\n ) {\n return DisableReason.EntryUpdateRestrictedRoleAndWorkflowStage({\n stageName: params?.stageName ? params.stageName : \"Unknown\",\n });\n }\n if (flags.updateRestrictDueToEntryUpdateRestriction) {\n return DisableReason.EntryUpdateRestricted;\n }\n if (flags.updateRestrictDueToWorkflowStagePermission) {\n return DisableReason.WorkflowStagePermission({\n stageName: params?.stageName ? params.stageName : \"Unknown\",\n });\n }\n return DisableReason.None;\n};\n\nexport const isFieldDisabled = (\n fieldSchemaMap: ISchemaFieldMap,\n eventFieldDetails: FieldDetails,\n entryPermissions?: EntryPermissions,\n entryWorkflowStageDetails?: WorkflowStageDetails\n): FieldDisableState => {\n const { editableElement, fieldMetadata } = eventFieldDetails;\n const masterLocale = Config.get().stackDetails.masterLocale || \"en-us\";\n const { locale: cmsLocale, variant } =\n VisualBuilder.VisualBuilderGlobalState.value;\n\n const flags: Record<string, boolean> = {\n updateRestrictDueToRole: Boolean(\n fieldSchemaMap?.field_metadata?.updateRestrict\n ),\n updateRestrictDueToUnlinkVariant: Boolean(\n fieldSchemaMap?.field_metadata?.isUnlinkedVariant\n ),\n updateRestrictDueToUnlocalizedVariant: Boolean(\n variant && fieldMetadata.locale !== cmsLocale\n ),\n updateRestrictDueToNonLocalizableFields: Boolean(\n fieldSchemaMap?.non_localizable &&\n masterLocale !== fieldMetadata.locale\n ),\n updateRestrictDueToAudienceMode: false,\n updateRestrictDueToDisabledVariant: false,\n };\n\n if (entryPermissions && !entryPermissions.update) {\n flags.updateRestrictDueToEntryUpdateRestriction = true;\n }\n\n if (\n entryWorkflowStageDetails &&\n !entryWorkflowStageDetails.permissions.entry.update\n ) {\n flags.updateRestrictDueToWorkflowStagePermission = true;\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value.audienceMode &&\n !editableElement.classList.contains(\"visual-builder__variant-field\") &&\n !editableElement.classList.contains(\"visual-builder__base-field\")\n ) {\n if (\n editableElement.classList.contains(\n \"visual-builder__disabled-variant-field\"\n )\n ) {\n flags.updateRestrictDueToDisabledVariant = true;\n } else {\n flags.updateRestrictDueToAudienceMode = true;\n }\n }\n\n const isDisabled = Object.values(flags).some(Boolean);\n const reason = getDisableReason(flags, {\n stageName: entryWorkflowStageDetails?.stage?.name,\n });\n\n return { isDisabled, reason };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAmB;AAEnB,eAA8B;AAK9B,IAAM,gBAAgB;AAAA,EAClB,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,iBACI;AAAA,EACJ,cAAc;AAAA,EACd,iBACI;AAAA,EACJ,oBAAoB;AAAA,EACpB,MAAM;AAAA,EACN,uBAAuB;AAAA,EACvB,yBAAyB,CAAC,EAAE,UAAU,MAClC,qDAAqD,SAAS;AAAA,EAClE,2CAA2C,CAAC;AAAA,IACxC;AAAA,EACJ,MAGI,gEAAgE,SAAS;AACjF;AAOA,IAAM,mBAAmB,CACrB,OACA,WACC;AACD,MAAI,MAAM,wBAAyB,QAAO,cAAc;AACxD,MAAI,MAAM;AACN,WAAO,cAAc;AACzB,MAAI,MAAM;AACN,WAAO,cAAc;AACzB,MAAI,MAAM;AACN,WAAO,cAAc;AACzB,MAAI,MAAM;AACN,WAAO,cAAc;AACzB,MAAI,MAAM;AACN,WAAO,cAAc;AACzB,MACI,MAAM,6CACN,MAAM,4CACR;AACE,WAAO,cAAc,0CAA0C;AAAA,MAC3D,YAAW,iCAAQ,aAAY,OAAO,YAAY;AAAA,IACtD,CAAC;AAAA,EACL;AACA,MAAI,MAAM,2CAA2C;AACjD,WAAO,cAAc;AAAA,EACzB;AACA,MAAI,MAAM,4CAA4C;AAClD,WAAO,cAAc,wBAAwB;AAAA,MACzC,YAAW,iCAAQ,aAAY,OAAO,YAAY;AAAA,IACtD,CAAC;AAAA,EACL;AACA,SAAO,cAAc;AACzB;AAEO,IAAM,kBAAkB,CAC3B,gBACA,mBACA,kBACA,8BACoB;AAxExB;AAyEI,QAAM,EAAE,iBAAiB,cAAc,IAAI;AAC3C,QAAM,eAAe,qBAAAA,QAAO,IAAI,EAAE,aAAa,gBAAgB;AAC/D,QAAM,EAAE,QAAQ,WAAW,QAAQ,IAC/B,uBAAc,yBAAyB;AAE3C,QAAM,QAAiC;AAAA,IACnC,yBAAyB;AAAA,OACrB,sDAAgB,mBAAhB,mBAAgC;AAAA,IACpC;AAAA,IACA,kCAAkC;AAAA,OAC9B,sDAAgB,mBAAhB,mBAAgC;AAAA,IACpC;AAAA,IACA,uCAAuC;AAAA,MACnC,WAAW,cAAc,WAAW;AAAA,IACxC;AAAA,IACA,yCAAyC;AAAA,OACrC,iDAAgB,oBACZ,iBAAiB,cAAc;AAAA,IACvC;AAAA,IACA,iCAAiC;AAAA,IACjC,oCAAoC;AAAA,EACxC;AAEA,MAAI,oBAAoB,CAAC,iBAAiB,QAAQ;AAC9C,UAAM,4CAA4C;AAAA,EACtD;AAEA,MACI,6BACA,CAAC,0BAA0B,YAAY,MAAM,QAC/C;AACE,UAAM,6CAA6C;AAAA,EACvD;AAEA,MACI,uBAAc,yBAAyB,MAAM,gBAC7C,CAAC,gBAAgB,UAAU,SAAS,+BAA+B,KACnE,CAAC,gBAAgB,UAAU,SAAS,4BAA4B,GAClE;AACE,QACI,gBAAgB,UAAU;AAAA,MACtB;AAAA,IACJ,GACF;AACE,YAAM,qCAAqC;AAAA,IAC/C,OAAO;AACH,YAAM,kCAAkC;AAAA,IAC5C;AAAA,EACJ;AAEA,QAAM,aAAa,OAAO,OAAO,KAAK,EAAE,KAAK,OAAO;AACpD,QAAM,SAAS,iBAAiB,OAAO;AAAA,IACnC,YAAW,4EAA2B,UAA3B,mBAAkC;AAAA,EACjD,CAAC;AAED,SAAO,EAAE,YAAY,OAAO;AAChC;","names":["Config"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/isFieldDisabled.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { ISchemaFieldMap } from \"./types/index.types\";\nimport { VisualBuilder } from \"..\";\nimport { FieldDetails } from \"../components/FieldToolbar\";\nimport { EntryPermissions } from \"./getEntryPermissions\";\nimport { WorkflowStageDetails } from \"./getWorkflowStageDetails\";\nimport { ResolvedVariantPermissions } from \"./getResolvedVariantPermissions\";\n\nexport const DisableReason = {\n ReadOnly: \"You have only read access to this field\",\n LocalizedEntry: \"Editing this field is restricted in localized entries\",\n ResolvedVariantPermissions: \"This field does not exist in the selected variant\",\n UnlinkedVariant:\n \"This field is not editable as it is not linked to the selected variant.\",\n CanLinkVariant: \"Click here to link a variant\",\n UnderlinedAndClickableWord: \"here\",\n CannotLinkVariant: \"Contact your stack admin or owner to link it.\",\n AudienceMode:\n \"To edit an experience, open the Audience widget and click the Edit icon.\",\n DisabledVariant:\n \"This field is not editable as it doesn't match the selected variant\",\n UnlocalizedVariant: \"This field is not editable as it is not localized\",\n None: \"\",\n EntryUpdateRestricted: \"You do not have permission to edit this entry\",\n WorkflowStagePermission: ({ stageName }: { stageName: string }) =>\n `You do not have Edit access to this entry on the '${stageName}' workflow stage`,\n EntryUpdateRestrictedRoleAndWorkflowStage: ({\n stageName,\n }: {\n stageName: string;\n }) =>\n `Editing is restricted for your role or by the rules for the '${stageName}' stage. Contact your admin for edit access.`,\n} as const;\n\ninterface FieldDisableState {\n isDisabled: boolean;\n reason: string;\n}\n\nconst getDisableReason = (\n flags: Record<string, boolean>,\n params?: Record<string, any>\n) => {\n if (flags.updateRestrictDueToRole) return DisableReason.ReadOnly;\n if (flags.updateRestrictDueToNonLocalizableFields)\n return DisableReason.LocalizedEntry;\n if (flags.updateRestrictDueToUnlocalizedVariant)\n return DisableReason.UnlocalizedVariant;\n if (flags.updateRestrictDueToUnlinkVariant) {\n return flags.canLinkVariant\n ? `${DisableReason.UnlinkedVariant} ${DisableReason.CanLinkVariant} `\n : `${DisableReason.UnlinkedVariant} ${DisableReason.CannotLinkVariant}`;\n }\n if (flags.updateRestrictDueToAudienceMode)\n return DisableReason.AudienceMode;\n if (flags.updateRestrictDueToDisabledVariant)\n return DisableReason.DisabledVariant;\n if (\n flags.updateRestrictDueToEntryUpdateRestriction &&\n flags.updateRestrictDueToWorkflowStagePermission\n ) {\n return DisableReason.EntryUpdateRestrictedRoleAndWorkflowStage({\n stageName: params?.stageName ? params.stageName : \"Unknown\",\n });\n }\n if (flags.updateRestrictDueToEntryUpdateRestriction) {\n return DisableReason.EntryUpdateRestricted;\n }\n if (flags.updateRestrictDueToWorkflowStagePermission) {\n return DisableReason.WorkflowStagePermission({\n stageName: params?.stageName ? params.stageName : \"Unknown\",\n });\n }\n if(flags.updateRestrictDueToResolvedVariantPermissions) {\n return DisableReason.ResolvedVariantPermissions;\n }\n return DisableReason.None;\n};\n\nexport const isFieldDisabled = (\n fieldSchemaMap: ISchemaFieldMap,\n eventFieldDetails: FieldDetails,\n resolvedVariantPermissions?: ResolvedVariantPermissions,\n entryPermissions?: EntryPermissions,\n entryWorkflowStageDetails?: WorkflowStageDetails,\n): FieldDisableState => {\n const { editableElement, fieldMetadata } = eventFieldDetails;\n const masterLocale = Config.get().stackDetails.masterLocale || \"en-us\";\n const { locale: cmsLocale, variant } =\n VisualBuilder.VisualBuilderGlobalState.value;\n\n const flags: Record<string, boolean> = {\n updateRestrictDueToRole: Boolean(\n fieldSchemaMap?.field_metadata?.updateRestrict\n ),\n updateRestrictDueToUnlinkVariant: Boolean(\n fieldSchemaMap?.field_metadata?.isUnlinkedVariant\n ),\n canLinkVariant: Boolean(fieldSchemaMap?.field_metadata?.canLinkVariant),\n updateRestrictDueToUnlocalizedVariant: Boolean(\n variant && fieldMetadata.locale !== cmsLocale\n ),\n updateRestrictDueToNonLocalizableFields: Boolean(\n fieldSchemaMap?.non_localizable &&\n masterLocale !== fieldMetadata.locale\n ),\n updateRestrictDueToResolvedVariantPermissions: resolvedVariantPermissions ? Boolean(\n !resolvedVariantPermissions.update\n ) : false,\n updateRestrictDueToAudienceMode: false,\n updateRestrictDueToDisabledVariant: false,\n };\n\n if (entryPermissions && !entryPermissions.update) {\n flags.updateRestrictDueToEntryUpdateRestriction = true;\n }\n\n if (\n entryWorkflowStageDetails &&\n !entryWorkflowStageDetails.permissions.entry.update\n ) {\n flags.updateRestrictDueToWorkflowStagePermission = true;\n }\n\n if(VisualBuilder.VisualBuilderGlobalState.value.audienceMode\n && editableElement.classList.contains(\"visual-builder__lower-order-variant-field\")) {\n // If resolvedVariantPermissions errors out for any reason, we need to disable editing\n // for lower order (priority) variant fields with updateRestrictDueToDisabledVariant's message\n flags.updateRestrictDueToDisabledVariant = resolvedVariantPermissions ? !!resolvedVariantPermissions.error : false;\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value.audienceMode &&\n !editableElement.classList.contains(\"visual-builder__variant-field\") &&\n !editableElement.classList.contains(\"visual-builder__base-field\")\n ) {\n if (\n editableElement.classList.contains(\n \"visual-builder__disabled-variant-field\"\n )\n ) {\n flags.updateRestrictDueToDisabledVariant = true;\n } else {\n flags.updateRestrictDueToAudienceMode = true;\n }\n }\n\n const isDisabled = Object.values(flags).some(Boolean);\n const reason = getDisableReason(flags, {\n stageName: entryWorkflowStageDetails?.stage?.name,\n });\n\n return { isDisabled, reason };\n};\n"],"mappings":"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","names":["Config"]}
@@ -2,14 +2,35 @@ import { ISchemaFieldMap } from './types/index.types.cjs';
2
2
  import { FieldDetails } from '../components/FieldToolbar.cjs';
3
3
  import { EntryPermissions } from './getEntryPermissions.cjs';
4
4
  import { WorkflowStageDetails } from './getWorkflowStageDetails.cjs';
5
+ import { ResolvedVariantPermissions } from './getResolvedVariantPermissions.cjs';
5
6
  import '../../cms/types/contentTypeSchema.types.cjs';
6
7
  import '../types/visualBuilder.types.cjs';
7
8
  import '../../cslp/types/cslp.types.cjs';
8
9
 
10
+ declare const DisableReason: {
11
+ readonly ReadOnly: "You have only read access to this field";
12
+ readonly LocalizedEntry: "Editing this field is restricted in localized entries";
13
+ readonly ResolvedVariantPermissions: "This field does not exist in the selected variant";
14
+ readonly UnlinkedVariant: "This field is not editable as it is not linked to the selected variant.";
15
+ readonly CanLinkVariant: "Click here to link a variant";
16
+ readonly UnderlinedAndClickableWord: "here";
17
+ readonly CannotLinkVariant: "Contact your stack admin or owner to link it.";
18
+ readonly AudienceMode: "To edit an experience, open the Audience widget and click the Edit icon.";
19
+ readonly DisabledVariant: "This field is not editable as it doesn't match the selected variant";
20
+ readonly UnlocalizedVariant: "This field is not editable as it is not localized";
21
+ readonly None: "";
22
+ readonly EntryUpdateRestricted: "You do not have permission to edit this entry";
23
+ readonly WorkflowStagePermission: ({ stageName }: {
24
+ stageName: string;
25
+ }) => string;
26
+ readonly EntryUpdateRestrictedRoleAndWorkflowStage: ({ stageName, }: {
27
+ stageName: string;
28
+ }) => string;
29
+ };
9
30
  interface FieldDisableState {
10
31
  isDisabled: boolean;
11
32
  reason: string;
12
33
  }
13
- declare const isFieldDisabled: (fieldSchemaMap: ISchemaFieldMap, eventFieldDetails: FieldDetails, entryPermissions?: EntryPermissions, entryWorkflowStageDetails?: WorkflowStageDetails) => FieldDisableState;
34
+ declare const isFieldDisabled: (fieldSchemaMap: ISchemaFieldMap, eventFieldDetails: FieldDetails, resolvedVariantPermissions?: ResolvedVariantPermissions, entryPermissions?: EntryPermissions, entryWorkflowStageDetails?: WorkflowStageDetails) => FieldDisableState;
14
35
 
15
- export { isFieldDisabled };
36
+ export { DisableReason, isFieldDisabled };
@@ -2,14 +2,35 @@ import { ISchemaFieldMap } from './types/index.types.js';
2
2
  import { FieldDetails } from '../components/FieldToolbar.js';
3
3
  import { EntryPermissions } from './getEntryPermissions.js';
4
4
  import { WorkflowStageDetails } from './getWorkflowStageDetails.js';
5
+ import { ResolvedVariantPermissions } from './getResolvedVariantPermissions.js';
5
6
  import '../../cms/types/contentTypeSchema.types.js';
6
7
  import '../types/visualBuilder.types.js';
7
8
  import '../../cslp/types/cslp.types.js';
8
9
 
10
+ declare const DisableReason: {
11
+ readonly ReadOnly: "You have only read access to this field";
12
+ readonly LocalizedEntry: "Editing this field is restricted in localized entries";
13
+ readonly ResolvedVariantPermissions: "This field does not exist in the selected variant";
14
+ readonly UnlinkedVariant: "This field is not editable as it is not linked to the selected variant.";
15
+ readonly CanLinkVariant: "Click here to link a variant";
16
+ readonly UnderlinedAndClickableWord: "here";
17
+ readonly CannotLinkVariant: "Contact your stack admin or owner to link it.";
18
+ readonly AudienceMode: "To edit an experience, open the Audience widget and click the Edit icon.";
19
+ readonly DisabledVariant: "This field is not editable as it doesn't match the selected variant";
20
+ readonly UnlocalizedVariant: "This field is not editable as it is not localized";
21
+ readonly None: "";
22
+ readonly EntryUpdateRestricted: "You do not have permission to edit this entry";
23
+ readonly WorkflowStagePermission: ({ stageName }: {
24
+ stageName: string;
25
+ }) => string;
26
+ readonly EntryUpdateRestrictedRoleAndWorkflowStage: ({ stageName, }: {
27
+ stageName: string;
28
+ }) => string;
29
+ };
9
30
  interface FieldDisableState {
10
31
  isDisabled: boolean;
11
32
  reason: string;
12
33
  }
13
- declare const isFieldDisabled: (fieldSchemaMap: ISchemaFieldMap, eventFieldDetails: FieldDetails, entryPermissions?: EntryPermissions, entryWorkflowStageDetails?: WorkflowStageDetails) => FieldDisableState;
34
+ declare const isFieldDisabled: (fieldSchemaMap: ISchemaFieldMap, eventFieldDetails: FieldDetails, resolvedVariantPermissions?: ResolvedVariantPermissions, entryPermissions?: EntryPermissions, entryWorkflowStageDetails?: WorkflowStageDetails) => FieldDisableState;
14
35
 
15
- export { isFieldDisabled };
36
+ export { DisableReason, isFieldDisabled };