@contentstack/live-preview-utils 4.1.2 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/dist/legacy/{chunk-HLXJTSQ3.js → chunk-7SRLYDRL.js} +92 -92
  4. package/dist/legacy/chunk-7SRLYDRL.js.map +1 -0
  5. package/dist/legacy/light-sdk.cjs +1 -1
  6. package/dist/legacy/light-sdk.js +1 -1
  7. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs +91 -91
  8. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
  9. package/dist/legacy/livePreview/eventManager/livePreviewEventManager.js +1 -1
  10. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  11. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  12. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
  13. package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
  14. package/dist/legacy/timeline/timelinePostMessage/timelinePostMessage.cjs +91 -91
  15. package/dist/legacy/timeline/timelinePostMessage/timelinePostMessage.cjs.map +1 -1
  16. package/dist/legacy/timeline/timelinePostMessage/timelinePostMessage.js +1 -1
  17. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +3 -1
  18. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  19. package/dist/legacy/visualBuilder/components/FieldToolbar.d.cts +2 -0
  20. package/dist/legacy/visualBuilder/components/FieldToolbar.d.ts +2 -0
  21. package/dist/legacy/visualBuilder/components/FieldToolbar.js +3 -1
  22. package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
  23. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs +61 -12
  24. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  25. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js +62 -13
  26. package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  27. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +122 -0
  28. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -0
  29. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.cts +7 -0
  30. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.ts +7 -0
  31. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +99 -0
  32. package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -0
  33. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +21 -4
  34. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
  35. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.d.cts +1 -1
  36. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.d.ts +1 -1
  37. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js +21 -4
  38. package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
  39. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs +5 -3
  40. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  41. package/dist/legacy/visualBuilder/generators/generateOverlay.js +5 -3
  42. package/dist/legacy/visualBuilder/generators/generateOverlay.js.map +1 -1
  43. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +5 -3
  44. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  45. package/dist/legacy/visualBuilder/generators/generateToolbar.js +5 -3
  46. package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
  47. package/dist/legacy/visualBuilder/index.cjs.map +1 -1
  48. package/dist/legacy/visualBuilder/index.js.map +1 -1
  49. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +6 -3
  50. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  51. package/dist/legacy/visualBuilder/listeners/mouseClick.js +6 -3
  52. package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
  53. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +8 -4
  54. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  55. package/dist/legacy/visualBuilder/listeners/mouseHover.js +8 -4
  56. package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
  57. package/dist/legacy/visualBuilder/utils/constants.cjs +13 -0
  58. package/dist/legacy/visualBuilder/utils/constants.cjs.map +1 -1
  59. package/dist/legacy/visualBuilder/utils/constants.d.cts +10 -1
  60. package/dist/legacy/visualBuilder/utils/constants.d.ts +10 -1
  61. package/dist/legacy/visualBuilder/utils/constants.js +11 -0
  62. package/dist/legacy/visualBuilder/utils/constants.js.map +1 -1
  63. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +21 -3
  64. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -1
  65. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +5 -1
  66. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +5 -1
  67. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +21 -3
  68. package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -1
  69. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.cjs +8 -0
  70. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.cjs.map +1 -1
  71. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.d.cts +5 -0
  72. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.d.ts +5 -0
  73. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.js +8 -0
  74. package/dist/legacy/visualBuilder/utils/fieldSchemaMap.js.map +1 -1
  75. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs +7 -3
  76. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  77. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js +7 -3
  78. package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  79. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +3 -3
  80. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
  81. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +3 -3
  82. package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
  83. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.cjs +58 -0
  84. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.cjs.map +1 -0
  85. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.d.cts +10 -0
  86. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.d.ts +10 -0
  87. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.js +25 -0
  88. package/dist/legacy/visualBuilder/utils/getResolvedVariantPermissions.js.map +1 -0
  89. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +9 -7
  90. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  91. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +9 -7
  92. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  93. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +6 -2
  94. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  95. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +6 -2
  96. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  97. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs +23 -6
  98. package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  99. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.cts +23 -2
  100. package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.ts +23 -2
  101. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js +22 -6
  102. package/dist/legacy/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  103. package/dist/legacy/visualBuilder/utils/types/index.types.cjs.map +1 -1
  104. package/dist/legacy/visualBuilder/utils/types/index.types.d.cts +1 -0
  105. package/dist/legacy/visualBuilder/utils/types/index.types.d.ts +1 -0
  106. package/dist/legacy/visualBuilder/utils/types/index.types.js.map +1 -1
  107. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +2 -0
  108. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  109. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +2 -0
  110. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +2 -0
  111. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +2 -0
  112. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  113. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +9 -4
  114. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  115. package/dist/legacy/visualBuilder/utils/updateFocussedState.js +10 -5
  116. package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
  117. package/dist/legacy/visualBuilder/utils/visualBuilderPostMessage.cjs +91 -91
  118. package/dist/legacy/visualBuilder/utils/visualBuilderPostMessage.cjs.map +1 -1
  119. package/dist/legacy/visualBuilder/utils/visualBuilderPostMessage.js +1 -1
  120. package/dist/legacy/visualBuilder/visualBuilder.style.cjs +31 -1
  121. package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
  122. package/dist/legacy/visualBuilder/visualBuilder.style.d.cts +1 -0
  123. package/dist/legacy/visualBuilder/visualBuilder.style.d.ts +1 -0
  124. package/dist/legacy/visualBuilder/visualBuilder.style.js +31 -1
  125. package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
  126. package/dist/modern/{chunk-LNSFZGX4.js → chunk-JYE4G3PN.js} +92 -92
  127. package/dist/modern/chunk-JYE4G3PN.js.map +1 -0
  128. package/dist/modern/light-sdk.cjs +1 -1
  129. package/dist/modern/light-sdk.js +1 -1
  130. package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs +91 -91
  131. package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
  132. package/dist/modern/livePreview/eventManager/livePreviewEventManager.js +1 -1
  133. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  134. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  135. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  136. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  137. package/dist/modern/timeline/timelinePostMessage/timelinePostMessage.cjs +91 -91
  138. package/dist/modern/timeline/timelinePostMessage/timelinePostMessage.cjs.map +1 -1
  139. package/dist/modern/timeline/timelinePostMessage/timelinePostMessage.js +1 -1
  140. package/dist/modern/visualBuilder/components/FieldToolbar.cjs +3 -1
  141. package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  142. package/dist/modern/visualBuilder/components/FieldToolbar.d.cts +2 -0
  143. package/dist/modern/visualBuilder/components/FieldToolbar.d.ts +2 -0
  144. package/dist/modern/visualBuilder/components/FieldToolbar.js +3 -1
  145. package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
  146. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs +60 -12
  147. package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
  148. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js +61 -13
  149. package/dist/modern/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
  150. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +122 -0
  151. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -0
  152. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.cts +7 -0
  153. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.d.ts +7 -0
  154. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +99 -0
  155. package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -0
  156. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +21 -4
  157. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
  158. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.d.cts +1 -1
  159. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.d.ts +1 -1
  160. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js +21 -4
  161. package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
  162. package/dist/modern/visualBuilder/generators/generateOverlay.cjs +5 -3
  163. package/dist/modern/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  164. package/dist/modern/visualBuilder/generators/generateOverlay.js +5 -3
  165. package/dist/modern/visualBuilder/generators/generateOverlay.js.map +1 -1
  166. package/dist/modern/visualBuilder/generators/generateToolbar.cjs +5 -3
  167. package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  168. package/dist/modern/visualBuilder/generators/generateToolbar.js +5 -3
  169. package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
  170. package/dist/modern/visualBuilder/index.cjs.map +1 -1
  171. package/dist/modern/visualBuilder/index.js.map +1 -1
  172. package/dist/modern/visualBuilder/listeners/mouseClick.cjs +6 -3
  173. package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  174. package/dist/modern/visualBuilder/listeners/mouseClick.js +6 -3
  175. package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
  176. package/dist/modern/visualBuilder/listeners/mouseHover.cjs +8 -4
  177. package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  178. package/dist/modern/visualBuilder/listeners/mouseHover.js +8 -4
  179. package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
  180. package/dist/modern/visualBuilder/utils/constants.cjs +13 -0
  181. package/dist/modern/visualBuilder/utils/constants.cjs.map +1 -1
  182. package/dist/modern/visualBuilder/utils/constants.d.cts +10 -1
  183. package/dist/modern/visualBuilder/utils/constants.d.ts +10 -1
  184. package/dist/modern/visualBuilder/utils/constants.js +11 -0
  185. package/dist/modern/visualBuilder/utils/constants.js.map +1 -1
  186. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +21 -3
  187. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -1
  188. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +5 -1
  189. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +5 -1
  190. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +21 -3
  191. package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -1
  192. package/dist/modern/visualBuilder/utils/fieldSchemaMap.cjs +8 -0
  193. package/dist/modern/visualBuilder/utils/fieldSchemaMap.cjs.map +1 -1
  194. package/dist/modern/visualBuilder/utils/fieldSchemaMap.d.cts +5 -0
  195. package/dist/modern/visualBuilder/utils/fieldSchemaMap.d.ts +5 -0
  196. package/dist/modern/visualBuilder/utils/fieldSchemaMap.js +8 -0
  197. package/dist/modern/visualBuilder/utils/fieldSchemaMap.js.map +1 -1
  198. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs +5 -1
  199. package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
  200. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js +5 -1
  201. package/dist/modern/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
  202. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +3 -3
  203. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
  204. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +3 -3
  205. package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
  206. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.cjs +57 -0
  207. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.cjs.map +1 -0
  208. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.d.cts +10 -0
  209. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.d.ts +10 -0
  210. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.js +24 -0
  211. package/dist/modern/visualBuilder/utils/getResolvedVariantPermissions.js.map +1 -0
  212. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +9 -7
  213. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  214. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +9 -7
  215. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  216. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +6 -2
  217. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  218. package/dist/modern/visualBuilder/utils/handleIndividualFields.js +6 -2
  219. package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  220. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs +21 -4
  221. package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
  222. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.cts +23 -2
  223. package/dist/modern/visualBuilder/utils/isFieldDisabled.d.ts +23 -2
  224. package/dist/modern/visualBuilder/utils/isFieldDisabled.js +20 -4
  225. package/dist/modern/visualBuilder/utils/isFieldDisabled.js.map +1 -1
  226. package/dist/modern/visualBuilder/utils/types/index.types.cjs.map +1 -1
  227. package/dist/modern/visualBuilder/utils/types/index.types.d.cts +1 -0
  228. package/dist/modern/visualBuilder/utils/types/index.types.d.ts +1 -0
  229. package/dist/modern/visualBuilder/utils/types/index.types.js.map +1 -1
  230. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +2 -0
  231. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  232. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +2 -0
  233. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +2 -0
  234. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +2 -0
  235. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  236. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +9 -4
  237. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  238. package/dist/modern/visualBuilder/utils/updateFocussedState.js +10 -5
  239. package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
  240. package/dist/modern/visualBuilder/utils/visualBuilderPostMessage.cjs +91 -91
  241. package/dist/modern/visualBuilder/utils/visualBuilderPostMessage.cjs.map +1 -1
  242. package/dist/modern/visualBuilder/utils/visualBuilderPostMessage.js +1 -1
  243. package/dist/modern/visualBuilder/visualBuilder.style.cjs +31 -1
  244. package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
  245. package/dist/modern/visualBuilder/visualBuilder.style.d.cts +1 -0
  246. package/dist/modern/visualBuilder/visualBuilder.style.d.ts +1 -0
  247. package/dist/modern/visualBuilder/visualBuilder.style.js +31 -1
  248. package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
  249. package/package.json +11 -10
  250. package/dist/legacy/chunk-HLXJTSQ3.js.map +0 -1
  251. package/dist/modern/chunk-LNSFZGX4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/fieldSchemaMap.ts"],"sourcesContent":["import { has, isEqual } from \"lodash-es\";\nimport {\n ISchemaFieldMap,\n ISchemaIndividualFieldMap,\n} from \"./types/index.types\";\n\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\n\ninterface IFieldSchemaMapResponse {\n fieldSchemaMap: ISchemaIndividualFieldMap;\n}\n/**\n * Represents a cache for field schemas. Field schemas are\n * used to easily get the field schema based on the field\n * Cslp.\n */\nexport class FieldSchemaMap {\n private static fieldSchema: {\n [contentTypeUid: string]: ISchemaIndividualFieldMap;\n } = {};\n\n private static fieldSchemaPromise: {\n [contentTypeUid: string]: Promise<IFieldSchemaMapResponse> | undefined;\n } = {};\n\n private static async fetchFieldSchema(content_type_uid: string) {\n if (!FieldSchemaMap.fieldSchemaPromise?.[content_type_uid]) {\n FieldSchemaMap.fieldSchemaPromise[content_type_uid] =\n visualBuilderPostMessage?.send<IFieldSchemaMapResponse>(\n VisualBuilderPostMessageEvents.GET_FIELD_SCHEMA,\n {\n contentTypeUid: content_type_uid,\n }\n );\n }\n return FieldSchemaMap.fieldSchemaPromise[content_type_uid];\n }\n /**\n * Retrieves the schema field map for a given content type and field Cslp.\n * @param contentTypeUid - The unique identifier of the content type.\n * @param fieldCslp - The Cslp of the field.\n * @returns The schema field map.\n */\n static async getFieldSchema(\n contentTypeUid: string,\n fieldCslp: string\n ): Promise<ISchemaFieldMap> {\n if (FieldSchemaMap.hasFieldSchema(contentTypeUid, fieldCslp)) {\n return Promise.resolve(\n FieldSchemaMap.fieldSchema[contentTypeUid][fieldCslp]\n );\n }\n\n const data = await FieldSchemaMap.fetchFieldSchema(contentTypeUid);\n\n if (data?.fieldSchemaMap) {\n FieldSchemaMap.fieldSchema[contentTypeUid] = data.fieldSchemaMap;\n }\n\n return FieldSchemaMap?.fieldSchema?.[contentTypeUid]?.[fieldCslp] || null;\n }\n\n static hasFieldSchema(contentTypeUid: string, fieldCslp: string): boolean {\n return has(FieldSchemaMap.fieldSchema, [contentTypeUid, fieldCslp]);\n }\n\n /**\n * Checks if two field schemas are equal.\n * @param firstFieldSchema - The first field schema to compare.\n * @param secondFieldSchema - The second field schema to compare.\n * @returns True if the field schemas are equal, false otherwise.\n */\n static areFieldSchemaEqual(\n firstFieldSchema: ISchemaFieldMap,\n secondFieldSchema: ISchemaFieldMap\n ): boolean {\n return isEqual(firstFieldSchema, secondFieldSchema);\n }\n\n /**\n * Sets the field schema for a given content type.\n * @param contentTypeUid The unique identifier of the content type.\n * @param fieldSchemaMap The map of individual field schemas.\n */\n static setFieldSchema(\n contentTypeUid: string,\n fieldSchemaMap: ISchemaIndividualFieldMap\n ): void {\n FieldSchemaMap.fieldSchema[contentTypeUid] = fieldSchemaMap;\n }\n\n /**\n * Clears the field schema cache.\n */\n static clear(): void {\n FieldSchemaMap.fieldSchema = {};\n FieldSchemaMap.fieldSchemaPromise = {};\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA6B;AAM7B,sCAAqC;AACrC,yBAA+C;AAUxC,IAAM,kBAAN,MAAM,gBAAe;AAAA,EASxB,aAAqB,iBAAiB,kBAA0B;AA1BpE;AA2BQ,QAAI,GAAC,qBAAe,uBAAf,mBAAoC,oBAAmB;AACxD,sBAAe,mBAAmB,gBAAgB,KAC9C,qCAAAA,YAAA,mBAA0B;AAAA,QACtB,kDAA+B;AAAA,QAC/B;AAAA,UACI,gBAAgB;AAAA,QACpB;AAAA;AAAA,IAEZ;AACA,WAAO,gBAAe,mBAAmB,gBAAgB;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,eACT,gBACA,WACwB;AA/ChC;AAgDQ,QAAI,gBAAe,eAAe,gBAAgB,SAAS,GAAG;AAC1D,aAAO,QAAQ;AAAA,QACX,gBAAe,YAAY,cAAc,EAAE,SAAS;AAAA,MACxD;AAAA,IACJ;AAEA,UAAM,OAAO,MAAM,gBAAe,iBAAiB,cAAc;AAEjE,QAAI,6BAAM,gBAAgB;AACtB,sBAAe,YAAY,cAAc,IAAI,KAAK;AAAA,IACtD;AAEA,aAAO,8DAAgB,gBAAhB,mBAA8B,oBAA9B,mBAAgD,eAAc;AAAA,EACzE;AAAA,EAEA,OAAO,eAAe,gBAAwB,WAA4B;AACtE,eAAO,sBAAI,gBAAe,aAAa,CAAC,gBAAgB,SAAS,CAAC;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,oBACH,kBACA,mBACO;AACP,eAAO,0BAAQ,kBAAkB,iBAAiB;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,eACH,gBACA,gBACI;AACJ,oBAAe,YAAY,cAAc,IAAI;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAc;AACjB,oBAAe,cAAc,CAAC;AAC9B,oBAAe,qBAAqB,CAAC;AAAA,EACzC;AACJ;AAlFa,gBACM,cAEX,CAAC;AAHI,gBAKM,qBAEX,CAAC;AAPF,IAAM,iBAAN;","names":["visualBuilderPostMessage"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/fieldSchemaMap.ts"],"sourcesContent":["import { has, isEqual } from \"lodash-es\";\nimport {\n ISchemaFieldMap,\n ISchemaIndividualFieldMap,\n} from \"./types/index.types\";\n\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\n\ninterface IFieldSchemaMapResponse {\n fieldSchemaMap: ISchemaIndividualFieldMap;\n}\n/**\n * Represents a cache for field schemas. Field schemas are\n * used to easily get the field schema based on the field\n * Cslp.\n */\nexport class FieldSchemaMap {\n private static fieldSchema: {\n [contentTypeUid: string]: ISchemaIndividualFieldMap;\n } = {};\n\n private static fieldSchemaPromise: {\n [contentTypeUid: string]: Promise<IFieldSchemaMapResponse> | undefined;\n } = {};\n\n private static async fetchFieldSchema(content_type_uid: string) {\n if (!FieldSchemaMap.fieldSchemaPromise?.[content_type_uid]) {\n FieldSchemaMap.fieldSchemaPromise[content_type_uid] =\n visualBuilderPostMessage?.send<IFieldSchemaMapResponse>(\n VisualBuilderPostMessageEvents.GET_FIELD_SCHEMA,\n {\n contentTypeUid: content_type_uid,\n }\n );\n }\n return FieldSchemaMap.fieldSchemaPromise[content_type_uid];\n }\n /**\n * Retrieves the schema field map for a given content type and field Cslp.\n * @param contentTypeUid - The unique identifier of the content type.\n * @param fieldCslp - The Cslp of the field.\n * @returns The schema field map.\n */\n static async getFieldSchema(\n contentTypeUid: string,\n fieldCslp: string\n ): Promise<ISchemaFieldMap> {\n if (FieldSchemaMap.hasFieldSchema(contentTypeUid, fieldCslp)) {\n return Promise.resolve(\n FieldSchemaMap.fieldSchema[contentTypeUid][fieldCslp]\n );\n }\n\n const data = await FieldSchemaMap.fetchFieldSchema(contentTypeUid);\n\n if (data?.fieldSchemaMap) {\n FieldSchemaMap.fieldSchema[contentTypeUid] = data.fieldSchemaMap;\n }\n\n return FieldSchemaMap?.fieldSchema?.[contentTypeUid]?.[fieldCslp] || null;\n }\n\n static hasFieldSchema(contentTypeUid: string, fieldCslp: string): boolean {\n return has(FieldSchemaMap.fieldSchema, [contentTypeUid, fieldCslp]);\n }\n\n /**\n * Checks if two field schemas are equal.\n * @param firstFieldSchema - The first field schema to compare.\n * @param secondFieldSchema - The second field schema to compare.\n * @returns True if the field schemas are equal, false otherwise.\n */\n static areFieldSchemaEqual(\n firstFieldSchema: ISchemaFieldMap,\n secondFieldSchema: ISchemaFieldMap\n ): boolean {\n return isEqual(firstFieldSchema, secondFieldSchema);\n }\n\n /**\n * Sets the field schema for a given content type.\n * @param contentTypeUid The unique identifier of the content type.\n * @param fieldSchemaMap The map of individual field schemas.\n */\n static setFieldSchema(\n contentTypeUid: string,\n fieldSchemaMap: ISchemaIndividualFieldMap\n ): void {\n FieldSchemaMap.fieldSchema[contentTypeUid] = fieldSchemaMap;\n }\n\n /**\n * Clears the field schemas for a specific content type.\n * @param contentTypeUid The unique identifier of the content type.\n */\n static clearContentTypeSchema(contentTypeUid: string): void {\n delete FieldSchemaMap.fieldSchema[contentTypeUid];\n delete FieldSchemaMap.fieldSchemaPromise[contentTypeUid];\n }\n\n /**\n * Clears the field schema cache.\n */\n static clear(): void {\n FieldSchemaMap.fieldSchema = {};\n FieldSchemaMap.fieldSchemaPromise = {};\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA6B;AAM7B,sCAAqC;AACrC,yBAA+C;AAUxC,IAAM,kBAAN,MAAM,gBAAe;AAAA,EASxB,aAAqB,iBAAiB,kBAA0B;AA1BpE;AA2BQ,QAAI,GAAC,qBAAe,uBAAf,mBAAoC,oBAAmB;AACxD,sBAAe,mBAAmB,gBAAgB,KAC9C,qCAAAA,YAAA,mBAA0B;AAAA,QACtB,kDAA+B;AAAA,QAC/B;AAAA,UACI,gBAAgB;AAAA,QACpB;AAAA;AAAA,IAEZ;AACA,WAAO,gBAAe,mBAAmB,gBAAgB;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,eACT,gBACA,WACwB;AA/ChC;AAgDQ,QAAI,gBAAe,eAAe,gBAAgB,SAAS,GAAG;AAC1D,aAAO,QAAQ;AAAA,QACX,gBAAe,YAAY,cAAc,EAAE,SAAS;AAAA,MACxD;AAAA,IACJ;AAEA,UAAM,OAAO,MAAM,gBAAe,iBAAiB,cAAc;AAEjE,QAAI,6BAAM,gBAAgB;AACtB,sBAAe,YAAY,cAAc,IAAI,KAAK;AAAA,IACtD;AAEA,aAAO,8DAAgB,gBAAhB,mBAA8B,oBAA9B,mBAAgD,eAAc;AAAA,EACzE;AAAA,EAEA,OAAO,eAAe,gBAAwB,WAA4B;AACtE,eAAO,sBAAI,gBAAe,aAAa,CAAC,gBAAgB,SAAS,CAAC;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,oBACH,kBACA,mBACO;AACP,eAAO,0BAAQ,kBAAkB,iBAAiB;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,eACH,gBACA,gBACI;AACJ,oBAAe,YAAY,cAAc,IAAI;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,uBAAuB,gBAA8B;AACxD,WAAO,gBAAe,YAAY,cAAc;AAChD,WAAO,gBAAe,mBAAmB,cAAc;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAc;AACjB,oBAAe,cAAc,CAAC;AAC9B,oBAAe,qBAAqB,CAAC;AAAA,EACzC;AACJ;AA3Fa,gBACM,cAEX,CAAC;AAHI,gBAKM,qBAEX,CAAC;AAPF,IAAM,iBAAN;","names":["visualBuilderPostMessage"]}
