@contentstack/live-preview-utils 4.2.1 → 4.4.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 (238) hide show
  1. package/README.md +96 -30
  2. package/dist/legacy/configManager/config.default.cjs +4 -2
  3. package/dist/legacy/configManager/config.default.cjs.map +1 -1
  4. package/dist/legacy/configManager/config.default.d.cts +1 -1
  5. package/dist/legacy/configManager/config.default.d.ts +1 -1
  6. package/dist/legacy/configManager/config.default.js +4 -2
  7. package/dist/legacy/configManager/config.default.js.map +1 -1
  8. package/dist/legacy/configManager/handleUserConfig.cjs +4 -0
  9. package/dist/legacy/configManager/handleUserConfig.cjs.map +1 -1
  10. package/dist/legacy/configManager/handleUserConfig.js +4 -0
  11. package/dist/legacy/configManager/handleUserConfig.js.map +1 -1
  12. package/dist/legacy/cslp/cslpdata.cjs +28 -3
  13. package/dist/legacy/cslp/cslpdata.cjs.map +1 -1
  14. package/dist/legacy/cslp/cslpdata.d.cts +27 -1
  15. package/dist/legacy/cslp/cslpdata.d.ts +27 -1
  16. package/dist/legacy/cslp/cslpdata.js +26 -2
  17. package/dist/legacy/cslp/cslpdata.js.map +1 -1
  18. package/dist/legacy/cslp/index.d.cts +1 -1
  19. package/dist/legacy/cslp/index.d.ts +1 -1
  20. package/dist/legacy/light-sdk.cjs +1 -1
  21. package/dist/legacy/light-sdk.js +1 -1
  22. package/dist/legacy/livePreview/editButton/editButton.cjs +3 -1
  23. package/dist/legacy/livePreview/editButton/editButton.cjs.map +1 -1
  24. package/dist/legacy/livePreview/editButton/editButton.js +4 -2
  25. package/dist/legacy/livePreview/editButton/editButton.js.map +1 -1
  26. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +11 -6
  27. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
  28. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +11 -6
  29. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
  30. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
  31. package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
  32. package/dist/legacy/timeline/compare/compare.cjs +3 -1
  33. package/dist/legacy/timeline/compare/compare.cjs.map +1 -1
  34. package/dist/legacy/timeline/compare/compare.js +3 -1
  35. package/dist/legacy/timeline/compare/compare.js.map +1 -1
  36. package/dist/legacy/types/types.cjs.map +1 -1
  37. package/dist/legacy/types/types.d.cts +2 -0
  38. package/dist/legacy/types/types.d.ts +2 -0
  39. package/dist/legacy/types/types.js.map +1 -1
  40. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs +112 -28
  41. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  42. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js +114 -30
  43. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  44. package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs +3 -2
  45. package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs.map +1 -1
  46. package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js +3 -2
  47. package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js.map +1 -1
  48. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +2 -2
  49. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -1
  50. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +3 -3
  51. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -1
  52. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +1 -1
  53. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
  54. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js +2 -2
  55. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
  56. package/dist/legacy/visualBuilder/generators/generateEmptyBlock.cjs +1 -1
  57. package/dist/legacy/visualBuilder/generators/generateEmptyBlock.cjs.map +1 -1
  58. package/dist/legacy/visualBuilder/generators/generateEmptyBlock.js +2 -2
  59. package/dist/legacy/visualBuilder/generators/generateEmptyBlock.js.map +1 -1
  60. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs +2 -1
  61. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
  62. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js +2 -1
  63. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
  64. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs +1 -1
  65. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  66. package/dist/legacy/visualBuilder/generators/generateOverlay.js +2 -2
  67. package/dist/legacy/visualBuilder/generators/generateOverlay.js.map +1 -1
  68. package/dist/legacy/visualBuilder/generators/generateThread.d.cts +1 -1
  69. package/dist/legacy/visualBuilder/generators/generateThread.d.ts +1 -1
  70. package/dist/legacy/visualBuilder/index.cjs +1 -1
  71. package/dist/legacy/visualBuilder/index.cjs.map +1 -1
  72. package/dist/legacy/visualBuilder/index.js +2 -2
  73. package/dist/legacy/visualBuilder/index.js.map +1 -1
  74. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +14 -10
  75. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  76. package/dist/legacy/visualBuilder/listeners/mouseClick.js +14 -10
  77. package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
  78. package/dist/legacy/visualBuilder/utils/collabUtils.d.cts +1 -1
  79. package/dist/legacy/visualBuilder/utils/collabUtils.d.ts +1 -1
  80. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs +3 -3
  81. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  82. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js +4 -4
  83. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  84. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +1 -1
  85. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
  86. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +2 -2
  87. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
  88. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +2 -2
  89. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  90. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +3 -3
  91. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  92. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs +4 -0
  93. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -1
  94. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.cts +8 -1
  95. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.ts +8 -1
  96. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js +4 -0
  97. package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -1
  98. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs +41 -6
  99. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  100. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.cts +9 -1
  101. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.ts +9 -1
  102. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js +41 -6
  103. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  104. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +1 -0
  105. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  106. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +1 -0
  107. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +1 -0
  108. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +1 -0
  109. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  110. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +1 -1
  111. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  112. package/dist/legacy/visualBuilder/utils/updateFocussedState.js +2 -2
  113. package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
  114. package/dist/legacy/visualBuilder/visualBuilder.style.cjs +30 -0
  115. package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
  116. package/dist/legacy/visualBuilder/visualBuilder.style.d.cts +5 -0
  117. package/dist/legacy/visualBuilder/visualBuilder.style.d.ts +5 -0
  118. package/dist/legacy/visualBuilder/visualBuilder.style.js +30 -0
  119. package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
  120. package/dist/modern/configManager/config.default.cjs +4 -2
  121. package/dist/modern/configManager/config.default.cjs.map +1 -1
  122. package/dist/modern/configManager/config.default.d.cts +1 -1
  123. package/dist/modern/configManager/config.default.d.ts +1 -1
  124. package/dist/modern/configManager/config.default.js +4 -2
  125. package/dist/modern/configManager/config.default.js.map +1 -1
  126. package/dist/modern/configManager/handleUserConfig.cjs +4 -0
  127. package/dist/modern/configManager/handleUserConfig.cjs.map +1 -1
  128. package/dist/modern/configManager/handleUserConfig.js +4 -0
  129. package/dist/modern/configManager/handleUserConfig.js.map +1 -1
  130. package/dist/modern/cslp/cslpdata.cjs +28 -3
  131. package/dist/modern/cslp/cslpdata.cjs.map +1 -1
  132. package/dist/modern/cslp/cslpdata.d.cts +27 -1
  133. package/dist/modern/cslp/cslpdata.d.ts +27 -1
  134. package/dist/modern/cslp/cslpdata.js +26 -2
  135. package/dist/modern/cslp/cslpdata.js.map +1 -1
  136. package/dist/modern/cslp/index.d.cts +1 -1
  137. package/dist/modern/cslp/index.d.ts +1 -1
  138. package/dist/modern/light-sdk.cjs +1 -1
  139. package/dist/modern/light-sdk.js +1 -1
  140. package/dist/modern/livePreview/editButton/editButton.cjs +3 -1
  141. package/dist/modern/livePreview/editButton/editButton.cjs.map +1 -1
  142. package/dist/modern/livePreview/editButton/editButton.js +4 -2
  143. package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
  144. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +11 -6
  145. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
  146. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +11 -6
  147. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
  148. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  149. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  150. package/dist/modern/timeline/compare/compare.cjs +3 -1
  151. package/dist/modern/timeline/compare/compare.cjs.map +1 -1
  152. package/dist/modern/timeline/compare/compare.js +3 -1
  153. package/dist/modern/timeline/compare/compare.js.map +1 -1
  154. package/dist/modern/types/types.cjs.map +1 -1
  155. package/dist/modern/types/types.d.cts +2 -0
  156. package/dist/modern/types/types.d.ts +2 -0
  157. package/dist/modern/types/types.js.map +1 -1
  158. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs +111 -28
  159. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  160. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js +113 -30
  161. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  162. package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs +3 -2
  163. package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs.map +1 -1
  164. package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js +3 -2
  165. package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js.map +1 -1
  166. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +2 -2
  167. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -1
  168. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +3 -3
  169. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -1
  170. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +1 -1
  171. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
  172. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js +2 -2
  173. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
  174. package/dist/modern/visualBuilder/generators/generateEmptyBlock.cjs +1 -1
  175. package/dist/modern/visualBuilder/generators/generateEmptyBlock.cjs.map +1 -1
  176. package/dist/modern/visualBuilder/generators/generateEmptyBlock.js +2 -2
  177. package/dist/modern/visualBuilder/generators/generateEmptyBlock.js.map +1 -1
  178. package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs +2 -1
  179. package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
  180. package/dist/modern/visualBuilder/generators/generateHighlightedComment.js +2 -1
  181. package/dist/modern/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
  182. package/dist/modern/visualBuilder/generators/generateOverlay.cjs +1 -1
  183. package/dist/modern/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  184. package/dist/modern/visualBuilder/generators/generateOverlay.js +2 -2
  185. package/dist/modern/visualBuilder/generators/generateOverlay.js.map +1 -1
  186. package/dist/modern/visualBuilder/generators/generateThread.d.cts +1 -1
  187. package/dist/modern/visualBuilder/generators/generateThread.d.ts +1 -1
  188. package/dist/modern/visualBuilder/index.cjs +1 -1
  189. package/dist/modern/visualBuilder/index.cjs.map +1 -1
  190. package/dist/modern/visualBuilder/index.js +2 -2
  191. package/dist/modern/visualBuilder/index.js.map +1 -1
  192. package/dist/modern/visualBuilder/listeners/mouseClick.cjs +14 -10
  193. package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  194. package/dist/modern/visualBuilder/listeners/mouseClick.js +14 -10
  195. package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
  196. package/dist/modern/visualBuilder/utils/collabUtils.d.cts +1 -1
  197. package/dist/modern/visualBuilder/utils/collabUtils.d.ts +1 -1
  198. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs +3 -3
  199. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  200. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js +4 -4
  201. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  202. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +1 -1
  203. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
  204. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +2 -2
  205. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
  206. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +2 -2
  207. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  208. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +3 -3
  209. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  210. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs +4 -0
  211. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -1
  212. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.cts +8 -1
  213. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.ts +8 -1
  214. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js +4 -0
  215. package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -1
  216. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs +40 -6
  217. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  218. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.cts +9 -1
  219. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.ts +9 -1
  220. package/dist/modern/visualBuilder/utils/isFieldDisabled.js +40 -6
  221. package/dist/modern/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  222. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +1 -0
  223. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  224. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +1 -0
  225. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +1 -0
  226. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +1 -0
  227. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  228. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +1 -1
  229. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  230. package/dist/modern/visualBuilder/utils/updateFocussedState.js +2 -2
  231. package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
  232. package/dist/modern/visualBuilder/visualBuilder.style.cjs +30 -0
  233. package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
  234. package/dist/modern/visualBuilder/visualBuilder.style.d.cts +5 -0
  235. package/dist/modern/visualBuilder/visualBuilder.style.d.ts +5 -0
  236. package/dist/modern/visualBuilder/visualBuilder.style.js +30 -0
  237. package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
  238. package/package.json +3 -3
