@contentstack/live-preview-utils 4.2.0 → 4.3.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.
- package/README.md +1 -1
- package/dist/legacy/configManager/config.default.cjs +4 -2
- package/dist/legacy/configManager/config.default.cjs.map +1 -1
- package/dist/legacy/configManager/config.default.d.cts +1 -1
- package/dist/legacy/configManager/config.default.d.ts +1 -1
- package/dist/legacy/configManager/config.default.js +4 -2
- package/dist/legacy/configManager/config.default.js.map +1 -1
- package/dist/legacy/configManager/handleUserConfig.cjs +4 -0
- package/dist/legacy/configManager/handleUserConfig.cjs.map +1 -1
- package/dist/legacy/configManager/handleUserConfig.js +4 -0
- package/dist/legacy/configManager/handleUserConfig.js.map +1 -1
- package/dist/legacy/cslp/cslpdata.cjs +28 -3
- package/dist/legacy/cslp/cslpdata.cjs.map +1 -1
- package/dist/legacy/cslp/cslpdata.d.cts +27 -1
- package/dist/legacy/cslp/cslpdata.d.ts +27 -1
- package/dist/legacy/cslp/cslpdata.js +26 -2
- package/dist/legacy/cslp/cslpdata.js.map +1 -1
- package/dist/legacy/cslp/index.d.cts +1 -1
- package/dist/legacy/cslp/index.d.ts +1 -1
- package/dist/legacy/light-sdk.cjs +1 -1
- package/dist/legacy/light-sdk.js +1 -1
- package/dist/legacy/livePreview/editButton/editButton.cjs +1 -1
- package/dist/legacy/livePreview/editButton/editButton.cjs.map +1 -1
- package/dist/legacy/livePreview/editButton/editButton.js +2 -2
- package/dist/legacy/livePreview/editButton/editButton.js.map +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +11 -6
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +11 -6
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
- package/dist/legacy/timeline/compare/compare.cjs +3 -1
- package/dist/legacy/timeline/compare/compare.cjs.map +1 -1
- package/dist/legacy/timeline/compare/compare.js +3 -1
- package/dist/legacy/timeline/compare/compare.js.map +1 -1
- package/dist/legacy/types/types.cjs.map +1 -1
- package/dist/legacy/types/types.d.cts +2 -0
- package/dist/legacy/types/types.d.ts +2 -0
- package/dist/legacy/types/types.js.map +1 -1
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs +1 -1
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js +2 -2
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
- package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs +19 -22
- package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs.map +1 -1
- package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.d.cts +2 -1
- package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.d.ts +2 -1
- package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js +18 -22
- package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js.map +1 -1
- package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +2 -2
- package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -1
- package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +3 -3
- package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -1
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +63 -13
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.d.cts +12 -3
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.d.ts +12 -3
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js +60 -14
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateEmptyBlock.cjs +1 -1
- package/dist/legacy/visualBuilder/generators/generateEmptyBlock.cjs.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateEmptyBlock.js +2 -2
- package/dist/legacy/visualBuilder/generators/generateEmptyBlock.js.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs +2 -1
- package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js +2 -1
- package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateOverlay.cjs +1 -1
- package/dist/legacy/visualBuilder/generators/generateOverlay.cjs.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateOverlay.js +2 -2
- package/dist/legacy/visualBuilder/generators/generateOverlay.js.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateThread.d.cts +1 -1
- package/dist/legacy/visualBuilder/generators/generateThread.d.ts +1 -1
- package/dist/legacy/visualBuilder/index.cjs +12 -2
- package/dist/legacy/visualBuilder/index.cjs.map +1 -1
- package/dist/legacy/visualBuilder/index.d.cts +2 -0
- package/dist/legacy/visualBuilder/index.d.ts +2 -0
- package/dist/legacy/visualBuilder/index.js +14 -4
- package/dist/legacy/visualBuilder/index.js.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +14 -10
- package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.js +14 -10
- package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/collabUtils.d.cts +1 -1
- package/dist/legacy/visualBuilder/utils/collabUtils.d.ts +1 -1
- package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs +3 -3
- package/dist/legacy/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js +4 -4
- package/dist/legacy/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +1 -1
- package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +2 -2
- package/dist/legacy/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +2 -2
- package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +3 -3
- package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +1 -1
- package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/updateFocussedState.js +2 -2
- package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
- package/dist/legacy/visualBuilder/visualBuilder.style.cjs +2 -1
- package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
- package/dist/legacy/visualBuilder/visualBuilder.style.d.cts +1 -0
- package/dist/legacy/visualBuilder/visualBuilder.style.d.ts +1 -0
- package/dist/legacy/visualBuilder/visualBuilder.style.js +2 -1
- package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
- package/dist/modern/configManager/config.default.cjs +4 -2
- package/dist/modern/configManager/config.default.cjs.map +1 -1
- package/dist/modern/configManager/config.default.d.cts +1 -1
- package/dist/modern/configManager/config.default.d.ts +1 -1
- package/dist/modern/configManager/config.default.js +4 -2
- package/dist/modern/configManager/config.default.js.map +1 -1
- package/dist/modern/configManager/handleUserConfig.cjs +4 -0
- package/dist/modern/configManager/handleUserConfig.cjs.map +1 -1
- package/dist/modern/configManager/handleUserConfig.js +4 -0
- package/dist/modern/configManager/handleUserConfig.js.map +1 -1
- package/dist/modern/cslp/cslpdata.cjs +28 -3
- package/dist/modern/cslp/cslpdata.cjs.map +1 -1
- package/dist/modern/cslp/cslpdata.d.cts +27 -1
- package/dist/modern/cslp/cslpdata.d.ts +27 -1
- package/dist/modern/cslp/cslpdata.js +26 -2
- package/dist/modern/cslp/cslpdata.js.map +1 -1
- package/dist/modern/cslp/index.d.cts +1 -1
- package/dist/modern/cslp/index.d.ts +1 -1
- package/dist/modern/light-sdk.cjs +1 -1
- package/dist/modern/light-sdk.js +1 -1
- package/dist/modern/livePreview/editButton/editButton.cjs +1 -1
- package/dist/modern/livePreview/editButton/editButton.cjs.map +1 -1
- package/dist/modern/livePreview/editButton/editButton.js +2 -2
- package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +11 -6
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +11 -6
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
- package/dist/modern/timeline/compare/compare.cjs +3 -1
- package/dist/modern/timeline/compare/compare.cjs.map +1 -1
- package/dist/modern/timeline/compare/compare.js +3 -1
- package/dist/modern/timeline/compare/compare.js.map +1 -1
- package/dist/modern/types/types.cjs.map +1 -1
- package/dist/modern/types/types.d.cts +2 -0
- package/dist/modern/types/types.d.ts +2 -0
- package/dist/modern/types/types.js.map +1 -1
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs +1 -1
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.js +2 -2
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
- package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs +19 -22
- package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs.map +1 -1
- package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.d.cts +2 -1
- package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.d.ts +2 -1
- package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js +18 -22
- package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js.map +1 -1
- package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs +2 -2
- package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map +1 -1
- package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js +3 -3
- package/dist/modern/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map +1 -1
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +62 -13
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.d.cts +12 -3
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.d.ts +12 -3
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js +59 -14
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
- package/dist/modern/visualBuilder/generators/generateEmptyBlock.cjs +1 -1
- package/dist/modern/visualBuilder/generators/generateEmptyBlock.cjs.map +1 -1
- package/dist/modern/visualBuilder/generators/generateEmptyBlock.js +2 -2
- package/dist/modern/visualBuilder/generators/generateEmptyBlock.js.map +1 -1
- package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs +2 -1
- package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
- package/dist/modern/visualBuilder/generators/generateHighlightedComment.js +2 -1
- package/dist/modern/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
- package/dist/modern/visualBuilder/generators/generateOverlay.cjs +1 -1
- package/dist/modern/visualBuilder/generators/generateOverlay.cjs.map +1 -1
- package/dist/modern/visualBuilder/generators/generateOverlay.js +2 -2
- package/dist/modern/visualBuilder/generators/generateOverlay.js.map +1 -1
- package/dist/modern/visualBuilder/generators/generateThread.d.cts +1 -1
- package/dist/modern/visualBuilder/generators/generateThread.d.ts +1 -1
- package/dist/modern/visualBuilder/index.cjs +12 -2
- package/dist/modern/visualBuilder/index.cjs.map +1 -1
- package/dist/modern/visualBuilder/index.d.cts +2 -0
- package/dist/modern/visualBuilder/index.d.ts +2 -0
- package/dist/modern/visualBuilder/index.js +14 -4
- package/dist/modern/visualBuilder/index.js.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.cjs +14 -10
- package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.js +14 -10
- package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
- package/dist/modern/visualBuilder/utils/collabUtils.d.cts +1 -1
- package/dist/modern/visualBuilder/utils/collabUtils.d.ts +1 -1
- package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs +3 -3
- package/dist/modern/visualBuilder/utils/getCsDataOfElement.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/getCsDataOfElement.js +4 -4
- package/dist/modern/visualBuilder/utils/getCsDataOfElement.js.map +1 -1
- package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs +1 -1
- package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js +2 -2
- package/dist/modern/visualBuilder/utils/getEntryIdentifiersInCurrentPage.js.map +1 -1
- package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +2 -2
- package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +3 -3
- package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +1 -1
- package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/updateFocussedState.js +2 -2
- package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
- package/dist/modern/visualBuilder/visualBuilder.style.cjs +2 -1
- package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
- package/dist/modern/visualBuilder/visualBuilder.style.d.cts +1 -0
- package/dist/modern/visualBuilder/visualBuilder.style.d.ts +1 -0
- package/dist/modern/visualBuilder/visualBuilder.style.js +2 -1
- package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
- package/package.json +8 -8
|
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.ts
|
|
31
31
|
var useRecalculateVariantDataCSLPValues_exports = {};
|
|
32
32
|
__export(useRecalculateVariantDataCSLPValues_exports, {
|
|
33
|
+
updateVariantClasses: () => updateVariantClasses,
|
|
33
34
|
useRecalculateVariantDataCSLPValues: () => useRecalculateVariantDataCSLPValues
|
|
34
35
|
});
|
|
35
36
|
module.exports = __toCommonJS(useRecalculateVariantDataCSLPValues_exports);
|
|
@@ -38,6 +39,8 @@ var import_livePreviewEventManager = __toESM(require("../../livePreview/eventMan
|
|
|
38
39
|
var import_livePreviewEventManager2 = require("../../livePreview/eventManager/livePreviewEventManager.constant.cjs");
|
|
39
40
|
var import_constants = require("../utils/constants.cjs");
|
|
40
41
|
var import_visualBuilder = require("../visualBuilder.style.cjs");
|
|
42
|
+
var import_cslpdata = require("../../cslp/cslpdata.cjs");
|
|
43
|
+
var import_useVariantsPostMessageEvent = require("./useVariantsPostMessageEvent.cjs");
|
|
41
44
|
var VARIANT_UPDATE_DELAY_MS = 8e3;
|
|
42
45
|
function useRecalculateVariantDataCSLPValues() {
|
|
43
46
|
var _a;
|
|
@@ -45,40 +48,36 @@ function useRecalculateVariantDataCSLPValues() {
|
|
|
45
48
|
import_livePreviewEventManager2.LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,
|
|
46
49
|
(event) => {
|
|
47
50
|
if (import__.VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {
|
|
48
|
-
|
|
51
|
+
(0, import_useVariantsPostMessageEvent.setHighlightVariantFields)(event.data.highlightVariantFields);
|
|
52
|
+
updateVariantClasses();
|
|
49
53
|
}
|
|
50
54
|
}
|
|
51
55
|
);
|
|
52
56
|
}
|
|
53
|
-
function updateVariantClasses({
|
|
54
|
-
highlightVariantFields
|
|
55
|
-
expectedCSLPValues
|
|
56
|
-
}) {
|
|
57
|
+
function updateVariantClasses() {
|
|
58
|
+
const highlightVariantFields = import__.VisualBuilder.VisualBuilderGlobalState.value.highlightVariantFields;
|
|
57
59
|
const variant = import__.VisualBuilder.VisualBuilderGlobalState.value.variant;
|
|
58
60
|
const observers = [];
|
|
59
61
|
const updateElementClasses = (element, dataCslp, observer) => {
|
|
60
|
-
if (!dataCslp) return;
|
|
62
|
+
if (!(0, import_cslpdata.isValidCslp)(dataCslp)) return;
|
|
61
63
|
if (dataCslp.startsWith("v2:") && !element.classList.contains("visual-builder__variant-field")) {
|
|
62
64
|
if (element.classList.contains("visual-builder__base-field")) {
|
|
63
65
|
element.classList.remove("visual-builder__base-field");
|
|
64
66
|
}
|
|
67
|
+
const variantFieldClasses = ["visual-builder__variant-field"];
|
|
65
68
|
if (highlightVariantFields) {
|
|
66
|
-
|
|
67
|
-
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"],
|
|
68
|
-
"visual-builder__variant-field"
|
|
69
|
-
);
|
|
70
|
-
} else {
|
|
71
|
-
element.classList.add("visual-builder__variant-field");
|
|
69
|
+
variantFieldClasses.push((0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field-outline"]);
|
|
72
70
|
}
|
|
71
|
+
element.classList.add(...variantFieldClasses);
|
|
73
72
|
} else if (!dataCslp.startsWith("v2:") && element.classList.contains("visual-builder__variant-field")) {
|
|
74
73
|
element.classList.remove(
|
|
75
|
-
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"],
|
|
74
|
+
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field-outline"],
|
|
76
75
|
"visual-builder__variant-field"
|
|
77
76
|
);
|
|
78
77
|
element.classList.add("visual-builder__base-field");
|
|
79
78
|
} else if (dataCslp.startsWith("v2:") && variant && !dataCslp.includes(variant) && element.classList.contains("visual-builder__variant-field")) {
|
|
80
79
|
element.classList.remove(
|
|
81
|
-
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"],
|
|
80
|
+
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field-outline"],
|
|
82
81
|
"visual-builder__variant-field"
|
|
83
82
|
);
|
|
84
83
|
element.classList.add("visual-builder__disabled-variant-field");
|
|
@@ -92,7 +91,7 @@ function updateVariantClasses({
|
|
|
92
91
|
};
|
|
93
92
|
const addElementClasses = (element) => {
|
|
94
93
|
const dataCslp = element.getAttribute(import_constants.DATA_CSLP_ATTR_SELECTOR);
|
|
95
|
-
if (!dataCslp) {
|
|
94
|
+
if (!(0, import_cslpdata.isValidCslp)(dataCslp)) {
|
|
96
95
|
element.childNodes.forEach((child) => {
|
|
97
96
|
if (child instanceof HTMLElement) {
|
|
98
97
|
addElementClasses(child);
|
|
@@ -107,18 +106,15 @@ function updateVariantClasses({
|
|
|
107
106
|
if (element.classList.contains("visual-builder__base-field")) {
|
|
108
107
|
element.classList.remove("visual-builder__base-field");
|
|
109
108
|
}
|
|
109
|
+
const variantFieldClasses = ["visual-builder__variant-field"];
|
|
110
110
|
if (highlightVariantFields) {
|
|
111
|
-
|
|
112
|
-
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"],
|
|
113
|
-
"visual-builder__variant-field"
|
|
114
|
-
);
|
|
115
|
-
} else {
|
|
116
|
-
element.classList.add("visual-builder__variant-field");
|
|
111
|
+
variantFieldClasses.push((0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field-outline"]);
|
|
117
112
|
}
|
|
113
|
+
element.classList.add(...variantFieldClasses);
|
|
118
114
|
} else if (!dataCslp.startsWith("v2:")) {
|
|
119
115
|
if (element.classList.contains("visual-builder__variant-field")) {
|
|
120
116
|
element.classList.remove(
|
|
121
|
-
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"],
|
|
117
|
+
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field-outline"],
|
|
122
118
|
"visual-builder__variant-field"
|
|
123
119
|
);
|
|
124
120
|
}
|
|
@@ -169,6 +165,7 @@ function updateVariantClasses({
|
|
|
169
165
|
}
|
|
170
166
|
// Annotate the CommonJS export names for ESM import in node:
|
|
171
167
|
0 && (module.exports = {
|
|
168
|
+
updateVariantClasses,
|
|
172
169
|
useRecalculateVariantDataCSLPValues
|
|
173
170
|
});
|
|
174
171
|
//# sourceMappingURL=useRecalculateVariantDataCSLPValues.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport livePreviewPostMessage from \"../../livePreview/eventManager/livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"../../livePreview/eventManager/livePreviewEventManager.constant\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"../utils/constants\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\n\nconst VARIANT_UPDATE_DELAY_MS: Readonly<number> = 8000;\n\ntype OnAudienceModeVariantPatchUpdate = {\n highlightVariantFields: boolean;\n expectedCSLPValues: Record<\"variant\" | \"base\", string>;\n};\n\n/**\n * Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.\n */\nexport function useRecalculateVariantDataCSLPValues(): void {\n livePreviewPostMessage?.on<OnAudienceModeVariantPatchUpdate>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,\n (event) => {\n if (VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {\n updateVariantClasses(event.data);\n }\n }\n );\n}\nfunction updateVariantClasses({\n highlightVariantFields,\n expectedCSLPValues,\n}: OnAudienceModeVariantPatchUpdate): void {\n const variant = VisualBuilder.VisualBuilderGlobalState.value.variant;\n const observers: MutationObserver[] = [];\n\n // Helper function to update element classes\n const updateElementClasses = (\n element: HTMLElement,\n dataCslp: string,\n observer?: MutationObserver\n ) => {\n if (!dataCslp) return;\n\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (\n !dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__base-field\");\n } else if (\n dataCslp.startsWith(\"v2:\") &&\n variant &&\n !dataCslp.includes(variant) &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__disabled-variant-field\");\n }\n if (!observer) return;\n // Disconnect this observer after processing\n observer.disconnect();\n const index = observers.indexOf(observer);\n if (index > -1) {\n observers.splice(index, 1);\n }\n };\n\n const addElementClasses = (element: HTMLElement) => {\n const dataCslp = element.getAttribute(DATA_CSLP_ATTR_SELECTOR);\n\n if (!dataCslp) {\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n return;\n }\n //if element might have been updated by another observer\n if (\n dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n return;\n }\n // if element has not given variant/base class\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (!dataCslp.startsWith(\"v2:\")) {\n if (element.classList.contains(\"visual-builder__variant-field\")) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n }\n element.classList.add(\"visual-builder__base-field\");\n }\n\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n };\n\n // Create a separate observer for each element\n const elementsWithCslp = document.querySelectorAll(\n `[${DATA_CSLP_ATTR_SELECTOR}]`\n );\n elementsWithCslp.forEach((elementNode) => {\n const element = elementNode as HTMLElement;\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n (mutation.type === \"attributes\" &&\n mutation.attributeName === DATA_CSLP_ATTR_SELECTOR) ||\n mutation.type === \"childList\"\n ) {\n if (mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach((node) => {\n if (node instanceof HTMLElement) {\n addElementClasses(node);\n }\n });\n }\n const dataCslp = element.getAttribute(\n DATA_CSLP_ATTR_SELECTOR\n );\n updateElementClasses(element, dataCslp || \"\", observer);\n }\n });\n });\n\n observers.push(observer);\n observer.observe(element, {\n attributes: true,\n childList: true, // Observe direct children\n subtree: true,\n });\n });\n\n setTimeout(() => {\n if (observers.length > 0) {\n observers.forEach((observer) => observer.disconnect());\n observers.length = 0;\n }\n }, VARIANT_UPDATE_DELAY_MS);\n}\n"],"mappings":"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","names":["import_livePreviewEventManager","livePreviewPostMessage"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport livePreviewPostMessage from \"../../livePreview/eventManager/livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"../../livePreview/eventManager/livePreviewEventManager.constant\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"../utils/constants\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { isValidCslp } from \"../../cslp/cslpdata\";\nimport { setHighlightVariantFields } from \"./useVariantsPostMessageEvent\";\n\nconst VARIANT_UPDATE_DELAY_MS: Readonly<number> = 8000;\n\ntype OnAudienceModeVariantPatchUpdate = {\n highlightVariantFields: boolean;\n expectedCSLPValues: Record<\"variant\" | \"base\", string>;\n};\n\n/**\n * Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.\n */\nexport function useRecalculateVariantDataCSLPValues(): void {\n livePreviewPostMessage?.on<OnAudienceModeVariantPatchUpdate>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,\n (event) => {\n if (VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {\n setHighlightVariantFields(event.data.highlightVariantFields);\n updateVariantClasses();\n }\n }\n );\n}\nexport function updateVariantClasses(): void {\n const highlightVariantFields = VisualBuilder.VisualBuilderGlobalState.value.highlightVariantFields;\n const variant = VisualBuilder.VisualBuilderGlobalState.value.variant;\n const observers: MutationObserver[] = [];\n\n // Helper function to update element classes\n const updateElementClasses = (\n element: HTMLElement,\n dataCslp: string,\n observer?: MutationObserver\n ) => {\n if (!isValidCslp(dataCslp)) return;\n\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n const variantFieldClasses = [\"visual-builder__variant-field\"];\n if (highlightVariantFields) {\n variantFieldClasses.push(visualBuilderStyles()[\"visual-builder__variant-field-outline\"]);\n }\n element.classList.add(...variantFieldClasses);\n } else if (\n !dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field-outline\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__base-field\");\n } else if (\n dataCslp.startsWith(\"v2:\") &&\n variant &&\n !dataCslp.includes(variant) &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field-outline\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__disabled-variant-field\");\n }\n if (!observer) return;\n // Disconnect this observer after processing\n observer.disconnect();\n const index = observers.indexOf(observer);\n if (index > -1) {\n observers.splice(index, 1);\n }\n };\n\n const addElementClasses = (element: HTMLElement) => {\n const dataCslp = element.getAttribute(DATA_CSLP_ATTR_SELECTOR);\n\n if (!isValidCslp(dataCslp)) {\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n return;\n }\n //if element might have been updated by another observer\n if (\n dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n return;\n }\n // if element has not given variant/base class\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n const variantFieldClasses = [\"visual-builder__variant-field\"];\n if (highlightVariantFields) {\n variantFieldClasses.push(visualBuilderStyles()[\"visual-builder__variant-field-outline\"]);\n }\n element.classList.add(...variantFieldClasses);\n } else if (!dataCslp.startsWith(\"v2:\")) {\n if (element.classList.contains(\"visual-builder__variant-field\")) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field-outline\"],\n \"visual-builder__variant-field\"\n );\n }\n element.classList.add(\"visual-builder__base-field\");\n }\n\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n };\n\n // Create a separate observer for each element\n const elementsWithCslp = document.querySelectorAll(\n `[${DATA_CSLP_ATTR_SELECTOR}]`\n );\n elementsWithCslp.forEach((elementNode) => {\n const element = elementNode as HTMLElement;\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n (mutation.type === \"attributes\" &&\n mutation.attributeName === DATA_CSLP_ATTR_SELECTOR) ||\n mutation.type === \"childList\"\n ) {\n if (mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach((node) => {\n if (node instanceof HTMLElement) {\n addElementClasses(node);\n }\n });\n }\n const dataCslp = element.getAttribute(\n DATA_CSLP_ATTR_SELECTOR\n );\n updateElementClasses(element, dataCslp || \"\", observer);\n }\n });\n });\n\n observers.push(observer);\n // TODO: Check if we could add attributeFilter to the observer to only observe the attribute changes for the data-cslp attribute.\n observer.observe(element, {\n attributes: true,\n childList: true, // Observe direct children\n subtree: true,\n });\n });\n\n setTimeout(() => {\n if (observers.length > 0) {\n observers.forEach((observer) => observer.disconnect());\n observers.length = 0;\n }\n }, VARIANT_UPDATE_DELAY_MS);\n}\n"],"mappings":"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","names":["import_livePreviewEventManager","livePreviewPostMessage"]}
|
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
* Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.
|
|
3
3
|
*/
|
|
4
4
|
declare function useRecalculateVariantDataCSLPValues(): void;
|
|
5
|
+
declare function updateVariantClasses(): void;
|
|
5
6
|
|
|
6
|
-
export { useRecalculateVariantDataCSLPValues };
|
|
7
|
+
export { updateVariantClasses, useRecalculateVariantDataCSLPValues };
|
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
* Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.
|
|
3
3
|
*/
|
|
4
4
|
declare function useRecalculateVariantDataCSLPValues(): void;
|
|
5
|
+
declare function updateVariantClasses(): void;
|
|
5
6
|
|
|
6
|
-
export { useRecalculateVariantDataCSLPValues };
|
|
7
|
+
export { updateVariantClasses, useRecalculateVariantDataCSLPValues };
|
|
@@ -6,6 +6,8 @@ import livePreviewPostMessage from "../../livePreview/eventManager/livePreviewEv
|
|
|
6
6
|
import { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from "../../livePreview/eventManager/livePreviewEventManager.constant.js";
|
|
7
7
|
import { DATA_CSLP_ATTR_SELECTOR } from "../utils/constants.js";
|
|
8
8
|
import { visualBuilderStyles } from "../visualBuilder.style.js";
|
|
9
|
+
import { isValidCslp } from "../../cslp/cslpdata.js";
|
|
10
|
+
import { setHighlightVariantFields } from "./useVariantsPostMessageEvent.js";
|
|
9
11
|
var VARIANT_UPDATE_DELAY_MS = 8e3;
|
|
10
12
|
function useRecalculateVariantDataCSLPValues() {
|
|
11
13
|
var _a;
|
|
@@ -13,40 +15,36 @@ function useRecalculateVariantDataCSLPValues() {
|
|
|
13
15
|
LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,
|
|
14
16
|
(event) => {
|
|
15
17
|
if (VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {
|
|
16
|
-
|
|
18
|
+
setHighlightVariantFields(event.data.highlightVariantFields);
|
|
19
|
+
updateVariantClasses();
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
);
|
|
20
23
|
}
|
|
21
|
-
function updateVariantClasses({
|
|
22
|
-
highlightVariantFields
|
|
23
|
-
expectedCSLPValues
|
|
24
|
-
}) {
|
|
24
|
+
function updateVariantClasses() {
|
|
25
|
+
const highlightVariantFields = VisualBuilder.VisualBuilderGlobalState.value.highlightVariantFields;
|
|
25
26
|
const variant = VisualBuilder.VisualBuilderGlobalState.value.variant;
|
|
26
27
|
const observers = [];
|
|
27
28
|
const updateElementClasses = (element, dataCslp, observer) => {
|
|
28
|
-
if (!dataCslp) return;
|
|
29
|
+
if (!isValidCslp(dataCslp)) return;
|
|
29
30
|
if (dataCslp.startsWith("v2:") && !element.classList.contains("visual-builder__variant-field")) {
|
|
30
31
|
if (element.classList.contains("visual-builder__base-field")) {
|
|
31
32
|
element.classList.remove("visual-builder__base-field");
|
|
32
33
|
}
|
|
34
|
+
const variantFieldClasses = ["visual-builder__variant-field"];
|
|
33
35
|
if (highlightVariantFields) {
|
|
34
|
-
|
|
35
|
-
visualBuilderStyles()["visual-builder__variant-field"],
|
|
36
|
-
"visual-builder__variant-field"
|
|
37
|
-
);
|
|
38
|
-
} else {
|
|
39
|
-
element.classList.add("visual-builder__variant-field");
|
|
36
|
+
variantFieldClasses.push(visualBuilderStyles()["visual-builder__variant-field-outline"]);
|
|
40
37
|
}
|
|
38
|
+
element.classList.add(...variantFieldClasses);
|
|
41
39
|
} else if (!dataCslp.startsWith("v2:") && element.classList.contains("visual-builder__variant-field")) {
|
|
42
40
|
element.classList.remove(
|
|
43
|
-
visualBuilderStyles()["visual-builder__variant-field"],
|
|
41
|
+
visualBuilderStyles()["visual-builder__variant-field-outline"],
|
|
44
42
|
"visual-builder__variant-field"
|
|
45
43
|
);
|
|
46
44
|
element.classList.add("visual-builder__base-field");
|
|
47
45
|
} else if (dataCslp.startsWith("v2:") && variant && !dataCslp.includes(variant) && element.classList.contains("visual-builder__variant-field")) {
|
|
48
46
|
element.classList.remove(
|
|
49
|
-
visualBuilderStyles()["visual-builder__variant-field"],
|
|
47
|
+
visualBuilderStyles()["visual-builder__variant-field-outline"],
|
|
50
48
|
"visual-builder__variant-field"
|
|
51
49
|
);
|
|
52
50
|
element.classList.add("visual-builder__disabled-variant-field");
|
|
@@ -60,7 +58,7 @@ function updateVariantClasses({
|
|
|
60
58
|
};
|
|
61
59
|
const addElementClasses = (element) => {
|
|
62
60
|
const dataCslp = element.getAttribute(DATA_CSLP_ATTR_SELECTOR);
|
|
63
|
-
if (!dataCslp) {
|
|
61
|
+
if (!isValidCslp(dataCslp)) {
|
|
64
62
|
element.childNodes.forEach((child) => {
|
|
65
63
|
if (child instanceof HTMLElement) {
|
|
66
64
|
addElementClasses(child);
|
|
@@ -75,18 +73,15 @@ function updateVariantClasses({
|
|
|
75
73
|
if (element.classList.contains("visual-builder__base-field")) {
|
|
76
74
|
element.classList.remove("visual-builder__base-field");
|
|
77
75
|
}
|
|
76
|
+
const variantFieldClasses = ["visual-builder__variant-field"];
|
|
78
77
|
if (highlightVariantFields) {
|
|
79
|
-
|
|
80
|
-
visualBuilderStyles()["visual-builder__variant-field"],
|
|
81
|
-
"visual-builder__variant-field"
|
|
82
|
-
);
|
|
83
|
-
} else {
|
|
84
|
-
element.classList.add("visual-builder__variant-field");
|
|
78
|
+
variantFieldClasses.push(visualBuilderStyles()["visual-builder__variant-field-outline"]);
|
|
85
79
|
}
|
|
80
|
+
element.classList.add(...variantFieldClasses);
|
|
86
81
|
} else if (!dataCslp.startsWith("v2:")) {
|
|
87
82
|
if (element.classList.contains("visual-builder__variant-field")) {
|
|
88
83
|
element.classList.remove(
|
|
89
|
-
visualBuilderStyles()["visual-builder__variant-field"],
|
|
84
|
+
visualBuilderStyles()["visual-builder__variant-field-outline"],
|
|
90
85
|
"visual-builder__variant-field"
|
|
91
86
|
);
|
|
92
87
|
}
|
|
@@ -136,6 +131,7 @@ function updateVariantClasses({
|
|
|
136
131
|
}, VARIANT_UPDATE_DELAY_MS);
|
|
137
132
|
}
|
|
138
133
|
export {
|
|
134
|
+
updateVariantClasses,
|
|
139
135
|
useRecalculateVariantDataCSLPValues
|
|
140
136
|
};
|
|
141
137
|
//# sourceMappingURL=useRecalculateVariantDataCSLPValues.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport livePreviewPostMessage from \"../../livePreview/eventManager/livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"../../livePreview/eventManager/livePreviewEventManager.constant\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"../utils/constants\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\n\nconst VARIANT_UPDATE_DELAY_MS: Readonly<number> = 8000;\n\ntype OnAudienceModeVariantPatchUpdate = {\n highlightVariantFields: boolean;\n expectedCSLPValues: Record<\"variant\" | \"base\", string>;\n};\n\n/**\n * Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.\n */\nexport function useRecalculateVariantDataCSLPValues(): void {\n livePreviewPostMessage?.on<OnAudienceModeVariantPatchUpdate>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,\n (event) => {\n if (VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {\n updateVariantClasses(event.data);\n }\n }\n );\n}\nfunction updateVariantClasses({\n highlightVariantFields,\n expectedCSLPValues,\n}: OnAudienceModeVariantPatchUpdate): void {\n const variant = VisualBuilder.VisualBuilderGlobalState.value.variant;\n const observers: MutationObserver[] = [];\n\n // Helper function to update element classes\n const updateElementClasses = (\n element: HTMLElement,\n dataCslp: string,\n observer?: MutationObserver\n ) => {\n if (!dataCslp) return;\n\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (\n !dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__base-field\");\n } else if (\n dataCslp.startsWith(\"v2:\") &&\n variant &&\n !dataCslp.includes(variant) &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__disabled-variant-field\");\n }\n if (!observer) return;\n // Disconnect this observer after processing\n observer.disconnect();\n const index = observers.indexOf(observer);\n if (index > -1) {\n observers.splice(index, 1);\n }\n };\n\n const addElementClasses = (element: HTMLElement) => {\n const dataCslp = element.getAttribute(DATA_CSLP_ATTR_SELECTOR);\n\n if (!dataCslp) {\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n return;\n }\n //if element might have been updated by another observer\n if (\n dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n return;\n }\n // if element has not given variant/base class\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (!dataCslp.startsWith(\"v2:\")) {\n if (element.classList.contains(\"visual-builder__variant-field\")) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n }\n element.classList.add(\"visual-builder__base-field\");\n }\n\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n };\n\n // Create a separate observer for each element\n const elementsWithCslp = document.querySelectorAll(\n `[${DATA_CSLP_ATTR_SELECTOR}]`\n );\n elementsWithCslp.forEach((elementNode) => {\n const element = elementNode as HTMLElement;\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n (mutation.type === \"attributes\" &&\n mutation.attributeName === DATA_CSLP_ATTR_SELECTOR) ||\n mutation.type === \"childList\"\n ) {\n if (mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach((node) => {\n if (node instanceof HTMLElement) {\n addElementClasses(node);\n }\n });\n }\n const dataCslp = element.getAttribute(\n DATA_CSLP_ATTR_SELECTOR\n );\n updateElementClasses(element, dataCslp || \"\", observer);\n }\n });\n });\n\n observers.push(observer);\n observer.observe(element, {\n attributes: true,\n childList: true, // Observe direct children\n subtree: true,\n });\n });\n\n setTimeout(() => {\n if (observers.length > 0) {\n observers.forEach((observer) => observer.disconnect());\n observers.length = 0;\n }\n }, VARIANT_UPDATE_DELAY_MS);\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport livePreviewPostMessage from \"../../livePreview/eventManager/livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"../../livePreview/eventManager/livePreviewEventManager.constant\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"../utils/constants\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { isValidCslp } from \"../../cslp/cslpdata\";\nimport { setHighlightVariantFields } from \"./useVariantsPostMessageEvent\";\n\nconst VARIANT_UPDATE_DELAY_MS: Readonly<number> = 8000;\n\ntype OnAudienceModeVariantPatchUpdate = {\n highlightVariantFields: boolean;\n expectedCSLPValues: Record<\"variant\" | \"base\", string>;\n};\n\n/**\n * Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.\n */\nexport function useRecalculateVariantDataCSLPValues(): void {\n livePreviewPostMessage?.on<OnAudienceModeVariantPatchUpdate>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,\n (event) => {\n if (VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {\n setHighlightVariantFields(event.data.highlightVariantFields);\n updateVariantClasses();\n }\n }\n );\n}\nexport function updateVariantClasses(): void {\n const highlightVariantFields = VisualBuilder.VisualBuilderGlobalState.value.highlightVariantFields;\n const variant = VisualBuilder.VisualBuilderGlobalState.value.variant;\n const observers: MutationObserver[] = [];\n\n // Helper function to update element classes\n const updateElementClasses = (\n element: HTMLElement,\n dataCslp: string,\n observer?: MutationObserver\n ) => {\n if (!isValidCslp(dataCslp)) return;\n\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n const variantFieldClasses = [\"visual-builder__variant-field\"];\n if (highlightVariantFields) {\n variantFieldClasses.push(visualBuilderStyles()[\"visual-builder__variant-field-outline\"]);\n }\n element.classList.add(...variantFieldClasses);\n } else if (\n !dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field-outline\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__base-field\");\n } else if (\n dataCslp.startsWith(\"v2:\") &&\n variant &&\n !dataCslp.includes(variant) &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field-outline\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__disabled-variant-field\");\n }\n if (!observer) return;\n // Disconnect this observer after processing\n observer.disconnect();\n const index = observers.indexOf(observer);\n if (index > -1) {\n observers.splice(index, 1);\n }\n };\n\n const addElementClasses = (element: HTMLElement) => {\n const dataCslp = element.getAttribute(DATA_CSLP_ATTR_SELECTOR);\n\n if (!isValidCslp(dataCslp)) {\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n return;\n }\n //if element might have been updated by another observer\n if (\n dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n return;\n }\n // if element has not given variant/base class\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n const variantFieldClasses = [\"visual-builder__variant-field\"];\n if (highlightVariantFields) {\n variantFieldClasses.push(visualBuilderStyles()[\"visual-builder__variant-field-outline\"]);\n }\n element.classList.add(...variantFieldClasses);\n } else if (!dataCslp.startsWith(\"v2:\")) {\n if (element.classList.contains(\"visual-builder__variant-field\")) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field-outline\"],\n \"visual-builder__variant-field\"\n );\n }\n element.classList.add(\"visual-builder__base-field\");\n }\n\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n };\n\n // Create a separate observer for each element\n const elementsWithCslp = document.querySelectorAll(\n `[${DATA_CSLP_ATTR_SELECTOR}]`\n );\n elementsWithCslp.forEach((elementNode) => {\n const element = elementNode as HTMLElement;\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n (mutation.type === \"attributes\" &&\n mutation.attributeName === DATA_CSLP_ATTR_SELECTOR) ||\n mutation.type === \"childList\"\n ) {\n if (mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach((node) => {\n if (node instanceof HTMLElement) {\n addElementClasses(node);\n }\n });\n }\n const dataCslp = element.getAttribute(\n DATA_CSLP_ATTR_SELECTOR\n );\n updateElementClasses(element, dataCslp || \"\", observer);\n }\n });\n });\n\n observers.push(observer);\n // TODO: Check if we could add attributeFilter to the observer to only observe the attribute changes for the data-cslp attribute.\n observer.observe(element, {\n attributes: true,\n childList: true, // Observe direct children\n subtree: true,\n });\n });\n\n setTimeout(() => {\n if (observers.length > 0) {\n observers.forEach((observer) => observer.disconnect());\n observers.length = 0;\n }\n }, VARIANT_UPDATE_DELAY_MS);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -41,7 +41,7 @@ async function handleRevalidateFieldData() {
|
|
|
41
41
|
const targetElement = hoveredElement || focusedElement;
|
|
42
42
|
if (targetElement) {
|
|
43
43
|
const cslp = targetElement.getAttribute("data-cslp");
|
|
44
|
-
if (cslp) {
|
|
44
|
+
if ((0, import_cslp.isValidCslp)(cslp)) {
|
|
45
45
|
const fieldMetadata = (0, import_cslp.extractDetailsFromCslp)(cslp);
|
|
46
46
|
import_fieldSchemaMap.FieldSchemaMap.clearContentTypeSchema(
|
|
47
47
|
fieldMetadata.content_type_uid
|
|
@@ -53,7 +53,7 @@ async function handleRevalidateFieldData() {
|
|
|
53
53
|
console.error("Error handling revalidate field data:", error);
|
|
54
54
|
window.location.reload();
|
|
55
55
|
} finally {
|
|
56
|
-
if (shouldRefocus && elementCslp) {
|
|
56
|
+
if (shouldRefocus && (0, import_cslp.isValidCslp)(elementCslp)) {
|
|
57
57
|
await refocusElement(elementCslp, elementCslpUniqueId);
|
|
58
58
|
}
|
|
59
59
|
}
|
package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { hideFocusOverlay } from \"../generators/generateOverlay\";\nimport { handleBuilderInteraction } from \"../listeners/mouseClick\";\n\n/**\n * Revalidates field data and schema after variant linking operations.\n * Unfocuses the selected element, revalidates data, and then reselects it.\n */\nexport async function handleRevalidateFieldData(): Promise<void> {\n const focusedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n const hoveredElement =\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM;\n\n // Store element identifiers for refocusing\n const elementCslp = focusedElement?.getAttribute(\"data-cslp\");\n const elementCslpUniqueId =\n focusedElement?.getAttribute(\"data-cslp-unique-id\") || null;\n const shouldRefocus = !!focusedElement;\n\n try {\n // Step 1: Unfocus the current element\n if (shouldRefocus) {\n await unfocusElement();\n }\n\n // Step 2: Revalidate field data\n const targetElement = hoveredElement || focusedElement;\n\n if (targetElement) {\n const cslp = targetElement.getAttribute(\"data-cslp\");\n if (cslp) {\n const fieldMetadata = extractDetailsFromCslp(cslp);\n\n // Try to revalidate specific field schema and data\n // Clear the entire content type schema from cache to force fresh fetch\n FieldSchemaMap.clearContentTypeSchema(\n fieldMetadata.content_type_uid\n );\n }\n }\n\n // Fallback 1: Clear all field schema cache\n FieldSchemaMap.clear();\n } catch (error) {\n console.error(\"Error handling revalidate field data:\", error);\n // Final fallback - refresh the page\n window.location.reload();\n } finally {\n // Step 3: Refocus the element if we had one focused before\n if (shouldRefocus && elementCslp) {\n await refocusElement(elementCslp, elementCslpUniqueId);\n }\n }\n}\n\n/**\n * Unfocuses the currently selected element and clears focus state\n */\nasync function unfocusElement(): Promise<void> {\n const { visualBuilderContainer, overlayWrapper, focusedToolbar } =\n getVisualBuilderElements();\n\n if (!visualBuilderContainer || !overlayWrapper) return;\n\n const dummyResizeObserver = new ResizeObserver(() => {});\n\n // Hide focus overlay (cleanIndividualFieldResidual needs previousSelectedEditableDOM)\n hideFocusOverlay({\n visualBuilderContainer,\n visualBuilderOverlayWrapper: overlayWrapper,\n focusedToolbar,\n resizeObserver: dummyResizeObserver,\n noTrigger: true,\n });\n\n // Clear global state after cleanup\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n null;\n VisualBuilder.VisualBuilderGlobalState.value.isFocussed = false;\n}\n\n/**\n * Refocuses an element by its CSLP identifier\n */\nasync function refocusElement(\n cslp: string,\n uniqueId: string | null\n): Promise<void> {\n try {\n // Find the element (prefer unique ID, fallback to CSLP)\n const elementToRefocus =\n (uniqueId &&\n document.querySelector(\n `[data-cslp-unique-id=\"${uniqueId}\"]`\n )) ||\n document.querySelector(`[data-cslp=\"${cslp}\"]`);\n\n if (!elementToRefocus) return;\n\n const { visualBuilderContainer, overlayWrapper, focusedToolbar } =\n getVisualBuilderElements();\n\n if (!visualBuilderContainer || !overlayWrapper) return;\n\n // Create synthetic click event\n const syntheticEvent = new MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n });\n Object.defineProperty(syntheticEvent, \"target\", {\n value: elementToRefocus,\n enumerable: true,\n });\n\n // Refocus using handleBuilderInteraction\n await handleBuilderInteraction({\n event: syntheticEvent,\n previousSelectedEditableDOM: null,\n visualBuilderContainer,\n overlayWrapper,\n focusedToolbar,\n resizeObserver: new ResizeObserver(() => {}),\n });\n } catch (error) {\n console.warn(\"Could not refocus element after revalidation:\", error);\n }\n}\n\n/**\n * Gets the main visual builder DOM elements\n */\nfunction getVisualBuilderElements() {\n return {\n visualBuilderContainer: document.querySelector(\n \".visual-builder__container\"\n ) as HTMLDivElement | null,\n overlayWrapper: document.querySelector(\n \".visual-builder__overlay__wrapper\"\n ) as HTMLDivElement | null,\n focusedToolbar: document.querySelector(\n \".visual-builder__focused-toolbar\"\n ) as HTMLDivElement | null,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAA8B;AAC9B,
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { extractDetailsFromCslp, isValidCslp } from \"../../cslp\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { hideFocusOverlay } from \"../generators/generateOverlay\";\nimport { handleBuilderInteraction } from \"../listeners/mouseClick\";\n\n/**\n * Revalidates field data and schema after variant linking operations.\n * Unfocuses the selected element, revalidates data, and then reselects it.\n */\nexport async function handleRevalidateFieldData(): Promise<void> {\n const focusedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n const hoveredElement =\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM;\n\n // Store element identifiers for refocusing\n const elementCslp = focusedElement?.getAttribute(\"data-cslp\");\n const elementCslpUniqueId =\n focusedElement?.getAttribute(\"data-cslp-unique-id\") || null;\n const shouldRefocus = !!focusedElement;\n\n try {\n // Step 1: Unfocus the current element\n if (shouldRefocus) {\n await unfocusElement();\n }\n\n // Step 2: Revalidate field data\n const targetElement = hoveredElement || focusedElement;\n\n if (targetElement) {\n const cslp = targetElement.getAttribute(\"data-cslp\");\n if (isValidCslp(cslp)) {\n const fieldMetadata = extractDetailsFromCslp(cslp);\n\n // Try to revalidate specific field schema and data\n // Clear the entire content type schema from cache to force fresh fetch\n FieldSchemaMap.clearContentTypeSchema(\n fieldMetadata.content_type_uid\n );\n }\n }\n\n // Fallback 1: Clear all field schema cache\n FieldSchemaMap.clear();\n } catch (error) {\n console.error(\"Error handling revalidate field data:\", error);\n // Final fallback - refresh the page\n window.location.reload();\n } finally {\n // Step 3: Refocus the element if we had one focused before\n if (shouldRefocus && isValidCslp(elementCslp)) {\n await refocusElement(elementCslp, elementCslpUniqueId);\n }\n }\n}\n\n/**\n * Unfocuses the currently selected element and clears focus state\n */\nasync function unfocusElement(): Promise<void> {\n const { visualBuilderContainer, overlayWrapper, focusedToolbar } =\n getVisualBuilderElements();\n\n if (!visualBuilderContainer || !overlayWrapper) return;\n\n const dummyResizeObserver = new ResizeObserver(() => {});\n\n // Hide focus overlay (cleanIndividualFieldResidual needs previousSelectedEditableDOM)\n hideFocusOverlay({\n visualBuilderContainer,\n visualBuilderOverlayWrapper: overlayWrapper,\n focusedToolbar,\n resizeObserver: dummyResizeObserver,\n noTrigger: true,\n });\n\n // Clear global state after cleanup\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n null;\n VisualBuilder.VisualBuilderGlobalState.value.isFocussed = false;\n}\n\n/**\n * Refocuses an element by its CSLP identifier\n */\nasync function refocusElement(\n cslp: string,\n uniqueId: string | null\n): Promise<void> {\n try {\n // Find the element (prefer unique ID, fallback to CSLP)\n const elementToRefocus =\n (uniqueId &&\n document.querySelector(\n `[data-cslp-unique-id=\"${uniqueId}\"]`\n )) ||\n document.querySelector(`[data-cslp=\"${cslp}\"]`);\n\n if (!elementToRefocus) return;\n\n const { visualBuilderContainer, overlayWrapper, focusedToolbar } =\n getVisualBuilderElements();\n\n if (!visualBuilderContainer || !overlayWrapper) return;\n\n // Create synthetic click event\n const syntheticEvent = new MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n });\n Object.defineProperty(syntheticEvent, \"target\", {\n value: elementToRefocus,\n enumerable: true,\n });\n\n // Refocus using handleBuilderInteraction\n await handleBuilderInteraction({\n event: syntheticEvent,\n previousSelectedEditableDOM: null,\n visualBuilderContainer,\n overlayWrapper,\n focusedToolbar,\n resizeObserver: new ResizeObserver(() => {}),\n });\n } catch (error) {\n console.warn(\"Could not refocus element after revalidation:\", error);\n }\n}\n\n/**\n * Gets the main visual builder DOM elements\n */\nfunction getVisualBuilderElements() {\n return {\n visualBuilderContainer: document.querySelector(\n \".visual-builder__container\"\n ) as HTMLDivElement | null,\n overlayWrapper: document.querySelector(\n \".visual-builder__overlay__wrapper\"\n ) as HTMLDivElement | null,\n focusedToolbar: document.querySelector(\n \".visual-builder__focused-toolbar\"\n ) as HTMLDivElement | null,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAA8B;AAC9B,kBAAoD;AACpD,4BAA+B;AAC/B,6BAAiC;AACjC,wBAAyC;AAMzC,eAAsB,4BAA2C;AAC7D,QAAM,iBACF,uBAAc,yBAAyB,MAClC;AACT,QAAM,iBACF,uBAAc,yBAAyB,MAAM;AAGjD,QAAM,cAAc,iDAAgB,aAAa;AACjD,QAAM,uBACF,iDAAgB,aAAa,2BAA0B;AAC3D,QAAM,gBAAgB,CAAC,CAAC;AAExB,MAAI;AAEA,QAAI,eAAe;AACf,YAAM,eAAe;AAAA,IACzB;AAGA,UAAM,gBAAgB,kBAAkB;AAExC,QAAI,eAAe;AACf,YAAM,OAAO,cAAc,aAAa,WAAW;AACnD,cAAI,yBAAY,IAAI,GAAG;AACnB,cAAM,oBAAgB,oCAAuB,IAAI;AAIjD,6CAAe;AAAA,UACX,cAAc;AAAA,QAClB;AAAA,MACJ;AAAA,IACJ;AAGA,yCAAe,MAAM;AAAA,EACzB,SAAS,OAAO;AACZ,YAAQ,MAAM,yCAAyC,KAAK;AAE5D,WAAO,SAAS,OAAO;AAAA,EAC3B,UAAE;AAEE,QAAI,qBAAiB,yBAAY,WAAW,GAAG;AAC3C,YAAM,eAAe,aAAa,mBAAmB;AAAA,IACzD;AAAA,EACJ;AACJ;AAKA,eAAe,iBAAgC;AAC3C,QAAM,EAAE,wBAAwB,gBAAgB,eAAe,IAC3D,yBAAyB;AAE7B,MAAI,CAAC,0BAA0B,CAAC,eAAgB;AAEhD,QAAM,sBAAsB,IAAI,eAAe,MAAM;AAAA,EAAC,CAAC;AAGvD,+CAAiB;AAAA,IACb;AAAA,IACA,6BAA6B;AAAA,IAC7B;AAAA,IACA,gBAAgB;AAAA,IAChB,WAAW;AAAA,EACf,CAAC;AAGD,yBAAc,yBAAyB,MAAM,8BACzC;AACJ,yBAAc,yBAAyB,MAAM,aAAa;AAC9D;AAKA,eAAe,eACX,MACA,UACa;AACb,MAAI;AAEA,UAAM,mBACD,YACG,SAAS;AAAA,MACL,yBAAyB,QAAQ;AAAA,IACrC,KACJ,SAAS,cAAc,eAAe,IAAI,IAAI;AAElD,QAAI,CAAC,iBAAkB;AAEvB,UAAM,EAAE,wBAAwB,gBAAgB,eAAe,IAC3D,yBAAyB;AAE7B,QAAI,CAAC,0BAA0B,CAAC,eAAgB;AAGhD,UAAM,iBAAiB,IAAI,WAAW,SAAS;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,IAChB,CAAC;AACD,WAAO,eAAe,gBAAgB,UAAU;AAAA,MAC5C,OAAO;AAAA,MACP,YAAY;AAAA,IAChB,CAAC;AAGD,cAAM,4CAAyB;AAAA,MAC3B,OAAO;AAAA,MACP,6BAA6B;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgB,IAAI,eAAe,MAAM;AAAA,MAAC,CAAC;AAAA,IAC/C,CAAC;AAAA,EACL,SAAS,OAAO;AACZ,YAAQ,KAAK,iDAAiD,KAAK;AAAA,EACvE;AACJ;AAKA,SAAS,2BAA2B;AAChC,SAAO;AAAA,IACH,wBAAwB,SAAS;AAAA,MAC7B;AAAA,IACJ;AAAA,IACA,gBAAgB,SAAS;AAAA,MACrB;AAAA,IACJ;AAAA,IACA,gBAAgB,SAAS;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -2,7 +2,7 @@ import "../../chunk-5WRI5ZAA.js";
|
|
|
2
2
|
|
|
3
3
|
// src/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.ts
|
|
4
4
|
import { VisualBuilder } from "../index.js";
|
|
5
|
-
import { extractDetailsFromCslp } from "../../cslp/index.js";
|
|
5
|
+
import { extractDetailsFromCslp, isValidCslp } from "../../cslp/index.js";
|
|
6
6
|
import { FieldSchemaMap } from "../utils/fieldSchemaMap.js";
|
|
7
7
|
import { hideFocusOverlay } from "../generators/generateOverlay.js";
|
|
8
8
|
import { handleBuilderInteraction } from "../listeners/mouseClick.js";
|
|
@@ -19,7 +19,7 @@ async function handleRevalidateFieldData() {
|
|
|
19
19
|
const targetElement = hoveredElement || focusedElement;
|
|
20
20
|
if (targetElement) {
|
|
21
21
|
const cslp = targetElement.getAttribute("data-cslp");
|
|
22
|
-
if (cslp) {
|
|
22
|
+
if (isValidCslp(cslp)) {
|
|
23
23
|
const fieldMetadata = extractDetailsFromCslp(cslp);
|
|
24
24
|
FieldSchemaMap.clearContentTypeSchema(
|
|
25
25
|
fieldMetadata.content_type_uid
|
|
@@ -31,7 +31,7 @@ async function handleRevalidateFieldData() {
|
|
|
31
31
|
console.error("Error handling revalidate field data:", error);
|
|
32
32
|
window.location.reload();
|
|
33
33
|
} finally {
|
|
34
|
-
if (shouldRefocus && elementCslp) {
|
|
34
|
+
if (shouldRefocus && isValidCslp(elementCslp)) {
|
|
35
35
|
await refocusElement(elementCslp, elementCslpUniqueId);
|
|
36
36
|
}
|
|
37
37
|
}
|
package/dist/legacy/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { hideFocusOverlay } from \"../generators/generateOverlay\";\nimport { handleBuilderInteraction } from \"../listeners/mouseClick\";\n\n/**\n * Revalidates field data and schema after variant linking operations.\n * Unfocuses the selected element, revalidates data, and then reselects it.\n */\nexport async function handleRevalidateFieldData(): Promise<void> {\n const focusedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n const hoveredElement =\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM;\n\n // Store element identifiers for refocusing\n const elementCslp = focusedElement?.getAttribute(\"data-cslp\");\n const elementCslpUniqueId =\n focusedElement?.getAttribute(\"data-cslp-unique-id\") || null;\n const shouldRefocus = !!focusedElement;\n\n try {\n // Step 1: Unfocus the current element\n if (shouldRefocus) {\n await unfocusElement();\n }\n\n // Step 2: Revalidate field data\n const targetElement = hoveredElement || focusedElement;\n\n if (targetElement) {\n const cslp = targetElement.getAttribute(\"data-cslp\");\n if (cslp) {\n const fieldMetadata = extractDetailsFromCslp(cslp);\n\n // Try to revalidate specific field schema and data\n // Clear the entire content type schema from cache to force fresh fetch\n FieldSchemaMap.clearContentTypeSchema(\n fieldMetadata.content_type_uid\n );\n }\n }\n\n // Fallback 1: Clear all field schema cache\n FieldSchemaMap.clear();\n } catch (error) {\n console.error(\"Error handling revalidate field data:\", error);\n // Final fallback - refresh the page\n window.location.reload();\n } finally {\n // Step 3: Refocus the element if we had one focused before\n if (shouldRefocus && elementCslp) {\n await refocusElement(elementCslp, elementCslpUniqueId);\n }\n }\n}\n\n/**\n * Unfocuses the currently selected element and clears focus state\n */\nasync function unfocusElement(): Promise<void> {\n const { visualBuilderContainer, overlayWrapper, focusedToolbar } =\n getVisualBuilderElements();\n\n if (!visualBuilderContainer || !overlayWrapper) return;\n\n const dummyResizeObserver = new ResizeObserver(() => {});\n\n // Hide focus overlay (cleanIndividualFieldResidual needs previousSelectedEditableDOM)\n hideFocusOverlay({\n visualBuilderContainer,\n visualBuilderOverlayWrapper: overlayWrapper,\n focusedToolbar,\n resizeObserver: dummyResizeObserver,\n noTrigger: true,\n });\n\n // Clear global state after cleanup\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n null;\n VisualBuilder.VisualBuilderGlobalState.value.isFocussed = false;\n}\n\n/**\n * Refocuses an element by its CSLP identifier\n */\nasync function refocusElement(\n cslp: string,\n uniqueId: string | null\n): Promise<void> {\n try {\n // Find the element (prefer unique ID, fallback to CSLP)\n const elementToRefocus =\n (uniqueId &&\n document.querySelector(\n `[data-cslp-unique-id=\"${uniqueId}\"]`\n )) ||\n document.querySelector(`[data-cslp=\"${cslp}\"]`);\n\n if (!elementToRefocus) return;\n\n const { visualBuilderContainer, overlayWrapper, focusedToolbar } =\n getVisualBuilderElements();\n\n if (!visualBuilderContainer || !overlayWrapper) return;\n\n // Create synthetic click event\n const syntheticEvent = new MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n });\n Object.defineProperty(syntheticEvent, \"target\", {\n value: elementToRefocus,\n enumerable: true,\n });\n\n // Refocus using handleBuilderInteraction\n await handleBuilderInteraction({\n event: syntheticEvent,\n previousSelectedEditableDOM: null,\n visualBuilderContainer,\n overlayWrapper,\n focusedToolbar,\n resizeObserver: new ResizeObserver(() => {}),\n });\n } catch (error) {\n console.warn(\"Could not refocus element after revalidation:\", error);\n }\n}\n\n/**\n * Gets the main visual builder DOM elements\n */\nfunction getVisualBuilderElements() {\n return {\n visualBuilderContainer: document.querySelector(\n \".visual-builder__container\"\n ) as HTMLDivElement | null,\n overlayWrapper: document.querySelector(\n \".visual-builder__overlay__wrapper\"\n ) as HTMLDivElement | null,\n focusedToolbar: document.querySelector(\n \".visual-builder__focused-toolbar\"\n ) as HTMLDivElement | null,\n };\n}\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAC9B,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRevalidateFieldDataPostMessageEvent.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport { extractDetailsFromCslp, isValidCslp } from \"../../cslp\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { hideFocusOverlay } from \"../generators/generateOverlay\";\nimport { handleBuilderInteraction } from \"../listeners/mouseClick\";\n\n/**\n * Revalidates field data and schema after variant linking operations.\n * Unfocuses the selected element, revalidates data, and then reselects it.\n */\nexport async function handleRevalidateFieldData(): Promise<void> {\n const focusedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n const hoveredElement =\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM;\n\n // Store element identifiers for refocusing\n const elementCslp = focusedElement?.getAttribute(\"data-cslp\");\n const elementCslpUniqueId =\n focusedElement?.getAttribute(\"data-cslp-unique-id\") || null;\n const shouldRefocus = !!focusedElement;\n\n try {\n // Step 1: Unfocus the current element\n if (shouldRefocus) {\n await unfocusElement();\n }\n\n // Step 2: Revalidate field data\n const targetElement = hoveredElement || focusedElement;\n\n if (targetElement) {\n const cslp = targetElement.getAttribute(\"data-cslp\");\n if (isValidCslp(cslp)) {\n const fieldMetadata = extractDetailsFromCslp(cslp);\n\n // Try to revalidate specific field schema and data\n // Clear the entire content type schema from cache to force fresh fetch\n FieldSchemaMap.clearContentTypeSchema(\n fieldMetadata.content_type_uid\n );\n }\n }\n\n // Fallback 1: Clear all field schema cache\n FieldSchemaMap.clear();\n } catch (error) {\n console.error(\"Error handling revalidate field data:\", error);\n // Final fallback - refresh the page\n window.location.reload();\n } finally {\n // Step 3: Refocus the element if we had one focused before\n if (shouldRefocus && isValidCslp(elementCslp)) {\n await refocusElement(elementCslp, elementCslpUniqueId);\n }\n }\n}\n\n/**\n * Unfocuses the currently selected element and clears focus state\n */\nasync function unfocusElement(): Promise<void> {\n const { visualBuilderContainer, overlayWrapper, focusedToolbar } =\n getVisualBuilderElements();\n\n if (!visualBuilderContainer || !overlayWrapper) return;\n\n const dummyResizeObserver = new ResizeObserver(() => {});\n\n // Hide focus overlay (cleanIndividualFieldResidual needs previousSelectedEditableDOM)\n hideFocusOverlay({\n visualBuilderContainer,\n visualBuilderOverlayWrapper: overlayWrapper,\n focusedToolbar,\n resizeObserver: dummyResizeObserver,\n noTrigger: true,\n });\n\n // Clear global state after cleanup\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n null;\n VisualBuilder.VisualBuilderGlobalState.value.isFocussed = false;\n}\n\n/**\n * Refocuses an element by its CSLP identifier\n */\nasync function refocusElement(\n cslp: string,\n uniqueId: string | null\n): Promise<void> {\n try {\n // Find the element (prefer unique ID, fallback to CSLP)\n const elementToRefocus =\n (uniqueId &&\n document.querySelector(\n `[data-cslp-unique-id=\"${uniqueId}\"]`\n )) ||\n document.querySelector(`[data-cslp=\"${cslp}\"]`);\n\n if (!elementToRefocus) return;\n\n const { visualBuilderContainer, overlayWrapper, focusedToolbar } =\n getVisualBuilderElements();\n\n if (!visualBuilderContainer || !overlayWrapper) return;\n\n // Create synthetic click event\n const syntheticEvent = new MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n });\n Object.defineProperty(syntheticEvent, \"target\", {\n value: elementToRefocus,\n enumerable: true,\n });\n\n // Refocus using handleBuilderInteraction\n await handleBuilderInteraction({\n event: syntheticEvent,\n previousSelectedEditableDOM: null,\n visualBuilderContainer,\n overlayWrapper,\n focusedToolbar,\n resizeObserver: new ResizeObserver(() => {}),\n });\n } catch (error) {\n console.warn(\"Could not refocus element after revalidation:\", error);\n }\n}\n\n/**\n * Gets the main visual builder DOM elements\n */\nfunction getVisualBuilderElements() {\n return {\n visualBuilderContainer: document.querySelector(\n \".visual-builder__container\"\n ) as HTMLDivElement | null,\n overlayWrapper: document.querySelector(\n \".visual-builder__overlay__wrapper\"\n ) as HTMLDivElement | null,\n focusedToolbar: document.querySelector(\n \".visual-builder__focused-toolbar\"\n ) as HTMLDivElement | null,\n };\n}\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB,mBAAmB;AACpD,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,gCAAgC;AAMzC,eAAsB,4BAA2C;AAC7D,QAAM,iBACF,cAAc,yBAAyB,MAClC;AACT,QAAM,iBACF,cAAc,yBAAyB,MAAM;AAGjD,QAAM,cAAc,iDAAgB,aAAa;AACjD,QAAM,uBACF,iDAAgB,aAAa,2BAA0B;AAC3D,QAAM,gBAAgB,CAAC,CAAC;AAExB,MAAI;AAEA,QAAI,eAAe;AACf,YAAM,eAAe;AAAA,IACzB;AAGA,UAAM,gBAAgB,kBAAkB;AAExC,QAAI,eAAe;AACf,YAAM,OAAO,cAAc,aAAa,WAAW;AACnD,UAAI,YAAY,IAAI,GAAG;AACnB,cAAM,gBAAgB,uBAAuB,IAAI;AAIjD,uBAAe;AAAA,UACX,cAAc;AAAA,QAClB;AAAA,MACJ;AAAA,IACJ;AAGA,mBAAe,MAAM;AAAA,EACzB,SAAS,OAAO;AACZ,YAAQ,MAAM,yCAAyC,KAAK;AAE5D,WAAO,SAAS,OAAO;AAAA,EAC3B,UAAE;AAEE,QAAI,iBAAiB,YAAY,WAAW,GAAG;AAC3C,YAAM,eAAe,aAAa,mBAAmB;AAAA,IACzD;AAAA,EACJ;AACJ;AAKA,eAAe,iBAAgC;AAC3C,QAAM,EAAE,wBAAwB,gBAAgB,eAAe,IAC3D,yBAAyB;AAE7B,MAAI,CAAC,0BAA0B,CAAC,eAAgB;AAEhD,QAAM,sBAAsB,IAAI,eAAe,MAAM;AAAA,EAAC,CAAC;AAGvD,mBAAiB;AAAA,IACb;AAAA,IACA,6BAA6B;AAAA,IAC7B;AAAA,IACA,gBAAgB;AAAA,IAChB,WAAW;AAAA,EACf,CAAC;AAGD,gBAAc,yBAAyB,MAAM,8BACzC;AACJ,gBAAc,yBAAyB,MAAM,aAAa;AAC9D;AAKA,eAAe,eACX,MACA,UACa;AACb,MAAI;AAEA,UAAM,mBACD,YACG,SAAS;AAAA,MACL,yBAAyB,QAAQ;AAAA,IACrC,KACJ,SAAS,cAAc,eAAe,IAAI,IAAI;AAElD,QAAI,CAAC,iBAAkB;AAEvB,UAAM,EAAE,wBAAwB,gBAAgB,eAAe,IAC3D,yBAAyB;AAE7B,QAAI,CAAC,0BAA0B,CAAC,eAAgB;AAGhD,UAAM,iBAAiB,IAAI,WAAW,SAAS;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,IAChB,CAAC;AACD,WAAO,eAAe,gBAAgB,UAAU;AAAA,MAC5C,OAAO;AAAA,MACP,YAAY;AAAA,IAChB,CAAC;AAGD,UAAM,yBAAyB;AAAA,MAC3B,OAAO;AAAA,MACP,6BAA6B;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgB,IAAI,eAAe,MAAM;AAAA,MAAC,CAAC;AAAA,IAC/C,CAAC;AAAA,EACL,SAAS,OAAO;AACZ,YAAQ,KAAK,iDAAiD,KAAK;AAAA,EACvE;AACJ;AAKA,SAAS,2BAA2B;AAChC,SAAO;AAAA,IACH,wBAAwB,SAAS;AAAA,MAC7B;AAAA,IACJ;AAAA,IACA,gBAAgB,SAAS;AAAA,MACrB;AAAA,IACJ;AAAA,IACA,gBAAgB,SAAS;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -31,10 +31,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var useVariantsPostMessageEvent_exports = {};
|
|
32
32
|
__export(useVariantsPostMessageEvent_exports, {
|
|
33
33
|
addVariantFieldClass: () => addVariantFieldClass,
|
|
34
|
+
debounceAddVariantFieldClass: () => debounceAddVariantFieldClass,
|
|
35
|
+
getHighlightVariantFieldsStatus: () => getHighlightVariantFieldsStatus,
|
|
34
36
|
removeVariantFieldClass: () => removeVariantFieldClass,
|
|
35
37
|
setAudienceMode: () => setAudienceMode,
|
|
38
|
+
setHighlightVariantFields: () => setHighlightVariantFields,
|
|
36
39
|
setLocale: () => setLocale,
|
|
37
40
|
setVariant: () => setVariant,
|
|
41
|
+
setVariantOrder: () => setVariantOrder,
|
|
38
42
|
useVariantFieldsPostMessageEvent: () => useVariantFieldsPostMessageEvent
|
|
39
43
|
});
|
|
40
44
|
module.exports = __toCommonJS(useVariantsPostMessageEvent_exports);
|
|
@@ -43,6 +47,8 @@ var import_visualBuilder = require("../visualBuilder.style.cjs");
|
|
|
43
47
|
var import_visualBuilderPostMessage = __toESM(require("../utils/visualBuilderPostMessage.cjs"), 1);
|
|
44
48
|
var import_postMessage = require("../utils/types/postMessage.types.cjs");
|
|
45
49
|
var import_fieldSchemaMap = require("../utils/fieldSchemaMap.cjs");
|
|
50
|
+
var import_useRecalculateVariantDataCSLPValues = require("./useRecalculateVariantDataCSLPValues.cjs");
|
|
51
|
+
var import_lodash_es = require("lodash-es");
|
|
46
52
|
var import_cslpdata = require("../../cslp/cslpdata.cjs");
|
|
47
53
|
function isLowerOrderVariant(variant_uid, dataCslp, variantOrder) {
|
|
48
54
|
if (!variantOrder || variantOrder.length === 0) {
|
|
@@ -56,16 +62,20 @@ function isLowerOrderVariant(variant_uid, dataCslp, variantOrder) {
|
|
|
56
62
|
}
|
|
57
63
|
return indexOfCslpVariant < indexOfCmsVariant;
|
|
58
64
|
}
|
|
59
|
-
function addVariantFieldClass(variant_uid
|
|
65
|
+
function addVariantFieldClass(variant_uid) {
|
|
66
|
+
const variantOrder = import__.VisualBuilder.VisualBuilderGlobalState.value.variantOrder;
|
|
67
|
+
const highlightVariantFields = import__.VisualBuilder.VisualBuilderGlobalState.value.highlightVariantFields;
|
|
60
68
|
const elements = document.querySelectorAll(`[data-cslp]`);
|
|
61
69
|
elements.forEach((element) => {
|
|
62
70
|
const dataCslp = element.getAttribute("data-cslp");
|
|
63
|
-
if (!dataCslp) return;
|
|
71
|
+
if (!(0, import_cslpdata.isValidCslp)(dataCslp)) return;
|
|
64
72
|
if (dataCslp == null ? void 0 : dataCslp.includes(variant_uid)) {
|
|
65
|
-
highlightVariantFields && element.classList.add(
|
|
66
|
-
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"]
|
|
67
|
-
);
|
|
68
73
|
element.classList.add("visual-builder__variant-field");
|
|
74
|
+
if (highlightVariantFields) {
|
|
75
|
+
element.classList.add(
|
|
76
|
+
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field-outline"]
|
|
77
|
+
);
|
|
78
|
+
}
|
|
69
79
|
} else if (!dataCslp.startsWith("v2:")) {
|
|
70
80
|
element.classList.add("visual-builder__base-field");
|
|
71
81
|
} else if (isLowerOrderVariant(variant_uid, dataCslp, variantOrder)) {
|
|
@@ -75,14 +85,19 @@ function addVariantFieldClass(variant_uid, highlightVariantFields, variantOrder)
|
|
|
75
85
|
}
|
|
76
86
|
});
|
|
77
87
|
}
|
|
88
|
+
var debounceAddVariantFieldClass = (0, import_lodash_es.debounce)(
|
|
89
|
+
addVariantFieldClass,
|
|
90
|
+
1e3,
|
|
91
|
+
{ trailing: true }
|
|
92
|
+
);
|
|
78
93
|
function removeVariantFieldClass(onlyHighlighted = false) {
|
|
79
94
|
if (onlyHighlighted) {
|
|
80
95
|
const variantElements = document.querySelectorAll(
|
|
81
|
-
`.${(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"]}`
|
|
96
|
+
`.${(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field-outline"]}`
|
|
82
97
|
);
|
|
83
98
|
variantElements.forEach((element) => {
|
|
84
99
|
element.classList.remove(
|
|
85
|
-
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"]
|
|
100
|
+
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field-outline"]
|
|
86
101
|
);
|
|
87
102
|
});
|
|
88
103
|
} else {
|
|
@@ -93,7 +108,7 @@ function removeVariantFieldClass(onlyHighlighted = false) {
|
|
|
93
108
|
element.classList.remove(
|
|
94
109
|
"visual-builder__disabled-variant-field",
|
|
95
110
|
"visual-builder__variant-field",
|
|
96
|
-
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"],
|
|
111
|
+
(0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field-outline"],
|
|
97
112
|
"visual-builder__base-field",
|
|
98
113
|
"visual-builder__lower-order-variant-field"
|
|
99
114
|
);
|
|
@@ -109,13 +124,43 @@ function setVariant(uid) {
|
|
|
109
124
|
function setLocale(locale) {
|
|
110
125
|
import__.VisualBuilder.VisualBuilderGlobalState.value.locale = locale;
|
|
111
126
|
}
|
|
112
|
-
function
|
|
127
|
+
function setHighlightVariantFields(highlight) {
|
|
128
|
+
import__.VisualBuilder.VisualBuilderGlobalState.value.highlightVariantFields = highlight;
|
|
129
|
+
}
|
|
130
|
+
function setVariantOrder(variantOrder) {
|
|
131
|
+
import__.VisualBuilder.VisualBuilderGlobalState.value.variantOrder = variantOrder;
|
|
132
|
+
}
|
|
133
|
+
async function getHighlightVariantFieldsStatus() {
|
|
134
|
+
var _a;
|
|
135
|
+
try {
|
|
136
|
+
const result = await ((_a = import_visualBuilderPostMessage.default) == null ? void 0 : _a.send(
|
|
137
|
+
import_postMessage.VisualBuilderPostMessageEvents.GET_HIGHLIGHT_VARIANT_FIELDS_STATUS
|
|
138
|
+
));
|
|
139
|
+
return result ?? {
|
|
140
|
+
highlightVariantFields: false
|
|
141
|
+
};
|
|
142
|
+
} catch (error) {
|
|
143
|
+
console.error("Failed to get highlight variant fields status:", error);
|
|
144
|
+
return {
|
|
145
|
+
highlightVariantFields: false
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function useVariantFieldsPostMessageEvent({ isSSR }) {
|
|
113
150
|
var _a, _b, _c, _d, _e;
|
|
114
151
|
(_a = import_visualBuilderPostMessage.default) == null ? void 0 : _a.on(
|
|
115
152
|
import_postMessage.VisualBuilderPostMessageEvents.GET_VARIANT_ID,
|
|
116
153
|
(event) => {
|
|
117
|
-
|
|
154
|
+
const selectedVariant = event.data.variant;
|
|
155
|
+
setVariant(selectedVariant);
|
|
118
156
|
import_fieldSchemaMap.FieldSchemaMap.clear();
|
|
157
|
+
if (isSSR) {
|
|
158
|
+
if (selectedVariant) {
|
|
159
|
+
addVariantFieldClass(selectedVariant);
|
|
160
|
+
}
|
|
161
|
+
} else {
|
|
162
|
+
(0, import_useRecalculateVariantDataCSLPValues.updateVariantClasses)();
|
|
163
|
+
}
|
|
119
164
|
}
|
|
120
165
|
);
|
|
121
166
|
(_b = import_visualBuilderPostMessage.default) == null ? void 0 : _b.on(
|
|
@@ -133,11 +178,11 @@ function useVariantFieldsPostMessageEvent() {
|
|
|
133
178
|
(_d = import_visualBuilderPostMessage.default) == null ? void 0 : _d.on(
|
|
134
179
|
import_postMessage.VisualBuilderPostMessageEvents.SHOW_VARIANT_FIELDS,
|
|
135
180
|
(event) => {
|
|
181
|
+
setHighlightVariantFields(event.data.variant_data.highlightVariantFields);
|
|
182
|
+
setVariantOrder(event.data.variant_data.variantOrder || []);
|
|
136
183
|
removeVariantFieldClass();
|
|
137
184
|
addVariantFieldClass(
|
|
138
|
-
event.data.variant_data.variant
|
|
139
|
-
event.data.variant_data.highlightVariantFields,
|
|
140
|
-
event.data.variant_data.variantOrder
|
|
185
|
+
event.data.variant_data.variant
|
|
141
186
|
);
|
|
142
187
|
}
|
|
143
188
|
);
|
|
@@ -145,6 +190,7 @@ function useVariantFieldsPostMessageEvent() {
|
|
|
145
190
|
import_postMessage.VisualBuilderPostMessageEvents.REMOVE_VARIANT_FIELDS,
|
|
146
191
|
(event) => {
|
|
147
192
|
var _a2;
|
|
193
|
+
setHighlightVariantFields(false);
|
|
148
194
|
removeVariantFieldClass((_a2 = event == null ? void 0 : event.data) == null ? void 0 : _a2.onlyHighlighted);
|
|
149
195
|
}
|
|
150
196
|
);
|
|
@@ -152,10 +198,14 @@ function useVariantFieldsPostMessageEvent() {
|
|
|
152
198
|
// Annotate the CommonJS export names for ESM import in node:
|
|
153
199
|
0 && (module.exports = {
|
|
154
200
|
addVariantFieldClass,
|
|
201
|
+
debounceAddVariantFieldClass,
|
|
202
|
+
getHighlightVariantFieldsStatus,
|
|
155
203
|
removeVariantFieldClass,
|
|
156
204
|
setAudienceMode,
|
|
205
|
+
setHighlightVariantFields,
|
|
157
206
|
setLocale,
|
|
158
207
|
setVariant,
|
|
208
|
+
setVariantOrder,
|
|
159
209
|
useVariantFieldsPostMessageEvent
|
|
160
210
|
});
|
|
161
211
|
//# sourceMappingURL=useVariantsPostMessageEvent.cjs.map
|