@@ -31,6 +31,11 @@ declare class FieldSchemaMap {
31
31
  * @param fieldSchemaMap The map of individual field schemas.
32
32
  */
33
33
  static setFieldSchema(contentTypeUid: string, fieldSchemaMap: ISchemaIndividualFieldMap): void;
34
+ /**
35
+ * Clears the field schemas for a specific content type.
36
+ * @param contentTypeUid The unique identifier of the content type.
37
+ */
38
+ static clearContentTypeSchema(contentTypeUid: string): void;
34
39
  /**
35
40
  * Clears the field schema cache.
36
41
  */
@@ -31,6 +31,11 @@ declare class FieldSchemaMap {
31
31
  * @param fieldSchemaMap The map of individual field schemas.
32
32
  */
33
33
  static setFieldSchema(contentTypeUid: string, fieldSchemaMap: ISchemaIndividualFieldMap): void;
34
+ /**
35
+ * Clears the field schemas for a specific content type.
36
+ * @param contentTypeUid The unique identifier of the content type.
37
+ */
38
+ static clearContentTypeSchema(contentTypeUid: string): void;
34
39
  /**
35
40
  * Clears the field schema cache.
36
41
  */
@@ -56,6 +56,14 @@ var _FieldSchemaMap = class _FieldSchemaMap {
56
56
  static setFieldSchema(contentTypeUid, fieldSchemaMap) {
57
57
  _FieldSchemaMap.fieldSchema[contentTypeUid] = fieldSchemaMap;
58
58
  }
59
+ /**
60
+ * Clears the field schemas for a specific content type.
61
+ * @param contentTypeUid The unique identifier of the content type.
62
+ */
63
+ static clearContentTypeSchema(contentTypeUid) {
64
+ delete _FieldSchemaMap.fieldSchema[contentTypeUid];
65
+ delete _FieldSchemaMap.fieldSchemaPromise[contentTypeUid];
66
+ }
59
67
  /**
60
68
  * Clears the field schema cache.
61
69
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/fieldSchemaMap.ts"],"sourcesContent":["import { has, isEqual } from \"lodash-es\";\nimport {\n ISchemaFieldMap,\n ISchemaIndividualFieldMap,\n} from \"./types/index.types\";\n\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\n\ninterface IFieldSchemaMapResponse {\n fieldSchemaMap: ISchemaIndividualFieldMap;\n}\n/**\n * Represents a cache for field schemas. Field schemas are\n * used to easily get the field schema based on the field\n * Cslp.\n */\nexport class FieldSchemaMap {\n private static fieldSchema: {\n [contentTypeUid: string]: ISchemaIndividualFieldMap;\n } = {};\n\n private static fieldSchemaPromise: {\n [contentTypeUid: string]: Promise<IFieldSchemaMapResponse> | undefined;\n } = {};\n\n private static async fetchFieldSchema(content_type_uid: string) {\n if (!FieldSchemaMap.fieldSchemaPromise?.[content_type_uid]) {\n FieldSchemaMap.fieldSchemaPromise[content_type_uid] =\n visualBuilderPostMessage?.send<IFieldSchemaMapResponse>(\n VisualBuilderPostMessageEvents.GET_FIELD_SCHEMA,\n {\n contentTypeUid: content_type_uid,\n }\n );\n }\n return FieldSchemaMap.fieldSchemaPromise[content_type_uid];\n }\n /**\n * Retrieves the schema field map for a given content type and field Cslp.\n * @param contentTypeUid - The unique identifier of the content type.\n * @param fieldCslp - The Cslp of the field.\n * @returns The schema field map.\n */\n static async getFieldSchema(\n contentTypeUid: string,\n fieldCslp: string\n ): Promise<ISchemaFieldMap> {\n if (FieldSchemaMap.hasFieldSchema(contentTypeUid, fieldCslp)) {\n return Promise.resolve(\n FieldSchemaMap.fieldSchema[contentTypeUid][fieldCslp]\n );\n }\n\n const data = await FieldSchemaMap.fetchFieldSchema(contentTypeUid);\n\n if (data?.fieldSchemaMap) {\n FieldSchemaMap.fieldSchema[contentTypeUid] = data.fieldSchemaMap;\n }\n\n return FieldSchemaMap?.fieldSchema?.[contentTypeUid]?.[fieldCslp] || null;\n }\n\n static hasFieldSchema(contentTypeUid: string, fieldCslp: string): boolean {\n return has(FieldSchemaMap.fieldSchema, [contentTypeUid, fieldCslp]);\n }\n\n /**\n * Checks if two field schemas are equal.\n * @param firstFieldSchema - The first field schema to compare.\n * @param secondFieldSchema - The second field schema to compare.\n * @returns True if the field schemas are equal, false otherwise.\n */\n static areFieldSchemaEqual(\n firstFieldSchema: ISchemaFieldMap,\n secondFieldSchema: ISchemaFieldMap\n ): boolean {\n return isEqual(firstFieldSchema, secondFieldSchema);\n }\n\n /**\n * Sets the field schema for a given content type.\n * @param contentTypeUid The unique identifier of the content type.\n * @param fieldSchemaMap The map of individual field schemas.\n */\n static setFieldSchema(\n contentTypeUid: string,\n fieldSchemaMap: ISchemaIndividualFieldMap\n ): void {\n FieldSchemaMap.fieldSchema[contentTypeUid] = fieldSchemaMap;\n }\n\n /**\n * Clears the field schema cache.\n */\n static clear(): void {\n FieldSchemaMap.fieldSchema = {};\n FieldSchemaMap.fieldSchemaPromise = {};\n }\n}\n"],"mappings":";;;AAAA,SAAS,KAAK,eAAe;AAM7B,OAAO,8BAA8B;AACrC,SAAS,sCAAsC;AAUxC,IAAM,kBAAN,MAAM,gBAAe;AAAA,EASxB,aAAqB,iBAAiB,kBAA0B;AA1BpE;AA2BQ,QAAI,GAAC,qBAAe,uBAAf,mBAAoC,oBAAmB;AACxD,sBAAe,mBAAmB,gBAAgB,KAC9C,qDAA0B;AAAA,QACtB,+BAA+B;AAAA,QAC/B;AAAA,UACI,gBAAgB;AAAA,QACpB;AAAA;AAAA,IAEZ;AACA,WAAO,gBAAe,mBAAmB,gBAAgB;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,eACT,gBACA,WACwB;AA/ChC;AAgDQ,QAAI,gBAAe,eAAe,gBAAgB,SAAS,GAAG;AAC1D,aAAO,QAAQ;AAAA,QACX,gBAAe,YAAY,cAAc,EAAE,SAAS;AAAA,MACxD;AAAA,IACJ;AAEA,UAAM,OAAO,MAAM,gBAAe,iBAAiB,cAAc;AAEjE,QAAI,6BAAM,gBAAgB;AACtB,sBAAe,YAAY,cAAc,IAAI,KAAK;AAAA,IACtD;AAEA,aAAO,8DAAgB,gBAAhB,mBAA8B,oBAA9B,mBAAgD,eAAc;AAAA,EACzE;AAAA,EAEA,OAAO,eAAe,gBAAwB,WAA4B;AACtE,WAAO,IAAI,gBAAe,aAAa,CAAC,gBAAgB,SAAS,CAAC;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,oBACH,kBACA,mBACO;AACP,WAAO,QAAQ,kBAAkB,iBAAiB;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,eACH,gBACA,gBACI;AACJ,oBAAe,YAAY,cAAc,IAAI;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAc;AACjB,oBAAe,cAAc,CAAC;AAC9B,oBAAe,qBAAqB,CAAC;AAAA,EACzC;AACJ;AAlFa,gBACM,cAEX,CAAC;AAHI,gBAKM,qBAEX,CAAC;AAPF,IAAM,iBAAN;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/fieldSchemaMap.ts"],"sourcesContent":["import { has, isEqual } from \"lodash-es\";\nimport {\n ISchemaFieldMap,\n ISchemaIndividualFieldMap,\n} from \"./types/index.types\";\n\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\n\ninterface IFieldSchemaMapResponse {\n fieldSchemaMap: ISchemaIndividualFieldMap;\n}\n/**\n * Represents a cache for field schemas. Field schemas are\n * used to easily get the field schema based on the field\n * Cslp.\n */\nexport class FieldSchemaMap {\n private static fieldSchema: {\n [contentTypeUid: string]: ISchemaIndividualFieldMap;\n } = {};\n\n private static fieldSchemaPromise: {\n [contentTypeUid: string]: Promise<IFieldSchemaMapResponse> | undefined;\n } = {};\n\n private static async fetchFieldSchema(content_type_uid: string) {\n if (!FieldSchemaMap.fieldSchemaPromise?.[content_type_uid]) {\n FieldSchemaMap.fieldSchemaPromise[content_type_uid] =\n visualBuilderPostMessage?.send<IFieldSchemaMapResponse>(\n VisualBuilderPostMessageEvents.GET_FIELD_SCHEMA,\n {\n contentTypeUid: content_type_uid,\n }\n );\n }\n return FieldSchemaMap.fieldSchemaPromise[content_type_uid];\n }\n /**\n * Retrieves the schema field map for a given content type and field Cslp.\n * @param contentTypeUid - The unique identifier of the content type.\n * @param fieldCslp - The Cslp of the field.\n * @returns The schema field map.\n */\n static async getFieldSchema(\n contentTypeUid: string,\n fieldCslp: string\n ): Promise<ISchemaFieldMap> {\n if (FieldSchemaMap.hasFieldSchema(contentTypeUid, fieldCslp)) {\n return Promise.resolve(\n FieldSchemaMap.fieldSchema[contentTypeUid][fieldCslp]\n );\n }\n\n const data = await FieldSchemaMap.fetchFieldSchema(contentTypeUid);\n\n if (data?.fieldSchemaMap) {\n FieldSchemaMap.fieldSchema[contentTypeUid] = data.fieldSchemaMap;\n }\n\n return FieldSchemaMap?.fieldSchema?.[contentTypeUid]?.[fieldCslp] || null;\n }\n\n static hasFieldSchema(contentTypeUid: string, fieldCslp: string): boolean {\n return has(FieldSchemaMap.fieldSchema, [contentTypeUid, fieldCslp]);\n }\n\n /**\n * Checks if two field schemas are equal.\n * @param firstFieldSchema - The first field schema to compare.\n * @param secondFieldSchema - The second field schema to compare.\n * @returns True if the field schemas are equal, false otherwise.\n */\n static areFieldSchemaEqual(\n firstFieldSchema: ISchemaFieldMap,\n secondFieldSchema: ISchemaFieldMap\n ): boolean {\n return isEqual(firstFieldSchema, secondFieldSchema);\n }\n\n /**\n * Sets the field schema for a given content type.\n * @param contentTypeUid The unique identifier of the content type.\n * @param fieldSchemaMap The map of individual field schemas.\n */\n static setFieldSchema(\n contentTypeUid: string,\n fieldSchemaMap: ISchemaIndividualFieldMap\n ): void {\n FieldSchemaMap.fieldSchema[contentTypeUid] = fieldSchemaMap;\n }\n\n /**\n * Clears the field schemas for a specific content type.\n * @param contentTypeUid The unique identifier of the content type.\n */\n static clearContentTypeSchema(contentTypeUid: string): void {\n delete FieldSchemaMap.fieldSchema[contentTypeUid];\n delete FieldSchemaMap.fieldSchemaPromise[contentTypeUid];\n }\n\n /**\n * Clears the field schema cache.\n */\n static clear(): void {\n FieldSchemaMap.fieldSchema = {};\n FieldSchemaMap.fieldSchemaPromise = {};\n }\n}\n"],"mappings":";;;AAAA,SAAS,KAAK,eAAe;AAM7B,OAAO,8BAA8B;AACrC,SAAS,sCAAsC;AAUxC,IAAM,kBAAN,MAAM,gBAAe;AAAA,EASxB,aAAqB,iBAAiB,kBAA0B;AA1BpE;AA2BQ,QAAI,GAAC,qBAAe,uBAAf,mBAAoC,oBAAmB;AACxD,sBAAe,mBAAmB,gBAAgB,KAC9C,qDAA0B;AAAA,QACtB,+BAA+B;AAAA,QAC/B;AAAA,UACI,gBAAgB;AAAA,QACpB;AAAA;AAAA,IAEZ;AACA,WAAO,gBAAe,mBAAmB,gBAAgB;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,eACT,gBACA,WACwB;AA/ChC;AAgDQ,QAAI,gBAAe,eAAe,gBAAgB,SAAS,GAAG;AAC1D,aAAO,QAAQ;AAAA,QACX,gBAAe,YAAY,cAAc,EAAE,SAAS;AAAA,MACxD;AAAA,IACJ;AAEA,UAAM,OAAO,MAAM,gBAAe,iBAAiB,cAAc;AAEjE,QAAI,6BAAM,gBAAgB;AACtB,sBAAe,YAAY,cAAc,IAAI,KAAK;AAAA,IACtD;AAEA,aAAO,8DAAgB,gBAAhB,mBAA8B,oBAA9B,mBAAgD,eAAc;AAAA,EACzE;AAAA,EAEA,OAAO,eAAe,gBAAwB,WAA4B;AACtE,WAAO,IAAI,gBAAe,aAAa,CAAC,gBAAgB,SAAS,CAAC;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,oBACH,kBACA,mBACO;AACP,WAAO,QAAQ,kBAAkB,iBAAiB;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,eACH,gBACA,gBACI;AACJ,oBAAe,YAAY,cAAc,IAAI;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,uBAAuB,gBAA8B;AACxD,WAAO,gBAAe,YAAY,cAAc;AAChD,WAAO,gBAAe,mBAAmB,cAAc;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAc;AACjB,oBAAe,cAAc,CAAC;AAC9B,oBAAe,qBAAqB,CAAC;AAAA,EACzC;AACJ;AA3Fa,gBACM,cAEX,CAAC;AAHI,gBAKM,qBAEX,CAAC;AAPF,IAAM,iBAAN;","names":[]}
@@ -60,11 +60,15 @@ function getPrefix(cslp) {
60
60
  return prefix.split(".").slice(0, 3).join(".");
61
61
  }
62
62
  function getDOMEditStack(ele) {
63
- var _a;
63
+ var _a, _b;
64
64
  const cslpSet = [];
65
65
  let curr = ele.closest(`[${import_constants.DATA_CSLP_ATTR_SELECTOR}]`);
66
66
  while (curr) {
67
67
  const cslp = curr.getAttribute(import_constants.DATA_CSLP_ATTR_SELECTOR);
68
+ if (!cslp) {
69
+ curr = (_a = curr.parentElement) == null ? void 0 : _a.closest(`[${import_constants.DATA_CSLP_ATTR_SELECTOR}]`);
70
+ continue;
71
+ }
68
72
  const entryPrefix = getPrefix(cslp);
69
73
  const hasSamePrevPrefix = getPrefix(cslpSet.at(0) || "").startsWith(
70
74
  entryPrefix
@@ -72,9 +76,9 @@ function getDOMEditStack(ele) {
72
76
  if (!hasSamePrevPrefix) {
73
77
  cslpSet.unshift(cslp);
74
78
  }
75
- curr = (_a = curr.parentElement) == null ? void 0 : _a.closest(`[${import_constants.DATA_CSLP_ATTR_SELECTOR}]`);
79
+ curr = (_b = curr.parentElement) == null ? void 0 : _b.closest(`[${import_constants.DATA_CSLP_ATTR_SELECTOR}]`);
76
80
  }
77
- return cslpSet.map((cslp) => (0, import_cslpdata.extractDetailsFromCslp)(cslp));
81
+ return cslpSet.filter((cslp) => cslp).map((cslp) => (0, import_cslpdata.extractDetailsFromCslp)(cslp));
78
82
  }
79
83
  // Annotate the CommonJS export names for ESM import in node:
80
84
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getCsDataOfElement.ts"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"./constants\";\n\n/**\n * Returns the CSLP data of the closest ancestor element with a `data-cslp` attribute\n * to the target element of a mouse event.\n * @param event - The mouse event.\n * @returns The CSLP data of the closest ancestor element with a `data-cslp` attribute,\n * along with metadata and schema information for the corresponding field.\n */\nexport function getCsDataOfElement(\n event: MouseEvent\n): VisualBuilderCslpEventDetails | undefined {\n const targetElement = event.target as HTMLElement;\n if (!targetElement) {\n return;\n }\n const editableElement = targetElement.closest(\"[data-cslp]\");\n\n if (!editableElement) {\n return;\n }\n const cslpData = editableElement.getAttribute(\"data-cslp\");\n if (!cslpData) {\n return;\n }\n const fieldMetadata = extractDetailsFromCslp(cslpData);\n\n return {\n editableElement: editableElement,\n cslpData,\n fieldMetadata,\n };\n}\n\nfunction getPrefix(cslp: string): string {\n let prefix;\n if (cslp.startsWith(\"v2:\")) {\n // v2: prefix is added to cslp in variant cases\n const variantPrefix = cslp.split(\":\")[1];\n const content_type_uid = variantPrefix.split(\".\")[0];\n const euid = variantPrefix.split(\".\")[1].split(\"_\")[0]; //page.blt7a1e5b297a97bd12_cs8171e34d92207334.en-us\n const locale = variantPrefix.split(\".\")[2];\n prefix = `${content_type_uid}.${euid}.${locale}`;\n } else {\n prefix = cslp;\n }\n return prefix.split(\".\").slice(0, 3).join(\".\");\n}\n\nexport function getDOMEditStack(ele: Element): CslpData[] {\n const cslpSet: string[] = [];\n let curr: any = ele.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n while (curr) {\n const cslp = curr.getAttribute(DATA_CSLP_ATTR_SELECTOR)!;\n const entryPrefix = getPrefix(cslp);\n const hasSamePrevPrefix = getPrefix(cslpSet.at(0) || \"\").startsWith(\n entryPrefix\n );\n if (!hasSamePrevPrefix) {\n cslpSet.unshift(cslp);\n }\n curr = curr.parentElement?.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n }\n return cslpSet.map((cslp) => extractDetailsFromCslp(cslp));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAAuC;AACvC,uBAAwC;AASjC,SAAS,mBACZ,OACyC;AACzC,QAAM,gBAAgB,MAAM;AAC5B,MAAI,CAAC,eAAe;AAChB;AAAA,EACJ;AACA,QAAM,kBAAkB,cAAc,QAAQ,aAAa;AAE3D,MAAI,CAAC,iBAAiB;AAClB;AAAA,EACJ;AACA,QAAM,WAAW,gBAAgB,aAAa,WAAW;AACzD,MAAI,CAAC,UAAU;AACX;AAAA,EACJ;AACA,QAAM,oBAAgB,wCAAuB,QAAQ;AAErD,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,UAAU,MAAsB;AACrC,MAAI;AACJ,MAAI,KAAK,WAAW,KAAK,GAAG;AAExB,UAAM,gBAAgB,KAAK,MAAM,GAAG,EAAE,CAAC;AACvC,UAAM,mBAAmB,cAAc,MAAM,GAAG,EAAE,CAAC;AACnD,UAAM,OAAO,cAAc,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AACrD,UAAM,SAAS,cAAc,MAAM,GAAG,EAAE,CAAC;AACzC,aAAS,GAAG,gBAAgB,IAAI,IAAI,IAAI,MAAM;AAAA,EAClD,OAAO;AACH,aAAS;AAAA,EACb;AACA,SAAO,OAAO,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG;AACjD;AAEO,SAAS,gBAAgB,KAA0B;AApD1D;AAqDI,QAAM,UAAoB,CAAC;AAC3B,MAAI,OAAY,IAAI,QAAQ,IAAI,wCAAuB,GAAG;AAC1D,SAAO,MAAM;AACT,UAAM,OAAO,KAAK,aAAa,wCAAuB;AACtD,UAAM,cAAc,UAAU,IAAI;AAClC,UAAM,oBAAoB,UAAU,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE;AAAA,MACrD;AAAA,IACJ;AACA,QAAI,CAAC,mBAAmB;AACpB,cAAQ,QAAQ,IAAI;AAAA,IACxB;AACA,YAAO,UAAK,kBAAL,mBAAoB,QAAQ,IAAI,wCAAuB;AAAA,EAClE;AACA,SAAO,QAAQ,IAAI,CAAC,aAAS,wCAAuB,IAAI,CAAC;AAC7D;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getCsDataOfElement.ts"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"./constants\";\n\n/**\n * Returns the CSLP data of the closest ancestor element with a `data-cslp` attribute\n * to the target element of a mouse event.\n * @param event - The mouse event.\n * @returns The CSLP data of the closest ancestor element with a `data-cslp` attribute,\n * along with metadata and schema information for the corresponding field.\n */\nexport function getCsDataOfElement(\n event: MouseEvent\n): VisualBuilderCslpEventDetails | undefined {\n const targetElement = event.target as HTMLElement;\n if (!targetElement) {\n return;\n }\n const editableElement = targetElement.closest(\"[data-cslp]\");\n\n if (!editableElement) {\n return;\n }\n const cslpData = editableElement.getAttribute(\"data-cslp\");\n if (!cslpData) {\n return;\n }\n const fieldMetadata = extractDetailsFromCslp(cslpData);\n\n return {\n editableElement: editableElement,\n cslpData,\n fieldMetadata,\n };\n}\n\nfunction getPrefix(cslp: string): string {\n let prefix;\n if (cslp.startsWith(\"v2:\")) {\n // v2: prefix is added to cslp in variant cases\n const variantPrefix = cslp.split(\":\")[1];\n const content_type_uid = variantPrefix.split(\".\")[0];\n const euid = variantPrefix.split(\".\")[1].split(\"_\")[0]; //page.blt7a1e5b297a97bd12_cs8171e34d92207334.en-us\n const locale = variantPrefix.split(\".\")[2];\n prefix = `${content_type_uid}.${euid}.${locale}`;\n } else {\n prefix = cslp;\n }\n return prefix.split(\".\").slice(0, 3).join(\".\");\n}\n\nexport function getDOMEditStack(ele: Element): CslpData[] {\n const cslpSet: string[] = [];\n let curr: any = ele.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n while (curr) {\n const cslp = curr.getAttribute(DATA_CSLP_ATTR_SELECTOR);\n if (!cslp) {\n curr = curr.parentElement?.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n continue;\n }\n const entryPrefix = getPrefix(cslp);\n const hasSamePrevPrefix = getPrefix(cslpSet.at(0) || \"\").startsWith(\n entryPrefix\n );\n if (!hasSamePrevPrefix) {\n cslpSet.unshift(cslp);\n }\n curr = curr.parentElement?.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n }\n return cslpSet.filter((cslp) => cslp).map((cslp) => extractDetailsFromCslp(cslp));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAAuC;AACvC,uBAAwC;AASjC,SAAS,mBACZ,OACyC;AACzC,QAAM,gBAAgB,MAAM;AAC5B,MAAI,CAAC,eAAe;AAChB;AAAA,EACJ;AACA,QAAM,kBAAkB,cAAc,QAAQ,aAAa;AAE3D,MAAI,CAAC,iBAAiB;AAClB;AAAA,EACJ;AACA,QAAM,WAAW,gBAAgB,aAAa,WAAW;AACzD,MAAI,CAAC,UAAU;AACX;AAAA,EACJ;AACA,QAAM,oBAAgB,wCAAuB,QAAQ;AAErD,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,UAAU,MAAsB;AACrC,MAAI;AACJ,MAAI,KAAK,WAAW,KAAK,GAAG;AAExB,UAAM,gBAAgB,KAAK,MAAM,GAAG,EAAE,CAAC;AACvC,UAAM,mBAAmB,cAAc,MAAM,GAAG,EAAE,CAAC;AACnD,UAAM,OAAO,cAAc,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AACrD,UAAM,SAAS,cAAc,MAAM,GAAG,EAAE,CAAC;AACzC,aAAS,GAAG,gBAAgB,IAAI,IAAI,IAAI,MAAM;AAAA,EAClD,OAAO;AACH,aAAS;AAAA,EACb;AACA,SAAO,OAAO,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG;AACjD;AAEO,SAAS,gBAAgB,KAA0B;AApD1D;AAqDI,QAAM,UAAoB,CAAC;AAC3B,MAAI,OAAY,IAAI,QAAQ,IAAI,wCAAuB,GAAG;AAC1D,SAAO,MAAM;AACT,UAAM,OAAO,KAAK,aAAa,wCAAuB;AACtD,QAAI,CAAC,MAAM;AACP,cAAO,UAAK,kBAAL,mBAAoB,QAAQ,IAAI,wCAAuB;AAC9D;AAAA,IACJ;AACA,UAAM,cAAc,UAAU,IAAI;AAClC,UAAM,oBAAoB,UAAU,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE;AAAA,MACrD;AAAA,IACJ;AACA,QAAI,CAAC,mBAAmB;AACpB,cAAQ,QAAQ,IAAI;AAAA,IACxB;AACA,YAAO,UAAK,kBAAL,mBAAoB,QAAQ,IAAI,wCAAuB;AAAA,EAClE;AACA,SAAO,QAAQ,OAAO,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,aAAS,wCAAuB,IAAI,CAAC;AACpF;","names":[]}
@@ -37,11 +37,15 @@ function getPrefix(cslp) {
37
37
  return prefix.split(".").slice(0, 3).join(".");
38
38
  }
39
39
  function getDOMEditStack(ele) {
40
- var _a;
40
+ var _a, _b;
41
41
  const cslpSet = [];
42
42
  let curr = ele.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);
43
43
  while (curr) {
44
44
  const cslp = curr.getAttribute(DATA_CSLP_ATTR_SELECTOR);
45
+ if (!cslp) {
46
+ curr = (_a = curr.parentElement) == null ? void 0 : _a.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);
47
+ continue;
48
+ }
45
49
  const entryPrefix = getPrefix(cslp);
46
50
  const hasSamePrevPrefix = getPrefix(cslpSet.at(0) || "").startsWith(
47
51
  entryPrefix
@@ -49,9 +53,9 @@ function getDOMEditStack(ele) {
49
53
  if (!hasSamePrevPrefix) {
50
54
  cslpSet.unshift(cslp);
51
55
  }
52
- curr = (_a = curr.parentElement) == null ? void 0 : _a.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);
56
+ curr = (_b = curr.parentElement) == null ? void 0 : _b.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);
53
57
  }
54
- return cslpSet.map((cslp) => extractDetailsFromCslp(cslp));
58
+ return cslpSet.filter((cslp) => cslp).map((cslp) => extractDetailsFromCslp(cslp));
55
59
  }