@@ -2,7 +2,7 @@ import "../../chunk-5WRI5ZAA.js";
2
2
 
3
3
  // src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts
4
4
  import Config from "../../configManager/configManager.js";
5
- import { extractDetailsFromCslp } from "../../cslp/index.js";
5
+ import { extractDetailsFromCslp, isValidCslp } from "../../cslp/index.js";
6
6
  function getVisualBuilderRedirectionUrl() {
7
7
  const { stackDetails, clientUrlParams } = Config.get();
8
8
  const { branch, apiKey, environment, locale } = stackDetails;
@@ -19,7 +19,7 @@ function getVisualBuilderRedirectionUrl() {
19
19
  let localeToUse = locale;
20
20
  if (elementWithDataCslp) {
21
21
  const cslpData = elementWithDataCslp.getAttribute("data-cslp");
22
- if (cslpData) {
22
+ if (isValidCslp(cslpData)) {
23
23
  const { locale: cslpLocale } = extractDetailsFromCslp(cslpData);
24
24
  localeToUse = cslpLocale;
25
25
  }
@@ -28,7 +28,7 @@ function getVisualBuilderRedirectionUrl() {
28
28
  searchParams.set("locale", localeToUse);
29
29
  }
30
30
  const completeURL = new URL(
31
- `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,
31
+ `/#!/stack/${apiKey}/visual-editor?${searchParams.toString()}`,
32
32
  appUrl
33
33
  );
34
34
  return completeURL;
@@ -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 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":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { extractDetailsFromCslp, isValidCslp } 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 (isValidCslp(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-editor?${searchParams.toString()}`,\n appUrl\n );\n return completeURL;\n}\n"],"mappings":";;;AAAA,OAAO,YAAY;AACnB,SAAS,wBAAwB,mBAAmB;AAMrC,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,YAAY,QAAQ,GAAG;AACvB,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,kBAAkB,aAAa,SAAS,CAAC;AAAA,IAC5D;AAAA,EACJ;AACA,SAAO;AACX;","names":[]}
@@ -68,6 +68,10 @@ async function getWorkflowStageDetails({
68
68
  entry: {
69
69
  update: true
70
70
  }
71
+ },
72
+ requestEditAccess: {
73
+ canRequest: false,
74
+ hasPending: false
71
75
  }
72
76
  };
73
77
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getWorkflowStageDetails.ts"],"sourcesContent":["import { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\n\nexport async function getWorkflowStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n}: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n variantUid?: string | undefined;\n}): Promise<WorkflowStageDetails> {\n try {\n const result =\n await visualBuilderPostMessage?.send<WorkflowStageDetails>(\n VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS,\n {\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n }\n );\n if (result) {\n return result;\n }\n } catch (e) {\n console.debug(\n \"[Visual Builder] Error fetching workflow stage details\",\n e\n );\n }\n // allow editing when things go wrong,\n return {\n stage: {\n name: \"Unknown\",\n },\n permissions: {\n entry: {\n update: true,\n },\n },\n };\n}\n\nexport interface WorkflowStageDetails {\n stage:\n | {\n name: string;\n }\n | undefined;\n permissions: {\n entry: {\n update: boolean;\n };\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA+C;AAC/C,sCAAqC;AAErC,eAAsB,wBAAwB;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAKkC;AAC9B,MAAI;AACA,UAAM,SACF,MAAM,gCAAAA,SAA0B;AAAA,MAC5B,kDAA+B;AAAA,MAC/B;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACJ,QAAI,QAAQ;AACR,aAAO;AAAA,IACX;AAAA,EACJ,SAAS,GAAG;AACR,YAAQ;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,OAAO;AAAA,MACH,MAAM;AAAA,IACV;AAAA,IACA,aAAa;AAAA,MACT,OAAO;AAAA,QACH,QAAQ;AAAA,MACZ;AAAA,IACJ;AAAA,EACJ;AACJ;","names":["visualBuilderPostMessage"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getWorkflowStageDetails.ts"],"sourcesContent":["import { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\n\nexport async function getWorkflowStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n}: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n variantUid?: string | undefined;\n}): Promise<WorkflowStageDetails> {\n try {\n const result =\n await visualBuilderPostMessage?.send<WorkflowStageDetails>(\n VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS,\n {\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n }\n );\n if (result) {\n return result;\n }\n } catch (e) {\n console.debug(\n \"[Visual Builder] Error fetching workflow stage details\",\n e\n );\n }\n // allow editing when things go wrong,\n return {\n stage: {\n name: \"Unknown\",\n },\n permissions: {\n entry: {\n update: true,\n },\n },\n requestEditAccess: {\n canRequest: false,\n hasPending: false,\n },\n };\n}\n\n/** Mirrors visual-editor GET_WORKFLOW_STAGE_DETAILS payload (QuickForm / canvas alignment). */\nexport interface WorkflowStageRequestEditAccess {\n canRequest: boolean;\n hasPending: boolean;\n}\n\nexport interface WorkflowStageDetails {\n stage:\n | {\n name: string;\n }\n | undefined;\n permissions: {\n entry: {\n update: boolean;\n };\n };\n /** Present when returned by visual-editor; omitted in legacy SDK-only fallbacks. */\n requestEditAccess?: WorkflowStageRequestEditAccess;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA+C;AAC/C,sCAAqC;AAErC,eAAsB,wBAAwB;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAKkC;AAC9B,MAAI;AACA,UAAM,SACF,MAAM,gCAAAA,SAA0B;AAAA,MAC5B,kDAA+B;AAAA,MAC/B;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACJ,QAAI,QAAQ;AACR,aAAO;AAAA,IACX;AAAA,EACJ,SAAS,GAAG;AACR,YAAQ;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,OAAO;AAAA,MACH,MAAM;AAAA,IACV;AAAA,IACA,aAAa;AAAA,MACT,OAAO;AAAA,QACH,QAAQ;AAAA,MACZ;AAAA,IACJ;AAAA,IACA,mBAAmB;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,IAChB;AAAA,EACJ;AACJ;","names":["visualBuilderPostMessage"]}
@@ -4,6 +4,11 @@ declare function getWorkflowStageDetails({ entryUid, contentTypeUid, locale, var
4
4
  locale: string;
5
5
  variantUid?: string | undefined;
6
6
  }): Promise<WorkflowStageDetails>;
7
+ /** Mirrors visual-editor GET_WORKFLOW_STAGE_DETAILS payload (QuickForm / canvas alignment). */
8
+ interface WorkflowStageRequestEditAccess {
9
+ canRequest: boolean;
10
+ hasPending: boolean;
11
+ }
7
12
  interface WorkflowStageDetails {
8
13
  stage: {
9
14
  name: string;
@@ -13,6 +18,8 @@ interface WorkflowStageDetails {
13
18
  update: boolean;
14
19
  };
15
20
  };
21
+ /** Present when returned by visual-editor; omitted in legacy SDK-only fallbacks. */
22
+ requestEditAccess?: WorkflowStageRequestEditAccess;
16
23
  }
17
24
 
18
- export { type WorkflowStageDetails, getWorkflowStageDetails };
25
+ export { type WorkflowStageDetails, type WorkflowStageRequestEditAccess, getWorkflowStageDetails };
@@ -4,6 +4,11 @@ declare function getWorkflowStageDetails({ entryUid, contentTypeUid, locale, var
4
4
  locale: string;
5
5
  variantUid?: string | undefined;
6
6
  }): Promise<WorkflowStageDetails>;
7
+ /** Mirrors visual-editor GET_WORKFLOW_STAGE_DETAILS payload (QuickForm / canvas alignment). */
8
+ interface WorkflowStageRequestEditAccess {
9
+ canRequest: boolean;
10
+ hasPending: boolean;
11
+ }
7
12
  interface WorkflowStageDetails {
8
13
  stage: {
9
14
  name: string;
@@ -13,6 +18,8 @@ interface WorkflowStageDetails {
13
18
  update: boolean;
14
19
  };
15
20
  };
21
+ /** Present when returned by visual-editor; omitted in legacy SDK-only fallbacks. */
22
+ requestEditAccess?: WorkflowStageRequestEditAccess;
16
23
  }
17
24
 
18
- export { type WorkflowStageDetails, getWorkflowStageDetails };
25
+ export { type WorkflowStageDetails, type WorkflowStageRequestEditAccess, getWorkflowStageDetails };
@@ -36,6 +36,10 @@ async function getWorkflowStageDetails({
36
36
  entry: {
37
37
  update: true
38
38
  }
39
+ },
40
+ requestEditAccess: {
41
+ canRequest: false,
42
+ hasPending: false
39
43
  }
40
44
  };
41
45
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getWorkflowStageDetails.ts"],"sourcesContent":["import { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\n\nexport async function getWorkflowStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n}: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n variantUid?: string | undefined;\n}): Promise<WorkflowStageDetails> {\n try {\n const result =\n await visualBuilderPostMessage?.send<WorkflowStageDetails>(\n VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS,\n {\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n }\n );\n if (result) {\n return result;\n }\n } catch (e) {\n console.debug(\n \"[Visual Builder] Error fetching workflow stage details\",\n e\n );\n }\n // allow editing when things go wrong,\n return {\n stage: {\n name: \"Unknown\",\n },\n permissions: {\n entry: {\n update: true,\n },\n },\n };\n}\n\nexport interface WorkflowStageDetails {\n stage:\n | {\n name: string;\n }\n | undefined;\n permissions: {\n entry: {\n update: boolean;\n };\n };\n}\n"],"mappings":";;;AAAA,SAAS,sCAAsC;AAC/C,OAAO,8BAA8B;AAErC,eAAsB,wBAAwB;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAKkC;AAC9B,MAAI;AACA,UAAM,SACF,MAAM,0BAA0B;AAAA,MAC5B,+BAA+B;AAAA,MAC/B;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACJ,QAAI,QAAQ;AACR,aAAO;AAAA,IACX;AAAA,EACJ,SAAS,GAAG;AACR,YAAQ;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,OAAO;AAAA,MACH,MAAM;AAAA,IACV;AAAA,IACA,aAAa;AAAA,MACT,OAAO;AAAA,QACH,QAAQ;AAAA,MACZ;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getWorkflowStageDetails.ts"],"sourcesContent":["import { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\n\nexport async function getWorkflowStageDetails({\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n}: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n variantUid?: string | undefined;\n}): Promise<WorkflowStageDetails> {\n try {\n const result =\n await visualBuilderPostMessage?.send<WorkflowStageDetails>(\n VisualBuilderPostMessageEvents.GET_WORKFLOW_STAGE_DETAILS,\n {\n entryUid,\n contentTypeUid,\n locale,\n variantUid,\n }\n );\n if (result) {\n return result;\n }\n } catch (e) {\n console.debug(\n \"[Visual Builder] Error fetching workflow stage details\",\n e\n );\n }\n // allow editing when things go wrong,\n return {\n stage: {\n name: \"Unknown\",\n },\n permissions: {\n entry: {\n update: true,\n },\n },\n requestEditAccess: {\n canRequest: false,\n hasPending: false,\n },\n };\n}\n\n/** Mirrors visual-editor GET_WORKFLOW_STAGE_DETAILS payload (QuickForm / canvas alignment). */\nexport interface WorkflowStageRequestEditAccess {\n canRequest: boolean;\n hasPending: boolean;\n}\n\nexport interface WorkflowStageDetails {\n stage:\n | {\n name: string;\n }\n | undefined;\n permissions: {\n entry: {\n update: boolean;\n };\n };\n /** Present when returned by visual-editor; omitted in legacy SDK-only fallbacks. */\n requestEditAccess?: WorkflowStageRequestEditAccess;\n}\n"],"mappings":";;;AAAA,SAAS,sCAAsC;AAC/C,OAAO,8BAA8B;AAErC,eAAsB,wBAAwB;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAKkC;AAC9B,MAAI;AACA,UAAM,SACF,MAAM,0BAA0B;AAAA,MAC5B,+BAA+B;AAAA,MAC/B;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACJ,QAAI,QAAQ;AACR,aAAO;AAAA,IACX;AAAA,EACJ,SAAS,GAAG;AACR,YAAQ;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,OAAO;AAAA,MACH,MAAM;AAAA,IACV;AAAA,IACA,aAAa;AAAA,MACT,OAAO;AAAA,QACH,QAAQ;AAAA,MACZ;AAAA,IACJ;AAAA,IACA,mBAAmB;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,IAChB;AAAA,EACJ;AACJ;","names":[]}
@@ -52,7 +52,9 @@ var DisableReason = {
52
52
  WorkflowStagePermission: ({ stageName }) => `You do not have Edit access to this entry on the '${stageName}' workflow stage`,
53
53
  EntryUpdateRestrictedRoleAndWorkflowStage: ({
54
54
  stageName
55
- }) => `Editing is restricted for your role or by the rules for the '${stageName}' stage. Contact your admin for edit access.`
55
+ }) => `Editing is restricted for your role or by the rules for the '${stageName}' stage. Contact your admin for edit access.`,
56
+ WorkflowStageRequestEdit: ({ stageName }) => `You do not have the edit access to this entry on the '${stageName}' workflow stage.`,
57
+ WorkflowStageRequestPending: ({ stageName }) => `You do not have the edit access to this entry on the '${stageName}' workflow stage. Your request has been sent and is awaiting approval.`
56
58
  };
