@contentstack/live-preview-utils 3.0.0 → 3.0.2
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/LICENSE +1 -1
- package/README.md +1 -1
- package/dist/legacy/cslp/cslpdata.cjs.map +1 -1
- package/dist/legacy/cslp/cslpdata.js.map +1 -1
- package/dist/legacy/livePreview/editButton/editButton.cjs +2 -2
- 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/editButton/editButton.style.cjs +0 -1
- package/dist/legacy/livePreview/editButton/editButton.style.cjs.map +1 -1
- package/dist/legacy/livePreview/editButton/editButton.style.js +0 -1
- package/dist/legacy/livePreview/editButton/editButton.style.js.map +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +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 +2 -1
- package/dist/legacy/timeline/compare/compare.cjs.map +1 -1
- package/dist/legacy/timeline/compare/compare.js +2 -1
- package/dist/legacy/timeline/compare/compare.js.map +1 -1
- package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs +2 -2
- package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.d.cts +1 -1
- package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.d.ts +1 -1
- package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.js +2 -2
- package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.js.map +1 -1
- package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +37 -29
- package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/FieldToolbar.d.cts +1 -0
- package/dist/legacy/visualBuilder/components/FieldToolbar.d.ts +1 -0
- package/dist/legacy/visualBuilder/components/FieldToolbar.js +37 -29
- package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
- package/dist/legacy/visualBuilder/components/emptyBlock.cjs +1 -0
- package/dist/legacy/visualBuilder/components/emptyBlock.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/emptyBlock.js +1 -0
- package/dist/legacy/visualBuilder/components/emptyBlock.js.map +1 -1
- package/dist/legacy/visualBuilder/components/pseudoEditableField.cjs +6 -13
- package/dist/legacy/visualBuilder/components/pseudoEditableField.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/pseudoEditableField.js +6 -13
- package/dist/legacy/visualBuilder/components/pseudoEditableField.js.map +1 -1
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +25 -13
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js +25 -13
- package/dist/legacy/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +6 -5
- package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateToolbar.d.cts +2 -2
- package/dist/legacy/visualBuilder/generators/generateToolbar.d.ts +2 -2
- package/dist/legacy/visualBuilder/generators/generateToolbar.js +6 -5
- package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
- package/dist/legacy/visualBuilder/index.cjs +2 -1
- package/dist/legacy/visualBuilder/index.cjs.map +1 -1
- package/dist/legacy/visualBuilder/index.js +2 -1
- package/dist/legacy/visualBuilder/index.js.map +1 -1
- package/dist/legacy/visualBuilder/listeners/index.cjs +8 -2
- package/dist/legacy/visualBuilder/listeners/index.cjs.map +1 -1
- package/dist/legacy/visualBuilder/listeners/index.js +8 -2
- package/dist/legacy/visualBuilder/listeners/index.js.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +10 -2
- package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.d.cts +3 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.d.ts +3 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.js +11 -3
- package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/constants.cjs +5 -2
- package/dist/legacy/visualBuilder/utils/constants.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/constants.d.cts +2 -1
- package/dist/legacy/visualBuilder/utils/constants.d.ts +2 -1
- package/dist/legacy/visualBuilder/utils/constants.js +3 -1
- package/dist/legacy/visualBuilder/utils/constants.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/getFieldType.cjs +6 -5
- package/dist/legacy/visualBuilder/utils/getFieldType.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/getFieldType.js +6 -5
- package/dist/legacy/visualBuilder/utils/getFieldType.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/getPsuedoEditableStylesElement.cjs +56 -0
- package/dist/legacy/visualBuilder/utils/getPsuedoEditableStylesElement.cjs.map +1 -0
- package/dist/legacy/visualBuilder/utils/getPsuedoEditableStylesElement.d.cts +5 -0
- package/dist/legacy/visualBuilder/utils/getPsuedoEditableStylesElement.d.ts +5 -0
- package/dist/legacy/visualBuilder/utils/getPsuedoEditableStylesElement.js +23 -0
- package/dist/legacy/visualBuilder/utils/getPsuedoEditableStylesElement.js.map +1 -0
- package/dist/legacy/visualBuilder/utils/getStyleOfAnElement.cjs +2 -0
- package/dist/legacy/visualBuilder/utils/getStyleOfAnElement.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/getStyleOfAnElement.js +2 -0
- package/dist/legacy/visualBuilder/utils/getStyleOfAnElement.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.cjs +10 -0
- package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.js +10 -0
- package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +65 -41
- package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +55 -41
- package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.cjs +44 -0
- package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.cjs.map +1 -0
- package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.d.cts +3 -0
- package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.d.ts +3 -0
- package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.js +21 -0
- package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.js.map +1 -0
- package/dist/legacy/visualBuilder/utils/multipleElementAddButton.cjs +1 -1
- package/dist/legacy/visualBuilder/utils/multipleElementAddButton.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/multipleElementAddButton.js +1 -1
- package/dist/legacy/visualBuilder/utils/multipleElementAddButton.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +48 -17
- package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/updateFocussedState.d.cts +2 -2
- package/dist/legacy/visualBuilder/utils/updateFocussedState.d.ts +2 -2
- package/dist/legacy/visualBuilder/utils/updateFocussedState.js +58 -19
- package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
- package/dist/modern/cslp/cslpdata.cjs.map +1 -1
- package/dist/modern/cslp/cslpdata.js.map +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 +1 -1
- package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
- package/dist/modern/livePreview/editButton/editButton.style.cjs +0 -1
- package/dist/modern/livePreview/editButton/editButton.style.cjs.map +1 -1
- package/dist/modern/livePreview/editButton/editButton.style.js +0 -1
- package/dist/modern/livePreview/editButton/editButton.style.js.map +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +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 +2 -1
- package/dist/modern/timeline/compare/compare.cjs.map +1 -1
- package/dist/modern/timeline/compare/compare.js +2 -1
- package/dist/modern/timeline/compare/compare.js.map +1 -1
- package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs +2 -2
- package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.d.cts +1 -1
- package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.d.ts +1 -1
- package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.js +2 -2
- package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.js.map +1 -1
- package/dist/modern/visualBuilder/components/FieldToolbar.cjs +35 -29
- package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/FieldToolbar.d.cts +1 -0
- package/dist/modern/visualBuilder/components/FieldToolbar.d.ts +1 -0
- package/dist/modern/visualBuilder/components/FieldToolbar.js +35 -29
- package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
- package/dist/modern/visualBuilder/components/emptyBlock.cjs +1 -0
- package/dist/modern/visualBuilder/components/emptyBlock.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/emptyBlock.js +1 -0
- package/dist/modern/visualBuilder/components/emptyBlock.js.map +1 -1
- package/dist/modern/visualBuilder/components/pseudoEditableField.cjs +6 -13
- package/dist/modern/visualBuilder/components/pseudoEditableField.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/pseudoEditableField.js +6 -13
- package/dist/modern/visualBuilder/components/pseudoEditableField.js.map +1 -1
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs +24 -13
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.cjs.map +1 -1
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js +24 -13
- package/dist/modern/visualBuilder/eventManager/useVariantsPostMessageEvent.js.map +1 -1
- package/dist/modern/visualBuilder/generators/generateToolbar.cjs +6 -5
- package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
- package/dist/modern/visualBuilder/generators/generateToolbar.d.cts +2 -2
- package/dist/modern/visualBuilder/generators/generateToolbar.d.ts +2 -2
- package/dist/modern/visualBuilder/generators/generateToolbar.js +6 -5
- package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
- package/dist/modern/visualBuilder/index.cjs +2 -1
- package/dist/modern/visualBuilder/index.cjs.map +1 -1
- package/dist/modern/visualBuilder/index.js +2 -1
- package/dist/modern/visualBuilder/index.js.map +1 -1
- package/dist/modern/visualBuilder/listeners/index.cjs +8 -2
- package/dist/modern/visualBuilder/listeners/index.cjs.map +1 -1
- package/dist/modern/visualBuilder/listeners/index.js +8 -2
- package/dist/modern/visualBuilder/listeners/index.js.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.cjs +10 -2
- package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.d.cts +3 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.d.ts +3 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.js +11 -3
- package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
- package/dist/modern/visualBuilder/utils/constants.cjs +5 -2
- package/dist/modern/visualBuilder/utils/constants.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/constants.d.cts +2 -1
- package/dist/modern/visualBuilder/utils/constants.d.ts +2 -1
- package/dist/modern/visualBuilder/utils/constants.js +3 -1
- package/dist/modern/visualBuilder/utils/constants.js.map +1 -1
- package/dist/modern/visualBuilder/utils/getFieldType.cjs +5 -5
- package/dist/modern/visualBuilder/utils/getFieldType.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/getFieldType.js +5 -5
- package/dist/modern/visualBuilder/utils/getFieldType.js.map +1 -1
- package/dist/modern/visualBuilder/utils/getPsuedoEditableStylesElement.cjs +56 -0
- package/dist/modern/visualBuilder/utils/getPsuedoEditableStylesElement.cjs.map +1 -0
- package/dist/modern/visualBuilder/utils/getPsuedoEditableStylesElement.d.cts +5 -0
- package/dist/modern/visualBuilder/utils/getPsuedoEditableStylesElement.d.ts +5 -0
- package/dist/modern/visualBuilder/utils/getPsuedoEditableStylesElement.js +23 -0
- package/dist/modern/visualBuilder/utils/getPsuedoEditableStylesElement.js.map +1 -0
- package/dist/modern/visualBuilder/utils/getStyleOfAnElement.cjs +2 -0
- package/dist/modern/visualBuilder/utils/getStyleOfAnElement.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/getStyleOfAnElement.js +2 -0
- package/dist/modern/visualBuilder/utils/getStyleOfAnElement.js.map +1 -1
- package/dist/modern/visualBuilder/utils/handleFieldMouseDown.cjs +10 -0
- package/dist/modern/visualBuilder/utils/handleFieldMouseDown.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/handleFieldMouseDown.js +10 -0
- package/dist/modern/visualBuilder/utils/handleFieldMouseDown.js.map +1 -1
- package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +64 -41
- package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/handleIndividualFields.js +54 -41
- package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
- package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.cjs +44 -0
- package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.cjs.map +1 -0
- package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.d.cts +3 -0
- package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.d.ts +3 -0
- package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.js +21 -0
- package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.js.map +1 -0
- package/dist/modern/visualBuilder/utils/multipleElementAddButton.cjs +1 -1
- package/dist/modern/visualBuilder/utils/multipleElementAddButton.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/multipleElementAddButton.js +1 -1
- package/dist/modern/visualBuilder/utils/multipleElementAddButton.js.map +1 -1
- package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +48 -17
- package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/updateFocussedState.d.cts +2 -2
- package/dist/modern/visualBuilder/utils/updateFocussedState.d.ts +2 -2
- package/dist/modern/visualBuilder/utils/updateFocussedState.js +58 -19
- package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,6 +33,7 @@ var DEFAULT_MULTIPLE_FIELDS = [
|
|
|
33
33
|
FieldDataType.GROUP,
|
|
34
34
|
FieldDataType.BLOCK
|
|
35
35
|
];
|
|
36
|
+
var unicodeNonBreakingSpace = "\xA0";
|
|
36
37
|
export {
|
|
37
38
|
ALLOWED_INLINE_EDITABLE_FIELD,
|
|
38
39
|
ALLOWED_MODAL_EDITABLE_FIELD,
|
|
@@ -45,6 +46,7 @@ export {
|
|
|
45
46
|
TOP_EDGE_BUFFER,
|
|
46
47
|
VISUAL_BUILDER_CHANNEL_ID,
|
|
47
48
|
VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
|
|
48
|
-
numericInputRegex
|
|
49
|
+
numericInputRegex,
|
|
50
|
+
unicodeNonBreakingSpace
|
|
49
51
|
};
|
|
50
52
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/utils/constants.ts"],"sourcesContent":["import { FieldDataType } from \"./types/index.types\";\n\nexport const numericInputRegex = /^-?\\d*(\\.\\d*)?([eE][-+]?\\d*)?$/;\n\nexport const VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY = \"data-cslp-field-type\";\n\nexport const VISUAL_BUILDER_CHANNEL_ID = \"visual-builder\";\n\nexport const LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX = 2;\n\n// Minimum distance from top edge to prevent toolbar from being hidden\nexport const TOP_EDGE_BUFFER = 42;\nexport const RIGHT_EDGE_BUFFER = 180;\n\nexport const TOOLBAR_EDGE_BUFFER = 8;\n\nexport const DATA_CSLP_ATTR_SELECTOR = \"data-cslp\";\n\n/**\n * The field that can be directly modified using contenteditable=true.\n * This includes all text fields like title and numbers.\n */\nexport const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.SINGLELINE,\n FieldDataType.MULTILINE,\n FieldDataType.NUMBER,\n];\n\nexport const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.HTML_RTE,\n FieldDataType.MARKDOWN_RTE,\n FieldDataType.JSON_RTE,\n FieldDataType.CUSTOM_FIELD,\n FieldDataType.LINK,\n FieldDataType.ISODATE,\n FieldDataType.URL,\n];\n\nexport const ALLOWED_REPLACE_FIELDS: FieldDataType[] = [\n FieldDataType.REFERENCE,\n FieldDataType.FILE,\n];\n\nexport const DEFAULT_MULTIPLE_FIELDS: FieldDataType[] = [\n FieldDataType.GLOBAL_FIELD,\n FieldDataType.GROUP,\n FieldDataType.BLOCK,\n];\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAEvB,IAAM,oBAAoB;AAE1B,IAAM,0CAA0C;AAEhD,IAAM,4BAA4B;AAElC,IAAM,mCAAmC;AAGzC,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAE1B,IAAM,sBAAsB;AAE5B,IAAM,0BAA0B;AAMhC,IAAM,gCAAiD;AAAA,EAC1D,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/constants.ts"],"sourcesContent":["import { FieldDataType } from \"./types/index.types\";\n\nexport const numericInputRegex = /^-?\\d*(\\.\\d*)?([eE][-+]?\\d*)?$/;\n\nexport const VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY = \"data-cslp-field-type\";\n\nexport const VISUAL_BUILDER_CHANNEL_ID = \"visual-builder\";\n\nexport const LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX = 2;\n\n// Minimum distance from top edge to prevent toolbar from being hidden\nexport const TOP_EDGE_BUFFER = 42;\nexport const RIGHT_EDGE_BUFFER = 180;\n\nexport const TOOLBAR_EDGE_BUFFER = 8;\n\nexport const DATA_CSLP_ATTR_SELECTOR = \"data-cslp\";\n\n/**\n * The field that can be directly modified using contenteditable=true.\n * This includes all text fields like title and numbers.\n */\nexport const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.SINGLELINE,\n FieldDataType.MULTILINE,\n FieldDataType.NUMBER,\n];\n\nexport const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.HTML_RTE,\n FieldDataType.MARKDOWN_RTE,\n FieldDataType.JSON_RTE,\n FieldDataType.CUSTOM_FIELD,\n FieldDataType.LINK,\n FieldDataType.ISODATE,\n FieldDataType.URL,\n];\n\nexport const ALLOWED_REPLACE_FIELDS: FieldDataType[] = [\n FieldDataType.REFERENCE,\n FieldDataType.FILE,\n];\n\nexport const DEFAULT_MULTIPLE_FIELDS: FieldDataType[] = [\n FieldDataType.GLOBAL_FIELD,\n FieldDataType.GROUP,\n FieldDataType.BLOCK,\n];\n\nexport const unicodeNonBreakingSpace = \"\\u00A0\";\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAEvB,IAAM,oBAAoB;AAE1B,IAAM,0CAA0C;AAEhD,IAAM,4BAA4B;AAElC,IAAM,mCAAmC;AAGzC,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAE1B,IAAM,sBAAsB;AAE5B,IAAM,0BAA0B;AAMhC,IAAM,gCAAiD;AAAA,EAC1D,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAClB;AAEO,IAAM,0BAA0B;","names":[]}
|
|
@@ -25,28 +25,29 @@ __export(getFieldType_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(getFieldType_exports);
|
|
26
26
|
var import_types = require("./types/index.types.cjs");
|
|
27
27
|
function getFieldType(fieldSchema) {
|
|
28
|
+
var _a, _b, _c, _d, _e;
|
|
28
29
|
if (!fieldSchema) return;
|
|
29
30
|
if (Object.hasOwnProperty.call(fieldSchema, "extension_uid")) {
|
|
30
31
|
return import_types.FieldDataType.CUSTOM_FIELD;
|
|
31
32
|
}
|
|
32
33
|
switch (fieldSchema.data_type) {
|
|
33
34
|
case "text": {
|
|
34
|
-
if (fieldSchema == null ? void 0 :
|
|
35
|
+
if ((_a = fieldSchema.field_metadata) == null ? void 0 : _a.multiline) {
|
|
35
36
|
return import_types.FieldDataType.MULTILINE;
|
|
36
|
-
} else if (fieldSchema == null ? void 0 :
|
|
37
|
+
} else if ((_b = fieldSchema.field_metadata) == null ? void 0 : _b.allow_rich_text) {
|
|
37
38
|
return import_types.FieldDataType.HTML_RTE;
|
|
38
|
-
} else if (fieldSchema == null ? void 0 :
|
|
39
|
+
} else if ((_c = fieldSchema.field_metadata) == null ? void 0 : _c.markdown) {
|
|
39
40
|
return import_types.FieldDataType.MARKDOWN_RTE;
|
|
40
41
|
} else if (fieldSchema.enum) {
|
|
41
42
|
return import_types.FieldDataType.SELECT;
|
|
42
|
-
} else if (fieldSchema.uid === "url" && fieldSchema.field_metadata._default) {
|
|
43
|
+
} else if (fieldSchema.uid === "url" && ((_d = fieldSchema.field_metadata) == null ? void 0 : _d._default)) {
|
|
43
44
|
return import_types.FieldDataType.URL;
|
|
44
45
|
} else {
|
|
45
46
|
return import_types.FieldDataType.SINGLELINE;
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
case "json": {
|
|
49
|
-
if (fieldSchema.field_metadata.allow_json_rte) {
|
|
50
|
+
if ((_e = fieldSchema.field_metadata) == null ? void 0 : _e.allow_json_rte) {
|
|
50
51
|
return import_types.FieldDataType.JSON_RTE;
|
|
51
52
|
}
|
|
52
53
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/utils/getFieldType.ts"],"sourcesContent":["// @ts-nocheck\nimport { ISchemaFieldMap, FieldDataType } from \"./types/index.types\";\n\nexport function getFieldType(fieldSchema: ISchemaFieldMap): FieldDataType {\n if(!fieldSchema) return;\n if (Object.hasOwnProperty.call(fieldSchema, \"extension_uid\")) {\n return FieldDataType.CUSTOM_FIELD;\n }\n\n switch (fieldSchema.data_type) {\n case \"text\": {\n if (fieldSchema?.
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/getFieldType.ts"],"sourcesContent":["// @ts-nocheck\nimport { ISchemaFieldMap, FieldDataType } from \"./types/index.types\";\n\nexport function getFieldType(fieldSchema: ISchemaFieldMap): FieldDataType {\n if (!fieldSchema) return;\n if (Object.hasOwnProperty.call(fieldSchema, \"extension_uid\")) {\n return FieldDataType.CUSTOM_FIELD;\n }\n\n switch (fieldSchema.data_type) {\n case \"text\": {\n if (fieldSchema.field_metadata?.multiline) {\n return FieldDataType.MULTILINE;\n } else if (fieldSchema.field_metadata?.allow_rich_text) {\n return FieldDataType.HTML_RTE;\n } else if (fieldSchema.field_metadata?.markdown) {\n return FieldDataType.MARKDOWN_RTE;\n } else if (fieldSchema.enum) {\n return FieldDataType.SELECT;\n } else if (\n fieldSchema.uid === \"url\" &&\n fieldSchema.field_metadata?._default\n ) {\n return FieldDataType.URL;\n } else {\n return FieldDataType.SINGLELINE;\n }\n }\n case \"json\": {\n if (fieldSchema.field_metadata?.allow_json_rte) {\n return FieldDataType.JSON_RTE;\n }\n break;\n }\n\n case \"blocks\": {\n return \"modular_block\";\n }\n case \"link\":\n case \"isodate\":\n case \"boolean\":\n case \"block\":\n case \"number\":\n case \"reference\":\n case \"group\":\n case \"experience_container\":\n case \"file\":\n case \"taxonomy\":\n case \"global_field\": {\n return FieldDataType[fieldSchema.data_type.toUpperCase()];\n }\n }\n\n return \"\";\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA+C;AAExC,SAAS,aAAa,aAA6C;AAH1E;AAII,MAAI,CAAC,YAAa;AAClB,MAAI,OAAO,eAAe,KAAK,aAAa,eAAe,GAAG;AAC1D,WAAO,2BAAc;AAAA,EACzB;AAEA,UAAQ,YAAY,WAAW;AAAA,IAC3B,KAAK,QAAQ;AACT,WAAI,iBAAY,mBAAZ,mBAA4B,WAAW;AACvC,eAAO,2BAAc;AAAA,MACzB,YAAW,iBAAY,mBAAZ,mBAA4B,iBAAiB;AACpD,eAAO,2BAAc;AAAA,MACzB,YAAW,iBAAY,mBAAZ,mBAA4B,UAAU;AAC7C,eAAO,2BAAc;AAAA,MACzB,WAAW,YAAY,MAAM;AACzB,eAAO,2BAAc;AAAA,MACzB,WACI,YAAY,QAAQ,WACpB,iBAAY,mBAAZ,mBAA4B,WAC9B;AACE,eAAO,2BAAc;AAAA,MACzB,OAAO;AACH,eAAO,2BAAc;AAAA,MACzB;AAAA,IACJ;AAAA,IACA,KAAK,QAAQ;AACT,WAAI,iBAAY,mBAAZ,mBAA4B,gBAAgB;AAC5C,eAAO,2BAAc;AAAA,MACzB;AACA;AAAA,IACJ;AAAA,IAEA,KAAK,UAAU;AACX,aAAO;AAAA,IACX;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,gBAAgB;AACjB,aAAO,2BAAc,YAAY,UAAU,YAAY,CAAC;AAAA,IAC5D;AAAA,EACJ;AAEA,SAAO;AACX;","names":[]}
|
|
@@ -3,28 +3,29 @@ import "../../chunk-5WRI5ZAA.js";
|
|
|
3
3
|
// src/visualBuilder/utils/getFieldType.ts
|
|
4
4
|
import { FieldDataType } from "./types/index.types.js";
|
|
5
5
|
function getFieldType(fieldSchema) {
|
|
6
|
+
var _a, _b, _c, _d, _e;
|
|
6
7
|
if (!fieldSchema) return;
|
|
7
8
|
if (Object.hasOwnProperty.call(fieldSchema, "extension_uid")) {
|
|
8
9
|
return FieldDataType.CUSTOM_FIELD;
|
|
9
10
|
}
|
|
10
11
|
switch (fieldSchema.data_type) {
|
|
11
12
|
case "text": {
|
|
12
|
-
if (fieldSchema == null ? void 0 :
|
|
13
|
+
if ((_a = fieldSchema.field_metadata) == null ? void 0 : _a.multiline) {
|
|
13
14
|
return FieldDataType.MULTILINE;
|
|
14
|
-
} else if (fieldSchema == null ? void 0 :
|
|
15
|
+
} else if ((_b = fieldSchema.field_metadata) == null ? void 0 : _b.allow_rich_text) {
|
|
15
16
|
return FieldDataType.HTML_RTE;
|
|
16
|
-
} else if (fieldSchema == null ? void 0 :
|
|
17
|
+
} else if ((_c = fieldSchema.field_metadata) == null ? void 0 : _c.markdown) {
|
|
17
18
|
return FieldDataType.MARKDOWN_RTE;
|
|
18
19
|
} else if (fieldSchema.enum) {
|
|
19
20
|
return FieldDataType.SELECT;
|
|
20
|
-
} else if (fieldSchema.uid === "url" && fieldSchema.field_metadata._default) {
|
|
21
|
+
} else if (fieldSchema.uid === "url" && ((_d = fieldSchema.field_metadata) == null ? void 0 : _d._default)) {
|
|
21
22
|
return FieldDataType.URL;
|
|
22
23
|
} else {
|
|
23
24
|
return FieldDataType.SINGLELINE;
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
case "json": {
|
|
27
|
-
if (fieldSchema.field_metadata.allow_json_rte) {
|
|
28
|
+
if ((_e = fieldSchema.field_metadata) == null ? void 0 : _e.allow_json_rte) {
|
|
28
29
|
return FieldDataType.JSON_RTE;
|
|
29
30
|
}
|
|
30
31
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/utils/getFieldType.ts"],"sourcesContent":["// @ts-nocheck\nimport { ISchemaFieldMap, FieldDataType } from \"./types/index.types\";\n\nexport function getFieldType(fieldSchema: ISchemaFieldMap): FieldDataType {\n if(!fieldSchema) return;\n if (Object.hasOwnProperty.call(fieldSchema, \"extension_uid\")) {\n return FieldDataType.CUSTOM_FIELD;\n }\n\n switch (fieldSchema.data_type) {\n case \"text\": {\n if (fieldSchema?.
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/getFieldType.ts"],"sourcesContent":["// @ts-nocheck\nimport { ISchemaFieldMap, FieldDataType } from \"./types/index.types\";\n\nexport function getFieldType(fieldSchema: ISchemaFieldMap): FieldDataType {\n if (!fieldSchema) return;\n if (Object.hasOwnProperty.call(fieldSchema, \"extension_uid\")) {\n return FieldDataType.CUSTOM_FIELD;\n }\n\n switch (fieldSchema.data_type) {\n case \"text\": {\n if (fieldSchema.field_metadata?.multiline) {\n return FieldDataType.MULTILINE;\n } else if (fieldSchema.field_metadata?.allow_rich_text) {\n return FieldDataType.HTML_RTE;\n } else if (fieldSchema.field_metadata?.markdown) {\n return FieldDataType.MARKDOWN_RTE;\n } else if (fieldSchema.enum) {\n return FieldDataType.SELECT;\n } else if (\n fieldSchema.uid === \"url\" &&\n fieldSchema.field_metadata?._default\n ) {\n return FieldDataType.URL;\n } else {\n return FieldDataType.SINGLELINE;\n }\n }\n case \"json\": {\n if (fieldSchema.field_metadata?.allow_json_rte) {\n return FieldDataType.JSON_RTE;\n }\n break;\n }\n\n case \"blocks\": {\n return \"modular_block\";\n }\n case \"link\":\n case \"isodate\":\n case \"boolean\":\n case \"block\":\n case \"number\":\n case \"reference\":\n case \"group\":\n case \"experience_container\":\n case \"file\":\n case \"taxonomy\":\n case \"global_field\": {\n return FieldDataType[fieldSchema.data_type.toUpperCase()];\n }\n }\n\n return \"\";\n}\n"],"mappings":";;;AACA,SAA0B,qBAAqB;AAExC,SAAS,aAAa,aAA6C;AAH1E;AAII,MAAI,CAAC,YAAa;AAClB,MAAI,OAAO,eAAe,KAAK,aAAa,eAAe,GAAG;AAC1D,WAAO,cAAc;AAAA,EACzB;AAEA,UAAQ,YAAY,WAAW;AAAA,IAC3B,KAAK,QAAQ;AACT,WAAI,iBAAY,mBAAZ,mBAA4B,WAAW;AACvC,eAAO,cAAc;AAAA,MACzB,YAAW,iBAAY,mBAAZ,mBAA4B,iBAAiB;AACpD,eAAO,cAAc;AAAA,MACzB,YAAW,iBAAY,mBAAZ,mBAA4B,UAAU;AAC7C,eAAO,cAAc;AAAA,MACzB,WAAW,YAAY,MAAM;AACzB,eAAO,cAAc;AAAA,MACzB,WACI,YAAY,QAAQ,WACpB,iBAAY,mBAAZ,mBAA4B,WAC9B;AACE,eAAO,cAAc;AAAA,MACzB,OAAO;AACH,eAAO,cAAc;AAAA,MACzB;AAAA,IACJ;AAAA,IACA,KAAK,QAAQ;AACT,WAAI,iBAAY,mBAAZ,mBAA4B,gBAAgB;AAC5C,eAAO,cAAc;AAAA,MACzB;AACA;AAAA,IACJ;AAAA,IAEA,KAAK,UAAU;AACX,aAAO;AAAA,IACX;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,gBAAgB;AACjB,aAAO,cAAc,YAAY,UAAU,YAAY,CAAC;AAAA,IAC5D;AAAA,EACJ;AAEA,SAAO;AACX;","names":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
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/getPsuedoEditableStylesElement.ts
|
|
31
|
+
var getPsuedoEditableStylesElement_exports = {};
|
|
32
|
+
__export(getPsuedoEditableStylesElement_exports, {
|
|
33
|
+
getPsuedoEditableElementStyles: () => getPsuedoEditableElementStyles
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(getPsuedoEditableStylesElement_exports);
|
|
36
|
+
var import_getCamelCaseStyles = __toESM(require("./getCamelCaseStyles.cjs"), 1);
|
|
37
|
+
var import_getStyleOfAnElement = __toESM(require("./getStyleOfAnElement.cjs"), 1);
|
|
38
|
+
function getPsuedoEditableElementStyles(psuedoEditableElement, camelCase) {
|
|
39
|
+
let styles = (0, import_getStyleOfAnElement.default)(psuedoEditableElement);
|
|
40
|
+
if (camelCase) {
|
|
41
|
+
styles = (0, import_getCamelCaseStyles.default)(styles);
|
|
42
|
+
}
|
|
43
|
+
const rect = psuedoEditableElement.getBoundingClientRect();
|
|
44
|
+
styles.position = "absolute";
|
|
45
|
+
styles.top = `${rect.top + window.scrollY}px`;
|
|
46
|
+
styles.left = `${rect.left + window.scrollX}px`;
|
|
47
|
+
styles.height = "auto";
|
|
48
|
+
styles.whiteSpace = "pre-line";
|
|
49
|
+
styles.textTransform = "none";
|
|
50
|
+
return styles;
|
|
51
|
+
}
|
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
+
0 && (module.exports = {
|
|
54
|
+
getPsuedoEditableElementStyles
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=getPsuedoEditableStylesElement.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/getPsuedoEditableStylesElement.ts"],"sourcesContent":["import getCamelCaseStyles from \"./getCamelCaseStyles\";\nimport getStyleOfAnElement from \"./getStyleOfAnElement\";\n\nexport function getPsuedoEditableElementStyles(\n psuedoEditableElement: HTMLElement,\n camelCase?: boolean\n): { [key: string]: string } {\n let styles = getStyleOfAnElement(psuedoEditableElement);\n if (camelCase) {\n styles = getCamelCaseStyles(styles);\n }\n // Get the offsetTop and offsetLeft of the editable element and set the position of the pseudo editable element\n // The pseudo editable element is positioned absolutely at the same location as the editable element\n const rect = psuedoEditableElement.getBoundingClientRect();\n\n styles.position = \"absolute\";\n styles.top = `${rect.top + window.scrollY}px`;\n styles.left = `${rect.left + window.scrollX}px`;\n // setting height to auto so that the element can grow based on the content\n // and the resize observer can detect the change in height\n styles.height = \"auto\";\n styles.whiteSpace = \"pre-line\";\n styles.textTransform = \"none\";\n\n return styles;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAA+B;AAC/B,iCAAgC;AAEzB,SAAS,+BACZ,uBACA,WACyB;AACzB,MAAI,aAAS,2BAAAA,SAAoB,qBAAqB;AACtD,MAAI,WAAW;AACX,iBAAS,0BAAAC,SAAmB,MAAM;AAAA,EACtC;AAGA,QAAM,OAAO,sBAAsB,sBAAsB;AAEzD,SAAO,WAAW;AAClB,SAAO,MAAM,GAAG,KAAK,MAAM,OAAO,OAAO;AACzC,SAAO,OAAO,GAAG,KAAK,OAAO,OAAO,OAAO;AAG3C,SAAO,SAAS;AAChB,SAAO,aAAa;AACpB,SAAO,gBAAgB;AAEvB,SAAO;AACX;","names":["getStyleOfAnElement","getCamelCaseStyles"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import "../../chunk-5WRI5ZAA.js";
|
|
2
|
+
|
|
3
|
+
// src/visualBuilder/utils/getPsuedoEditableStylesElement.ts
|
|
4
|
+
import getCamelCaseStyles from "./getCamelCaseStyles.js";
|
|
5
|
+
import getStyleOfAnElement from "./getStyleOfAnElement.js";
|
|
6
|
+
function getPsuedoEditableElementStyles(psuedoEditableElement, camelCase) {
|
|
7
|
+
let styles = getStyleOfAnElement(psuedoEditableElement);
|
|
8
|
+
if (camelCase) {
|
|
9
|
+
styles = getCamelCaseStyles(styles);
|
|
10
|
+
}
|
|
11
|
+
const rect = psuedoEditableElement.getBoundingClientRect();
|
|
12
|
+
styles.position = "absolute";
|
|
13
|
+
styles.top = `${rect.top + window.scrollY}px`;
|
|
14
|
+
styles.left = `${rect.left + window.scrollX}px`;
|
|
15
|
+
styles.height = "auto";
|
|
16
|
+
styles.whiteSpace = "pre-line";
|
|
17
|
+
styles.textTransform = "none";
|
|
18
|
+
return styles;
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
getPsuedoEditableElementStyles
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=getPsuedoEditableStylesElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/getPsuedoEditableStylesElement.ts"],"sourcesContent":["import getCamelCaseStyles from \"./getCamelCaseStyles\";\nimport getStyleOfAnElement from \"./getStyleOfAnElement\";\n\nexport function getPsuedoEditableElementStyles(\n psuedoEditableElement: HTMLElement,\n camelCase?: boolean\n): { [key: string]: string } {\n let styles = getStyleOfAnElement(psuedoEditableElement);\n if (camelCase) {\n styles = getCamelCaseStyles(styles);\n }\n // Get the offsetTop and offsetLeft of the editable element and set the position of the pseudo editable element\n // The pseudo editable element is positioned absolutely at the same location as the editable element\n const rect = psuedoEditableElement.getBoundingClientRect();\n\n styles.position = \"absolute\";\n styles.top = `${rect.top + window.scrollY}px`;\n styles.left = `${rect.left + window.scrollX}px`;\n // setting height to auto so that the element can grow based on the content\n // and the resize observer can detect the change in height\n styles.height = \"auto\";\n styles.whiteSpace = \"pre-line\";\n styles.textTransform = \"none\";\n\n return styles;\n}\n"],"mappings":";;;AAAA,OAAO,wBAAwB;AAC/B,OAAO,yBAAyB;AAEzB,SAAS,+BACZ,uBACA,WACyB;AACzB,MAAI,SAAS,oBAAoB,qBAAqB;AACtD,MAAI,WAAW;AACX,aAAS,mBAAmB,MAAM;AAAA,EACtC;AAGA,QAAM,OAAO,sBAAsB,sBAAsB;AAEzD,SAAO,WAAW;AAClB,SAAO,MAAM,GAAG,KAAK,MAAM,OAAO,OAAO;AACzC,SAAO,OAAO,GAAG,KAAK,OAAO,OAAO,OAAO;AAG3C,SAAO,SAAS;AAChB,SAAO,aAAa;AACpB,SAAO,gBAAgB;AAEvB,SAAO;AACX;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/utils/getStyleOfAnElement.ts"],"sourcesContent":["/**\n * Retrieves the computed style of an HTML element.\n *\n * @param element - The HTML element to retrieve the style from.\n * @returns An object representing the computed style of the element.\n */\nexport default function getStyleOfAnElement(element: HTMLElement): {\n [key: string]: string;\n} {\n const styleSheetDeclaration = window.getComputedStyle(element);\n const styleSheetArray = Array.from(styleSheetDeclaration);\n\n const FILTER_STYLES = [\n \"position\",\n \"left\",\n \"top\",\n \"right\",\n \"bottom\",\n \"text-overflow\",\n \"margin\",\n \"margin-block-end\",\n \"margin-block-start\",\n \"margin-inline-end\",\n \"margin-inline-start\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"margin-bottom\",\n \"-webkit-user-modify\",\n \"cursor\",\n ];\n\n const styles: { [key: string]: string } = {};\n styleSheetArray.forEach((style: string) => {\n if (!FILTER_STYLES.includes(style)) {\n const styleValue = styleSheetDeclaration.getPropertyValue(style);\n styles[style] = styleValue;\n }\n });\n\n return styles;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMe,SAAR,oBAAqC,SAE1C;AACE,QAAM,wBAAwB,OAAO,iBAAiB,OAAO;AAC7D,QAAM,kBAAkB,MAAM,KAAK,qBAAqB;AAExD,QAAM,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,SAAoC,CAAC;AAC3C,kBAAgB,QAAQ,CAAC,UAAkB;AACvC,QAAI,CAAC,cAAc,SAAS,KAAK,GAAG;AAChC,YAAM,aAAa,sBAAsB,iBAAiB,KAAK;AAC/D,aAAO,KAAK,IAAI;AAAA,IACpB;AAAA,EACJ,CAAC;AAED,SAAO;AACX;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/getStyleOfAnElement.ts"],"sourcesContent":["/**\n * Retrieves the computed style of an HTML element.\n *\n * @param element - The HTML element to retrieve the style from.\n * @returns An object representing the computed style of the element.\n */\nexport default function getStyleOfAnElement(element: HTMLElement): {\n [key: string]: string;\n} {\n const styleSheetDeclaration = window.getComputedStyle(element);\n const styleSheetArray = Array.from(styleSheetDeclaration);\n\n const FILTER_STYLES = [\n \"position\",\n \"left\",\n \"top\",\n \"right\",\n \"bottom\",\n \"text-overflow\",\n // allows seeing the text from CMS field as-is\n \"text-transform\",\n \"margin\",\n \"margin-block-end\",\n \"margin-block-start\",\n \"margin-inline-end\",\n \"margin-inline-start\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"margin-bottom\",\n \"-webkit-user-modify\",\n \"cursor\",\n ];\n\n const styles: { [key: string]: string } = {};\n styleSheetArray.forEach((style: string) => {\n if (!FILTER_STYLES.includes(style)) {\n const styleValue = styleSheetDeclaration.getPropertyValue(style);\n styles[style] = styleValue;\n }\n });\n\n return styles;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMe,SAAR,oBAAqC,SAE1C;AACE,QAAM,wBAAwB,OAAO,iBAAiB,OAAO;AAC7D,QAAM,kBAAkB,MAAM,KAAK,qBAAqB;AAExD,QAAM,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,SAAoC,CAAC;AAC3C,kBAAgB,QAAQ,CAAC,UAAkB;AACvC,QAAI,CAAC,cAAc,SAAS,KAAK,GAAG;AAChC,YAAM,aAAa,sBAAsB,iBAAiB,KAAK;AAC/D,aAAO,KAAK,IAAI;AAAA,IACpB;AAAA,EACJ,CAAC;AAED,SAAO;AACX;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/utils/getStyleOfAnElement.ts"],"sourcesContent":["/**\n * Retrieves the computed style of an HTML element.\n *\n * @param element - The HTML element to retrieve the style from.\n * @returns An object representing the computed style of the element.\n */\nexport default function getStyleOfAnElement(element: HTMLElement): {\n [key: string]: string;\n} {\n const styleSheetDeclaration = window.getComputedStyle(element);\n const styleSheetArray = Array.from(styleSheetDeclaration);\n\n const FILTER_STYLES = [\n \"position\",\n \"left\",\n \"top\",\n \"right\",\n \"bottom\",\n \"text-overflow\",\n \"margin\",\n \"margin-block-end\",\n \"margin-block-start\",\n \"margin-inline-end\",\n \"margin-inline-start\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"margin-bottom\",\n \"-webkit-user-modify\",\n \"cursor\",\n ];\n\n const styles: { [key: string]: string } = {};\n styleSheetArray.forEach((style: string) => {\n if (!FILTER_STYLES.includes(style)) {\n const styleValue = styleSheetDeclaration.getPropertyValue(style);\n styles[style] = styleValue;\n }\n });\n\n return styles;\n}\n"],"mappings":";;;AAMe,SAAR,oBAAqC,SAE1C;AACE,QAAM,wBAAwB,OAAO,iBAAiB,OAAO;AAC7D,QAAM,kBAAkB,MAAM,KAAK,qBAAqB;AAExD,QAAM,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,SAAoC,CAAC;AAC3C,kBAAgB,QAAQ,CAAC,UAAkB;AACvC,QAAI,CAAC,cAAc,SAAS,KAAK,GAAG;AAChC,YAAM,aAAa,sBAAsB,iBAAiB,KAAK;AAC/D,aAAO,KAAK,IAAI;AAAA,IACpB;AAAA,EACJ,CAAC;AAED,SAAO;AACX;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/getStyleOfAnElement.ts"],"sourcesContent":["/**\n * Retrieves the computed style of an HTML element.\n *\n * @param element - The HTML element to retrieve the style from.\n * @returns An object representing the computed style of the element.\n */\nexport default function getStyleOfAnElement(element: HTMLElement): {\n [key: string]: string;\n} {\n const styleSheetDeclaration = window.getComputedStyle(element);\n const styleSheetArray = Array.from(styleSheetDeclaration);\n\n const FILTER_STYLES = [\n \"position\",\n \"left\",\n \"top\",\n \"right\",\n \"bottom\",\n \"text-overflow\",\n // allows seeing the text from CMS field as-is\n \"text-transform\",\n \"margin\",\n \"margin-block-end\",\n \"margin-block-start\",\n \"margin-inline-end\",\n \"margin-inline-start\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"margin-bottom\",\n \"-webkit-user-modify\",\n \"cursor\",\n ];\n\n const styles: { [key: string]: string } = {};\n styleSheetArray.forEach((style: string) => {\n if (!FILTER_STYLES.includes(style)) {\n const styleValue = styleSheetDeclaration.getPropertyValue(style);\n styles[style] = styleValue;\n }\n });\n\n return styles;\n}\n"],"mappings":";;;AAMe,SAAR,oBAAqC,SAE1C;AACE,QAAM,wBAAwB,OAAO,iBAAiB,OAAO;AAC7D,QAAM,kBAAkB,MAAM,KAAK,qBAAqB;AAExD,QAAM,gBAAgB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,SAAoC,CAAC;AAC3C,kBAAgB,QAAQ,CAAC,UAAkB;AACvC,QAAI,CAAC,cAAc,SAAS,KAAK,GAAG;AAChC,YAAM,aAAa,sBAAsB,iBAAiB,KAAK;AAC/D,aAAO,KAAK,IAAI;AAAA,IACpB;AAAA,EACJ,CAAC;AAED,SAAO;AACX;","names":[]}
|
|
@@ -29,6 +29,7 @@ var import_generateOverlay = require("../generators/generateOverlay.cjs");
|
|
|
29
29
|
var import_constants = require("./constants.cjs");
|
|
30
30
|
var import_types = require("./types/index.types.cjs");
|
|
31
31
|
var import_postMessage = require("./types/postMessage.types.cjs");
|
|
32
|
+
var import_insertSpaceAtCursor = require("./insertSpaceAtCursor.cjs");
|
|
32
33
|
function handleFieldInput(e) {
|
|
33
34
|
const event = e;
|
|
34
35
|
const targetElement = event.target;
|
|
@@ -59,12 +60,21 @@ function handleFieldKeyDown(e) {
|
|
|
59
60
|
const fieldType = targetElement.getAttribute(
|
|
60
61
|
import_constants.VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY
|
|
61
62
|
);
|
|
63
|
+
if (targetElement.tagName === "BUTTON") {
|
|
64
|
+
handleKeyDownOnButton(event);
|
|
65
|
+
}
|
|
62
66
|
if (fieldType === import_types.FieldDataType.NUMBER) {
|
|
63
67
|
handleNumericFieldKeyDown(event);
|
|
64
68
|
} else if (fieldType === import_types.FieldDataType.SINGLELINE) {
|
|
65
69
|
handleSingleLineFieldKeyDown(event);
|
|
66
70
|
}
|
|
67
71
|
}
|
|
72
|
+
function handleKeyDownOnButton(e) {
|
|
73
|
+
if (e.code === "Space" && e.target) {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
(0, import_insertSpaceAtCursor.insertSpaceAtCursor)(e.target);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
68
78
|
function handleSingleLineFieldKeyDown(e) {
|
|
69
79
|
if (e.code === "Enter") {
|
|
70
80
|
e.preventDefault();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/utils/handleFieldMouseDown.ts"],"sourcesContent":["import { throttle } from \"lodash-es\";\nimport { sendFieldEvent } from \"../generators/generateOverlay\";\nimport {\n ALLOWED_INLINE_EDITABLE_FIELD,\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n numericInputRegex,\n} from \"./constants\";\nimport { FieldDataType } from \"./types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\n\nexport function handleFieldInput(e: Event): void {\n const event = e as InputEvent;\n const targetElement = event.target as HTMLElement;\n const fieldType = targetElement.getAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n ) as FieldDataType | null;\n if (event.type === \"input\"
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/handleFieldMouseDown.ts"],"sourcesContent":["import { throttle } from \"lodash-es\";\nimport { sendFieldEvent } from \"../generators/generateOverlay\";\nimport {\n ALLOWED_INLINE_EDITABLE_FIELD,\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n numericInputRegex,\n} from \"./constants\";\nimport { FieldDataType } from \"./types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport { insertSpaceAtCursor } from \"./insertSpaceAtCursor\";\n\nexport function handleFieldInput(e: Event): void {\n const event = e as InputEvent;\n const targetElement = event.target as HTMLElement;\n const fieldType = targetElement.getAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n ) as FieldDataType | null;\n if (\n event.type === \"input\" &&\n ALLOWED_INLINE_EDITABLE_FIELD.includes(fieldType as FieldDataType)\n ) {\n throttledFieldSync();\n }\n}\nconst throttledFieldSync = throttle(() => {\n try {\n const visualBuilderContainer = document.querySelector(\n \".visual-builder__container\"\n ) as HTMLElement;\n if (!visualBuilderContainer) return;\n sendFieldEvent({\n visualBuilderContainer,\n eventType: VisualBuilderPostMessageEvents.SYNC_FIELD,\n });\n } catch (error) {\n console.error(\"Error in throttledFieldSync\", error);\n }\n}, 300);\n\nexport function handleFieldKeyDown(e: Event): void {\n const event = e as KeyboardEvent;\n const targetElement = event.target as HTMLElement;\n const fieldType = targetElement.getAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n ) as FieldDataType | null;\n\n if (targetElement.tagName === \"BUTTON\") {\n handleKeyDownOnButton(event);\n }\n if (fieldType === FieldDataType.NUMBER) {\n handleNumericFieldKeyDown(event);\n } else if (fieldType === FieldDataType.SINGLELINE) {\n handleSingleLineFieldKeyDown(event);\n }\n}\n\n// spaces do not work inside a button content-editable\n// this adds a space and moves the cursor ahead, the\n// button press event is also prevented\nfunction handleKeyDownOnButton(e: KeyboardEvent) {\n if (e.code === \"Space\" && e.target) {\n e.preventDefault();\n insertSpaceAtCursor(e.target as HTMLElement);\n }\n}\n\nfunction handleSingleLineFieldKeyDown(e: KeyboardEvent) {\n if (e.code === \"Enter\") {\n e.preventDefault();\n }\n}\n\nfunction handleNumericFieldKeyDown(event: KeyboardEvent): void {\n const targetElement = event.target as HTMLElement;\n\n const allowedKeys = [\n \"Backspace\",\n \"Tab\",\n \"Enter\",\n \"End\",\n \"Home\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n ];\n\n if (\n event.ctrlKey ||\n event.metaKey ||\n event.altKey ||\n allowedKeys.includes(event.code)\n ) {\n // Allow Ctrl, Cmd, Alt, and special keys\n return;\n }\n\n if (event.code.includes(\"Digit\")) {\n return;\n }\n\n const nonNumericAllowedCharacters = [\"-\", \".\", \"e\", \"E\"];\n\n if (!nonNumericAllowedCharacters.includes(event.key)) {\n event.preventDefault();\n return;\n }\n\n const selection = {\n startOffset: window.getSelection()?.getRangeAt(0).startOffset || 0,\n endOffset: window.getSelection()?.getRangeAt(0).endOffset || 0,\n };\n\n const existingInput = targetElement.textContent || \"\";\n const currentOutputArr = existingInput.split(\"\");\n currentOutputArr.splice(\n selection.startOffset,\n selection.endOffset - selection.startOffset,\n event.key\n );\n const currentInput = currentOutputArr.join(\"\");\n\n if (!numericInputRegex.test(currentInput)) {\n event.preventDefault();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB;AACzB,6BAA+B;AAC/B,uBAIO;AACP,mBAA8B;AAC9B,yBAA+C;AAC/C,iCAAoC;AAE7B,SAAS,iBAAiB,GAAgB;AAC7C,QAAM,QAAQ;AACd,QAAM,gBAAgB,MAAM;AAC5B,QAAM,YAAY,cAAc;AAAA,IAC5B;AAAA,EACJ;AACA,MACI,MAAM,SAAS,WACf,+CAA8B,SAAS,SAA0B,GACnE;AACE,uBAAmB;AAAA,EACvB;AACJ;AACA,IAAM,yBAAqB,2BAAS,MAAM;AACtC,MAAI;AACA,UAAM,yBAAyB,SAAS;AAAA,MACpC;AAAA,IACJ;AACA,QAAI,CAAC,uBAAwB;AAC7B,+CAAe;AAAA,MACX;AAAA,MACA,WAAW,kDAA+B;AAAA,IAC9C,CAAC;AAAA,EACL,SAAS,OAAO;AACZ,YAAQ,MAAM,+BAA+B,KAAK;AAAA,EACtD;AACJ,GAAG,GAAG;AAEC,SAAS,mBAAmB,GAAgB;AAC/C,QAAM,QAAQ;AACd,QAAM,gBAAgB,MAAM;AAC5B,QAAM,YAAY,cAAc;AAAA,IAC5B;AAAA,EACJ;AAEA,MAAI,cAAc,YAAY,UAAU;AACpC,0BAAsB,KAAK;AAAA,EAC/B;AACA,MAAI,cAAc,2BAAc,QAAQ;AACpC,8BAA0B,KAAK;AAAA,EACnC,WAAW,cAAc,2BAAc,YAAY;AAC/C,iCAA6B,KAAK;AAAA,EACtC;AACJ;AAKA,SAAS,sBAAsB,GAAkB;AAC7C,MAAI,EAAE,SAAS,WAAW,EAAE,QAAQ;AAChC,MAAE,eAAe;AACjB,wDAAoB,EAAE,MAAqB;AAAA,EAC/C;AACJ;AAEA,SAAS,6BAA6B,GAAkB;AACpD,MAAI,EAAE,SAAS,SAAS;AACpB,MAAE,eAAe;AAAA,EACrB;AACJ;AAEA,SAAS,0BAA0B,OAA4B;AAxE/D;AAyEI,QAAM,gBAAgB,MAAM;AAE5B,QAAM,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,MACI,MAAM,WACN,MAAM,WACN,MAAM,UACN,YAAY,SAAS,MAAM,IAAI,GACjC;AAEE;AAAA,EACJ;AAEA,MAAI,MAAM,KAAK,SAAS,OAAO,GAAG;AAC9B;AAAA,EACJ;AAEA,QAAM,8BAA8B,CAAC,KAAK,KAAK,KAAK,GAAG;AAEvD,MAAI,CAAC,4BAA4B,SAAS,MAAM,GAAG,GAAG;AAClD,UAAM,eAAe;AACrB;AAAA,EACJ;AAEA,QAAM,YAAY;AAAA,IACd,eAAa,YAAO,aAAa,MAApB,mBAAuB,WAAW,GAAG,gBAAe;AAAA,IACjE,aAAW,YAAO,aAAa,MAApB,mBAAuB,WAAW,GAAG,cAAa;AAAA,EACjE;AAEA,QAAM,gBAAgB,cAAc,eAAe;AACnD,QAAM,mBAAmB,cAAc,MAAM,EAAE;AAC/C,mBAAiB;AAAA,IACb,UAAU;AAAA,IACV,UAAU,YAAY,UAAU;AAAA,IAChC,MAAM;AAAA,EACV;AACA,QAAM,eAAe,iBAAiB,KAAK,EAAE;AAE7C,MAAI,CAAC,mCAAkB,KAAK,YAAY,GAAG;AACvC,UAAM,eAAe;AAAA,EACzB;AACJ;","names":[]}
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
} from "./constants.js";
|
|
11
11
|
import { FieldDataType } from "./types/index.types.js";
|
|
12
12
|
import { VisualBuilderPostMessageEvents } from "./types/postMessage.types.js";
|
|
13
|
+
import { insertSpaceAtCursor } from "./insertSpaceAtCursor.js";
|
|
13
14
|
function handleFieldInput(e) {
|
|
14
15
|
const event = e;
|
|
15
16
|
const targetElement = event.target;
|
|
@@ -40,12 +41,21 @@ function handleFieldKeyDown(e) {
|
|
|
40
41
|
const fieldType = targetElement.getAttribute(
|
|
41
42
|
VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY
|
|
42
43
|
);
|
|
44
|
+
if (targetElement.tagName === "BUTTON") {
|
|
45
|
+
handleKeyDownOnButton(event);
|
|
46
|
+
}
|
|
43
47
|
if (fieldType === FieldDataType.NUMBER) {
|
|
44
48
|
handleNumericFieldKeyDown(event);
|
|
45
49
|
} else if (fieldType === FieldDataType.SINGLELINE) {
|
|
46
50
|
handleSingleLineFieldKeyDown(event);
|
|
47
51
|
}
|
|
48
52
|
}
|
|
53
|
+
function handleKeyDownOnButton(e) {
|
|
54
|
+
if (e.code === "Space" && e.target) {
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
insertSpaceAtCursor(e.target);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
49
59
|
function handleSingleLineFieldKeyDown(e) {
|
|
50
60
|
if (e.code === "Enter") {
|
|
51
61
|
e.preventDefault();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/utils/handleFieldMouseDown.ts"],"sourcesContent":["import { throttle } from \"lodash-es\";\nimport { sendFieldEvent } from \"../generators/generateOverlay\";\nimport {\n ALLOWED_INLINE_EDITABLE_FIELD,\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n numericInputRegex,\n} from \"./constants\";\nimport { FieldDataType } from \"./types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\n\nexport function handleFieldInput(e: Event): void {\n const event = e as InputEvent;\n const targetElement = event.target as HTMLElement;\n const fieldType = targetElement.getAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n ) as FieldDataType | null;\n if (event.type === \"input\"
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/handleFieldMouseDown.ts"],"sourcesContent":["import { throttle } from \"lodash-es\";\nimport { sendFieldEvent } from \"../generators/generateOverlay\";\nimport {\n ALLOWED_INLINE_EDITABLE_FIELD,\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,\n numericInputRegex,\n} from \"./constants\";\nimport { FieldDataType } from \"./types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"./types/postMessage.types\";\nimport { insertSpaceAtCursor } from \"./insertSpaceAtCursor\";\n\nexport function handleFieldInput(e: Event): void {\n const event = e as InputEvent;\n const targetElement = event.target as HTMLElement;\n const fieldType = targetElement.getAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n ) as FieldDataType | null;\n if (\n event.type === \"input\" &&\n ALLOWED_INLINE_EDITABLE_FIELD.includes(fieldType as FieldDataType)\n ) {\n throttledFieldSync();\n }\n}\nconst throttledFieldSync = throttle(() => {\n try {\n const visualBuilderContainer = document.querySelector(\n \".visual-builder__container\"\n ) as HTMLElement;\n if (!visualBuilderContainer) return;\n sendFieldEvent({\n visualBuilderContainer,\n eventType: VisualBuilderPostMessageEvents.SYNC_FIELD,\n });\n } catch (error) {\n console.error(\"Error in throttledFieldSync\", error);\n }\n}, 300);\n\nexport function handleFieldKeyDown(e: Event): void {\n const event = e as KeyboardEvent;\n const targetElement = event.target as HTMLElement;\n const fieldType = targetElement.getAttribute(\n VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY\n ) as FieldDataType | null;\n\n if (targetElement.tagName === \"BUTTON\") {\n handleKeyDownOnButton(event);\n }\n if (fieldType === FieldDataType.NUMBER) {\n handleNumericFieldKeyDown(event);\n } else if (fieldType === FieldDataType.SINGLELINE) {\n handleSingleLineFieldKeyDown(event);\n }\n}\n\n// spaces do not work inside a button content-editable\n// this adds a space and moves the cursor ahead, the\n// button press event is also prevented\nfunction handleKeyDownOnButton(e: KeyboardEvent) {\n if (e.code === \"Space\" && e.target) {\n e.preventDefault();\n insertSpaceAtCursor(e.target as HTMLElement);\n }\n}\n\nfunction handleSingleLineFieldKeyDown(e: KeyboardEvent) {\n if (e.code === \"Enter\") {\n e.preventDefault();\n }\n}\n\nfunction handleNumericFieldKeyDown(event: KeyboardEvent): void {\n const targetElement = event.target as HTMLElement;\n\n const allowedKeys = [\n \"Backspace\",\n \"Tab\",\n \"Enter\",\n \"End\",\n \"Home\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n ];\n\n if (\n event.ctrlKey ||\n event.metaKey ||\n event.altKey ||\n allowedKeys.includes(event.code)\n ) {\n // Allow Ctrl, Cmd, Alt, and special keys\n return;\n }\n\n if (event.code.includes(\"Digit\")) {\n return;\n }\n\n const nonNumericAllowedCharacters = [\"-\", \".\", \"e\", \"E\"];\n\n if (!nonNumericAllowedCharacters.includes(event.key)) {\n event.preventDefault();\n return;\n }\n\n const selection = {\n startOffset: window.getSelection()?.getRangeAt(0).startOffset || 0,\n endOffset: window.getSelection()?.getRangeAt(0).endOffset || 0,\n };\n\n const existingInput = targetElement.textContent || \"\";\n const currentOutputArr = existingInput.split(\"\");\n currentOutputArr.splice(\n selection.startOffset,\n selection.endOffset - selection.startOffset,\n event.key\n );\n const currentInput = currentOutputArr.join(\"\");\n\n if (!numericInputRegex.test(currentInput)) {\n event.preventDefault();\n }\n}\n"],"mappings":";;;AAAA,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,qBAAqB;AAC9B,SAAS,sCAAsC;AAC/C,SAAS,2BAA2B;AAE7B,SAAS,iBAAiB,GAAgB;AAC7C,QAAM,QAAQ;AACd,QAAM,gBAAgB,MAAM;AAC5B,QAAM,YAAY,cAAc;AAAA,IAC5B;AAAA,EACJ;AACA,MACI,MAAM,SAAS,WACf,8BAA8B,SAAS,SAA0B,GACnE;AACE,uBAAmB;AAAA,EACvB;AACJ;AACA,IAAM,qBAAqB,SAAS,MAAM;AACtC,MAAI;AACA,UAAM,yBAAyB,SAAS;AAAA,MACpC;AAAA,IACJ;AACA,QAAI,CAAC,uBAAwB;AAC7B,mBAAe;AAAA,MACX;AAAA,MACA,WAAW,+BAA+B;AAAA,IAC9C,CAAC;AAAA,EACL,SAAS,OAAO;AACZ,YAAQ,MAAM,+BAA+B,KAAK;AAAA,EACtD;AACJ,GAAG,GAAG;AAEC,SAAS,mBAAmB,GAAgB;AAC/C,QAAM,QAAQ;AACd,QAAM,gBAAgB,MAAM;AAC5B,QAAM,YAAY,cAAc;AAAA,IAC5B;AAAA,EACJ;AAEA,MAAI,cAAc,YAAY,UAAU;AACpC,0BAAsB,KAAK;AAAA,EAC/B;AACA,MAAI,cAAc,cAAc,QAAQ;AACpC,8BAA0B,KAAK;AAAA,EACnC,WAAW,cAAc,cAAc,YAAY;AAC/C,iCAA6B,KAAK;AAAA,EACtC;AACJ;AAKA,SAAS,sBAAsB,GAAkB;AAC7C,MAAI,EAAE,SAAS,WAAW,EAAE,QAAQ;AAChC,MAAE,eAAe;AACjB,wBAAoB,EAAE,MAAqB;AAAA,EAC/C;AACJ;AAEA,SAAS,6BAA6B,GAAkB;AACpD,MAAI,EAAE,SAAS,SAAS;AACpB,MAAE,eAAe;AAAA,EACrB;AACJ;AAEA,SAAS,0BAA0B,OAA4B;AAxE/D;AAyEI,QAAM,gBAAgB,MAAM;AAE5B,QAAM,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,MACI,MAAM,WACN,MAAM,WACN,MAAM,UACN,YAAY,SAAS,MAAM,IAAI,GACjC;AAEE;AAAA,EACJ;AAEA,MAAI,MAAM,KAAK,SAAS,OAAO,GAAG;AAC9B;AAAA,EACJ;AAEA,QAAM,8BAA8B,CAAC,KAAK,KAAK,KAAK,GAAG;AAEvD,MAAI,CAAC,4BAA4B,SAAS,MAAM,GAAG,GAAG;AAClD,UAAM,eAAe;AACrB;AAAA,EACJ;AAEA,QAAM,YAAY;AAAA,IACd,eAAa,YAAO,aAAa,MAApB,mBAAuB,WAAW,GAAG,gBAAe;AAAA,IACjE,aAAW,YAAO,aAAa,MAApB,mBAAuB,WAAW,GAAG,cAAa;AAAA,EACjE;AAEA,QAAM,gBAAgB,cAAc,eAAe;AACnD,QAAM,mBAAmB,cAAc,MAAM,EAAE;AAC/C,mBAAiB;AAAA,IACb,UAAU;AAAA,IACV,UAAU,YAAY,UAAU;AAAA,IAChC,MAAM;AAAA,EACV;AACA,QAAM,eAAe,iBAAiB,KAAK,EAAE;AAE7C,MAAI,CAAC,kBAAkB,KAAK,YAAY,GAAG;AACvC,UAAM,eAAe;AAAA,EACzB;AACJ;","names":[]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
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
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/visualBuilder/utils/handleIndividualFields.ts
|
|
@@ -37,6 +47,8 @@ var import_multipleElementAddButton = require("./multipleElementAddButton.cjs");
|
|
|
37
47
|
var import_updateFocussedState = require("./updateFocussedState.cjs");
|
|
38
48
|
var import_types = require("./types/index.types.cjs");
|
|
39
49
|
var import_getMultilinePlaintext = require("./getMultilinePlaintext.cjs");
|
|
50
|
+
var import_postMessage = require("./types/postMessage.types.cjs");
|
|
51
|
+
var import_visualBuilderPostMessage = __toESM(require("./visualBuilderPostMessage.cjs"), 1);
|
|
40
52
|
async function handleIndividualFields(eventDetails, elements) {
|
|
41
53
|
const { fieldMetadata, editableElement } = eventDetails;
|
|
42
54
|
const { visualBuilderContainer, lastEditedField, resizeObserver } = elements;
|
|
@@ -54,15 +66,13 @@ async function handleIndividualFields(eventDetails, elements) {
|
|
|
54
66
|
fieldPathWithIndex
|
|
55
67
|
)
|
|
56
68
|
]);
|
|
57
|
-
const expectedFieldInstanceData = Array.isArray(expectedFieldData) ? expectedFieldData.at(fieldMetadata.multipleFieldMetadata.index) : void 0;
|
|
58
69
|
const fieldType = (0, import_getFieldType.getFieldType)(fieldSchema);
|
|
59
70
|
const { isDisabled: disabled } = (0, import_isFieldDisabled.isFieldDisabled)(fieldSchema, eventDetails);
|
|
60
71
|
editableElement.setAttribute(
|
|
61
72
|
import_constants.VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
|
|
62
73
|
fieldType
|
|
63
74
|
);
|
|
64
|
-
if (
|
|
65
|
-
(fieldSchema == null ? void 0 : fieldSchema.field_metadata.ref_multiple))) {
|
|
75
|
+
if (isFieldMultiple(fieldSchema)) {
|
|
66
76
|
if (lastEditedField !== editableElement) {
|
|
67
77
|
const addButtonLabel = fieldSchema.data_type === "blocks" ? (
|
|
68
78
|
// ? `Add ${fieldSchema.display_name ?? "Modular Block"}`
|
|
@@ -83,73 +93,78 @@ async function handleIndividualFields(eventDetails, elements) {
|
|
|
83
93
|
}
|
|
84
94
|
);
|
|
85
95
|
}
|
|
86
|
-
if (eventDetails.fieldMetadata.multipleFieldMetadata.index > -1) {
|
|
87
|
-
handleSingleField(
|
|
88
|
-
{
|
|
89
|
-
editableElement,
|
|
90
|
-
visualBuilderContainer,
|
|
91
|
-
resizeObserver: elements.resizeObserver
|
|
92
|
-
},
|
|
93
|
-
{ expectedFieldData: expectedFieldInstanceData, disabled }
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
} else {
|
|
97
|
-
handleSingleField(
|
|
98
|
-
{
|
|
99
|
-
editableElement,
|
|
100
|
-
visualBuilderContainer,
|
|
101
|
-
resizeObserver: elements.resizeObserver
|
|
102
|
-
},
|
|
103
|
-
{ expectedFieldData, disabled }
|
|
104
|
-
);
|
|
105
96
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (
|
|
109
|
-
|
|
97
|
+
!disabled && handleInlineEditing();
|
|
98
|
+
function handleInlineEditing() {
|
|
99
|
+
if (!import_constants.ALLOWED_INLINE_EDITABLE_FIELD.includes(fieldType)) return;
|
|
100
|
+
const index = Number(fieldMetadata.instance.fieldPathWithIndex.split(".").at(-1));
|
|
101
|
+
const isInstance = Number.isFinite(index);
|
|
102
|
+
if (isFieldMultiple(fieldSchema)) {
|
|
103
|
+
let expectedFieldInstanceData = null;
|
|
104
|
+
if (Array.isArray(expectedFieldData)) {
|
|
105
|
+
if (!isInstance) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (index >= expectedFieldData.length) {
|
|
109
|
+
} else {
|
|
110
|
+
expectedFieldInstanceData = expectedFieldData.at(index);
|
|
111
|
+
}
|
|
112
|
+
} else {
|
|
113
|
+
expectedFieldInstanceData = expectedFieldData;
|
|
114
|
+
}
|
|
115
|
+
enableInlineEditing(expectedFieldInstanceData);
|
|
116
|
+
} else {
|
|
117
|
+
let expectedFieldInstanceData = null;
|
|
118
|
+
if (isInstance) {
|
|
119
|
+
if (index !== 0) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
expectedFieldInstanceData = Array.isArray(expectedFieldData) ? expectedFieldData.at(0) : expectedFieldData;
|
|
123
|
+
}
|
|
124
|
+
enableInlineEditing(expectedFieldInstanceData ?? expectedFieldData);
|
|
110
125
|
}
|
|
111
|
-
|
|
112
|
-
let actualEditableField =
|
|
126
|
+
function enableInlineEditing(expectedFieldData2) {
|
|
127
|
+
let actualEditableField = editableElement;
|
|
113
128
|
import__.VisualBuilder.VisualBuilderGlobalState.value.focusFieldValue = actualEditableField == null ? void 0 : actualEditableField.innerText;
|
|
114
129
|
const elementComputedDisplay = window.getComputedStyle(actualEditableField).display;
|
|
115
|
-
let textContent =
|
|
130
|
+
let textContent = editableElement.innerText || editableElement.textContent || "";
|
|
116
131
|
if (fieldType === import_types.FieldDataType.MULTILINE) {
|
|
117
132
|
textContent = (0, import_getMultilinePlaintext.getMultilinePlaintext)(actualEditableField);
|
|
118
133
|
actualEditableField.addEventListener("paste", pasteAsPlainText);
|
|
119
134
|
}
|
|
120
|
-
const expectedTextContent =
|
|
121
|
-
if (textContent !== expectedTextContent || (0, import_generatePseudoEditableField.isEllipsisActive)(
|
|
135
|
+
const expectedTextContent = expectedFieldData2;
|
|
136
|
+
if (expectedTextContent && textContent !== expectedTextContent || (0, import_generatePseudoEditableField.isEllipsisActive)(editableElement)) {
|
|
122
137
|
const pseudoEditableField = (0, import_generatePseudoEditableField.generatePseudoEditableElement)(
|
|
123
|
-
{ editableElement
|
|
124
|
-
{ textContent:
|
|
138
|
+
{ editableElement },
|
|
139
|
+
{ textContent: expectedFieldData2 }
|
|
125
140
|
);
|
|
126
|
-
|
|
141
|
+
editableElement.style.visibility = "hidden";
|
|
127
142
|
pseudoEditableField.setAttribute(
|
|
128
143
|
import_constants.VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
|
|
129
144
|
fieldType
|
|
130
145
|
);
|
|
131
|
-
|
|
146
|
+
visualBuilderContainer.appendChild(pseudoEditableField);
|
|
132
147
|
actualEditableField = pseudoEditableField;
|
|
133
148
|
if (fieldType === import_types.FieldDataType.MULTILINE)
|
|
134
149
|
actualEditableField.addEventListener(
|
|
135
150
|
"paste",
|
|
136
151
|
pasteAsPlainText
|
|
137
152
|
);
|
|
138
|
-
|
|
153
|
+
elements.resizeObserver.observe(pseudoEditableField);
|
|
139
154
|
} else if (elementComputedDisplay === "inline") {
|
|
140
155
|
const onInlineElementInput = (0, import_lodash_es.throttle)(() => {
|
|
141
|
-
const overlayWrapper =
|
|
156
|
+
const overlayWrapper = visualBuilderContainer.querySelector(
|
|
142
157
|
".visual-builder__overlay__wrapper"
|
|
143
158
|
);
|
|
144
|
-
const focusedToolbar =
|
|
159
|
+
const focusedToolbar = visualBuilderContainer.querySelector(
|
|
145
160
|
".visual-builder__focused-toolbar"
|
|
146
161
|
);
|
|
147
162
|
(0, import_updateFocussedState.updateFocussedState)({
|
|
148
163
|
editableElement: actualEditableField,
|
|
149
|
-
visualBuilderContainer
|
|
164
|
+
visualBuilderContainer,
|
|
150
165
|
overlayWrapper,
|
|
151
|
-
|
|
152
|
-
|
|
166
|
+
focusedToolbar,
|
|
167
|
+
resizeObserver
|
|
153
168
|
});
|
|
154
169
|
}, 200);
|
|
155
170
|
actualEditableField.addEventListener(
|
|
@@ -165,6 +180,10 @@ async function handleIndividualFields(eventDetails, elements) {
|
|
|
165
180
|
}
|
|
166
181
|
}
|
|
167
182
|
}
|
|
183
|
+
function isFieldMultiple(fieldSchema) {
|
|
184
|
+
return fieldSchema && (fieldSchema.multiple || fieldSchema.data_type === "reference" && // @ts-ignore
|
|
185
|
+
fieldSchema.field_metadata.ref_multiple);
|
|
186
|
+
}
|
|
168
187
|
function cleanIndividualFieldResidual(elements) {
|
|
169
188
|
const { overlayWrapper, visualBuilderContainer, focusedToolbar } = elements;
|
|
170
189
|
(0, import_multipleElementAddButton.removeAddInstanceButtons)(
|
|
@@ -210,6 +229,11 @@ function cleanIndividualFieldResidual(elements) {
|
|
|
210
229
|
}
|
|
211
230
|
if (focusedToolbar) {
|
|
212
231
|
focusedToolbar.innerHTML = "";
|
|
232
|
+
const toolbarEvents = [import_postMessage.VisualBuilderPostMessageEvents.DELETE_INSTANCE, import_postMessage.VisualBuilderPostMessageEvents.UPDATE_DISCUSSION_ID];
|
|
233
|
+
toolbarEvents.forEach((event) => {
|
|
234
|
+
var _a, _b;
|
|
235
|
+
(_b = (_a = import_visualBuilderPostMessage.default) == null ? void 0 : _a.unregisterEvent) == null ? void 0 : _b.call(_a, event);
|
|
236
|
+
});
|
|
213
237
|
}
|
|
214
238
|
}
|
|
215
239
|
var pasteAsPlainText = (0, import_lodash_es.debounce)(
|