56
60
  export {
57
61
  getCsDataOfElement,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getCsDataOfElement.ts"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"./constants\";\n\n/**\n * Returns the CSLP data of the closest ancestor element with a `data-cslp` attribute\n * to the target element of a mouse event.\n * @param event - The mouse event.\n * @returns The CSLP data of the closest ancestor element with a `data-cslp` attribute,\n * along with metadata and schema information for the corresponding field.\n */\nexport function getCsDataOfElement(\n event: MouseEvent\n): VisualBuilderCslpEventDetails | undefined {\n const targetElement = event.target as HTMLElement;\n if (!targetElement) {\n return;\n }\n const editableElement = targetElement.closest(\"[data-cslp]\");\n\n if (!editableElement) {\n return;\n }\n const cslpData = editableElement.getAttribute(\"data-cslp\");\n if (!cslpData) {\n return;\n }\n const fieldMetadata = extractDetailsFromCslp(cslpData);\n\n return {\n editableElement: editableElement,\n cslpData,\n fieldMetadata,\n };\n}\n\nfunction getPrefix(cslp: string): string {\n let prefix;\n if (cslp.startsWith(\"v2:\")) {\n // v2: prefix is added to cslp in variant cases\n const variantPrefix = cslp.split(\":\")[1];\n const content_type_uid = variantPrefix.split(\".\")[0];\n const euid = variantPrefix.split(\".\")[1].split(\"_\")[0]; //page.blt7a1e5b297a97bd12_cs8171e34d92207334.en-us\n const locale = variantPrefix.split(\".\")[2];\n prefix = `${content_type_uid}.${euid}.${locale}`;\n } else {\n prefix = cslp;\n }\n return prefix.split(\".\").slice(0, 3).join(\".\");\n}\n\nexport function getDOMEditStack(ele: Element): CslpData[] {\n const cslpSet: string[] = [];\n let curr: any = ele.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n while (curr) {\n const cslp = curr.getAttribute(DATA_CSLP_ATTR_SELECTOR)!;\n const entryPrefix = getPrefix(cslp);\n const hasSamePrevPrefix = getPrefix(cslpSet.at(0) || \"\").startsWith(\n entryPrefix\n );\n if (!hasSamePrevPrefix) {\n cslpSet.unshift(cslp);\n }\n curr = curr.parentElement?.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n }\n return cslpSet.map((cslp) => extractDetailsFromCslp(cslp));\n}\n"],"mappings":";;;AAEA,SAAS,8BAA8B;AACvC,SAAS,+BAA+B;AASjC,SAAS,mBACZ,OACyC;AACzC,QAAM,gBAAgB,MAAM;AAC5B,MAAI,CAAC,eAAe;AAChB;AAAA,EACJ;AACA,QAAM,kBAAkB,cAAc,QAAQ,aAAa;AAE3D,MAAI,CAAC,iBAAiB;AAClB;AAAA,EACJ;AACA,QAAM,WAAW,gBAAgB,aAAa,WAAW;AACzD,MAAI,CAAC,UAAU;AACX;AAAA,EACJ;AACA,QAAM,gBAAgB,uBAAuB,QAAQ;AAErD,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,UAAU,MAAsB;AACrC,MAAI;AACJ,MAAI,KAAK,WAAW,KAAK,GAAG;AAExB,UAAM,gBAAgB,KAAK,MAAM,GAAG,EAAE,CAAC;AACvC,UAAM,mBAAmB,cAAc,MAAM,GAAG,EAAE,CAAC;AACnD,UAAM,OAAO,cAAc,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AACrD,UAAM,SAAS,cAAc,MAAM,GAAG,EAAE,CAAC;AACzC,aAAS,GAAG,gBAAgB,IAAI,IAAI,IAAI,MAAM;AAAA,EAClD,OAAO;AACH,aAAS;AAAA,EACb;AACA,SAAO,OAAO,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG;AACjD;AAEO,SAAS,gBAAgB,KAA0B;AApD1D;AAqDI,QAAM,UAAoB,CAAC;AAC3B,MAAI,OAAY,IAAI,QAAQ,IAAI,uBAAuB,GAAG;AAC1D,SAAO,MAAM;AACT,UAAM,OAAO,KAAK,aAAa,uBAAuB;AACtD,UAAM,cAAc,UAAU,IAAI;AAClC,UAAM,oBAAoB,UAAU,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE;AAAA,MACrD;AAAA,IACJ;AACA,QAAI,CAAC,mBAAmB;AACpB,cAAQ,QAAQ,IAAI;AAAA,IACxB;AACA,YAAO,UAAK,kBAAL,mBAAoB,QAAQ,IAAI,uBAAuB;AAAA,EAClE;AACA,SAAO,QAAQ,IAAI,CAAC,SAAS,uBAAuB,IAAI,CAAC;AAC7D;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getCsDataOfElement.ts"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"./constants\";\n\n/**\n * Returns the CSLP data of the closest ancestor element with a `data-cslp` attribute\n * to the target element of a mouse event.\n * @param event - The mouse event.\n * @returns The CSLP data of the closest ancestor element with a `data-cslp` attribute,\n * along with metadata and schema information for the corresponding field.\n */\nexport function getCsDataOfElement(\n event: MouseEvent\n): VisualBuilderCslpEventDetails | undefined {\n const targetElement = event.target as HTMLElement;\n if (!targetElement) {\n return;\n }\n const editableElement = targetElement.closest(\"[data-cslp]\");\n\n if (!editableElement) {\n return;\n }\n const cslpData = editableElement.getAttribute(\"data-cslp\");\n if (!cslpData) {\n return;\n }\n const fieldMetadata = extractDetailsFromCslp(cslpData);\n\n return {\n editableElement: editableElement,\n cslpData,\n fieldMetadata,\n };\n}\n\nfunction getPrefix(cslp: string): string {\n let prefix;\n if (cslp.startsWith(\"v2:\")) {\n // v2: prefix is added to cslp in variant cases\n const variantPrefix = cslp.split(\":\")[1];\n const content_type_uid = variantPrefix.split(\".\")[0];\n const euid = variantPrefix.split(\".\")[1].split(\"_\")[0]; //page.blt7a1e5b297a97bd12_cs8171e34d92207334.en-us\n const locale = variantPrefix.split(\".\")[2];\n prefix = `${content_type_uid}.${euid}.${locale}`;\n } else {\n prefix = cslp;\n }\n return prefix.split(\".\").slice(0, 3).join(\".\");\n}\n\nexport function getDOMEditStack(ele: Element): CslpData[] {\n const cslpSet: string[] = [];\n let curr: any = ele.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n while (curr) {\n const cslp = curr.getAttribute(DATA_CSLP_ATTR_SELECTOR);\n if (!cslp) {\n curr = curr.parentElement?.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n continue;\n }\n const entryPrefix = getPrefix(cslp);\n const hasSamePrevPrefix = getPrefix(cslpSet.at(0) || \"\").startsWith(\n entryPrefix\n );\n if (!hasSamePrevPrefix) {\n cslpSet.unshift(cslp);\n }\n curr = curr.parentElement?.closest(`[${DATA_CSLP_ATTR_SELECTOR}]`);\n }\n return cslpSet.filter((cslp) => cslp).map((cslp) => extractDetailsFromCslp(cslp));\n}\n"],"mappings":";;;AAEA,SAAS,8BAA8B;AACvC,SAAS,+BAA+B;AASjC,SAAS,mBACZ,OACyC;AACzC,QAAM,gBAAgB,MAAM;AAC5B,MAAI,CAAC,eAAe;AAChB;AAAA,EACJ;AACA,QAAM,kBAAkB,cAAc,QAAQ,aAAa;AAE3D,MAAI,CAAC,iBAAiB;AAClB;AAAA,EACJ;AACA,QAAM,WAAW,gBAAgB,aAAa,WAAW;AACzD,MAAI,CAAC,UAAU;AACX;AAAA,EACJ;AACA,QAAM,gBAAgB,uBAAuB,QAAQ;AAErD,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,UAAU,MAAsB;AACrC,MAAI;AACJ,MAAI,KAAK,WAAW,KAAK,GAAG;AAExB,UAAM,gBAAgB,KAAK,MAAM,GAAG,EAAE,CAAC;AACvC,UAAM,mBAAmB,cAAc,MAAM,GAAG,EAAE,CAAC;AACnD,UAAM,OAAO,cAAc,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AACrD,UAAM,SAAS,cAAc,MAAM,GAAG,EAAE,CAAC;AACzC,aAAS,GAAG,gBAAgB,IAAI,IAAI,IAAI,MAAM;AAAA,EAClD,OAAO;AACH,aAAS;AAAA,EACb;AACA,SAAO,OAAO,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG;AACjD;AAEO,SAAS,gBAAgB,KAA0B;AApD1D;AAqDI,QAAM,UAAoB,CAAC;AAC3B,MAAI,OAAY,IAAI,QAAQ,IAAI,uBAAuB,GAAG;AAC1D,SAAO,MAAM;AACT,UAAM,OAAO,KAAK,aAAa,uBAAuB;AACtD,QAAI,CAAC,MAAM;AACP,cAAO,UAAK,kBAAL,mBAAoB,QAAQ,IAAI,uBAAuB;AAC9D;AAAA,IACJ;AACA,UAAM,cAAc,UAAU,IAAI;AAClC,UAAM,oBAAoB,UAAU,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE;AAAA,MACrD;AAAA,IACJ;AACA,QAAI,CAAC,mBAAmB;AACpB,cAAQ,QAAQ,IAAI;AAAA,IACxB;AACA,YAAO,UAAK,kBAAL,mBAAoB,QAAQ,IAAI,uBAAuB;AAAA,EAClE;AACA,SAAO,QAAQ,OAAO,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,SAAS,uBAAuB,IAAI,CAAC;AACpF;","names":[]}