57
59
  var getDisableReason = (flags, params) => {
58
60
  if (flags.updateRestrictDueToRole) return DisableReason.ReadOnly;
@@ -76,8 +78,23 @@ var getDisableReason = (flags, params) => {
76
78
  return DisableReason.EntryUpdateRestricted;
77
79
  }
78
80
  if (flags.updateRestrictDueToWorkflowStagePermission) {
81
+ const stageName = params?.stageName ? params.stageName : "Unknown";
82
+ const req = params?.entryWorkflowStageDetails?.requestEditAccess;
83
+ const entryAllowsUpdate = params?.entryPermissions == null || params.entryPermissions.update === true;
84
+ if (entryAllowsUpdate && !flags.updateRestrictDueToEntryUpdateRestriction && req) {
85
+ if (req.hasPending) {
86
+ return DisableReason.WorkflowStageRequestPending({
87
+ stageName
88
+ });
89
+ }
90
+ if (req.canRequest) {
91
+ return DisableReason.WorkflowStageRequestEdit({
92
+ stageName
93
+ });
94
+ }
95
+ }
79
96
  return DisableReason.WorkflowStagePermission({
80
- stageName: params?.stageName ? params.stageName : "Unknown"
97
+ stageName
81
98
  });
82
99
  }
83
100
  if (flags.updateRestrictDueToResolvedVariantPermissions) {
@@ -128,10 +145,27 @@ var isFieldDisabled = (fieldSchemaMap, eventFieldDetails, resolvedVariantPermiss
128
145
  }
129
146
  }
130
147
  const isDisabled = Object.values(flags).some(Boolean);
131
- const reason = getDisableReason(flags, {
132
- stageName: entryWorkflowStageDetails?.stage?.name
133
- });
134
- return { isDisabled, reason };
148
+ const getDisableReasonParams = {};
149
+ if (entryWorkflowStageDetails?.stage?.name !== void 0) {
150
+ getDisableReasonParams.stageName = entryWorkflowStageDetails.stage.name;
151
+ }
152
+ if (entryWorkflowStageDetails !== void 0) {
153
+ getDisableReasonParams.entryWorkflowStageDetails = entryWorkflowStageDetails;
154
+ }
155
+ if (entryPermissions !== void 0) {
156
+ getDisableReasonParams.entryPermissions = entryPermissions;
157
+ }
158
+ const reason = getDisableReason(flags, getDisableReasonParams);
159
+ let workflowRequestUi;
160
+ if (flags.updateRestrictDueToWorkflowStagePermission && !flags.updateRestrictDueToEntryUpdateRestriction && (entryPermissions == null || entryPermissions.update === true) && entryWorkflowStageDetails?.requestEditAccess) {
161
+ const req = entryWorkflowStageDetails.requestEditAccess;
162
+ if (req.hasPending) {
163
+ workflowRequestUi = "pending";
164
+ } else if (req.canRequest) {
165
+ workflowRequestUi = "request";
166
+ }
167
+ }
168
+ return workflowRequestUi !== void 0 ? { isDisabled, reason, workflowRequestUi } : { isDisabled, reason };
135
169
  };