@@ -30,9 +30,9 @@ function getEntryIdentifiersInCurrentPage() {
30
30
  );
31
31
  const uniqueEntriesMap = /* @__PURE__ */ new Map();
32
32
  elementsWithCslp.forEach((element) => {
33
- const cslpData = (0, import_cslpdata.extractDetailsFromCslp)(
34
- element.getAttribute("data-cslp")
35
- );
33
+ const cslpValue = element.getAttribute("data-cslp");
34
+ if (!cslpValue) return;
35
+ const cslpData = (0, import_cslpdata.extractDetailsFromCslp)(cslpValue);
36
36
  uniqueEntriesMap.set(
37
37
  cslpData.entry_uid,
38
38
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getEntryIdentifiersInCurrentPage.ts"],"sourcesContent":["import { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\n\ntype EntryIdentifiers = {\n entriesInCurrentPage: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n }[];\n}\n\nexport function getEntryIdentifiersInCurrentPage(): EntryIdentifiers {\n const elementsWithCslp = Array.from(\n document.querySelectorAll(\"[data-cslp]\")\n );\n const uniqueEntriesMap = new Map<string, { entryUid: string, contentTypeUid: string, locale: string}>();\n elementsWithCslp.forEach((element) => {\n const cslpData = extractDetailsFromCslp(\n element.getAttribute(\"data-cslp\") as string\n );\n uniqueEntriesMap.set(cslpData.entry_uid, \n { \n entryUid: cslpData.entry_uid, \n contentTypeUid: cslpData.content_type_uid, \n locale: cslpData.locale \n }\n );\n });\n \n const uniqueEntriesArray = Array.from(uniqueEntriesMap.values());\n\n return {\n entriesInCurrentPage: uniqueEntriesArray,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAuC;AAUhC,SAAS,mCAAqD;AACjE,QAAM,mBAAmB,MAAM;AAAA,IAC3B,SAAS,iBAAiB,aAAa;AAAA,EAC3C;AACA,QAAM,mBAAmB,oBAAI,IAAyE;AACtG,mBAAiB,QAAQ,CAAC,YAAY;AAClC,UAAM,eAAW;AAAA,MACb,QAAQ,aAAa,WAAW;AAAA,IACpC;AACA,qBAAiB;AAAA,MAAI,SAAS;AAAA,MAC1B;AAAA,QACI,UAAU,SAAS;AAAA,QACnB,gBAAgB,SAAS;AAAA,QACzB,QAAQ,SAAS;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,qBAAqB,MAAM,KAAK,iBAAiB,OAAO,CAAC;AAE/D,SAAO;AAAA,IACH,sBAAsB;AAAA,EAC1B;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getEntryIdentifiersInCurrentPage.ts"],"sourcesContent":["import { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\n\ntype EntryIdentifiers = {\n entriesInCurrentPage: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n }[];\n}\n\nexport function getEntryIdentifiersInCurrentPage(): EntryIdentifiers {\n const elementsWithCslp = Array.from(\n document.querySelectorAll(\"[data-cslp]\")\n );\n const uniqueEntriesMap = new Map<string, { entryUid: string, contentTypeUid: string, locale: string}>();\n elementsWithCslp.forEach((element) => {\n const cslpValue = element.getAttribute(\"data-cslp\");\n if (!cslpValue) return;\n const cslpData = extractDetailsFromCslp(cslpValue);\n uniqueEntriesMap.set(cslpData.entry_uid, \n { \n entryUid: cslpData.entry_uid, \n contentTypeUid: cslpData.content_type_uid, \n locale: cslpData.locale \n }\n );\n });\n \n const uniqueEntriesArray = Array.from(uniqueEntriesMap.values());\n\n return {\n entriesInCurrentPage: uniqueEntriesArray,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAuC;AAUhC,SAAS,mCAAqD;AACjE,QAAM,mBAAmB,MAAM;AAAA,IAC3B,SAAS,iBAAiB,aAAa;AAAA,EAC3C;AACA,QAAM,mBAAmB,oBAAI,IAAyE;AACtG,mBAAiB,QAAQ,CAAC,YAAY;AAClC,UAAM,YAAY,QAAQ,aAAa,WAAW;AAClD,QAAI,CAAC,UAAW;AAChB,UAAM,eAAW,wCAAuB,SAAS;AACjD,qBAAiB;AAAA,MAAI,SAAS;AAAA,MAC1B;AAAA,QACI,UAAU,SAAS;AAAA,QACnB,gBAAgB,SAAS;AAAA,QACzB,QAAQ,SAAS;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,qBAAqB,MAAM,KAAK,iBAAiB,OAAO,CAAC;AAE/D,SAAO;AAAA,IACH,sBAAsB;AAAA,EAC1B;AACJ;","names":[]}
@@ -8,9 +8,9 @@ function getEntryIdentifiersInCurrentPage() {
8
8
  );
9
9
  const uniqueEntriesMap = /* @__PURE__ */ new Map();
10
10
  elementsWithCslp.forEach((element) => {
11
- const cslpData = extractDetailsFromCslp(
12
- element.getAttribute("data-cslp")
13
- );
11
+ const cslpValue = element.getAttribute("data-cslp");
12
+ if (!cslpValue) return;
13
+ const cslpData = extractDetailsFromCslp(cslpValue);
14
14
  uniqueEntriesMap.set(
15
15
  cslpData.entry_uid,
16
16
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getEntryIdentifiersInCurrentPage.ts"],"sourcesContent":["import { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\n\ntype EntryIdentifiers = {\n entriesInCurrentPage: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n }[];\n}\n\nexport function getEntryIdentifiersInCurrentPage(): EntryIdentifiers {\n const elementsWithCslp = Array.from(\n document.querySelectorAll(\"[data-cslp]\")\n );\n const uniqueEntriesMap = new Map<string, { entryUid: string, contentTypeUid: string, locale: string}>();\n elementsWithCslp.forEach((element) => {\n const cslpData = extractDetailsFromCslp(\n element.getAttribute(\"data-cslp\") as string\n );\n uniqueEntriesMap.set(cslpData.entry_uid, \n { \n entryUid: cslpData.entry_uid, \n contentTypeUid: cslpData.content_type_uid, \n locale: cslpData.locale \n }\n );\n });\n \n const uniqueEntriesArray = Array.from(uniqueEntriesMap.values());\n\n return {\n entriesInCurrentPage: uniqueEntriesArray,\n };\n}\n"],"mappings":";;;AAAA,SAAS,8BAA8B;AAUhC,SAAS,mCAAqD;AACjE,QAAM,mBAAmB,MAAM;AAAA,IAC3B,SAAS,iBAAiB,aAAa;AAAA,EAC3C;AACA,QAAM,mBAAmB,oBAAI,IAAyE;AACtG,mBAAiB,QAAQ,CAAC,YAAY;AAClC,UAAM,WAAW;AAAA,MACb,QAAQ,aAAa,WAAW;AAAA,IACpC;AACA,qBAAiB;AAAA,MAAI,SAAS;AAAA,MAC1B;AAAA,QACI,UAAU,SAAS;AAAA,QACnB,gBAAgB,SAAS;AAAA,QACzB,QAAQ,SAAS;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,qBAAqB,MAAM,KAAK,iBAAiB,OAAO,CAAC;AAE/D,SAAO;AAAA,IACH,sBAAsB;AAAA,EAC1B;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getEntryIdentifiersInCurrentPage.ts"],"sourcesContent":["import { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\n\ntype EntryIdentifiers = {\n entriesInCurrentPage: {\n entryUid: string;\n contentTypeUid: string;\n locale: string;\n }[];\n}\n\nexport function getEntryIdentifiersInCurrentPage(): EntryIdentifiers {\n const elementsWithCslp = Array.from(\n document.querySelectorAll(\"[data-cslp]\")\n );\n const uniqueEntriesMap = new Map<string, { entryUid: string, contentTypeUid: string, locale: string}>();\n elementsWithCslp.forEach((element) => {\n const cslpValue = element.getAttribute(\"data-cslp\");\n if (!cslpValue) return;\n const cslpData = extractDetailsFromCslp(cslpValue);\n uniqueEntriesMap.set(cslpData.entry_uid, \n { \n entryUid: cslpData.entry_uid, \n contentTypeUid: cslpData.content_type_uid, \n locale: cslpData.locale \n }\n );\n });\n \n const uniqueEntriesArray = Array.from(uniqueEntriesMap.values());\n\n return {\n entriesInCurrentPage: uniqueEntriesArray,\n };\n}\n"],"mappings":";;;AAAA,SAAS,8BAA8B;AAUhC,SAAS,mCAAqD;AACjE,QAAM,mBAAmB,MAAM;AAAA,IAC3B,SAAS,iBAAiB,aAAa;AAAA,EAC3C;AACA,QAAM,mBAAmB,oBAAI,IAAyE;AACtG,mBAAiB,QAAQ,CAAC,YAAY;AAClC,UAAM,YAAY,QAAQ,aAAa,WAAW;AAClD,QAAI,CAAC,UAAW;AAChB,UAAM,WAAW,uBAAuB,SAAS;AACjD,qBAAiB;AAAA,MAAI,SAAS;AAAA,MAC1B;AAAA,QACI,UAAU,SAAS;AAAA,QACnB,gBAAgB,SAAS;AAAA,QACzB,QAAQ,SAAS;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,qBAAqB,MAAM,KAAK,iBAAiB,OAAO,CAAC;AAE/D,SAAO;AAAA,IACH,sBAAsB;AAAA,EAC1B;AACJ;","names":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/visualBuilder/utils/getResolvedVariantPermissions.ts
31
+ var getResolvedVariantPermissions_exports = {};
32
+ __export(getResolvedVariantPermissions_exports, {
33
+ getResolvedVariantPermissions: () => getResolvedVariantPermissions
34
+ });
35
+ module.exports = __toCommonJS(getResolvedVariantPermissions_exports);
36
+ var import_postMessage = require("./types/postMessage.types.cjs");
37
+ var import_visualBuilderPostMessage = __toESM(require("./visualBuilderPostMessage.cjs"), 1);
38
+ async function getResolvedVariantPermissions(fieldContext) {
39
+ var _a;
40
+ try {
41
+ const result = await ((_a = import_visualBuilderPostMessage.default) == null ? void 0 : _a.send(import_postMessage.VisualBuilderPostMessageEvents.GET_RESOLVED_VARIANT_PERMISSIONS, fieldContext));
42
+ return result ?? {
43
+ update: true,
44
+ error: true
45
+ };
46
+ } catch (e) {
47
+ console.warn("Error retrieving resolved variant permissions", e);
48
+ return {
49
+ update: true,
50
+ error: true
51
+ };
52
+ }
53
+ }
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ getResolvedVariantPermissions
57
+ });
58
+ //# sourceMappingURL=getResolvedVariantPermissions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getResolvedVariantPermissions.ts"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\n\nexport type FieldContext = Pick<CslpData, \"content_type_uid\" | \"entry_uid\" | \"locale\" | \"variant\" | \"fieldPathWithIndex\">;\n\nexport interface ResolvedVariantPermissions {\n update: boolean;\n error?: boolean;\n}\n\nexport async function getResolvedVariantPermissions(fieldContext: FieldContext) {\n try {\n const result = await visualBuilderPostMessage?.send<ResolvedVariantPermissions>(VisualBuilderPostMessageEvents.GET_RESOLVED_VARIANT_PERMISSIONS, fieldContext);\n return result ?? {\n update: true,\n error: true,\n };\n }\n catch(e) {\n console.warn(\"Error retrieving resolved variant permissions\", e);\n return {\n update: true,\n error: true,\n };\n }\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,yBAA+C;AAC/C,sCAAqC;AASrC,eAAsB,8BAA8B,cAA4B;AAXhF;AAYE,MAAI;AACF,UAAM,SAAS,QAAM,qCAAAA,YAAA,mBAA0B,KAAiC,kDAA+B,kCAAkC;AACjJ,WAAO,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF,SACM,GAAG;AACP,YAAQ,KAAK,iDAAiD,CAAC;AAC/D,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["visualBuilderPostMessage"]}
@@ -0,0 +1,10 @@
1
+ import { CslpData } from '../../cslp/types/cslp.types.cjs';
2
+
3
+ type FieldContext = Pick<CslpData, "content_type_uid" | "entry_uid" | "locale" | "variant" | "fieldPathWithIndex">;
4
+ interface ResolvedVariantPermissions {
5
+ update: boolean;
6
+ error?: boolean;
7
+ }
8
+ declare function getResolvedVariantPermissions(fieldContext: FieldContext): Promise<ResolvedVariantPermissions>;
9
+
10
+ export { type FieldContext, type ResolvedVariantPermissions, getResolvedVariantPermissions };
@@ -0,0 +1,10 @@
1
+ import { CslpData } from '../../cslp/types/cslp.types.js';
2
+
3
+ type FieldContext = Pick<CslpData, "content_type_uid" | "entry_uid" | "locale" | "variant" | "fieldPathWithIndex">;
4
+ interface ResolvedVariantPermissions {
5
+ update: boolean;
6
+ error?: boolean;
7
+ }
8
+ declare function getResolvedVariantPermissions(fieldContext: FieldContext): Promise<ResolvedVariantPermissions>;
9
+
10
+ export { type FieldContext, type ResolvedVariantPermissions, getResolvedVariantPermissions };
@@ -0,0 +1,25 @@
1
+ import "../../chunk-5WRI5ZAA.js";
2
+
3
+ // src/visualBuilder/utils/getResolvedVariantPermissions.ts
4
+ import { VisualBuilderPostMessageEvents } from "./types/postMessage.types.js";
5
+ import visualBuilderPostMessage from "./visualBuilderPostMessage.js";
6
+ async function getResolvedVariantPermissions(fieldContext) {
7
+ var _a;
8
+ try {
9
+ const result = await ((_a = visualBuilderPostMessage) == null ? void 0 : _a.send(VisualBuilderPostMessageEvents.GET_RESOLVED_VARIANT_PERMISSIONS, fieldContext));
10
+ return result ?? {
11
+ update: true,
12
+ error: true
13
+ };
14
+ } catch (e) {
15
+ console.warn("Error retrieving resolved variant permissions", e);
16
+ return {
17
+ update: true,
18
+ error: true
19
+ };
20
+ }
21
+ }
22
+ export {
23
+ getResolvedVariantPermissions
24
+ };
25
+ //# sourceMappingURL=getResolvedVariantPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getResolvedVariantPermissions.ts"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport visualBuilderPostMessage from \"./visualBuilderPostMessage\";\n\nexport type FieldContext = Pick<CslpData, \"content_type_uid\" | \"entry_uid\" | \"locale\" | \"variant\" | \"fieldPathWithIndex\">;\n\nexport interface ResolvedVariantPermissions {\n update: boolean;\n error?: boolean;\n}\n\nexport async function getResolvedVariantPermissions(fieldContext: FieldContext) {\n try {\n const result = await visualBuilderPostMessage?.send<ResolvedVariantPermissions>(VisualBuilderPostMessageEvents.GET_RESOLVED_VARIANT_PERMISSIONS, fieldContext);\n return result ?? {\n update: true,\n error: true,\n };\n }\n catch(e) {\n console.warn(\"Error retrieving resolved variant permissions\", e);\n return {\n update: true,\n error: true,\n };\n }\n}"],"mappings":";;;AACA,SAAS,sCAAsC;AAC/C,OAAO,8BAA8B;AASrC,eAAsB,8BAA8B,cAA4B;AAXhF;AAYE,MAAI;AACF,UAAM,SAAS,QAAM,qDAA0B,KAAiC,+BAA+B,kCAAkC;AACjJ,WAAO,UAAU;AAAA,MACf,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF,SACM,GAAG;AACP,YAAQ,KAAK,iDAAiD,CAAC;AAC/D,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
@@ -48,14 +48,16 @@ function getVisualBuilderRedirectionUrl() {
48
48
  }
49
49
  searchParams.set("target-url", window.location.href);
50
50
  const elementWithDataCslp = document.querySelector(`[data-cslp]`);
51
+ let localeToUse = locale;
51
52
  if (elementWithDataCslp) {
52
- const cslpData = elementWithDataCslp.getAttribute(
53
- "data-cslp"
54
- );
55
- const { locale: locale2 } = (0, import_cslp.extractDetailsFromCslp)(cslpData);
56
- searchParams.set("locale", locale2);
57
- } else if (locale) {
58
- searchParams.set("locale", locale);
53
+ const cslpData = elementWithDataCslp.getAttribute("data-cslp");
54
+ if (cslpData) {
55
+ const { locale: cslpLocale } = (0, import_cslp.extractDetailsFromCslp)(cslpData);
56
+ localeToUse = cslpLocale;
57
+ }
58
+ }
59
+ if (localeToUse) {
60
+ searchParams.set("locale", localeToUse);
59
61
  }
60
62
  const completeURL = new URL(
61
63
  `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\n\n/**\n * Returns the redirection URL for the Visual builder.\n * @returns {URL} The redirection URL.\n */\nexport default function getVisualBuilderRedirectionUrl(): URL {\n const { stackDetails, clientUrlParams } = Config.get();\n const { branch, apiKey, environment, locale } = stackDetails;\n const { url: appUrl } = clientUrlParams;\n\n const searchParams = new URLSearchParams();\n if (branch) {\n searchParams.set(\"branch\", branch);\n }\n if (environment) {\n searchParams.set(\"environment\", environment);\n }\n\n searchParams.set(\"target-url\", window.location.href);\n\n // get the locale from the data cslp attribute\n const elementWithDataCslp = document.querySelector(`[data-cslp]`);\n\n if (elementWithDataCslp) {\n const cslpData = elementWithDataCslp.getAttribute(\n \"data-cslp\"\n ) as string;\n const { locale } = extractDetailsFromCslp(cslpData);\n\n searchParams.set(\"locale\", locale);\n } else if (locale) {\n searchParams.set(\"locale\", locale);\n }\n\n const completeURL = new URL(\n `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,\n appUrl\n );\n return completeURL;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAmB;AACnB,kBAAuC;AAMxB,SAAR,iCAAuD;AAC1D,QAAM,EAAE,cAAc,gBAAgB,IAAI,qBAAAA,QAAO,IAAI;AACrD,QAAM,EAAE,QAAQ,QAAQ,aAAa,OAAO,IAAI;AAChD,QAAM,EAAE,KAAK,OAAO,IAAI;AAExB,QAAM,eAAe,IAAI,gBAAgB;AACzC,MAAI,QAAQ;AACR,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AACA,MAAI,aAAa;AACb,iBAAa,IAAI,eAAe,WAAW;AAAA,EAC/C;AAEA,eAAa,IAAI,cAAc,OAAO,SAAS,IAAI;AAGnD,QAAM,sBAAsB,SAAS,cAAc,aAAa;AAEhE,MAAI,qBAAqB;AACrB,UAAM,WAAW,oBAAoB;AAAA,MACjC;AAAA,IACJ;AACA,UAAM,EAAE,QAAAC,QAAO,QAAI,oCAAuB,QAAQ;AAElD,iBAAa,IAAI,UAAUA,OAAM;AAAA,EACrC,WAAW,QAAQ;AACf,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AAEA,QAAM,cAAc,IAAI;AAAA,IACpB,aAAa,MAAM,mBAAmB,aAAa,SAAS,CAAC;AAAA,IAC7D;AAAA,EACJ;AACA,SAAO;AACX;","names":["Config","locale"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\n\n/**\n * Returns the redirection URL for the Visual builder.\n * @returns {URL} The redirection URL.\n */\nexport default function getVisualBuilderRedirectionUrl(): URL {\n const { stackDetails, clientUrlParams } = Config.get();\n const { branch, apiKey, environment, locale } = stackDetails;\n const { url: appUrl } = clientUrlParams;\n\n const searchParams = new URLSearchParams();\n if (branch) {\n searchParams.set(\"branch\", branch);\n }\n if (environment) {\n searchParams.set(\"environment\", environment);\n }\n\n searchParams.set(\"target-url\", window.location.href);\n\n // get the locale from the data cslp attribute\n const elementWithDataCslp = document.querySelector(`[data-cslp]`);\n let localeToUse = locale;\n\n if (elementWithDataCslp) {\n const cslpData = elementWithDataCslp.getAttribute(\"data-cslp\");\n if (cslpData) {\n const { locale: cslpLocale } = extractDetailsFromCslp(cslpData);\n localeToUse = cslpLocale;\n }\n }\n\n if (localeToUse) {\n searchParams.set(\"locale\", localeToUse);\n }\n\n const completeURL = new URL(\n `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,\n appUrl\n );\n return completeURL;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAmB;AACnB,kBAAuC;AAMxB,SAAR,iCAAuD;AAC1D,QAAM,EAAE,cAAc,gBAAgB,IAAI,qBAAAA,QAAO,IAAI;AACrD,QAAM,EAAE,QAAQ,QAAQ,aAAa,OAAO,IAAI;AAChD,QAAM,EAAE,KAAK,OAAO,IAAI;AAExB,QAAM,eAAe,IAAI,gBAAgB;AACzC,MAAI,QAAQ;AACR,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AACA,MAAI,aAAa;AACb,iBAAa,IAAI,eAAe,WAAW;AAAA,EAC/C;AAEA,eAAa,IAAI,cAAc,OAAO,SAAS,IAAI;AAGnD,QAAM,sBAAsB,SAAS,cAAc,aAAa;AAChE,MAAI,cAAc;AAElB,MAAI,qBAAqB;AACrB,UAAM,WAAW,oBAAoB,aAAa,WAAW;AAC7D,QAAI,UAAU;AACV,YAAM,EAAE,QAAQ,WAAW,QAAI,oCAAuB,QAAQ;AAC9D,oBAAc;AAAA,IAClB;AAAA,EACJ;AAEA,MAAI,aAAa;AACb,iBAAa,IAAI,UAAU,WAAW;AAAA,EAC1C;AAEA,QAAM,cAAc,IAAI;AAAA,IACpB,aAAa,MAAM,mBAAmB,aAAa,SAAS,CAAC;AAAA,IAC7D;AAAA,EACJ;AACA,SAAO;AACX;","names":["Config"]}
@@ -16,14 +16,16 @@ function getVisualBuilderRedirectionUrl() {
16
16
  }
17
17
  searchParams.set("target-url", window.location.href);
18
18
  const elementWithDataCslp = document.querySelector(`[data-cslp]`);
19
+ let localeToUse = locale;
19
20
  if (elementWithDataCslp) {
20
- const cslpData = elementWithDataCslp.getAttribute(
21
- "data-cslp"
22
- );
23
- const { locale: locale2 } = extractDetailsFromCslp(cslpData);
24
- searchParams.set("locale", locale2);
25
- } else if (locale) {
26
- searchParams.set("locale", locale);
21
+ const cslpData = elementWithDataCslp.getAttribute("data-cslp");
22
+ if (cslpData) {
23
+ const { locale: cslpLocale } = extractDetailsFromCslp(cslpData);
24
+ localeToUse = cslpLocale;
25
+ }
26
+ }
27
+ if (localeToUse) {
28
+ searchParams.set("locale", localeToUse);
27
29
  }
28
30
  const completeURL = new URL(
29
31
  `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\n\n/**\n * Returns the redirection URL for the Visual builder.\n * @returns {URL} The redirection URL.\n */\nexport default function getVisualBuilderRedirectionUrl(): URL {\n const { stackDetails, clientUrlParams } = Config.get();\n const { branch, apiKey, environment, locale } = stackDetails;\n const { url: appUrl } = clientUrlParams;\n\n const searchParams = new URLSearchParams();\n if (branch) {\n searchParams.set(\"branch\", branch);\n }\n if (environment) {\n searchParams.set(\"environment\", environment);\n }\n\n searchParams.set(\"target-url\", window.location.href);\n\n // get the locale from the data cslp attribute\n const elementWithDataCslp = document.querySelector(`[data-cslp]`);\n\n if (elementWithDataCslp) {\n const cslpData = elementWithDataCslp.getAttribute(\n \"data-cslp\"\n ) as string;\n const { locale } = extractDetailsFromCslp(cslpData);\n\n searchParams.set(\"locale\", locale);\n } else if (locale) {\n searchParams.set(\"locale\", locale);\n }\n\n const completeURL = new URL(\n `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,\n appUrl\n );\n return completeURL;\n}\n"],"mappings":";;;AAAA,OAAO,YAAY;AACnB,SAAS,8BAA8B;AAMxB,SAAR,iCAAuD;AAC1D,QAAM,EAAE,cAAc,gBAAgB,IAAI,OAAO,IAAI;AACrD,QAAM,EAAE,QAAQ,QAAQ,aAAa,OAAO,IAAI;AAChD,QAAM,EAAE,KAAK,OAAO,IAAI;AAExB,QAAM,eAAe,IAAI,gBAAgB;AACzC,MAAI,QAAQ;AACR,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AACA,MAAI,aAAa;AACb,iBAAa,IAAI,eAAe,WAAW;AAAA,EAC/C;AAEA,eAAa,IAAI,cAAc,OAAO,SAAS,IAAI;AAGnD,QAAM,sBAAsB,SAAS,cAAc,aAAa;AAEhE,MAAI,qBAAqB;AACrB,UAAM,WAAW,oBAAoB;AAAA,MACjC;AAAA,IACJ;AACA,UAAM,EAAE,QAAAA,QAAO,IAAI,uBAAuB,QAAQ;AAElD,iBAAa,IAAI,UAAUA,OAAM;AAAA,EACrC,WAAW,QAAQ;AACf,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AAEA,QAAM,cAAc,IAAI;AAAA,IACpB,aAAa,MAAM,mBAAmB,aAAa,SAAS,CAAC;AAAA,IAC7D;AAAA,EACJ;AACA,SAAO;AACX;","names":["locale"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/getVisualBuilderRedirectionUrl.ts"],"sourcesContent":["import Config from \"../../configManager/configManager\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\n\n/**\n * Returns the redirection URL for the Visual builder.\n * @returns {URL} The redirection URL.\n */\nexport default function getVisualBuilderRedirectionUrl(): URL {\n const { stackDetails, clientUrlParams } = Config.get();\n const { branch, apiKey, environment, locale } = stackDetails;\n const { url: appUrl } = clientUrlParams;\n\n const searchParams = new URLSearchParams();\n if (branch) {\n searchParams.set(\"branch\", branch);\n }\n if (environment) {\n searchParams.set(\"environment\", environment);\n }\n\n searchParams.set(\"target-url\", window.location.href);\n\n // get the locale from the data cslp attribute\n const elementWithDataCslp = document.querySelector(`[data-cslp]`);\n let localeToUse = locale;\n\n if (elementWithDataCslp) {\n const cslpData = elementWithDataCslp.getAttribute(\"data-cslp\");\n if (cslpData) {\n const { locale: cslpLocale } = extractDetailsFromCslp(cslpData);\n localeToUse = cslpLocale;\n }\n }\n\n if (localeToUse) {\n searchParams.set(\"locale\", localeToUse);\n }\n\n const completeURL = new URL(\n `/#!/stack/${apiKey}/visual-builder?${searchParams.toString()}`,\n appUrl\n );\n return completeURL;\n}\n"],"mappings":";;;AAAA,OAAO,YAAY;AACnB,SAAS,8BAA8B;AAMxB,SAAR,iCAAuD;AAC1D,QAAM,EAAE,cAAc,gBAAgB,IAAI,OAAO,IAAI;AACrD,QAAM,EAAE,QAAQ,QAAQ,aAAa,OAAO,IAAI;AAChD,QAAM,EAAE,KAAK,OAAO,IAAI;AAExB,QAAM,eAAe,IAAI,gBAAgB;AACzC,MAAI,QAAQ;AACR,iBAAa,IAAI,UAAU,MAAM;AAAA,EACrC;AACA,MAAI,aAAa;AACb,iBAAa,IAAI,eAAe,WAAW;AAAA,EAC/C;AAEA,eAAa,IAAI,cAAc,OAAO,SAAS,IAAI;AAGnD,QAAM,sBAAsB,SAAS,cAAc,aAAa;AAChE,MAAI,cAAc;AAElB,MAAI,qBAAqB;AACrB,UAAM,WAAW,oBAAoB,aAAa,WAAW;AAC7D,QAAI,UAAU;AACV,YAAM,EAAE,QAAQ,WAAW,IAAI,uBAAuB,QAAQ;AAC9D,oBAAc;AAAA,IAClB;AAAA,EACJ;AAEA,MAAI,aAAa;AACb,iBAAa,IAAI,UAAU,WAAW;AAAA,EAC1C;AAEA,QAAM,cAAc,IAAI;AAAA,IACpB,aAAa,MAAM,mBAAmB,aAAa,SAAS,CAAC;AAAA,IAC7D;AAAA,EACJ;AACA,SAAO;AACX;","names":[]}
@@ -44,6 +44,7 @@ async function handleIndividualFields(eventDetails, elements) {
44
44
  content_type_uid,
45
45
  entry_uid,
46
46
  locale,
47
+ variant,
47
48
  fieldPath,
48
49
  fieldPathWithIndex
49
50
  } = fieldMetadata;
@@ -55,14 +56,17 @@ async function handleIndividualFields(eventDetails, elements) {
55
56
  )
56
57
  ]);
57
58
  const fieldType = (0, import_getFieldType.getFieldType)(fieldSchema);
58
- const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } = await (0, import_fetchEntryPermissionsAndStageDetails.fetchEntryPermissionsAndStageDetails)({
59
+ const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } = await (0, import_fetchEntryPermissionsAndStageDetails.fetchEntryPermissionsAndStageDetails)({
59
60
  entryUid: entry_uid,
60
61
  contentTypeUid: content_type_uid,
61
- locale
62
+ locale,
63
+ variantUid: variant,
64
+ fieldPathWithIndex
62
65
  });
63
66
  const { isDisabled: disabled } = (0, import_isFieldDisabled.isFieldDisabled)(
64
67
  fieldSchema,
65
68
  eventDetails,
69
+ resolvedVariantPermissions,
66
70
  entryAcl,
67
71
  entryWorkflowStageDetails
68
72
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/handleIndividualFields.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY } from \"./constants\";\nimport { FieldSchemaMap } from \"./fieldSchemaMap\";\nimport { getFieldData } from \"./getFieldData\";\nimport { getFieldType } from \"./getFieldType\";\nimport { handleFieldInput, handleFieldKeyDown } from \"./handleFieldMouseDown\";\nimport { isFieldDisabled } from \"./isFieldDisabled\";\nimport {\n handleAddButtonsForMultiple,\n removeAddInstanceButtons,\n} from \"./multipleElementAddButton\";\nimport { isFieldMultiple } from \"./isFieldMultiple\";\nimport { handleInlineEditableField } from \"./handleInlineEditableField\";\nimport { VisualBuilderEditContext } from \"./types/index.types\";\nimport { pasteAsPlainText } from \"./pasteAsPlainText\";\nimport { removeFieldToolbar } from \"../generators/generateToolbar\";\nimport { fetchEntryPermissionsAndStageDetails } from \"./fetchEntryPermissionsAndStageDetails\";\n\n/**\n * It handles all the fields based on their data type and its \"multiple\" property.\n * @param eventDetails The event details object that contain cslp and field metadata.\n * @param elements The elements object that contain the visual builder wrapper.\n */\nexport async function handleIndividualFields(\n eventDetails: VisualBuilderCslpEventDetails,\n elements: VisualBuilderEditContext\n): Promise<void> {\n const { fieldMetadata, editableElement } = eventDetails;\n const { visualBuilderContainer, lastEditedField, resizeObserver } =\n elements;\n const {\n content_type_uid,\n entry_uid,\n locale,\n fieldPath,\n fieldPathWithIndex,\n } = fieldMetadata;\n\n const [fieldSchema, expectedFieldData] = await Promise.all([\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath),\n getFieldData(\n { content_type_uid, entry_uid, locale },\n fieldPathWithIndex\n ),\n ]);\n\n const fieldType = getFieldType(fieldSchema);\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: entry_uid,\n contentTypeUid: content_type_uid,\n locale,\n });\n const { isDisabled: disabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n editableElement.setAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n fieldType\n );\n\n if (isFieldMultiple(fieldSchema)) {\n if (lastEditedField !== editableElement) {\n const addButtonLabel =\n fieldSchema.data_type === \"blocks\"\n ? // ? `Add ${fieldSchema.display_name ?? \"Modular Block\"}`\n \"Add Section\"\n : undefined;\n\n handleAddButtonsForMultiple(\n eventDetails,\n {\n editableElement: eventDetails.editableElement,\n visualBuilderContainer: visualBuilderContainer,\n resizeObserver: resizeObserver,\n },\n {\n fieldSchema,\n expectedFieldData,\n disabled,\n label: addButtonLabel,\n }\n );\n }\n }\n\n if (disabled) {\n return;\n }\n handleInlineEditableField({\n fieldType,\n fieldSchema,\n fieldMetadata,\n expectedFieldData,\n editableElement: editableElement as HTMLElement,\n elements,\n });\n}\n\nexport function cleanIndividualFieldResidual(elements: {\n overlayWrapper: HTMLDivElement;\n visualBuilderContainer: HTMLDivElement | null;\n focusedToolbar: HTMLDivElement | null;\n resizeObserver: ResizeObserver;\n}): void {\n const { overlayWrapper, visualBuilderContainer, focusedToolbar } = elements;\n\n removeAddInstanceButtons(\n {\n eventTarget: null,\n visualBuilderContainer: visualBuilderContainer,\n overlayWrapper: overlayWrapper,\n },\n true\n );\n\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (previousSelectedEditableDOM) {\n previousSelectedEditableDOM.removeAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n );\n previousSelectedEditableDOM.removeAttribute(\"contenteditable\");\n previousSelectedEditableDOM.removeEventListener(\n \"input\",\n handleFieldInput\n );\n previousSelectedEditableDOM.removeEventListener(\n \"keydown\",\n handleFieldKeyDown\n );\n\n previousSelectedEditableDOM.removeEventListener(\n \"paste\",\n pasteAsPlainText\n );\n // Note - this happens in two places, 1. hideOverlay and 2. here\n // TODO maybe see all usages of both functions and try to do it in one place\n elements.resizeObserver.unobserve(previousSelectedEditableDOM);\n }\n\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \".visual-builder__pseudo-editable-element\"\n );\n if (pseudoEditableElement) {\n elements.resizeObserver.unobserve(pseudoEditableElement);\n pseudoEditableElement.removeEventListener(\"paste\", pasteAsPlainText);\n pseudoEditableElement.remove();\n if (previousSelectedEditableDOM) {\n (previousSelectedEditableDOM as HTMLElement).style.removeProperty(\n \"visibility\"\n );\n }\n }\n\n if (focusedToolbar) {\n removeFieldToolbar(focusedToolbar);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAA8B;AAE9B,uBAAwD;AACxD,4BAA+B;AAC/B,0BAA6B;AAC7B,0BAA6B;AAC7B,kCAAqD;AACrD,6BAAgC;AAChC,sCAGO;AACP,6BAAgC;AAChC,uCAA0C;AAE1C,8BAAiC;AACjC,6BAAmC;AACnC,kDAAqD;AAOrD,eAAsB,uBAClB,cACA,UACa;AACb,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAC3C,QAAM,EAAE,wBAAwB,iBAAiB,eAAe,IAC5D;AACJ,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,QAAM,CAAC,aAAa,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,qCAAe,eAAe,kBAAkB,SAAS;AAAA,QACzD;AAAA,MACI,EAAE,kBAAkB,WAAW,OAAO;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,gBAAY,kCAAa,WAAW;AAE1C,QAAM,EAAE,KAAK,UAAU,eAAe,0BAA0B,IAC5D,UAAM,kFAAqC;AAAA,IACvC,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB;AAAA,EACJ,CAAC;AACL,QAAM,EAAE,YAAY,SAAS,QAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,kBAAgB;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AAEA,UAAI,wCAAgB,WAAW,GAAG;AAC9B,QAAI,oBAAoB,iBAAiB;AACrC,YAAM,iBACF,YAAY,cAAc;AAAA;AAAA,QAEpB;AAAA,UACA;AAEV;AAAA,QACI;AAAA,QACA;AAAA,UACI,iBAAiB,aAAa;AAAA,UAC9B;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,UAAU;AACV;AAAA,EACJ;AACA,kEAA0B;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,6BAA6B,UAKpC;AACL,QAAM,EAAE,gBAAgB,wBAAwB,eAAe,IAAI;AAEnE;AAAA,IACI;AAAA,MACI,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,8BACF,uBAAc,yBAAyB,MAClC;AACT,MAAI,6BAA6B;AAC7B,gCAA4B;AAAA,MACxB;AAAA,IACJ;AACA,gCAA4B,gBAAgB,iBAAiB;AAC7D,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AACA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAEA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAGA,aAAS,eAAe,UAAU,2BAA2B;AAAA,EACjE;AAEA,QAAM,wBAAwB,iEAAwB;AAAA,IAClD;AAAA;AAEJ,MAAI,uBAAuB;AACvB,aAAS,eAAe,UAAU,qBAAqB;AACvD,0BAAsB,oBAAoB,SAAS,wCAAgB;AACnE,0BAAsB,OAAO;AAC7B,QAAI,6BAA6B;AAC7B,MAAC,4BAA4C,MAAM;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,gBAAgB;AAChB,mDAAmB,cAAc;AAAA,EACrC;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/handleIndividualFields.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY } from \"./constants\";\nimport { FieldSchemaMap } from \"./fieldSchemaMap\";\nimport { getFieldData } from \"./getFieldData\";\nimport { getFieldType } from \"./getFieldType\";\nimport { handleFieldInput, handleFieldKeyDown } from \"./handleFieldMouseDown\";\nimport { isFieldDisabled } from \"./isFieldDisabled\";\nimport {\n handleAddButtonsForMultiple,\n removeAddInstanceButtons,\n} from \"./multipleElementAddButton\";\nimport { isFieldMultiple } from \"./isFieldMultiple\";\nimport { handleInlineEditableField } from \"./handleInlineEditableField\";\nimport { VisualBuilderEditContext } from \"./types/index.types\";\nimport { pasteAsPlainText } from \"./pasteAsPlainText\";\nimport { removeFieldToolbar } from \"../generators/generateToolbar\";\nimport { fetchEntryPermissionsAndStageDetails } from \"./fetchEntryPermissionsAndStageDetails\";\n\n/**\n * It handles all the fields based on their data type and its \"multiple\" property.\n * @param eventDetails The event details object that contain cslp and field metadata.\n * @param elements The elements object that contain the visual builder wrapper.\n */\nexport async function handleIndividualFields(\n eventDetails: VisualBuilderCslpEventDetails,\n elements: VisualBuilderEditContext\n): Promise<void> {\n const { fieldMetadata, editableElement } = eventDetails;\n const { visualBuilderContainer, lastEditedField, resizeObserver } =\n elements;\n const {\n content_type_uid,\n entry_uid,\n locale,\n variant,\n fieldPath,\n fieldPathWithIndex,\n } = fieldMetadata;\n\n const [fieldSchema, expectedFieldData] = await Promise.all([\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath),\n getFieldData(\n { content_type_uid, entry_uid, locale },\n fieldPathWithIndex\n ),\n ]);\n\n const fieldType = getFieldType(fieldSchema);\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: entry_uid,\n contentTypeUid: content_type_uid,\n locale,\n variantUid: variant,\n fieldPathWithIndex,\n });\n const { isDisabled: disabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n resolvedVariantPermissions,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n editableElement.setAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n fieldType\n );\n\n if (isFieldMultiple(fieldSchema)) {\n if (lastEditedField !== editableElement) {\n const addButtonLabel =\n fieldSchema.data_type === \"blocks\"\n ? // ? `Add ${fieldSchema.display_name ?? \"Modular Block\"}`\n \"Add Section\"\n : undefined;\n\n handleAddButtonsForMultiple(\n eventDetails,\n {\n editableElement: eventDetails.editableElement,\n visualBuilderContainer: visualBuilderContainer,\n resizeObserver: resizeObserver,\n },\n {\n fieldSchema,\n expectedFieldData,\n disabled,\n label: addButtonLabel,\n }\n );\n }\n }\n\n if (disabled) {\n return;\n }\n handleInlineEditableField({\n fieldType,\n fieldSchema,\n fieldMetadata,\n expectedFieldData,\n editableElement: editableElement as HTMLElement,\n elements,\n });\n}\n\nexport function cleanIndividualFieldResidual(elements: {\n overlayWrapper: HTMLDivElement;\n visualBuilderContainer: HTMLDivElement | null;\n focusedToolbar: HTMLDivElement | null;\n resizeObserver: ResizeObserver;\n}): void {\n const { overlayWrapper, visualBuilderContainer, focusedToolbar } = elements;\n\n removeAddInstanceButtons(\n {\n eventTarget: null,\n visualBuilderContainer: visualBuilderContainer,\n overlayWrapper: overlayWrapper,\n },\n true\n );\n\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (previousSelectedEditableDOM) {\n previousSelectedEditableDOM.removeAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n );\n previousSelectedEditableDOM.removeAttribute(\"contenteditable\");\n previousSelectedEditableDOM.removeEventListener(\n \"input\",\n handleFieldInput\n );\n previousSelectedEditableDOM.removeEventListener(\n \"keydown\",\n handleFieldKeyDown\n );\n\n previousSelectedEditableDOM.removeEventListener(\n \"paste\",\n pasteAsPlainText\n );\n // Note - this happens in two places, 1. hideOverlay and 2. here\n // TODO maybe see all usages of both functions and try to do it in one place\n elements.resizeObserver.unobserve(previousSelectedEditableDOM);\n }\n\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \".visual-builder__pseudo-editable-element\"\n );\n if (pseudoEditableElement) {\n elements.resizeObserver.unobserve(pseudoEditableElement);\n pseudoEditableElement.removeEventListener(\"paste\", pasteAsPlainText);\n pseudoEditableElement.remove();\n if (previousSelectedEditableDOM) {\n (previousSelectedEditableDOM as HTMLElement).style.removeProperty(\n \"visibility\"\n );\n }\n }\n\n if (focusedToolbar) {\n removeFieldToolbar(focusedToolbar);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAA8B;AAE9B,uBAAwD;AACxD,4BAA+B;AAC/B,0BAA6B;AAC7B,0BAA6B;AAC7B,kCAAqD;AACrD,6BAAgC;AAChC,sCAGO;AACP,6BAAgC;AAChC,uCAA0C;AAE1C,8BAAiC;AACjC,6BAAmC;AACnC,kDAAqD;AAOrD,eAAsB,uBAClB,cACA,UACa;AACb,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAC3C,QAAM,EAAE,wBAAwB,iBAAiB,eAAe,IAC5D;AACJ,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,QAAM,CAAC,aAAa,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,qCAAe,eAAe,kBAAkB,SAAS;AAAA,QACzD;AAAA,MACI,EAAE,kBAAkB,WAAW,OAAO;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,gBAAY,kCAAa,WAAW;AAE1C,QAAM,EAAE,KAAK,UAAU,eAAe,2BAA2B,2BAA2B,IACxF,UAAM,kFAAqC;AAAA,IACvC,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACJ,CAAC;AACL,QAAM,EAAE,YAAY,SAAS,QAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,kBAAgB;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AAEA,UAAI,wCAAgB,WAAW,GAAG;AAC9B,QAAI,oBAAoB,iBAAiB;AACrC,YAAM,iBACF,YAAY,cAAc;AAAA;AAAA,QAEpB;AAAA,UACA;AAEV;AAAA,QACI;AAAA,QACA;AAAA,UACI,iBAAiB,aAAa;AAAA,UAC9B;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,UAAU;AACV;AAAA,EACJ;AACA,kEAA0B;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,6BAA6B,UAKpC;AACL,QAAM,EAAE,gBAAgB,wBAAwB,eAAe,IAAI;AAEnE;AAAA,IACI;AAAA,MACI,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,8BACF,uBAAc,yBAAyB,MAClC;AACT,MAAI,6BAA6B;AAC7B,gCAA4B;AAAA,MACxB;AAAA,IACJ;AACA,gCAA4B,gBAAgB,iBAAiB;AAC7D,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AACA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAEA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAGA,aAAS,eAAe,UAAU,2BAA2B;AAAA,EACjE;AAEA,QAAM,wBAAwB,iEAAwB;AAAA,IAClD;AAAA;AAEJ,MAAI,uBAAuB;AACvB,aAAS,eAAe,UAAU,qBAAqB;AACvD,0BAAsB,oBAAoB,SAAS,wCAAgB;AACnE,0BAAsB,OAAO;AAC7B,QAAI,6BAA6B;AAC7B,MAAC,4BAA4C,MAAM;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,gBAAgB;AAChB,mDAAmB,cAAc;AAAA,EACrC;AACJ;","names":[]}
@@ -24,6 +24,7 @@ async function handleIndividualFields(eventDetails, elements) {
24
24
  content_type_uid,
25
25
  entry_uid,
26
26
  locale,
27
+ variant,
27
28
  fieldPath,
28
29
  fieldPathWithIndex
29
30
  } = fieldMetadata;