136
170
  // Annotate the CommonJS export names for ESM import in node:
137
171
  0 && (module.exports = {
@@ -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\";\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"]}
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 WorkflowStageRequestEdit: ({ stageName }: { stageName: string }) =>\n `You do not have the edit access to this entry on the '${stageName}' workflow stage.`,\n WorkflowStageRequestPending: ({ stageName }: { stageName: string }) =>\n `You do not have the edit access to this entry on the '${stageName}' workflow stage. Your request has been sent and is awaiting approval.`,\n} as const;\n\nexport interface FieldDisableState {\n isDisabled: boolean;\n reason: string;\n /** Canvas: workflow stage lock with request-edit UX (see fieldLabelWrapper). */\n workflowRequestUi?: \"request\" | \"pending\";\n}\n\nconst getDisableReason = (\n flags: Record<string, boolean>,\n params?: {\n stageName?: string;\n entryWorkflowStageDetails?: WorkflowStageDetails;\n entryPermissions?: EntryPermissions;\n },\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 const stageName = params?.stageName ? params.stageName : \"Unknown\";\n const req = params?.entryWorkflowStageDetails?.requestEditAccess;\n const entryAllowsUpdate =\n params?.entryPermissions == null ||\n params.entryPermissions.update === true;\n if (\n entryAllowsUpdate &&\n !flags.updateRestrictDueToEntryUpdateRestriction &&\n req\n ) {\n if (req.hasPending) {\n return DisableReason.WorkflowStageRequestPending({\n stageName,\n });\n }\n if (req.canRequest) {\n return DisableReason.WorkflowStageRequestEdit({\n stageName,\n });\n }\n }\n return DisableReason.WorkflowStagePermission({\n stageName,\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\n const getDisableReasonParams: {\n stageName?: string;\n entryWorkflowStageDetails?: WorkflowStageDetails;\n entryPermissions?: EntryPermissions;\n } = {};\n if (entryWorkflowStageDetails?.stage?.name !== undefined) {\n getDisableReasonParams.stageName = entryWorkflowStageDetails.stage.name;\n }\n if (entryWorkflowStageDetails !== undefined) {\n getDisableReasonParams.entryWorkflowStageDetails =\n entryWorkflowStageDetails;\n }\n if (entryPermissions !== undefined) {\n getDisableReasonParams.entryPermissions = entryPermissions;\n }\n\n const reason = getDisableReason(flags, getDisableReasonParams);\n\n let workflowRequestUi: \"request\" | \"pending\" | undefined;\n if (\n flags.updateRestrictDueToWorkflowStagePermission &&\n !flags.updateRestrictDueToEntryUpdateRestriction &&\n (entryPermissions == null || entryPermissions.update === true) &&\n entryWorkflowStageDetails?.requestEditAccess\n ) {\n const req = entryWorkflowStageDetails.requestEditAccess;\n if (req.hasPending) {\n workflowRequestUi = \"pending\";\n } else if (req.canRequest) {\n workflowRequestUi = \"request\";\n }\n }\n\n return workflowRequestUi !== undefined\n ? { isDisabled, reason, workflowRequestUi }\n : { isDisabled, reason };\n};\n"],"mappings":"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","names":["Config"]}
@@ -26,11 +26,19 @@ declare const DisableReason: {
26
26
  readonly EntryUpdateRestrictedRoleAndWorkflowStage: ({ stageName, }: {
27
27
  stageName: string;
28
28
  }) => string;
29
+ readonly WorkflowStageRequestEdit: ({ stageName }: {
30
+ stageName: string;
31
+ }) => string;
32
+ readonly WorkflowStageRequestPending: ({ stageName }: {
33
+ stageName: string;
34
+ }) => string;
29
35
  };
30
36
  interface FieldDisableState {
31
37
  isDisabled: boolean;
32
38
  reason: string;
39
+ /** Canvas: workflow stage lock with request-edit UX (see fieldLabelWrapper). */
40
+ workflowRequestUi?: "request" | "pending";
33
41
  }
34
42
  declare const isFieldDisabled: (fieldSchemaMap: ISchemaFieldMap, eventFieldDetails: FieldDetails, resolvedVariantPermissions?: ResolvedVariantPermissions, entryPermissions?: EntryPermissions, entryWorkflowStageDetails?: WorkflowStageDetails) => FieldDisableState;
35
43
 
36
- export { DisableReason, isFieldDisabled };
44
+ export { DisableReason, type FieldDisableState, isFieldDisabled };
@@ -26,11 +26,19 @@ declare const DisableReason: {
26
26
  readonly EntryUpdateRestrictedRoleAndWorkflowStage: ({ stageName, }: {
27
27
  stageName: string;
28
28
  }) => string;
29
+ readonly WorkflowStageRequestEdit: ({ stageName }: {
30
+ stageName: string;
31
+ }) => string;
32
+ readonly WorkflowStageRequestPending: ({ stageName }: {
33
+ stageName: string;
34
+ }) => string;
29
35
  };
30
36
  interface FieldDisableState {
31
37
  isDisabled: boolean;
32
38
  reason: string;
39
+ /** Canvas: workflow stage lock with request-edit UX (see fieldLabelWrapper). */
40
+ workflowRequestUi?: "request" | "pending";
33
41
  }
34
42
  declare const isFieldDisabled: (fieldSchemaMap: ISchemaFieldMap, eventFieldDetails: FieldDetails, resolvedVariantPermissions?: ResolvedVariantPermissions, entryPermissions?: EntryPermissions, entryWorkflowStageDetails?: WorkflowStageDetails) => FieldDisableState;
35
43
 
36
- export { DisableReason, isFieldDisabled };
44
+ export { DisableReason, type FieldDisableState, isFieldDisabled };
@@ -19,7 +19,9 @@ var DisableReason = {
19
19
  WorkflowStagePermission: ({ stageName }) => `You do not have Edit access to this entry on the '${stageName}' workflow stage`,
20
20
  EntryUpdateRestrictedRoleAndWorkflowStage: ({
21
21
  stageName
22
- }) => `Editing is restricted for your role or by the rules for the '${stageName}' stage. Contact your admin for edit access.`
22
+ }) => `Editing is restricted for your role or by the rules for the '${stageName}' stage. Contact your admin for edit access.`,
23
+ WorkflowStageRequestEdit: ({ stageName }) => `You do not have the edit access to this entry on the '${stageName}' workflow stage.`,
24
+ WorkflowStageRequestPending: ({ stageName }) => `You do not have the edit access to this entry on the '${stageName}' workflow stage. Your request has been sent and is awaiting approval.`
23
25
  };
24
26
  var getDisableReason = (flags, params) => {
25
27
  if (flags.updateRestrictDueToRole) return DisableReason.ReadOnly;
@@ -43,8 +45,23 @@ var getDisableReason = (flags, params) => {
43
45
  return DisableReason.EntryUpdateRestricted;
44
46
  }
45
47
  if (flags.updateRestrictDueToWorkflowStagePermission) {
48
+ const stageName = params?.stageName ? params.stageName : "Unknown";
49
+ const req = params?.entryWorkflowStageDetails?.requestEditAccess;
50
+ const entryAllowsUpdate = params?.entryPermissions == null || params.entryPermissions.update === true;
51
+ if (entryAllowsUpdate && !flags.updateRestrictDueToEntryUpdateRestriction && req) {
52
+ if (req.hasPending) {
53
+ return DisableReason.WorkflowStageRequestPending({
54
+ stageName
55
+ });
56
+ }
57
+ if (req.canRequest) {
58
+ return DisableReason.WorkflowStageRequestEdit({
59
+ stageName
60
+ });
61
+ }
62
+ }
46
63
  return DisableReason.WorkflowStagePermission({
47
- stageName: params?.stageName ? params.stageName : "Unknown"
64
+ stageName
48
65
  });
49
66
  }
50
67
  if (flags.updateRestrictDueToResolvedVariantPermissions) {
@@ -95,10 +112,27 @@ var isFieldDisabled = (fieldSchemaMap, eventFieldDetails, resolvedVariantPermiss
95
112
  }
96
113
  }
97
114
  const isDisabled = Object.values(flags).some(Boolean);
98
- const reason = getDisableReason(flags, {
99
- stageName: entryWorkflowStageDetails?.stage?.name
100
- });
101
- return { isDisabled, reason };
115
+ const getDisableReasonParams = {};
116
+ if (entryWorkflowStageDetails?.stage?.name !== void 0) {
117
+ getDisableReasonParams.stageName = entryWorkflowStageDetails.stage.name;
118
+ }
119
+ if (entryWorkflowStageDetails !== void 0) {
120
+ getDisableReasonParams.entryWorkflowStageDetails = entryWorkflowStageDetails;
121
+ }
122
+ if (entryPermissions !== void 0) {
123
+ getDisableReasonParams.entryPermissions = entryPermissions;
124
+ }
125
+ const reason = getDisableReason(flags, getDisableReasonParams);
126
+ let workflowRequestUi;
127
+ if (flags.updateRestrictDueToWorkflowStagePermission && !flags.updateRestrictDueToEntryUpdateRestriction && (entryPermissions == null || entryPermissions.update === true) && entryWorkflowStageDetails?.requestEditAccess) {
128
+ const req = entryWorkflowStageDetails.requestEditAccess;
129
+ if (req.hasPending) {
130
+ workflowRequestUi = "pending";
131
+ } else if (req.canRequest) {
132
+ workflowRequestUi = "request";
133
+ }
134
+ }
135
+ return workflowRequestUi !== void 0 ? { isDisabled, reason, workflowRequestUi } : { isDisabled, reason };
102
136
  };