@@ -35,14 +36,17 @@ async function handleIndividualFields(eventDetails, elements) {
35
36
  )
36
37
  ]);
37
38
  const fieldType = getFieldType(fieldSchema);
38
- const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } = await fetchEntryPermissionsAndStageDetails({
39
+ const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } = await fetchEntryPermissionsAndStageDetails({
39
40
  entryUid: entry_uid,
40
41
  contentTypeUid: content_type_uid,
41
- locale
42
+ locale,
43
+ variantUid: variant,
44
+ fieldPathWithIndex
42
45
  });
43
46
  const { isDisabled: disabled } = isFieldDisabled(
44
47
  fieldSchema,
45
48
  eventDetails,
49
+ resolvedVariantPermissions,
46
50
  entryAcl,
47
51
  entryWorkflowStageDetails
48
52
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/utils/handleIndividualFields.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY } from \"./constants\";\nimport { FieldSchemaMap } from \"./fieldSchemaMap\";\nimport { getFieldData } from \"./getFieldData\";\nimport { getFieldType } from \"./getFieldType\";\nimport { handleFieldInput, handleFieldKeyDown } from \"./handleFieldMouseDown\";\nimport { isFieldDisabled } from \"./isFieldDisabled\";\nimport {\n handleAddButtonsForMultiple,\n removeAddInstanceButtons,\n} from \"./multipleElementAddButton\";\nimport { isFieldMultiple } from \"./isFieldMultiple\";\nimport { handleInlineEditableField } from \"./handleInlineEditableField\";\nimport { VisualBuilderEditContext } from \"./types/index.types\";\nimport { pasteAsPlainText } from \"./pasteAsPlainText\";\nimport { removeFieldToolbar } from \"../generators/generateToolbar\";\nimport { fetchEntryPermissionsAndStageDetails } from \"./fetchEntryPermissionsAndStageDetails\";\n\n/**\n * It handles all the fields based on their data type and its \"multiple\" property.\n * @param eventDetails The event details object that contain cslp and field metadata.\n * @param elements The elements object that contain the visual builder wrapper.\n */\nexport async function handleIndividualFields(\n eventDetails: VisualBuilderCslpEventDetails,\n elements: VisualBuilderEditContext\n): Promise<void> {\n const { fieldMetadata, editableElement } = eventDetails;\n const { visualBuilderContainer, lastEditedField, resizeObserver } =\n elements;\n const {\n content_type_uid,\n entry_uid,\n locale,\n fieldPath,\n fieldPathWithIndex,\n } = fieldMetadata;\n\n const [fieldSchema, expectedFieldData] = await Promise.all([\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath),\n getFieldData(\n { content_type_uid, entry_uid, locale },\n fieldPathWithIndex\n ),\n ]);\n\n const fieldType = getFieldType(fieldSchema);\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: entry_uid,\n contentTypeUid: content_type_uid,\n locale,\n });\n const { isDisabled: disabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n editableElement.setAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n fieldType\n );\n\n if (isFieldMultiple(fieldSchema)) {\n if (lastEditedField !== editableElement) {\n const addButtonLabel =\n fieldSchema.data_type === \"blocks\"\n ? // ? `Add ${fieldSchema.display_name ?? \"Modular Block\"}`\n \"Add Section\"\n : undefined;\n\n handleAddButtonsForMultiple(\n eventDetails,\n {\n editableElement: eventDetails.editableElement,\n visualBuilderContainer: visualBuilderContainer,\n resizeObserver: resizeObserver,\n },\n {\n fieldSchema,\n expectedFieldData,\n disabled,\n label: addButtonLabel,\n }\n );\n }\n }\n\n if (disabled) {\n return;\n }\n handleInlineEditableField({\n fieldType,\n fieldSchema,\n fieldMetadata,\n expectedFieldData,\n editableElement: editableElement as HTMLElement,\n elements,\n });\n}\n\nexport function cleanIndividualFieldResidual(elements: {\n overlayWrapper: HTMLDivElement;\n visualBuilderContainer: HTMLDivElement | null;\n focusedToolbar: HTMLDivElement | null;\n resizeObserver: ResizeObserver;\n}): void {\n const { overlayWrapper, visualBuilderContainer, focusedToolbar } = elements;\n\n removeAddInstanceButtons(\n {\n eventTarget: null,\n visualBuilderContainer: visualBuilderContainer,\n overlayWrapper: overlayWrapper,\n },\n true\n );\n\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (previousSelectedEditableDOM) {\n previousSelectedEditableDOM.removeAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n );\n previousSelectedEditableDOM.removeAttribute(\"contenteditable\");\n previousSelectedEditableDOM.removeEventListener(\n \"input\",\n handleFieldInput\n );\n previousSelectedEditableDOM.removeEventListener(\n \"keydown\",\n handleFieldKeyDown\n );\n\n previousSelectedEditableDOM.removeEventListener(\n \"paste\",\n pasteAsPlainText\n );\n // Note - this happens in two places, 1. hideOverlay and 2. here\n // TODO maybe see all usages of both functions and try to do it in one place\n elements.resizeObserver.unobserve(previousSelectedEditableDOM);\n }\n\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \".visual-builder__pseudo-editable-element\"\n );\n if (pseudoEditableElement) {\n elements.resizeObserver.unobserve(pseudoEditableElement);\n pseudoEditableElement.removeEventListener(\"paste\", pasteAsPlainText);\n pseudoEditableElement.remove();\n if (previousSelectedEditableDOM) {\n (previousSelectedEditableDOM as HTMLElement).style.removeProperty(\n \"visibility\"\n );\n }\n }\n\n if (focusedToolbar) {\n removeFieldToolbar(focusedToolbar);\n }\n}\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAE9B,SAAS,+CAA+C;AACxD,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB,0BAA0B;AACrD,SAAS,uBAAuB;AAChC;AAAA,EACI;AAAA,EACA;AAAA,OACG;AACP,SAAS,uBAAuB;AAChC,SAAS,iCAAiC;AAE1C,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,4CAA4C;AAOrD,eAAsB,uBAClB,cACA,UACa;AACb,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAC3C,QAAM,EAAE,wBAAwB,iBAAiB,eAAe,IAC5D;AACJ,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,QAAM,CAAC,aAAa,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,eAAe,eAAe,kBAAkB,SAAS;AAAA,IACzD;AAAA,MACI,EAAE,kBAAkB,WAAW,OAAO;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,YAAY,aAAa,WAAW;AAE1C,QAAM,EAAE,KAAK,UAAU,eAAe,0BAA0B,IAC5D,MAAM,qCAAqC;AAAA,IACvC,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB;AAAA,EACJ,CAAC;AACL,QAAM,EAAE,YAAY,SAAS,IAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,kBAAgB;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AAEA,MAAI,gBAAgB,WAAW,GAAG;AAC9B,QAAI,oBAAoB,iBAAiB;AACrC,YAAM,iBACF,YAAY,cAAc;AAAA;AAAA,QAEpB;AAAA,UACA;AAEV;AAAA,QACI;AAAA,QACA;AAAA,UACI,iBAAiB,aAAa;AAAA,UAC9B;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,UAAU;AACV;AAAA,EACJ;AACA,4BAA0B;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,6BAA6B,UAKpC;AACL,QAAM,EAAE,gBAAgB,wBAAwB,eAAe,IAAI;AAEnE;AAAA,IACI;AAAA,MACI,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,8BACF,cAAc,yBAAyB,MAClC;AACT,MAAI,6BAA6B;AAC7B,gCAA4B;AAAA,MACxB;AAAA,IACJ;AACA,gCAA4B,gBAAgB,iBAAiB;AAC7D,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AACA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAEA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAGA,aAAS,eAAe,UAAU,2BAA2B;AAAA,EACjE;AAEA,QAAM,wBAAwB,iEAAwB;AAAA,IAClD;AAAA;AAEJ,MAAI,uBAAuB;AACvB,aAAS,eAAe,UAAU,qBAAqB;AACvD,0BAAsB,oBAAoB,SAAS,gBAAgB;AACnE,0BAAsB,OAAO;AAC7B,QAAI,6BAA6B;AAC7B,MAAC,4BAA4C,MAAM;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,gBAAgB;AAChB,uBAAmB,cAAc;AAAA,EACrC;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/utils/handleIndividualFields.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY } from \"./constants\";\nimport { FieldSchemaMap } from \"./fieldSchemaMap\";\nimport { getFieldData } from \"./getFieldData\";\nimport { getFieldType } from \"./getFieldType\";\nimport { handleFieldInput, handleFieldKeyDown } from \"./handleFieldMouseDown\";\nimport { isFieldDisabled } from \"./isFieldDisabled\";\nimport {\n handleAddButtonsForMultiple,\n removeAddInstanceButtons,\n} from \"./multipleElementAddButton\";\nimport { isFieldMultiple } from \"./isFieldMultiple\";\nimport { handleInlineEditableField } from \"./handleInlineEditableField\";\nimport { VisualBuilderEditContext } from \"./types/index.types\";\nimport { pasteAsPlainText } from \"./pasteAsPlainText\";\nimport { removeFieldToolbar } from \"../generators/generateToolbar\";\nimport { fetchEntryPermissionsAndStageDetails } from \"./fetchEntryPermissionsAndStageDetails\";\n\n/**\n * It handles all the fields based on their data type and its \"multiple\" property.\n * @param eventDetails The event details object that contain cslp and field metadata.\n * @param elements The elements object that contain the visual builder wrapper.\n */\nexport async function handleIndividualFields(\n eventDetails: VisualBuilderCslpEventDetails,\n elements: VisualBuilderEditContext\n): Promise<void> {\n const { fieldMetadata, editableElement } = eventDetails;\n const { visualBuilderContainer, lastEditedField, resizeObserver } =\n elements;\n const {\n content_type_uid,\n entry_uid,\n locale,\n variant,\n fieldPath,\n fieldPathWithIndex,\n } = fieldMetadata;\n\n const [fieldSchema, expectedFieldData] = await Promise.all([\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath),\n getFieldData(\n { content_type_uid, entry_uid, locale },\n fieldPathWithIndex\n ),\n ]);\n\n const fieldType = getFieldType(fieldSchema);\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails, resolvedVariantPermissions } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: entry_uid,\n contentTypeUid: content_type_uid,\n locale,\n variantUid: variant,\n fieldPathWithIndex,\n });\n const { isDisabled: disabled } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n resolvedVariantPermissions,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n editableElement.setAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n fieldType\n );\n\n if (isFieldMultiple(fieldSchema)) {\n if (lastEditedField !== editableElement) {\n const addButtonLabel =\n fieldSchema.data_type === \"blocks\"\n ? // ? `Add ${fieldSchema.display_name ?? \"Modular Block\"}`\n \"Add Section\"\n : undefined;\n\n handleAddButtonsForMultiple(\n eventDetails,\n {\n editableElement: eventDetails.editableElement,\n visualBuilderContainer: visualBuilderContainer,\n resizeObserver: resizeObserver,\n },\n {\n fieldSchema,\n expectedFieldData,\n disabled,\n label: addButtonLabel,\n }\n );\n }\n }\n\n if (disabled) {\n return;\n }\n handleInlineEditableField({\n fieldType,\n fieldSchema,\n fieldMetadata,\n expectedFieldData,\n editableElement: editableElement as HTMLElement,\n elements,\n });\n}\n\nexport function cleanIndividualFieldResidual(elements: {\n overlayWrapper: HTMLDivElement;\n visualBuilderContainer: HTMLDivElement | null;\n focusedToolbar: HTMLDivElement | null;\n resizeObserver: ResizeObserver;\n}): void {\n const { overlayWrapper, visualBuilderContainer, focusedToolbar } = elements;\n\n removeAddInstanceButtons(\n {\n eventTarget: null,\n visualBuilderContainer: visualBuilderContainer,\n overlayWrapper: overlayWrapper,\n },\n true\n );\n\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (previousSelectedEditableDOM) {\n previousSelectedEditableDOM.removeAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n );\n previousSelectedEditableDOM.removeAttribute(\"contenteditable\");\n previousSelectedEditableDOM.removeEventListener(\n \"input\",\n handleFieldInput\n );\n previousSelectedEditableDOM.removeEventListener(\n \"keydown\",\n handleFieldKeyDown\n );\n\n previousSelectedEditableDOM.removeEventListener(\n \"paste\",\n pasteAsPlainText\n );\n // Note - this happens in two places, 1. hideOverlay and 2. here\n // TODO maybe see all usages of both functions and try to do it in one place\n elements.resizeObserver.unobserve(previousSelectedEditableDOM);\n }\n\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \".visual-builder__pseudo-editable-element\"\n );\n if (pseudoEditableElement) {\n elements.resizeObserver.unobserve(pseudoEditableElement);\n pseudoEditableElement.removeEventListener(\"paste\", pasteAsPlainText);\n pseudoEditableElement.remove();\n if (previousSelectedEditableDOM) {\n (previousSelectedEditableDOM as HTMLElement).style.removeProperty(\n \"visibility\"\n );\n }\n }\n\n if (focusedToolbar) {\n removeFieldToolbar(focusedToolbar);\n }\n}\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAE9B,SAAS,+CAA+C;AACxD,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB,0BAA0B;AACrD,SAAS,uBAAuB;AAChC;AAAA,EACI;AAAA,EACA;AAAA,OACG;AACP,SAAS,uBAAuB;AAChC,SAAS,iCAAiC;AAE1C,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,4CAA4C;AAOrD,eAAsB,uBAClB,cACA,UACa;AACb,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAC3C,QAAM,EAAE,wBAAwB,iBAAiB,eAAe,IAC5D;AACJ,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,QAAM,CAAC,aAAa,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,eAAe,eAAe,kBAAkB,SAAS;AAAA,IACzD;AAAA,MACI,EAAE,kBAAkB,WAAW,OAAO;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,YAAY,aAAa,WAAW;AAE1C,QAAM,EAAE,KAAK,UAAU,eAAe,2BAA2B,2BAA2B,IACxF,MAAM,qCAAqC;AAAA,IACvC,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACJ,CAAC;AACL,QAAM,EAAE,YAAY,SAAS,IAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,kBAAgB;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AAEA,MAAI,gBAAgB,WAAW,GAAG;AAC9B,QAAI,oBAAoB,iBAAiB;AACrC,YAAM,iBACF,YAAY,cAAc;AAAA;AAAA,QAEpB;AAAA,UACA;AAEV;AAAA,QACI;AAAA,QACA;AAAA,UACI,iBAAiB,aAAa;AAAA,UAC9B;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,UAAU;AACV;AAAA,EACJ;AACA,4BAA0B;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACL;AAEO,SAAS,6BAA6B,UAKpC;AACL,QAAM,EAAE,gBAAgB,wBAAwB,eAAe,IAAI;AAEnE;AAAA,IACI;AAAA,MACI,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,8BACF,cAAc,yBAAyB,MAClC;AACT,MAAI,6BAA6B;AAC7B,gCAA4B;AAAA,MACxB;AAAA,IACJ;AACA,gCAA4B,gBAAgB,iBAAiB;AAC7D,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AACA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAEA,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,IACJ;AAGA,aAAS,eAAe,UAAU,2BAA2B;AAAA,EACjE;AAEA,QAAM,wBAAwB,iEAAwB;AAAA,IAClD;AAAA;AAEJ,MAAI,uBAAuB;AACvB,aAAS,eAAe,UAAU,qBAAqB;AACvD,0BAAsB,oBAAoB,SAAS,gBAAgB;AACnE,0BAAsB,OAAO;AAC7B,QAAI,6BAA6B;AAC7B,MAAC,4BAA4C,MAAM;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,gBAAgB;AAChB,uBAAmB,cAAc;AAAA,EACrC;AACJ;","names":[]}