103
137
  export {
104
138
  DisableReason,
@@ -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\";\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":";;;AAAA,OAAO,YAAY;AAEnB,SAAS,qBAAqB;AAMvB,IAAM,gBAAgB;AAAA,EACzB,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,4BAA4B;AAAA,EAC5B,iBACI;AAAA,EACJ,gBAAgB;AAAA,EAChB,4BAA4B;AAAA,EAC5B,mBAAmB;AAAA,EACnB,cACI;AAAA,EACJ,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,kCAAkC;AACxC,WAAO,MAAM,iBACP,GAAG,cAAc,eAAe,IAAI,cAAc,cAAc,MAChE,GAAG,cAAc,eAAe,IAAI,cAAc,iBAAiB;AAAA,EAC7E;AACA,MAAI,MAAM;AACN,WAAO,cAAc;AACzB,MAAI,MAAM;AACN,WAAO,cAAc;AACzB,MACI,MAAM,6CACN,MAAM,4CACR;AACE,WAAO,cAAc,0CAA0C;AAAA,MAC3D,WAAW,QAAQ,YAAY,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,WAAW,QAAQ,YAAY,OAAO,YAAY;AAAA,IACtD,CAAC;AAAA,EACL;AACA,MAAG,MAAM,+CAA+C;AACpD,WAAO,cAAc;AAAA,EACzB;AACA,SAAO,cAAc;AACzB;AAEO,IAAM,kBAAkB,CAC3B,gBACA,mBACA,4BACA,kBACA,8BACoB;AACpB,QAAM,EAAE,iBAAiB,cAAc,IAAI;AAC3C,QAAM,eAAe,OAAO,IAAI,EAAE,aAAa,gBAAgB;AAC/D,QAAM,EAAE,QAAQ,WAAW,QAAQ,IAC/B,cAAc,yBAAyB;AAE3C,QAAM,QAAiC;AAAA,IACnC,yBAAyB;AAAA,MACrB,gBAAgB,gBAAgB;AAAA,IACpC;AAAA,IACA,kCAAkC;AAAA,MAC9B,gBAAgB,gBAAgB;AAAA,IACpC;AAAA,IACA,gBAAgB,QAAQ,gBAAgB,gBAAgB,cAAc;AAAA,IACtE,uCAAuC;AAAA,MACnC,WAAW,cAAc,WAAW;AAAA,IACxC;AAAA,IACA,yCAAyC;AAAA,MACrC,gBAAgB,mBACZ,iBAAiB,cAAc;AAAA,IACvC;AAAA,IACA,+CAA+C,6BAA6B;AAAA,MACxE,CAAC,2BAA2B;AAAA,IAChC,IAAI;AAAA,IACJ,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,MAAG,cAAc,yBAAyB,MAAM,gBACzC,gBAAgB,UAAU,SAAS,2CAA2C,GAAG;AAGpF,UAAM,qCAAqC,6BAA6B,CAAC,CAAC,2BAA2B,QAAQ;AAAA,EACjH;AAEA,MACI,cAAc,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,WAAW,2BAA2B,OAAO;AAAA,EACjD,CAAC;AAED,SAAO,EAAE,YAAY,OAAO;AAChC;","names":[]}
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 WorkflowStageRequestEdit: ({ stageName }: { stageName: string }) =>\n `You do not have the edit access to this entry on the '${stageName}' workflow stage.`,\n WorkflowStageRequestPending: ({ stageName }: { stageName: string }) =>\n `You do not have the edit access to this entry on the '${stageName}' workflow stage. Your request has been sent and is awaiting approval.`,\n} as const;\n\nexport interface FieldDisableState {\n isDisabled: boolean;\n reason: string;\n /** Canvas: workflow stage lock with request-edit UX (see fieldLabelWrapper). */\n workflowRequestUi?: \"request\" | \"pending\";\n}\n\nconst getDisableReason = (\n flags: Record<string, boolean>,\n params?: {\n stageName?: string;\n entryWorkflowStageDetails?: WorkflowStageDetails;\n entryPermissions?: EntryPermissions;\n },\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 const stageName = params?.stageName ? params.stageName : \"Unknown\";\n const req = params?.entryWorkflowStageDetails?.requestEditAccess;\n const entryAllowsUpdate =\n params?.entryPermissions == null ||\n params.entryPermissions.update === true;\n if (\n entryAllowsUpdate &&\n !flags.updateRestrictDueToEntryUpdateRestriction &&\n req\n ) {\n if (req.hasPending) {\n return DisableReason.WorkflowStageRequestPending({\n stageName,\n });\n }\n if (req.canRequest) {\n return DisableReason.WorkflowStageRequestEdit({\n stageName,\n });\n }\n }\n return DisableReason.WorkflowStagePermission({\n stageName,\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\n const getDisableReasonParams: {\n stageName?: string;\n entryWorkflowStageDetails?: WorkflowStageDetails;\n entryPermissions?: EntryPermissions;\n } = {};\n if (entryWorkflowStageDetails?.stage?.name !== undefined) {\n getDisableReasonParams.stageName = entryWorkflowStageDetails.stage.name;\n }\n if (entryWorkflowStageDetails !== undefined) {\n getDisableReasonParams.entryWorkflowStageDetails =\n entryWorkflowStageDetails;\n }\n if (entryPermissions !== undefined) {\n getDisableReasonParams.entryPermissions = entryPermissions;\n }\n\n const reason = getDisableReason(flags, getDisableReasonParams);\n\n let workflowRequestUi: \"request\" | \"pending\" | undefined;\n if (\n flags.updateRestrictDueToWorkflowStagePermission &&\n !flags.updateRestrictDueToEntryUpdateRestriction &&\n (entryPermissions == null || entryPermissions.update === true) &&\n entryWorkflowStageDetails?.requestEditAccess\n ) {\n const req = entryWorkflowStageDetails.requestEditAccess;\n if (req.hasPending) {\n workflowRequestUi = \"pending\";\n } else if (req.canRequest) {\n workflowRequestUi = \"request\";\n }\n }\n\n return workflowRequestUi !== undefined\n ? { isDisabled, reason, workflowRequestUi }\n : { isDisabled, reason };\n};\n"],"mappings":"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","names":[]}
@@ -57,6 +57,7 @@ var VisualBuilderPostMessageEvents = /* @__PURE__ */ ((VisualBuilderPostMessageE
57
57
  VisualBuilderPostMessageEvents2["GET_PERMISSIONS"] = "get-permissions";
58
58
  VisualBuilderPostMessageEvents2["GET_WORKFLOW_STAGE_DETAILS"] = "get-workflow-stage-details";
59
59
  VisualBuilderPostMessageEvents2["GET_RESOLVED_VARIANT_PERMISSIONS"] = "get-resolved-variant-permissions";
60
+ VisualBuilderPostMessageEvents2["OPEN_REQUEST_EDIT_ACCESS"] = "open-request-edit-access";
60
61
  VisualBuilderPostMessageEvents2["GET_ALL_ENTRIES_IN_CURRENT_PAGE"] = "get-entries-in-current-page";
61
62
  VisualBuilderPostMessageEvents2["HIDE_FOCUS_OVERLAY"] = "hide-focus-overlay";
62
63
  VisualBuilderPostMessageEvents2["SHOW_DRAFT_FIELDS"] = "show-draft-fields";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/visualBuilder/utils/types/postMessage.types.ts"],"sourcesContent":["export enum VisualBuilderPostMessageEvents {\n INIT = \"init\",\n ADD_INSTANCE = \"add-instance\",\n UPDATE_FIELD = \"update-field\",\n SYNC_FIELD = \"sync-field\",\n OPEN_ASSET_MODAL = \"open-asset-modal\",\n OPEN_REFERENCE_MODAL = \"open-reference-modal\",\n OPEN_QUICK_FORM = \"open-quick-form\",\n TOGGLE_FORM = \"toggle-quick-form\",\n GET_FIELD_SCHEMA = \"get-field-schema\",\n GET_FIELD_DATA = \"get-field-data\",\n OPEN_LINK_VARIANT_MODAL = \"open-link-variant-modal\",\n GET_FIELD_PATH_WITH_UID = \"get-field-path-with-uid\",\n GET_FIELD_DISPLAY_NAMES = \"get-field-display-names\",\n MOUSE_CLICK = \"mouse-click\",\n FOCUS_FIELD = \"focus-field\",\n OPEN_FIELD_EDIT_MODAL = \"open-field-edit-modal\",\n DELETE_INSTANCE = \"delete-instance\",\n MOVE_INSTANCE = \"move-instance\",\n GET_DISCUSSION_ID = \"get-discussion-id-for-comment-modal\",\n OPEN_FIELD_COMMENT_MODAL = \"open-field-comment-modal\",\n COLLAB_CREATE_THREAD = \"collab-create-thread\",\n COLLAB_CREATE_COMMENT = \"collab-create-comment\",\n COLLAB_FETCH_COMMENTS = \"collab-fetch-comments\",\n COLLAB_EDIT_COMMENT = \"collab-edit-comment\",\n COLLAB_DELETE_COMMENT = \"collab-delete-comment\",\n COLLAB_RESOLVE_THREAD = \"collab-resolve-thread\",\n COLLAB_DELETE_THREAD = \"collab-delete-thread\",\n COLLAB_MISSING_THREADS = \"collab-missing-threads\",\n FIELD_LOCATION_DATA = \"field-location-data\",\n FIELD_LOCATION_SELECTED_APP = \"field-location-selected-app\",\n GET_PERMISSIONS = \"get-permissions\",\n GET_WORKFLOW_STAGE_DETAILS = \"get-workflow-stage-details\",\n GET_RESOLVED_VARIANT_PERMISSIONS = \"get-resolved-variant-permissions\",\n\n // FROM visual builder\n GET_ALL_ENTRIES_IN_CURRENT_PAGE = \"get-entries-in-current-page\",\n HIDE_FOCUS_OVERLAY = \"hide-focus-overlay\",\n SHOW_DRAFT_FIELDS = \"show-draft-fields\",\n REMOVE_DRAFT_FIELDS = \"remove-draft-fields\",\n SHOW_VARIANT_FIELDS = \"show-variant-fields\",\n REMOVE_VARIANT_FIELDS = \"remove-variant-fields\",\n SET_AUDIENCE_MODE = \"set-audience-mode\",\n UPDATE_DISCUSSION_ID = \"update-discussion-id-for-focus-field\",\n SCROLL_TO_FIELD = \"scroll-to-view-field-by-cslp-value\",\n HIGHLIGHT_ACTIVE_COMMENTS = \"highlight-active-comments-by-data-cs\",\n REMOVE_HIGHLIGHTED_COMMENTS = \"remove-highlighted-comments\",\n GET_VARIANT_ID = \"get-variant-id\",\n GET_LOCALE = \"get-locale\",\n GET_HIGHLIGHT_VARIANT_FIELDS_STATUS = \"get-highlight-variant-fields-status\",\n SEND_VARIANT_AND_LOCALE = \"send-variant-and-locale\",\n GET_CONTENT_TYPE_NAME = \"get-content-type-name\",\n REFERENCE_MAP = \"get-reference-map\",\n COLLAB_ENABLE = \"collab-enable\",\n COLLAB_DATA_UPDATE = \"collab-data-update\",\n COLLAB_DISABLE = \"collab-disable\",\n COLLAB_THREADS_REMOVE = \"collab-threads-remove\",\n COLLAB_THREAD_REOPEN = \"collab-thread-reopen\",\n COLLAB_THREAD_HIGHLIGHT = \"collab-thread-highlight\",\n TOGGLE_SCROLL = \"toggle-scroll\",\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,iCAAL,kBAAKA,oCAAL;AACH,EAAAA,gCAAA,UAAO;AACP,EAAAA,gCAAA,kBAAe;AACf,EAAAA,gCAAA,kBAAe;AACf,EAAAA,gCAAA,gBAAa;AACb,EAAAA,gCAAA,sBAAmB;AACnB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,sBAAmB;AACnB,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,8BAA2B;AAC3B,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,4BAAyB;AACzB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,iCAA8B;AAC9B,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,gCAA6B;AAC7B,EAAAA,gCAAA,sCAAmC;AAGnC,EAAAA,gCAAA,qCAAkC;AAClC,EAAAA,gCAAA,wBAAqB;AACrB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,+BAA4B;AAC5B,EAAAA,gCAAA,iCAA8B;AAC9B,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,gBAAa;AACb,EAAAA,gCAAA,yCAAsC;AACtC,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,wBAAqB;AACrB,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,mBAAgB;AA3DR,SAAAA;AAAA,GAAA;","names":["VisualBuilderPostMessageEvents"]}
1
+ {"version":3,"sources":["../../../../../src/visualBuilder/utils/types/postMessage.types.ts"],"sourcesContent":["export enum VisualBuilderPostMessageEvents {\n INIT = \"init\",\n ADD_INSTANCE = \"add-instance\",\n UPDATE_FIELD = \"update-field\",\n SYNC_FIELD = \"sync-field\",\n OPEN_ASSET_MODAL = \"open-asset-modal\",\n OPEN_REFERENCE_MODAL = \"open-reference-modal\",\n OPEN_QUICK_FORM = \"open-quick-form\",\n TOGGLE_FORM = \"toggle-quick-form\",\n GET_FIELD_SCHEMA = \"get-field-schema\",\n GET_FIELD_DATA = \"get-field-data\",\n OPEN_LINK_VARIANT_MODAL = \"open-link-variant-modal\",\n GET_FIELD_PATH_WITH_UID = \"get-field-path-with-uid\",\n GET_FIELD_DISPLAY_NAMES = \"get-field-display-names\",\n MOUSE_CLICK = \"mouse-click\",\n FOCUS_FIELD = \"focus-field\",\n OPEN_FIELD_EDIT_MODAL = \"open-field-edit-modal\",\n DELETE_INSTANCE = \"delete-instance\",\n MOVE_INSTANCE = \"move-instance\",\n GET_DISCUSSION_ID = \"get-discussion-id-for-comment-modal\",\n OPEN_FIELD_COMMENT_MODAL = \"open-field-comment-modal\",\n COLLAB_CREATE_THREAD = \"collab-create-thread\",\n COLLAB_CREATE_COMMENT = \"collab-create-comment\",\n COLLAB_FETCH_COMMENTS = \"collab-fetch-comments\",\n COLLAB_EDIT_COMMENT = \"collab-edit-comment\",\n COLLAB_DELETE_COMMENT = \"collab-delete-comment\",\n COLLAB_RESOLVE_THREAD = \"collab-resolve-thread\",\n COLLAB_DELETE_THREAD = \"collab-delete-thread\",\n COLLAB_MISSING_THREADS = \"collab-missing-threads\",\n FIELD_LOCATION_DATA = \"field-location-data\",\n FIELD_LOCATION_SELECTED_APP = \"field-location-selected-app\",\n GET_PERMISSIONS = \"get-permissions\",\n GET_WORKFLOW_STAGE_DETAILS = \"get-workflow-stage-details\",\n GET_RESOLVED_VARIANT_PERMISSIONS = \"get-resolved-variant-permissions\",\n OPEN_REQUEST_EDIT_ACCESS = \"open-request-edit-access\",\n\n // FROM visual builder\n GET_ALL_ENTRIES_IN_CURRENT_PAGE = \"get-entries-in-current-page\",\n HIDE_FOCUS_OVERLAY = \"hide-focus-overlay\",\n SHOW_DRAFT_FIELDS = \"show-draft-fields\",\n REMOVE_DRAFT_FIELDS = \"remove-draft-fields\",\n SHOW_VARIANT_FIELDS = \"show-variant-fields\",\n REMOVE_VARIANT_FIELDS = \"remove-variant-fields\",\n SET_AUDIENCE_MODE = \"set-audience-mode\",\n UPDATE_DISCUSSION_ID = \"update-discussion-id-for-focus-field\",\n SCROLL_TO_FIELD = \"scroll-to-view-field-by-cslp-value\",\n HIGHLIGHT_ACTIVE_COMMENTS = \"highlight-active-comments-by-data-cs\",\n REMOVE_HIGHLIGHTED_COMMENTS = \"remove-highlighted-comments\",\n GET_VARIANT_ID = \"get-variant-id\",\n GET_LOCALE = \"get-locale\",\n GET_HIGHLIGHT_VARIANT_FIELDS_STATUS = \"get-highlight-variant-fields-status\",\n SEND_VARIANT_AND_LOCALE = \"send-variant-and-locale\",\n GET_CONTENT_TYPE_NAME = \"get-content-type-name\",\n REFERENCE_MAP = \"get-reference-map\",\n COLLAB_ENABLE = \"collab-enable\",\n COLLAB_DATA_UPDATE = \"collab-data-update\",\n COLLAB_DISABLE = \"collab-disable\",\n COLLAB_THREADS_REMOVE = \"collab-threads-remove\",\n COLLAB_THREAD_REOPEN = \"collab-thread-reopen\",\n COLLAB_THREAD_HIGHLIGHT = \"collab-thread-highlight\",\n TOGGLE_SCROLL = \"toggle-scroll\",\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,iCAAL,kBAAKA,oCAAL;AACH,EAAAA,gCAAA,UAAO;AACP,EAAAA,gCAAA,kBAAe;AACf,EAAAA,gCAAA,kBAAe;AACf,EAAAA,gCAAA,gBAAa;AACb,EAAAA,gCAAA,sBAAmB;AACnB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,sBAAmB;AACnB,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,8BAA2B;AAC3B,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,4BAAyB;AACzB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,iCAA8B;AAC9B,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,gCAA6B;AAC7B,EAAAA,gCAAA,sCAAmC;AACnC,EAAAA,gCAAA,8BAA2B;AAG3B,EAAAA,gCAAA,qCAAkC;AAClC,EAAAA,gCAAA,wBAAqB;AACrB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,+BAA4B;AAC5B,EAAAA,gCAAA,iCAA8B;AAC9B,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,gBAAa;AACb,EAAAA,gCAAA,yCAAsC;AACtC,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,wBAAqB;AACrB,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,mBAAgB;AA5DR,SAAAA;AAAA,GAAA;","names":["VisualBuilderPostMessageEvents"]}
@@ -32,6 +32,7 @@ declare enum VisualBuilderPostMessageEvents {
32
32
  GET_PERMISSIONS = "get-permissions",
33
33
  GET_WORKFLOW_STAGE_DETAILS = "get-workflow-stage-details",
34
34
  GET_RESOLVED_VARIANT_PERMISSIONS = "get-resolved-variant-permissions",
35
+ OPEN_REQUEST_EDIT_ACCESS = "open-request-edit-access",
35
36
  GET_ALL_ENTRIES_IN_CURRENT_PAGE = "get-entries-in-current-page",
36
37
  HIDE_FOCUS_OVERLAY = "hide-focus-overlay",
37
38
  SHOW_DRAFT_FIELDS = "show-draft-fields",
@@ -32,6 +32,7 @@ declare enum VisualBuilderPostMessageEvents {
32
32
  GET_PERMISSIONS = "get-permissions",
33
33
  GET_WORKFLOW_STAGE_DETAILS = "get-workflow-stage-details",
34
34
  GET_RESOLVED_VARIANT_PERMISSIONS = "get-resolved-variant-permissions",
35
+ OPEN_REQUEST_EDIT_ACCESS = "open-request-edit-access",
35
36
  GET_ALL_ENTRIES_IN_CURRENT_PAGE = "get-entries-in-current-page",
36
37
  HIDE_FOCUS_OVERLAY = "hide-focus-overlay",
37
38
  SHOW_DRAFT_FIELDS = "show-draft-fields",
@@ -35,6 +35,7 @@ var VisualBuilderPostMessageEvents = /* @__PURE__ */ ((VisualBuilderPostMessageE
35
35
  VisualBuilderPostMessageEvents2["GET_PERMISSIONS"] = "get-permissions";
36
36
  VisualBuilderPostMessageEvents2["GET_WORKFLOW_STAGE_DETAILS"] = "get-workflow-stage-details";
37
37
  VisualBuilderPostMessageEvents2["GET_RESOLVED_VARIANT_PERMISSIONS"] = "get-resolved-variant-permissions";
38
+ VisualBuilderPostMessageEvents2["OPEN_REQUEST_EDIT_ACCESS"] = "open-request-edit-access";
38
39
  VisualBuilderPostMessageEvents2["GET_ALL_ENTRIES_IN_CURRENT_PAGE"] = "get-entries-in-current-page";
39
40
  VisualBuilderPostMessageEvents2["HIDE_FOCUS_OVERLAY"] = "hide-focus-overlay";
40
41
  VisualBuilderPostMessageEvents2["SHOW_DRAFT_FIELDS"] = "show-draft-fields";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/visualBuilder/utils/types/postMessage.types.ts"],"sourcesContent":["export enum VisualBuilderPostMessageEvents {\n INIT = \"init\",\n ADD_INSTANCE = \"add-instance\",\n UPDATE_FIELD = \"update-field\",\n SYNC_FIELD = \"sync-field\",\n OPEN_ASSET_MODAL = \"open-asset-modal\",\n OPEN_REFERENCE_MODAL = \"open-reference-modal\",\n OPEN_QUICK_FORM = \"open-quick-form\",\n TOGGLE_FORM = \"toggle-quick-form\",\n GET_FIELD_SCHEMA = \"get-field-schema\",\n GET_FIELD_DATA = \"get-field-data\",\n OPEN_LINK_VARIANT_MODAL = \"open-link-variant-modal\",\n GET_FIELD_PATH_WITH_UID = \"get-field-path-with-uid\",\n GET_FIELD_DISPLAY_NAMES = \"get-field-display-names\",\n MOUSE_CLICK = \"mouse-click\",\n FOCUS_FIELD = \"focus-field\",\n OPEN_FIELD_EDIT_MODAL = \"open-field-edit-modal\",\n DELETE_INSTANCE = \"delete-instance\",\n MOVE_INSTANCE = \"move-instance\",\n GET_DISCUSSION_ID = \"get-discussion-id-for-comment-modal\",\n OPEN_FIELD_COMMENT_MODAL = \"open-field-comment-modal\",\n COLLAB_CREATE_THREAD = \"collab-create-thread\",\n COLLAB_CREATE_COMMENT = \"collab-create-comment\",\n COLLAB_FETCH_COMMENTS = \"collab-fetch-comments\",\n COLLAB_EDIT_COMMENT = \"collab-edit-comment\",\n COLLAB_DELETE_COMMENT = \"collab-delete-comment\",\n COLLAB_RESOLVE_THREAD = \"collab-resolve-thread\",\n COLLAB_DELETE_THREAD = \"collab-delete-thread\",\n COLLAB_MISSING_THREADS = \"collab-missing-threads\",\n FIELD_LOCATION_DATA = \"field-location-data\",\n FIELD_LOCATION_SELECTED_APP = \"field-location-selected-app\",\n GET_PERMISSIONS = \"get-permissions\",\n GET_WORKFLOW_STAGE_DETAILS = \"get-workflow-stage-details\",\n GET_RESOLVED_VARIANT_PERMISSIONS = \"get-resolved-variant-permissions\",\n\n // FROM visual builder\n GET_ALL_ENTRIES_IN_CURRENT_PAGE = \"get-entries-in-current-page\",\n HIDE_FOCUS_OVERLAY = \"hide-focus-overlay\",\n SHOW_DRAFT_FIELDS = \"show-draft-fields\",\n REMOVE_DRAFT_FIELDS = \"remove-draft-fields\",\n SHOW_VARIANT_FIELDS = \"show-variant-fields\",\n REMOVE_VARIANT_FIELDS = \"remove-variant-fields\",\n SET_AUDIENCE_MODE = \"set-audience-mode\",\n UPDATE_DISCUSSION_ID = \"update-discussion-id-for-focus-field\",\n SCROLL_TO_FIELD = \"scroll-to-view-field-by-cslp-value\",\n HIGHLIGHT_ACTIVE_COMMENTS = \"highlight-active-comments-by-data-cs\",\n REMOVE_HIGHLIGHTED_COMMENTS = \"remove-highlighted-comments\",\n GET_VARIANT_ID = \"get-variant-id\",\n GET_LOCALE = \"get-locale\",\n GET_HIGHLIGHT_VARIANT_FIELDS_STATUS = \"get-highlight-variant-fields-status\",\n SEND_VARIANT_AND_LOCALE = \"send-variant-and-locale\",\n GET_CONTENT_TYPE_NAME = \"get-content-type-name\",\n REFERENCE_MAP = \"get-reference-map\",\n COLLAB_ENABLE = \"collab-enable\",\n COLLAB_DATA_UPDATE = \"collab-data-update\",\n COLLAB_DISABLE = \"collab-disable\",\n COLLAB_THREADS_REMOVE = \"collab-threads-remove\",\n COLLAB_THREAD_REOPEN = \"collab-thread-reopen\",\n COLLAB_THREAD_HIGHLIGHT = \"collab-thread-highlight\",\n TOGGLE_SCROLL = \"toggle-scroll\",\n}\n"],"mappings":";;;AAAO,IAAK,iCAAL,kBAAKA,oCAAL;AACH,EAAAA,gCAAA,UAAO;AACP,EAAAA,gCAAA,kBAAe;AACf,EAAAA,gCAAA,kBAAe;AACf,EAAAA,gCAAA,gBAAa;AACb,EAAAA,gCAAA,sBAAmB;AACnB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,sBAAmB;AACnB,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,8BAA2B;AAC3B,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,4BAAyB;AACzB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,iCAA8B;AAC9B,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,gCAA6B;AAC7B,EAAAA,gCAAA,sCAAmC;AAGnC,EAAAA,gCAAA,qCAAkC;AAClC,EAAAA,gCAAA,wBAAqB;AACrB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,+BAA4B;AAC5B,EAAAA,gCAAA,iCAA8B;AAC9B,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,gBAAa;AACb,EAAAA,gCAAA,yCAAsC;AACtC,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,wBAAqB;AACrB,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,mBAAgB;AA3DR,SAAAA;AAAA,GAAA;","names":["VisualBuilderPostMessageEvents"]}
1
+ {"version":3,"sources":["../../../../../src/visualBuilder/utils/types/postMessage.types.ts"],"sourcesContent":["export enum VisualBuilderPostMessageEvents {\n INIT = \"init\",\n ADD_INSTANCE = \"add-instance\",\n UPDATE_FIELD = \"update-field\",\n SYNC_FIELD = \"sync-field\",\n OPEN_ASSET_MODAL = \"open-asset-modal\",\n OPEN_REFERENCE_MODAL = \"open-reference-modal\",\n OPEN_QUICK_FORM = \"open-quick-form\",\n TOGGLE_FORM = \"toggle-quick-form\",\n GET_FIELD_SCHEMA = \"get-field-schema\",\n GET_FIELD_DATA = \"get-field-data\",\n OPEN_LINK_VARIANT_MODAL = \"open-link-variant-modal\",\n GET_FIELD_PATH_WITH_UID = \"get-field-path-with-uid\",\n GET_FIELD_DISPLAY_NAMES = \"get-field-display-names\",\n MOUSE_CLICK = \"mouse-click\",\n FOCUS_FIELD = \"focus-field\",\n OPEN_FIELD_EDIT_MODAL = \"open-field-edit-modal\",\n DELETE_INSTANCE = \"delete-instance\",\n MOVE_INSTANCE = \"move-instance\",\n GET_DISCUSSION_ID = \"get-discussion-id-for-comment-modal\",\n OPEN_FIELD_COMMENT_MODAL = \"open-field-comment-modal\",\n COLLAB_CREATE_THREAD = \"collab-create-thread\",\n COLLAB_CREATE_COMMENT = \"collab-create-comment\",\n COLLAB_FETCH_COMMENTS = \"collab-fetch-comments\",\n COLLAB_EDIT_COMMENT = \"collab-edit-comment\",\n COLLAB_DELETE_COMMENT = \"collab-delete-comment\",\n COLLAB_RESOLVE_THREAD = \"collab-resolve-thread\",\n COLLAB_DELETE_THREAD = \"collab-delete-thread\",\n COLLAB_MISSING_THREADS = \"collab-missing-threads\",\n FIELD_LOCATION_DATA = \"field-location-data\",\n FIELD_LOCATION_SELECTED_APP = \"field-location-selected-app\",\n GET_PERMISSIONS = \"get-permissions\",\n GET_WORKFLOW_STAGE_DETAILS = \"get-workflow-stage-details\",\n GET_RESOLVED_VARIANT_PERMISSIONS = \"get-resolved-variant-permissions\",\n OPEN_REQUEST_EDIT_ACCESS = \"open-request-edit-access\",\n\n // FROM visual builder\n GET_ALL_ENTRIES_IN_CURRENT_PAGE = \"get-entries-in-current-page\",\n HIDE_FOCUS_OVERLAY = \"hide-focus-overlay\",\n SHOW_DRAFT_FIELDS = \"show-draft-fields\",\n REMOVE_DRAFT_FIELDS = \"remove-draft-fields\",\n SHOW_VARIANT_FIELDS = \"show-variant-fields\",\n REMOVE_VARIANT_FIELDS = \"remove-variant-fields\",\n SET_AUDIENCE_MODE = \"set-audience-mode\",\n UPDATE_DISCUSSION_ID = \"update-discussion-id-for-focus-field\",\n SCROLL_TO_FIELD = \"scroll-to-view-field-by-cslp-value\",\n HIGHLIGHT_ACTIVE_COMMENTS = \"highlight-active-comments-by-data-cs\",\n REMOVE_HIGHLIGHTED_COMMENTS = \"remove-highlighted-comments\",\n GET_VARIANT_ID = \"get-variant-id\",\n GET_LOCALE = \"get-locale\",\n GET_HIGHLIGHT_VARIANT_FIELDS_STATUS = \"get-highlight-variant-fields-status\",\n SEND_VARIANT_AND_LOCALE = \"send-variant-and-locale\",\n GET_CONTENT_TYPE_NAME = \"get-content-type-name\",\n REFERENCE_MAP = \"get-reference-map\",\n COLLAB_ENABLE = \"collab-enable\",\n COLLAB_DATA_UPDATE = \"collab-data-update\",\n COLLAB_DISABLE = \"collab-disable\",\n COLLAB_THREADS_REMOVE = \"collab-threads-remove\",\n COLLAB_THREAD_REOPEN = \"collab-thread-reopen\",\n COLLAB_THREAD_HIGHLIGHT = \"collab-thread-highlight\",\n TOGGLE_SCROLL = \"toggle-scroll\",\n}\n"],"mappings":";;;AAAO,IAAK,iCAAL,kBAAKA,oCAAL;AACH,EAAAA,gCAAA,UAAO;AACP,EAAAA,gCAAA,kBAAe;AACf,EAAAA,gCAAA,kBAAe;AACf,EAAAA,gCAAA,gBAAa;AACb,EAAAA,gCAAA,sBAAmB;AACnB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,sBAAmB;AACnB,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,iBAAc;AACd,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,8BAA2B;AAC3B,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,4BAAyB;AACzB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,iCAA8B;AAC9B,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,gCAA6B;AAC7B,EAAAA,gCAAA,sCAAmC;AACnC,EAAAA,gCAAA,8BAA2B;AAG3B,EAAAA,gCAAA,qCAAkC;AAClC,EAAAA,gCAAA,wBAAqB;AACrB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,yBAAsB;AACtB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,uBAAoB;AACpB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,qBAAkB;AAClB,EAAAA,gCAAA,+BAA4B;AAC5B,EAAAA,gCAAA,iCAA8B;AAC9B,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,gBAAa;AACb,EAAAA,gCAAA,yCAAsC;AACtC,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,mBAAgB;AAChB,EAAAA,gCAAA,wBAAqB;AACrB,EAAAA,gCAAA,oBAAiB;AACjB,EAAAA,gCAAA,2BAAwB;AACxB,EAAAA,gCAAA,0BAAuB;AACvB,EAAAA,gCAAA,6BAA0B;AAC1B,EAAAA,gCAAA,mBAAgB;AA5DR,SAAAA;AAAA,GAAA;","names":["VisualBuilderPostMessageEvents"]}
@@ -101,7 +101,7 @@ async function updateFocussedState({
101
101
  import__.VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM = previousSelectedEditableDOM;
102
102
  }
103
103
  const cslp = editableElement?.getAttribute("data-cslp") || "";
104
- if (!cslp) {
104
+ if (!(0, import_cslp.isValidCslp)(cslp)) {
105
105
  return;
106
106
  }
107
107
  const fieldMetadata = (0, import_cslp.extractDetailsFromCslp)(cslp);