@contentstack/live-preview-utils 3.0.1 → 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.
Files changed (130) hide show
  1. package/LICENSE +1 -1
  2. package/dist/legacy/cslp/cslpdata.cjs.map +1 -1
  3. package/dist/legacy/cslp/cslpdata.js.map +1 -1
  4. package/dist/legacy/livePreview/editButton/editButton.cjs +2 -2
  5. package/dist/legacy/livePreview/editButton/editButton.cjs.map +1 -1
  6. package/dist/legacy/livePreview/editButton/editButton.js +2 -2
  7. package/dist/legacy/livePreview/editButton/editButton.js.map +1 -1
  8. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  9. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  10. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
  11. package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
  12. package/dist/legacy/timeline/compare/compare.cjs +2 -1
  13. package/dist/legacy/timeline/compare/compare.cjs.map +1 -1
  14. package/dist/legacy/timeline/compare/compare.js +2 -1
  15. package/dist/legacy/timeline/compare/compare.js.map +1 -1
  16. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs +2 -2
  17. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs.map +1 -1
  18. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.d.cts +1 -1
  19. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.d.ts +1 -1
  20. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.js +2 -2
  21. package/dist/legacy/visualBuilder/components/FieldRevert/FieldRevertComponent.js.map +1 -1
  22. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +33 -34
  23. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  24. package/dist/legacy/visualBuilder/components/FieldToolbar.js +33 -34
  25. package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
  26. package/dist/legacy/visualBuilder/components/emptyBlock.cjs +1 -0
  27. package/dist/legacy/visualBuilder/components/emptyBlock.cjs.map +1 -1
  28. package/dist/legacy/visualBuilder/components/emptyBlock.js +1 -0
  29. package/dist/legacy/visualBuilder/components/emptyBlock.js.map +1 -1
  30. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +1 -1
  31. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  32. package/dist/legacy/visualBuilder/generators/generateToolbar.js +1 -1
  33. package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
  34. package/dist/legacy/visualBuilder/listeners/index.cjs +8 -2
  35. package/dist/legacy/visualBuilder/listeners/index.cjs.map +1 -1
  36. package/dist/legacy/visualBuilder/listeners/index.js +8 -2
  37. package/dist/legacy/visualBuilder/listeners/index.js.map +1 -1
  38. package/dist/legacy/visualBuilder/utils/constants.cjs +5 -2
  39. package/dist/legacy/visualBuilder/utils/constants.cjs.map +1 -1
  40. package/dist/legacy/visualBuilder/utils/constants.d.cts +2 -1
  41. package/dist/legacy/visualBuilder/utils/constants.d.ts +2 -1
  42. package/dist/legacy/visualBuilder/utils/constants.js +3 -1
  43. package/dist/legacy/visualBuilder/utils/constants.js.map +1 -1
  44. package/dist/legacy/visualBuilder/utils/getFieldType.cjs +6 -5
  45. package/dist/legacy/visualBuilder/utils/getFieldType.cjs.map +1 -1
  46. package/dist/legacy/visualBuilder/utils/getFieldType.js +6 -5
  47. package/dist/legacy/visualBuilder/utils/getFieldType.js.map +1 -1
  48. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.cjs +10 -0
  49. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.cjs.map +1 -1
  50. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.js +10 -0
  51. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.js.map +1 -1
  52. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +63 -39
  53. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  54. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +53 -39
  55. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  56. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.cjs +44 -0
  57. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.cjs.map +1 -0
  58. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.d.cts +3 -0
  59. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.d.ts +3 -0
  60. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.js +21 -0
  61. package/dist/legacy/visualBuilder/utils/insertSpaceAtCursor.js.map +1 -0
  62. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.cjs +1 -1
  63. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.cjs.map +1 -1
  64. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.js +1 -1
  65. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.js.map +1 -1
  66. package/dist/modern/cslp/cslpdata.cjs.map +1 -1
  67. package/dist/modern/cslp/cslpdata.js.map +1 -1
  68. package/dist/modern/livePreview/editButton/editButton.cjs +1 -1
  69. package/dist/modern/livePreview/editButton/editButton.cjs.map +1 -1
  70. package/dist/modern/livePreview/editButton/editButton.js +1 -1
  71. package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
  72. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  73. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  74. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  75. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  76. package/dist/modern/timeline/compare/compare.cjs +2 -1
  77. package/dist/modern/timeline/compare/compare.cjs.map +1 -1
  78. package/dist/modern/timeline/compare/compare.js +2 -1
  79. package/dist/modern/timeline/compare/compare.js.map +1 -1
  80. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs +2 -2
  81. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.cjs.map +1 -1
  82. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.d.cts +1 -1
  83. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.d.ts +1 -1
  84. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.js +2 -2
  85. package/dist/modern/visualBuilder/components/FieldRevert/FieldRevertComponent.js.map +1 -1
  86. package/dist/modern/visualBuilder/components/FieldToolbar.cjs +32 -33
  87. package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  88. package/dist/modern/visualBuilder/components/FieldToolbar.js +32 -33
  89. package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
  90. package/dist/modern/visualBuilder/components/emptyBlock.cjs +1 -0
  91. package/dist/modern/visualBuilder/components/emptyBlock.cjs.map +1 -1
  92. package/dist/modern/visualBuilder/components/emptyBlock.js +1 -0
  93. package/dist/modern/visualBuilder/components/emptyBlock.js.map +1 -1
  94. package/dist/modern/visualBuilder/generators/generateToolbar.cjs +1 -1
  95. package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  96. package/dist/modern/visualBuilder/generators/generateToolbar.js +1 -1
  97. package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
  98. package/dist/modern/visualBuilder/listeners/index.cjs +8 -2
  99. package/dist/modern/visualBuilder/listeners/index.cjs.map +1 -1
  100. package/dist/modern/visualBuilder/listeners/index.js +8 -2
  101. package/dist/modern/visualBuilder/listeners/index.js.map +1 -1
  102. package/dist/modern/visualBuilder/utils/constants.cjs +5 -2
  103. package/dist/modern/visualBuilder/utils/constants.cjs.map +1 -1
  104. package/dist/modern/visualBuilder/utils/constants.d.cts +2 -1
  105. package/dist/modern/visualBuilder/utils/constants.d.ts +2 -1
  106. package/dist/modern/visualBuilder/utils/constants.js +3 -1
  107. package/dist/modern/visualBuilder/utils/constants.js.map +1 -1
  108. package/dist/modern/visualBuilder/utils/getFieldType.cjs +5 -5
  109. package/dist/modern/visualBuilder/utils/getFieldType.cjs.map +1 -1
  110. package/dist/modern/visualBuilder/utils/getFieldType.js +5 -5
  111. package/dist/modern/visualBuilder/utils/getFieldType.js.map +1 -1
  112. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.cjs +10 -0
  113. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.cjs.map +1 -1
  114. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.js +10 -0
  115. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.js.map +1 -1
  116. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +62 -39
  117. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  118. package/dist/modern/visualBuilder/utils/handleIndividualFields.js +52 -39
  119. package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  120. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.cjs +44 -0
  121. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.cjs.map +1 -0
  122. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.d.cts +3 -0
  123. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.d.ts +3 -0
  124. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.js +21 -0
  125. package/dist/modern/visualBuilder/utils/insertSpaceAtCursor.js.map +1 -0
  126. package/dist/modern/visualBuilder/utils/multipleElementAddButton.cjs +1 -1
  127. package/dist/modern/visualBuilder/utils/multipleElementAddButton.cjs.map +1 -1
  128. package/dist/modern/visualBuilder/utils/multipleElementAddButton.js +1 -1
  129. package/dist/modern/visualBuilder/utils/multipleElementAddButton.js.map +1 -1
  130. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/components/FieldToolbar.tsx"],"sourcesContent":["import { useSignal } from \"@preact/signals\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport getChildrenDirection from \"../utils/getChildrenDirection\";\nimport {\n ALLOWED_MODAL_EDITABLE_FIELD,\n ALLOWED_REPLACE_FIELDS,\n DEFAULT_MULTIPLE_FIELDS,\n} from \"../utils/constants\";\nimport { getFieldType } from \"../utils/getFieldType\";\nimport {\n handleDeleteInstance,\n handleMoveInstance,\n} from \"../utils/instanceHandlers\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { FieldDataType, ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport {\n CaretIcon,\n DeleteIcon,\n MoveLeftIcon,\n MoveRightIcon,\n ReplaceAssetIcon,\n} from \"./icons\";\nimport { fieldIcons } from \"./icons/fields\";\nimport classNames from \"classnames\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport CommentIcon from \"./CommentIcon\";\nimport React, { useEffect, useState } from \"preact/compat\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { IReferenceContentTypeSchema } from \"../../cms/types/contentTypeSchema.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { FormIcon } from \"./icons\";\nimport { getDOMEditStack } from \"../utils/getCsDataOfElement\";\nimport { VariantIcon } from \"./icons/variant\";\nimport {\n BASE_VARIANT_STATUS,\n FieldRevertComponent,\n getFieldVariantStatus,\n IVariantStatus,\n} from \"./FieldRevert/FieldRevertComponent\";\n\nexport type FieldDetails = Pick<VisualBuilderCslpEventDetails, \"editableElement\" | \"fieldMetadata\">;\n\nconst TOOLTIP_TOP_EDGE_BUFFER = 96;\n\ninterface MultipleFieldToolbarProps {\n eventDetails: VisualBuilderCslpEventDetails;\n hideOverlay: () => void;\n};\n\nfunction handleReplaceAsset(fieldMetadata: CslpData) {\n // TODO avoid sending whole fieldMetadata\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_ASSET_MODAL,\n {\n fieldMetadata,\n }\n );\n}\n\nfunction handleReplaceReference(fieldMetadata: CslpData) {\n const isMultipleInstance =\n fieldMetadata.multipleFieldMetadata.index > -1 &&\n fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.multipleFieldMetadata.parentDetails?.parentPath;\n const entryPath = isMultipleInstance\n ? fieldMetadata.instance.fieldPathWithIndex\n : fieldMetadata.fieldPathWithIndex;\n\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_REFERENCE_MODAL,\n {\n entry_uid: fieldMetadata.entry_uid,\n content_type_uid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n fieldPath: fieldMetadata.fieldPath,\n fieldPathWithIndex: fieldMetadata.fieldPathWithIndex,\n entryPath,\n }\n );\n}\n\nfunction handleEdit(fieldMetadata: CslpData) {\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_FIELD_EDIT_MODAL,\n { fieldMetadata }\n );\n}\n\nfunction handleFormFieldFocus(eventDetails: VisualBuilderCslpEventDetails) {\n const { editableElement, fieldMetadata, cslpData } = eventDetails;\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.TOGGLE_FORM,\n {\n fieldMetadata,\n cslpData,\n }\n ).then(() => {\n visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FOCUS_FIELD, {\n DOMEditStack: getDOMEditStack(editableElement),\n });\n });\n}\n\nfunction FieldToolbarComponent(\n props: MultipleFieldToolbarProps\n): JSX.Element | null {\n const { eventDetails } = props;\n const { fieldMetadata, editableElement: targetElement } = eventDetails;\n const direction = useSignal(\"\");\n const parentPath =\n fieldMetadata?.multipleFieldMetadata?.parentDetails?.parentCslpValue ||\n \"\";\n const isVariant = !!fieldMetadata?.variant;\n const [fieldSchema, setFieldSchema] = useState<ISchemaFieldMap | null>(\n null\n );\n const [fieldVariantStatus, setFieldVariantStatus] =\n useState<IVariantStatus>(BASE_VARIANT_STATUS);\n const [isOpenVariantRevert, setIsOpenVariantRevert] =\n useState<boolean>(false);\n\n let isModalEditable = false;\n let isReplaceAllowed = false;\n let isMultiple = false;\n let Icon = null;\n let fieldType = null;\n let isWholeMultipleField = false;\n\n if(fieldSchema) {\n const { isDisabled } = isFieldDisabled(\n fieldSchema,\n {\n editableElement: targetElement,\n fieldMetadata\n }\n );\n\n // field is disabled, no actions needed\n if (isDisabled) {\n return null;\n }\n\n fieldType = getFieldType(fieldSchema);\n isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType);\n isReplaceAllowed = ALLOWED_REPLACE_FIELDS.includes(fieldType);\n\n Icon = fieldIcons[fieldType];\n\n isMultiple = fieldSchema.multiple || false;\n if(fieldType === FieldDataType.REFERENCE)\n isMultiple = (fieldSchema as IReferenceContentTypeSchema).field_metadata.ref_multiple;\n\n // field is multiple but an instance is not selected\n // instead the whole field (all instances) is selected.\n // Currently, when whole featured_blogs is selected in canvas,\n // the fieldPathWithIndex and instance.fieldPathWithIndex are the same\n // cannot rely on -1 index, as the non-negative index then refers to the index of\n // the featured_blogs block in page_components\n // It is not needed except taxanomy.\n isWholeMultipleField = isMultiple &&\n (fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.instance.fieldPathWithIndex ||\n fieldMetadata.multipleFieldMetadata?.index === -1);\n\n if (DEFAULT_MULTIPLE_FIELDS.includes(fieldType) && isWholeMultipleField) {\n return null;\n }\n }\n\n direction.value = getChildrenDirection(targetElement, parentPath);\n\n const invertTooltipPosition =\n targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;\n\n const editButton = Icon ? (\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__edit-button\"\n className={classNames(\n \"visual-builder__button visual-builder__button--secondary visual-builder__button--edit\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__button--edit\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Edit\"}\n onClick={(e) => {\n // TODO the listener for field path is attached to the common parent requiring\n // propagation to be stopped, should ideally only attach onClick to fieldpath dropdown\n e.preventDefault();\n e.stopPropagation();\n handleEdit(fieldMetadata);\n }}\n >\n <Icon />\n </button>\n ) : null;\n\n const replaceButton = fieldType ? (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Replace\"}\n data-testid={`visual-builder-replace-${fieldType}`}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n if (fieldType === FieldDataType.REFERENCE) {\n handleReplaceReference(fieldMetadata);\n return;\n } else if (fieldType === FieldDataType.FILE) {\n handleReplaceAsset(fieldMetadata);\n return;\n }\n }}\n >\n <ReplaceAssetIcon />\n </button>\n ) : null;\n\n const formButton = (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Form\"}\n data-testid={`visual-builder-form`}\n onClick={(e) => {\n handleFormFieldFocus(eventDetails);\n }}\n >\n <FormIcon />\n </button>\n );\n\n const toggleVariantDropdown = () => {\n setIsOpenVariantRevert(!isOpenVariantRevert);\n };\n\n const closeVariantDropdown = () => {\n setIsOpenVariantRevert(false);\n };\n\n const variantButton = (\n <button\n className={classNames(\n \"visual-builder__variant-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n visualBuilderStyles()[\"visual-builder__variant-button\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Variant Revert\"}\n data-testid={`visual-builder-canvas-variant-revert`}\n onClick={toggleVariantDropdown}\n >\n <VariantIcon />\n <CaretIcon open={isOpenVariantRevert} />\n </button>\n );\n\n const totalElementCount = targetElement?.parentNode?.childElementCount ?? 1;\n const indexOfElement = fieldMetadata?.multipleFieldMetadata?.index;\n\n const disableMoveLeft = indexOfElement === 0; // first element\n const disableMoveRight = indexOfElement === totalElementCount - 1; // last element\n\n useEffect(() => {\n async function fetchFieldSchema() {\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n );\n if (fieldSchema) {\n setFieldSchema(fieldSchema);\n }\n const variantStatus = await getFieldVariantStatus(\n fieldMetadata.fieldPathWithIndex\n );\n setFieldVariantStatus(variantStatus ?? BASE_VARIANT_STATUS);\n }\n fetchFieldSchema();\n }, [fieldMetadata]);\n\n useEffect(() => {\n visualBuilderPostMessage?.on(VisualBuilderPostMessageEvents.DELETE_INSTANCE, (args: { data: { path: string } }) => {\n if(args.data?.path === fieldMetadata.instance.fieldPathWithIndex){\n props.hideOverlay()\n }\n })\n }, [])\n\n const multipleFieldToolbarButtonClasses = classNames(\n \"visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n );\n\n return (\n <div\n className={classNames(\n \"visual-builder__field-toolbar-container\",\n visualBuilderStyles()[\"visual-builder__field-toolbar-container\"]\n )}\n >\n {isVariant && (\n <FieldRevertComponent\n fieldDataName={fieldMetadata.fieldPathWithIndex}\n fieldMetadata={fieldMetadata}\n variantStatus={fieldVariantStatus}\n isOpen={isOpenVariantRevert}\n closeDropdown={closeVariantDropdown}\n />\n )}\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__multiple-field-toolbar\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__multiple-field-toolbar\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar\"\n >\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__button-group\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__button-group\"\n ]\n )}\n >\n <>\n {isVariant ? variantButton : null}\n {isMultiple && !isWholeMultipleField ? (\n <>\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction.value === \"vertical\"\n ? \"Move up\"\n : \"Move left\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"previous\"\n );\n }}\n disabled={disableMoveLeft}\n >\n <MoveLeftIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction.value === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction.value === \"vertical\",\n })}\n disabled={disableMoveLeft}\n />\n </button>\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction.value === \"vertical\"\n ? \"Move down\"\n : \"Move right\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"next\"\n );\n }}\n disabled={disableMoveRight}\n >\n <MoveRightIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction.value === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction.value === \"vertical\",\n })}\n disabled={disableMoveRight}\n />\n </button>\n\n {isModalEditable ? editButton : null}\n {formButton}\n {isReplaceAllowed ? replaceButton : null}\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__delete-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\"Delete\"}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleDeleteInstance(fieldMetadata);\n }}\n >\n <DeleteIcon />\n </button>\n </>\n ) : (\n <>\n {isModalEditable ? editButton : null}\n {isReplaceAllowed ? replaceButton : null}\n {formButton}\n {fieldSchema ? (\n <CommentIcon\n fieldMetadata={fieldMetadata}\n fieldSchema={fieldSchema}\n invertTooltipPosition={\n invertTooltipPosition\n }\n />\n ) : null}\n </>\n )}\n </>\n </div>\n </div>\n </div>\n );\n}\n\nexport default FieldToolbarComponent;\n"],"mappings":"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","names":["_a","fieldSchema"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/components/FieldToolbar.tsx"],"sourcesContent":["import { CslpData } from \"../../cslp/types/cslp.types\";\nimport getChildrenDirection from \"../utils/getChildrenDirection\";\nimport {\n ALLOWED_MODAL_EDITABLE_FIELD,\n ALLOWED_REPLACE_FIELDS,\n DEFAULT_MULTIPLE_FIELDS,\n} from \"../utils/constants\";\nimport { getFieldType } from \"../utils/getFieldType\";\nimport {\n handleDeleteInstance,\n handleMoveInstance,\n} from \"../utils/instanceHandlers\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { FieldDataType, ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport {\n CaretIcon,\n DeleteIcon,\n MoveLeftIcon,\n MoveRightIcon,\n ReplaceAssetIcon,\n} from \"./icons\";\nimport { fieldIcons } from \"./icons/fields\";\nimport classNames from \"classnames\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport CommentIcon from \"./CommentIcon\";\nimport React, { useEffect, useState } from \"preact/compat\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { IReferenceContentTypeSchema } from \"../../cms/types/contentTypeSchema.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { FormIcon } from \"./icons\";\nimport { getDOMEditStack } from \"../utils/getCsDataOfElement\";\nimport { VariantIcon } from \"./icons/variant\";\nimport {\n BASE_VARIANT_STATUS,\n FieldRevertComponent,\n getFieldVariantStatus,\n IVariantStatus,\n} from \"./FieldRevert/FieldRevertComponent\";\n\nexport type FieldDetails = Pick<\n VisualBuilderCslpEventDetails,\n \"editableElement\" | \"fieldMetadata\"\n>;\n\nconst TOOLTIP_TOP_EDGE_BUFFER = 96;\n\ninterface MultipleFieldToolbarProps {\n eventDetails: VisualBuilderCslpEventDetails;\n hideOverlay: () => void;\n}\n\nfunction handleReplaceAsset(fieldMetadata: CslpData) {\n // TODO avoid sending whole fieldMetadata\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_ASSET_MODAL,\n {\n fieldMetadata,\n }\n );\n}\n\nfunction handleReplaceReference(fieldMetadata: CslpData) {\n const isMultipleInstance =\n fieldMetadata.multipleFieldMetadata.index > -1 &&\n fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.multipleFieldMetadata.parentDetails?.parentPath;\n const entryPath = isMultipleInstance\n ? fieldMetadata.instance.fieldPathWithIndex\n : fieldMetadata.fieldPathWithIndex;\n\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_REFERENCE_MODAL,\n {\n entry_uid: fieldMetadata.entry_uid,\n content_type_uid: fieldMetadata.content_type_uid,\n locale: fieldMetadata.locale,\n fieldPath: fieldMetadata.fieldPath,\n fieldPathWithIndex: fieldMetadata.fieldPathWithIndex,\n entryPath,\n }\n );\n}\n\nfunction handleEdit(fieldMetadata: CslpData) {\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.OPEN_FIELD_EDIT_MODAL,\n { fieldMetadata }\n );\n}\n\nfunction handleFormFieldFocus(eventDetails: VisualBuilderCslpEventDetails) {\n const { editableElement, fieldMetadata, cslpData } = eventDetails;\n visualBuilderPostMessage\n ?.send(VisualBuilderPostMessageEvents.TOGGLE_FORM, {\n fieldMetadata,\n cslpData,\n })\n .then(() => {\n visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.FOCUS_FIELD,\n {\n DOMEditStack: getDOMEditStack(editableElement),\n }\n );\n });\n}\n\nfunction FieldToolbarComponent(\n props: MultipleFieldToolbarProps\n): JSX.Element | null {\n const { eventDetails } = props;\n const { fieldMetadata, editableElement: targetElement } = eventDetails;\n\n const parentPath =\n fieldMetadata?.multipleFieldMetadata?.parentDetails?.parentCslpValue ||\n \"\";\n const direction = getChildrenDirection(targetElement, parentPath);\n const isVariant = !!fieldMetadata?.variant;\n const [fieldSchema, setFieldSchema] = useState<ISchemaFieldMap | null>(\n null\n );\n const [fieldVariantStatus, setFieldVariantStatus] =\n useState<IVariantStatus>(BASE_VARIANT_STATUS);\n const [isOpenVariantRevert, setIsOpenVariantRevert] =\n useState<boolean>(false);\n\n let isModalEditable = false;\n let isReplaceAllowed = false;\n let isMultiple = false;\n let Icon = null;\n let fieldType = null;\n let isWholeMultipleField = false;\n\n if (fieldSchema) {\n const { isDisabled } = isFieldDisabled(fieldSchema, {\n editableElement: targetElement,\n fieldMetadata,\n });\n\n // field is disabled, no actions needed\n if (isDisabled) {\n return null;\n }\n\n fieldType = getFieldType(fieldSchema);\n isModalEditable = ALLOWED_MODAL_EDITABLE_FIELD.includes(fieldType);\n isReplaceAllowed = ALLOWED_REPLACE_FIELDS.includes(fieldType);\n\n Icon = fieldIcons[fieldType];\n\n isMultiple = fieldSchema.multiple || false;\n if (fieldType === FieldDataType.REFERENCE)\n isMultiple = (fieldSchema as IReferenceContentTypeSchema)\n .field_metadata.ref_multiple;\n\n // field is multiple but an instance is not selected\n // instead the whole field (all instances) is selected.\n // Currently, when whole featured_blogs is selected in canvas,\n // the fieldPathWithIndex and instance.fieldPathWithIndex are the same\n // cannot rely on -1 index, as the non-negative index then refers to the index of\n // the featured_blogs block in page_components\n // It is not needed except taxanomy.\n isWholeMultipleField =\n isMultiple &&\n (fieldMetadata.fieldPathWithIndex ===\n fieldMetadata.instance.fieldPathWithIndex ||\n fieldMetadata.multipleFieldMetadata?.index === -1);\n\n if (\n DEFAULT_MULTIPLE_FIELDS.includes(fieldType) &&\n isWholeMultipleField\n ) {\n return null;\n }\n }\n\n const invertTooltipPosition =\n targetElement.getBoundingClientRect().top <= TOOLTIP_TOP_EDGE_BUFFER;\n\n const editButton = Icon ? (\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__edit-button\"\n className={classNames(\n \"visual-builder__button visual-builder__button--secondary visual-builder__button--edit\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__button--edit\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Edit\"}\n onClick={(e) => {\n // TODO the listener for field path is attached to the common parent requiring\n // propagation to be stopped, should ideally only attach onClick to fieldpath dropdown\n e.preventDefault();\n e.stopPropagation();\n handleEdit(fieldMetadata);\n }}\n >\n <Icon />\n </button>\n ) : null;\n\n const replaceButton = fieldType ? (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Replace\"}\n data-testid={`visual-builder-replace-${fieldType}`}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n if (fieldType === FieldDataType.REFERENCE) {\n handleReplaceReference(fieldMetadata);\n return;\n } else if (fieldType === FieldDataType.FILE) {\n handleReplaceAsset(fieldMetadata);\n return;\n }\n }}\n >\n <ReplaceAssetIcon />\n </button>\n ) : null;\n\n const formButton = (\n <button\n className={classNames(\n \"visual-builder__replace-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Form\"}\n data-testid={`visual-builder-form`}\n onClick={(e) => {\n handleFormFieldFocus(eventDetails);\n }}\n >\n <FormIcon />\n </button>\n );\n\n const toggleVariantDropdown = () => {\n setIsOpenVariantRevert(!isOpenVariantRevert);\n };\n\n const closeVariantDropdown = () => {\n setIsOpenVariantRevert(false);\n };\n\n const variantButton = (\n <button\n className={classNames(\n \"visual-builder__variant-button visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n visualBuilderStyles()[\"visual-builder__variant-button\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n )}\n data-tooltip={\"Variant Revert\"}\n data-testid={`visual-builder-canvas-variant-revert`}\n onClick={toggleVariantDropdown}\n >\n <VariantIcon />\n <CaretIcon open={isOpenVariantRevert} />\n </button>\n );\n\n const totalElementCount = targetElement?.parentNode?.childElementCount ?? 1;\n const indexOfElement = fieldMetadata?.multipleFieldMetadata?.index;\n\n const disableMoveLeft = indexOfElement === 0; // first element\n const disableMoveRight = indexOfElement === totalElementCount - 1; // last element\n\n useEffect(() => {\n async function fetchFieldSchema() {\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n );\n if (fieldSchema) {\n setFieldSchema(fieldSchema);\n }\n const variantStatus = await getFieldVariantStatus(fieldMetadata);\n setFieldVariantStatus(variantStatus ?? BASE_VARIANT_STATUS);\n }\n fetchFieldSchema();\n }, [fieldMetadata]);\n\n useEffect(() => {\n const event = visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.DELETE_INSTANCE,\n (args: { data: { path: string } }) => {\n if (\n args.data?.path ===\n fieldMetadata.instance.fieldPathWithIndex\n ) {\n props.hideOverlay();\n }\n }\n );\n return () => {\n event?.unregister();\n };\n }, []);\n\n const multipleFieldToolbarButtonClasses = classNames(\n \"visual-builder__button visual-builder__button--secondary\",\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\"visual-builder__button--secondary\"],\n visualBuilderStyles()[\"visual-builder__tooltip\"],\n {\n \"visual-builder__tooltip--bottom\": invertTooltipPosition,\n [visualBuilderStyles()[\"visual-builder__tooltip--bottom\"]]:\n invertTooltipPosition,\n }\n );\n\n return (\n <div\n className={classNames(\n \"visual-builder__field-toolbar-container\",\n visualBuilderStyles()[\"visual-builder__field-toolbar-container\"]\n )}\n >\n {isVariant && (\n <FieldRevertComponent\n fieldDataName={fieldMetadata.fieldPathWithIndex}\n fieldMetadata={fieldMetadata}\n variantStatus={fieldVariantStatus}\n isOpen={isOpenVariantRevert}\n closeDropdown={closeVariantDropdown}\n />\n )}\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__multiple-field-toolbar\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__multiple-field-toolbar\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar\"\n >\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__button-group\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__button-group\"\n ]\n )}\n >\n <>\n {isVariant ? variantButton : null}\n {isMultiple && !isWholeMultipleField ? (\n <>\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-left-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction === \"vertical\"\n ? \"Move up\"\n : \"Move left\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"previous\"\n );\n }}\n disabled={disableMoveLeft}\n >\n <MoveLeftIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction === \"vertical\",\n })}\n disabled={disableMoveLeft}\n />\n </button>\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__move-right-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\n direction === \"vertical\"\n ? \"Move down\"\n : \"Move right\"\n }\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleMoveInstance(\n fieldMetadata,\n \"next\"\n );\n }}\n disabled={disableMoveRight}\n >\n <MoveRightIcon\n className={classNames({\n \"visual-builder__rotate--90\":\n direction === \"vertical\",\n [visualBuilderStyles()[\n \"visual-builder__rotate--90\"\n ]]: direction === \"vertical\",\n })}\n disabled={disableMoveRight}\n />\n </button>\n\n {isModalEditable ? editButton : null}\n {formButton}\n {isReplaceAllowed ? replaceButton : null}\n\n <button\n data-testid=\"visual-builder__focused-toolbar__multiple-field-toolbar__delete-button\"\n className={\n multipleFieldToolbarButtonClasses\n }\n data-tooltip={\"Delete\"}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleDeleteInstance(fieldMetadata);\n }}\n >\n <DeleteIcon />\n </button>\n </>\n ) : (\n <>\n {isModalEditable ? editButton : null}\n {isReplaceAllowed ? replaceButton : null}\n {formButton}\n {fieldSchema ? (\n <CommentIcon\n fieldMetadata={fieldMetadata}\n fieldSchema={fieldSchema}\n invertTooltipPosition={\n invertTooltipPosition\n }\n />\n ) : null}\n </>\n )}\n </>\n </div>\n </div>\n </div>\n );\n}\n\nexport default FieldToolbarComponent;\n"],"mappings":"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","names":["_a","fieldSchema"]}
@@ -86,6 +86,7 @@ function EmptyBlock(props) {
86
86
  (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__empty-block-add-button"]
87
87
  ),
88
88
  onClick: () => sendAddInstanceEvent(),
89
+ type: "button",
89
90
  children: [
90
91
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("i", { className: "fas fa-plus" }),
91
92
  " \xA0",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/components/emptyBlock.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { observeParentAndFocusNewInstance } from \"../utils/multipleElementAddButton\";\nimport { ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport React from \"preact/compat\";\n\ninterface EmptyBlockProps {\n details: {\n fieldMetadata: CslpData;\n fieldSchema: ISchemaFieldMap;\n };\n}\n\nexport function EmptyBlock(props: EmptyBlockProps): JSX.Element {\n const { details } = props;\n\n const blockParentName = details.fieldSchema.display_name;\n\n async function sendAddInstanceEvent() {\n await visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.ADD_INSTANCE,\n {\n fieldMetadata: details.fieldMetadata,\n index: 0,\n }\n );\n observeParentAndFocusNewInstance({\n parentCslp: details.fieldMetadata.cslpValue,\n index: 0,\n });\n }\n\n return (\n <div\n className={classNames(\n \"visual-builder__empty-block\",\n visualBuilderStyles()[\"visual-builder__empty-block\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__empty-block-title\",\n visualBuilderStyles()[\"visual-builder__empty-block-title\"]\n )}\n >\n There are no {blockParentName.toLowerCase()} on this page yet. Click the button below to add one.\n </div>\n <button\n className={classNames(\n \"visual-builder__empty-block-add-button\",\n visualBuilderStyles()[\n \"visual-builder__empty-block-add-button\"\n ]\n )}\n onClick={() => sendAddInstanceEvent()}\n >\n <i className=\"fas fa-plus\"></i> &nbsp;\n {blockParentName}\n </button>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAuB;AAEvB,2BAAoC;AACpC,sCAAqC;AACrC,sCAAiD;AAEjD,yBAA+C;AAoCnC;AA1BL,SAAS,WAAW,OAAqC;AAC5D,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,kBAAkB,QAAQ,YAAY;AAE5C,iBAAe,uBAAuB;AArB1C;AAsBQ,YAAM,qCAAAA,YAAA,mBAA0B;AAAA,MAC5B,kDAA+B;AAAA,MAC/B;AAAA,QACI,eAAe,QAAQ;AAAA,QACvB,OAAO;AAAA,MACX;AAAA;AAEJ,0EAAiC;AAAA,MAC7B,YAAY,QAAQ,cAAc;AAAA,MAClC,OAAO;AAAA,IACX,CAAC;AAAA,EACL;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG,eAAW,kBAAAC;AAAA,QACP;AAAA,YACA,0CAAoB,EAAE,6BAA6B;AAAA,MACvD;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACG,eAAW,kBAAAA;AAAA,cACP;AAAA,kBACA,0CAAoB,EAAE,mCAAmC;AAAA,YAC7D;AAAA,YACH;AAAA;AAAA,cACiB,gBAAgB,YAAY;AAAA,cAAE;AAAA;AAAA;AAAA,QAChD;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACG,eAAW,kBAAAA;AAAA,cACP;AAAA,kBACA,0CAAoB,EAChB,wCACJ;AAAA,YACJ;AAAA,YACA,SAAS,MAAM,qBAAqB;AAAA,YAEpC;AAAA,0DAAC,OAAE,WAAU,eAAc;AAAA,cAAI;AAAA,cAC9B;AAAA;AAAA;AAAA,QACL;AAAA;AAAA;AAAA,EACJ;AAER;","names":["visualBuilderPostMessage","classNames"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/components/emptyBlock.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { observeParentAndFocusNewInstance } from \"../utils/multipleElementAddButton\";\nimport { ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport React from \"preact/compat\";\n\ninterface EmptyBlockProps {\n details: {\n fieldMetadata: CslpData;\n fieldSchema: ISchemaFieldMap;\n };\n}\n\nexport function EmptyBlock(props: EmptyBlockProps): JSX.Element {\n const { details } = props;\n\n const blockParentName = details.fieldSchema.display_name;\n\n async function sendAddInstanceEvent() {\n await visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.ADD_INSTANCE,\n {\n fieldMetadata: details.fieldMetadata,\n index: 0,\n }\n );\n observeParentAndFocusNewInstance({\n parentCslp: details.fieldMetadata.cslpValue,\n index: 0,\n });\n }\n\n return (\n <div\n className={classNames(\n \"visual-builder__empty-block\",\n visualBuilderStyles()[\"visual-builder__empty-block\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__empty-block-title\",\n visualBuilderStyles()[\"visual-builder__empty-block-title\"]\n )}\n >\n There are no {blockParentName.toLowerCase()} on this page yet. Click the button below to add one.\n </div>\n <button\n className={classNames(\n \"visual-builder__empty-block-add-button\",\n visualBuilderStyles()[\n \"visual-builder__empty-block-add-button\"\n ]\n )}\n onClick={() => sendAddInstanceEvent()}\n type=\"button\"\n >\n <i className=\"fas fa-plus\"></i> &nbsp;\n {blockParentName}\n </button>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAuB;AAEvB,2BAAoC;AACpC,sCAAqC;AACrC,sCAAiD;AAEjD,yBAA+C;AAoCnC;AA1BL,SAAS,WAAW,OAAqC;AAC5D,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,kBAAkB,QAAQ,YAAY;AAE5C,iBAAe,uBAAuB;AArB1C;AAsBQ,YAAM,qCAAAA,YAAA,mBAA0B;AAAA,MAC5B,kDAA+B;AAAA,MAC/B;AAAA,QACI,eAAe,QAAQ;AAAA,QACvB,OAAO;AAAA,MACX;AAAA;AAEJ,0EAAiC;AAAA,MAC7B,YAAY,QAAQ,cAAc;AAAA,MAClC,OAAO;AAAA,IACX,CAAC;AAAA,EACL;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG,eAAW,kBAAAC;AAAA,QACP;AAAA,YACA,0CAAoB,EAAE,6BAA6B;AAAA,MACvD;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACG,eAAW,kBAAAA;AAAA,cACP;AAAA,kBACA,0CAAoB,EAAE,mCAAmC;AAAA,YAC7D;AAAA,YACH;AAAA;AAAA,cACiB,gBAAgB,YAAY;AAAA,cAAE;AAAA;AAAA;AAAA,QAChD;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACG,eAAW,kBAAAA;AAAA,cACP;AAAA,kBACA,0CAAoB,EAChB,wCACJ;AAAA,YACJ;AAAA,YACA,SAAS,MAAM,qBAAqB;AAAA,YACpC,MAAK;AAAA,YAEL;AAAA,0DAAC,OAAE,WAAU,eAAc;AAAA,cAAI;AAAA,cAC9B;AAAA;AAAA;AAAA,QACL;AAAA;AAAA;AAAA,EACJ;AAER;","names":["visualBuilderPostMessage","classNames"]}
@@ -54,6 +54,7 @@ function EmptyBlock(props) {
54
54
  visualBuilderStyles()["visual-builder__empty-block-add-button"]
55
55
  ),
56
56
  onClick: () => sendAddInstanceEvent(),
57
+ type: "button",
57
58
  children: [
58
59
  /* @__PURE__ */ jsx("i", { className: "fas fa-plus" }),
59
60
  " \xA0",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/components/emptyBlock.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { observeParentAndFocusNewInstance } from \"../utils/multipleElementAddButton\";\nimport { ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport React from \"preact/compat\";\n\ninterface EmptyBlockProps {\n details: {\n fieldMetadata: CslpData;\n fieldSchema: ISchemaFieldMap;\n };\n}\n\nexport function EmptyBlock(props: EmptyBlockProps): JSX.Element {\n const { details } = props;\n\n const blockParentName = details.fieldSchema.display_name;\n\n async function sendAddInstanceEvent() {\n await visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.ADD_INSTANCE,\n {\n fieldMetadata: details.fieldMetadata,\n index: 0,\n }\n );\n observeParentAndFocusNewInstance({\n parentCslp: details.fieldMetadata.cslpValue,\n index: 0,\n });\n }\n\n return (\n <div\n className={classNames(\n \"visual-builder__empty-block\",\n visualBuilderStyles()[\"visual-builder__empty-block\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__empty-block-title\",\n visualBuilderStyles()[\"visual-builder__empty-block-title\"]\n )}\n >\n There are no {blockParentName.toLowerCase()} on this page yet. Click the button below to add one.\n </div>\n <button\n className={classNames(\n \"visual-builder__empty-block-add-button\",\n visualBuilderStyles()[\n \"visual-builder__empty-block-add-button\"\n ]\n )}\n onClick={() => sendAddInstanceEvent()}\n >\n <i className=\"fas fa-plus\"></i> &nbsp;\n {blockParentName}\n </button>\n </div>\n );\n}\n"],"mappings":";;;AAAA,OAAO,gBAAgB;AAEvB,SAAS,2BAA2B;AACpC,OAAO,8BAA8B;AACrC,SAAS,wCAAwC;AAEjD,SAAS,sCAAsC;AAoCnC,SAiBI,KAjBJ;AA1BL,SAAS,WAAW,OAAqC;AAC5D,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,kBAAkB,QAAQ,YAAY;AAE5C,iBAAe,uBAAuB;AArB1C;AAsBQ,YAAM,qDAA0B;AAAA,MAC5B,+BAA+B;AAAA,MAC/B;AAAA,QACI,eAAe,QAAQ;AAAA,QACvB,OAAO;AAAA,MACX;AAAA;AAEJ,qCAAiC;AAAA,MAC7B,YAAY,QAAQ,cAAc;AAAA,MAClC,OAAO;AAAA,IACX,CAAC;AAAA,EACL;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,QACP;AAAA,QACA,oBAAoB,EAAE,6BAA6B;AAAA,MACvD;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACG,WAAW;AAAA,cACP;AAAA,cACA,oBAAoB,EAAE,mCAAmC;AAAA,YAC7D;AAAA,YACH;AAAA;AAAA,cACiB,gBAAgB,YAAY;AAAA,cAAE;AAAA;AAAA;AAAA,QAChD;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACG,WAAW;AAAA,cACP;AAAA,cACA,oBAAoB,EAChB,wCACJ;AAAA,YACJ;AAAA,YACA,SAAS,MAAM,qBAAqB;AAAA,YAEpC;AAAA,kCAAC,OAAE,WAAU,eAAc;AAAA,cAAI;AAAA,cAC9B;AAAA;AAAA;AAAA,QACL;AAAA;AAAA;AAAA,EACJ;AAER;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/components/emptyBlock.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { observeParentAndFocusNewInstance } from \"../utils/multipleElementAddButton\";\nimport { ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport React from \"preact/compat\";\n\ninterface EmptyBlockProps {\n details: {\n fieldMetadata: CslpData;\n fieldSchema: ISchemaFieldMap;\n };\n}\n\nexport function EmptyBlock(props: EmptyBlockProps): JSX.Element {\n const { details } = props;\n\n const blockParentName = details.fieldSchema.display_name;\n\n async function sendAddInstanceEvent() {\n await visualBuilderPostMessage?.send(\n VisualBuilderPostMessageEvents.ADD_INSTANCE,\n {\n fieldMetadata: details.fieldMetadata,\n index: 0,\n }\n );\n observeParentAndFocusNewInstance({\n parentCslp: details.fieldMetadata.cslpValue,\n index: 0,\n });\n }\n\n return (\n <div\n className={classNames(\n \"visual-builder__empty-block\",\n visualBuilderStyles()[\"visual-builder__empty-block\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__empty-block-title\",\n visualBuilderStyles()[\"visual-builder__empty-block-title\"]\n )}\n >\n There are no {blockParentName.toLowerCase()} on this page yet. Click the button below to add one.\n </div>\n <button\n className={classNames(\n \"visual-builder__empty-block-add-button\",\n visualBuilderStyles()[\n \"visual-builder__empty-block-add-button\"\n ]\n )}\n onClick={() => sendAddInstanceEvent()}\n type=\"button\"\n >\n <i className=\"fas fa-plus\"></i> &nbsp;\n {blockParentName}\n </button>\n </div>\n );\n}\n"],"mappings":";;;AAAA,OAAO,gBAAgB;AAEvB,SAAS,2BAA2B;AACpC,OAAO,8BAA8B;AACrC,SAAS,wCAAwC;AAEjD,SAAS,sCAAsC;AAoCnC,SAkBI,KAlBJ;AA1BL,SAAS,WAAW,OAAqC;AAC5D,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,kBAAkB,QAAQ,YAAY;AAE5C,iBAAe,uBAAuB;AArB1C;AAsBQ,YAAM,qDAA0B;AAAA,MAC5B,+BAA+B;AAAA,MAC/B;AAAA,QACI,eAAe,QAAQ;AAAA,QACvB,OAAO;AAAA,MACX;AAAA;AAEJ,qCAAiC;AAAA,MAC7B,YAAY,QAAQ,cAAc;AAAA,MAClC,OAAO;AAAA,IACX,CAAC;AAAA,EACL;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,QACP;AAAA,QACA,oBAAoB,EAAE,6BAA6B;AAAA,MACvD;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACG,WAAW;AAAA,cACP;AAAA,cACA,oBAAoB,EAAE,mCAAmC;AAAA,YAC7D;AAAA,YACH;AAAA;AAAA,cACiB,gBAAgB,YAAY;AAAA,cAAE;AAAA;AAAA;AAAA,QAChD;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACG,WAAW;AAAA,cACP;AAAA,cACA,oBAAoB,EAChB,wCACJ;AAAA,YACJ;AAAA,YACA,SAAS,MAAM,qBAAqB;AAAA,YACpC,MAAK;AAAA,YAEL;AAAA,kCAAC,OAAE,WAAU,eAAc;AAAA,cAAI;AAAA,cAC9B;AAAA;AAAA;AAAA,QACL;AAAA;AAAA;AAAA,EACJ;AAER;","names":[]}
@@ -63,7 +63,7 @@ function appendFieldToolbar(eventDetails, focusedToolbarElement, hideOverlay) {
63
63
  focusedToolbarElement.append(wrapper);
64
64
  }
65
65
  function appendFieldPathDropdown(eventDetails, focusedToolbarElement) {
66
- if (document.querySelector("visual-builder__focused-toolbar__field-label-wrapper"))
66
+ if (document.querySelector(".visual-builder__focused-toolbar__field-label-wrapper"))
67
67
  return;
68
68
  const { editableElement: targetElement, fieldMetadata } = eventDetails;
69
69
  const targetElementDimension = targetElement.getBoundingClientRect();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/generators/generateToolbar.tsx"],"sourcesContent":["import { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport {\n DATA_CSLP_ATTR_SELECTOR,\n LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX,\n RIGHT_EDGE_BUFFER,\n TOOLBAR_EDGE_BUFFER,\n TOP_EDGE_BUFFER,\n} from \"../utils/constants\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\n\nimport FieldToolbarComponent from \"../components/FieldToolbar\";\nimport { render } from \"preact\";\nimport FieldLabelWrapperComponent from \"../components/fieldLabelWrapper\";\n\nexport function appendFocusedToolbar(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement,\n hideOverlay: () => void\n): void {\n appendFieldPathDropdown(eventDetails, focusedToolbarElement);\n appendFieldToolbar(eventDetails, focusedToolbarElement, hideOverlay);\n}\n\nexport function appendFieldToolbar(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement,\n hideOverlay: () => void\n): void {\n if (\n focusedToolbarElement.querySelector(\n \".visual-builder__focused-toolbar__multiple-field-toolbar\"\n )\n )\n return;\n const wrapper = document.createDocumentFragment();\n render(\n <FieldToolbarComponent\n eventDetails={eventDetails}\n hideOverlay={hideOverlay}\n />,\n wrapper\n );\n\n focusedToolbarElement.append(wrapper);\n}\n\nexport function appendFieldPathDropdown(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement\n): void {\n if(document.querySelector(\"visual-builder__focused-toolbar__field-label-wrapper\"))\n return;\n const { editableElement: targetElement, fieldMetadata } = eventDetails;\n const targetElementDimension = targetElement.getBoundingClientRect();\n\n const distanceFromTop =\n targetElementDimension.top + window.scrollY - TOOLBAR_EDGE_BUFFER;\n // Position the toolbar at the top unless there's insufficient space or scrolling up is not possible (topmost element targetted).\n const adjustedDistanceFromTop =\n targetElementDimension.top + window.scrollY < TOP_EDGE_BUFFER\n ? distanceFromTop + targetElementDimension.height + TOP_EDGE_BUFFER\n : distanceFromTop;\n\n const distanceFromLeft =\n targetElementDimension.left - LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX;\n const adjustedDistanceFromLeft = Math.max(\n distanceFromLeft,\n TOOLBAR_EDGE_BUFFER\n );\n\n const targetElementRightEdgeOffset =\n window.scrollX + window.innerWidth - targetElementDimension.left;\n\n if (targetElementRightEdgeOffset < RIGHT_EDGE_BUFFER) {\n // Overflow / Cutoff on right edge\n focusedToolbarElement.style.justifyContent = \"flex-end\";\n focusedToolbarElement.style.left = `${\n targetElementDimension.right + LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX\n }px`;\n } else {\n focusedToolbarElement.style.justifyContent = \"flex-start\"; // default\n focusedToolbarElement.style.left = `${adjustedDistanceFromLeft}px`;\n }\n\n focusedToolbarElement.style.top = `${adjustedDistanceFromTop}px`;\n\n const parentPaths = collectParentCSLPPaths(targetElement, 2);\n\n const wrapper = document.createDocumentFragment();\n render(\n <FieldLabelWrapperComponent\n fieldMetadata={fieldMetadata}\n eventDetails={eventDetails}\n parentPaths={parentPaths}\n getParentEditableElement={(cslp: string) => {\n const parentElement = targetElement.closest(\n `[${DATA_CSLP_ATTR_SELECTOR}=\"${cslp}\"]`\n ) as HTMLElement | null;\n return parentElement;\n }}\n />,\n wrapper\n );\n\n focusedToolbarElement.appendChild(wrapper);\n}\n\nfunction collectParentCSLPPaths(\n targetElement: Element,\n count: number\n): Array<string> {\n const cslpPaths: Array<string> = [];\n let currentElement = targetElement.parentElement;\n\n while (count > 0 || currentElement === window.document.body) {\n if (!currentElement) {\n return cslpPaths;\n }\n\n if (currentElement.hasAttribute(DATA_CSLP_ATTR_SELECTOR)) {\n cslpPaths.push(\n currentElement.getAttribute(DATA_CSLP_ATTR_SELECTOR) as string\n );\n count--;\n }\n currentElement = currentElement.parentElement;\n }\n\n return cslpPaths;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAMO;AAIP,0BAAkC;AAClC,oBAAuB;AACvB,+BAAuC;AAwB/B;AAtBD,SAAS,qBACZ,cACA,uBACA,aACI;AACJ,0BAAwB,cAAc,qBAAqB;AAC3D,qBAAmB,cAAc,uBAAuB,WAAW;AACvE;AAEO,SAAS,mBACZ,cACA,uBACA,aACI;AACJ,MACI,sBAAsB;AAAA,IAClB;AAAA,EACJ;AAEA;AACJ,QAAM,UAAU,SAAS,uBAAuB;AAChD;AAAA,IACI;AAAA,MAAC,oBAAAA;AAAA,MAAA;AAAA,QACG;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,wBAAsB,OAAO,OAAO;AACxC;AAEO,SAAS,wBACZ,cACA,uBACI;AACJ,MAAG,SAAS,cAAc,sDAAsD;AAC5E;AACJ,QAAM,EAAE,iBAAiB,eAAe,cAAc,IAAI;AAC1D,QAAM,yBAAyB,cAAc,sBAAsB;AAEnE,QAAM,kBACF,uBAAuB,MAAM,OAAO,UAAU;AAElD,QAAM,0BACF,uBAAuB,MAAM,OAAO,UAAU,mCACxC,kBAAkB,uBAAuB,SAAS,mCAClD;AAEV,QAAM,mBACF,uBAAuB,OAAO;AAClC,QAAM,2BAA2B,KAAK;AAAA,IAClC;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,+BACF,OAAO,UAAU,OAAO,aAAa,uBAAuB;AAEhE,MAAI,+BAA+B,oCAAmB;AAElD,0BAAsB,MAAM,iBAAiB;AAC7C,0BAAsB,MAAM,OAAO,GAC/B,uBAAuB,QAAQ,iDACnC;AAAA,EACJ,OAAO;AACH,0BAAsB,MAAM,iBAAiB;AAC7C,0BAAsB,MAAM,OAAO,GAAG,wBAAwB;AAAA,EAClE;AAEA,wBAAsB,MAAM,MAAM,GAAG,uBAAuB;AAE5D,QAAM,cAAc,uBAAuB,eAAe,CAAC;AAE3D,QAAM,UAAU,SAAS,uBAAuB;AAChD;AAAA,IACI;AAAA,MAAC,yBAAAC;AAAA,MAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B,CAAC,SAAiB;AACxC,gBAAM,gBAAgB,cAAc;AAAA,YAChC,IAAI,wCAAuB,KAAK,IAAI;AAAA,UACxC;AACA,iBAAO;AAAA,QACX;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,wBAAsB,YAAY,OAAO;AAC7C;AAEA,SAAS,uBACL,eACA,OACa;AACb,QAAM,YAA2B,CAAC;AAClC,MAAI,iBAAiB,cAAc;AAEnC,SAAO,QAAQ,KAAK,mBAAmB,OAAO,SAAS,MAAM;AACzD,QAAI,CAAC,gBAAgB;AACjB,aAAO;AAAA,IACX;AAEA,QAAI,eAAe,aAAa,wCAAuB,GAAG;AACtD,gBAAU;AAAA,QACN,eAAe,aAAa,wCAAuB;AAAA,MACvD;AACA;AAAA,IACJ;AACA,qBAAiB,eAAe;AAAA,EACpC;AAEA,SAAO;AACX;","names":["FieldToolbarComponent","FieldLabelWrapperComponent"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/generators/generateToolbar.tsx"],"sourcesContent":["import { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport {\n DATA_CSLP_ATTR_SELECTOR,\n LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX,\n RIGHT_EDGE_BUFFER,\n TOOLBAR_EDGE_BUFFER,\n TOP_EDGE_BUFFER,\n} from \"../utils/constants\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\n\nimport FieldToolbarComponent from \"../components/FieldToolbar\";\nimport { render } from \"preact\";\nimport FieldLabelWrapperComponent from \"../components/fieldLabelWrapper\";\n\nexport function appendFocusedToolbar(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement,\n hideOverlay: () => void\n): void {\n appendFieldPathDropdown(eventDetails, focusedToolbarElement);\n appendFieldToolbar(eventDetails, focusedToolbarElement, hideOverlay);\n}\n\nexport function appendFieldToolbar(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement,\n hideOverlay: () => void\n): void {\n if (\n focusedToolbarElement.querySelector(\n \".visual-builder__focused-toolbar__multiple-field-toolbar\"\n )\n )\n return;\n const wrapper = document.createDocumentFragment();\n render(\n <FieldToolbarComponent\n eventDetails={eventDetails}\n hideOverlay={hideOverlay}\n />,\n wrapper\n );\n\n focusedToolbarElement.append(wrapper);\n}\n\nexport function appendFieldPathDropdown(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement\n): void {\n if(document.querySelector(\".visual-builder__focused-toolbar__field-label-wrapper\"))\n return;\n const { editableElement: targetElement, fieldMetadata } = eventDetails;\n const targetElementDimension = targetElement.getBoundingClientRect();\n\n const distanceFromTop =\n targetElementDimension.top + window.scrollY - TOOLBAR_EDGE_BUFFER;\n // Position the toolbar at the top unless there's insufficient space or scrolling up is not possible (topmost element targetted).\n const adjustedDistanceFromTop =\n targetElementDimension.top + window.scrollY < TOP_EDGE_BUFFER\n ? distanceFromTop + targetElementDimension.height + TOP_EDGE_BUFFER\n : distanceFromTop;\n\n const distanceFromLeft =\n targetElementDimension.left - LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX;\n const adjustedDistanceFromLeft = Math.max(\n distanceFromLeft,\n TOOLBAR_EDGE_BUFFER\n );\n\n const targetElementRightEdgeOffset =\n window.scrollX + window.innerWidth - targetElementDimension.left;\n\n if (targetElementRightEdgeOffset < RIGHT_EDGE_BUFFER) {\n // Overflow / Cutoff on right edge\n focusedToolbarElement.style.justifyContent = \"flex-end\";\n focusedToolbarElement.style.left = `${\n targetElementDimension.right + LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX\n }px`;\n } else {\n focusedToolbarElement.style.justifyContent = \"flex-start\"; // default\n focusedToolbarElement.style.left = `${adjustedDistanceFromLeft}px`;\n }\n\n focusedToolbarElement.style.top = `${adjustedDistanceFromTop}px`;\n\n const parentPaths = collectParentCSLPPaths(targetElement, 2);\n\n const wrapper = document.createDocumentFragment();\n render(\n <FieldLabelWrapperComponent\n fieldMetadata={fieldMetadata}\n eventDetails={eventDetails}\n parentPaths={parentPaths}\n getParentEditableElement={(cslp: string) => {\n const parentElement = targetElement.closest(\n `[${DATA_CSLP_ATTR_SELECTOR}=\"${cslp}\"]`\n ) as HTMLElement | null;\n return parentElement;\n }}\n />,\n wrapper\n );\n\n focusedToolbarElement.appendChild(wrapper);\n}\n\nfunction collectParentCSLPPaths(\n targetElement: Element,\n count: number\n): Array<string> {\n const cslpPaths: Array<string> = [];\n let currentElement = targetElement.parentElement;\n\n while (count > 0 || currentElement === window.document.body) {\n if (!currentElement) {\n return cslpPaths;\n }\n\n if (currentElement.hasAttribute(DATA_CSLP_ATTR_SELECTOR)) {\n cslpPaths.push(\n currentElement.getAttribute(DATA_CSLP_ATTR_SELECTOR) as string\n );\n count--;\n }\n currentElement = currentElement.parentElement;\n }\n\n return cslpPaths;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAMO;AAIP,0BAAkC;AAClC,oBAAuB;AACvB,+BAAuC;AAwB/B;AAtBD,SAAS,qBACZ,cACA,uBACA,aACI;AACJ,0BAAwB,cAAc,qBAAqB;AAC3D,qBAAmB,cAAc,uBAAuB,WAAW;AACvE;AAEO,SAAS,mBACZ,cACA,uBACA,aACI;AACJ,MACI,sBAAsB;AAAA,IAClB;AAAA,EACJ;AAEA;AACJ,QAAM,UAAU,SAAS,uBAAuB;AAChD;AAAA,IACI;AAAA,MAAC,oBAAAA;AAAA,MAAA;AAAA,QACG;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,wBAAsB,OAAO,OAAO;AACxC;AAEO,SAAS,wBACZ,cACA,uBACI;AACJ,MAAG,SAAS,cAAc,uDAAuD;AAC7E;AACJ,QAAM,EAAE,iBAAiB,eAAe,cAAc,IAAI;AAC1D,QAAM,yBAAyB,cAAc,sBAAsB;AAEnE,QAAM,kBACF,uBAAuB,MAAM,OAAO,UAAU;AAElD,QAAM,0BACF,uBAAuB,MAAM,OAAO,UAAU,mCACxC,kBAAkB,uBAAuB,SAAS,mCAClD;AAEV,QAAM,mBACF,uBAAuB,OAAO;AAClC,QAAM,2BAA2B,KAAK;AAAA,IAClC;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,+BACF,OAAO,UAAU,OAAO,aAAa,uBAAuB;AAEhE,MAAI,+BAA+B,oCAAmB;AAElD,0BAAsB,MAAM,iBAAiB;AAC7C,0BAAsB,MAAM,OAAO,GAC/B,uBAAuB,QAAQ,iDACnC;AAAA,EACJ,OAAO;AACH,0BAAsB,MAAM,iBAAiB;AAC7C,0BAAsB,MAAM,OAAO,GAAG,wBAAwB;AAAA,EAClE;AAEA,wBAAsB,MAAM,MAAM,GAAG,uBAAuB;AAE5D,QAAM,cAAc,uBAAuB,eAAe,CAAC;AAE3D,QAAM,UAAU,SAAS,uBAAuB;AAChD;AAAA,IACI;AAAA,MAAC,yBAAAC;AAAA,MAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B,CAAC,SAAiB;AACxC,gBAAM,gBAAgB,cAAc;AAAA,YAChC,IAAI,wCAAuB,KAAK,IAAI;AAAA,UACxC;AACA,iBAAO;AAAA,QACX;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,wBAAsB,YAAY,OAAO;AAC7C;AAEA,SAAS,uBACL,eACA,OACa;AACb,QAAM,YAA2B,CAAC;AAClC,MAAI,iBAAiB,cAAc;AAEnC,SAAO,QAAQ,KAAK,mBAAmB,OAAO,SAAS,MAAM;AACzD,QAAI,CAAC,gBAAgB;AACjB,aAAO;AAAA,IACX;AAEA,QAAI,eAAe,aAAa,wCAAuB,GAAG;AACtD,gBAAU;AAAA,QACN,eAAe,aAAa,wCAAuB;AAAA,MACvD;AACA;AAAA,IACJ;AACA,qBAAiB,eAAe;AAAA,EACpC;AAEA,SAAO;AACX;","names":["FieldToolbarComponent","FieldLabelWrapperComponent"]}
@@ -35,7 +35,7 @@ function appendFieldToolbar(eventDetails, focusedToolbarElement, hideOverlay) {
35
35
  focusedToolbarElement.append(wrapper);
36
36
  }
37
37
  function appendFieldPathDropdown(eventDetails, focusedToolbarElement) {
38
- if (document.querySelector("visual-builder__focused-toolbar__field-label-wrapper"))
38
+ if (document.querySelector(".visual-builder__focused-toolbar__field-label-wrapper"))
39
39
  return;
40
40
  const { editableElement: targetElement, fieldMetadata } = eventDetails;
41
41
  const targetElementDimension = targetElement.getBoundingClientRect();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/generators/generateToolbar.tsx"],"sourcesContent":["import { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport {\n DATA_CSLP_ATTR_SELECTOR,\n LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX,\n RIGHT_EDGE_BUFFER,\n TOOLBAR_EDGE_BUFFER,\n TOP_EDGE_BUFFER,\n} from \"../utils/constants\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\n\nimport FieldToolbarComponent from \"../components/FieldToolbar\";\nimport { render } from \"preact\";\nimport FieldLabelWrapperComponent from \"../components/fieldLabelWrapper\";\n\nexport function appendFocusedToolbar(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement,\n hideOverlay: () => void\n): void {\n appendFieldPathDropdown(eventDetails, focusedToolbarElement);\n appendFieldToolbar(eventDetails, focusedToolbarElement, hideOverlay);\n}\n\nexport function appendFieldToolbar(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement,\n hideOverlay: () => void\n): void {\n if (\n focusedToolbarElement.querySelector(\n \".visual-builder__focused-toolbar__multiple-field-toolbar\"\n )\n )\n return;\n const wrapper = document.createDocumentFragment();\n render(\n <FieldToolbarComponent\n eventDetails={eventDetails}\n hideOverlay={hideOverlay}\n />,\n wrapper\n );\n\n focusedToolbarElement.append(wrapper);\n}\n\nexport function appendFieldPathDropdown(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement\n): void {\n if(document.querySelector(\"visual-builder__focused-toolbar__field-label-wrapper\"))\n return;\n const { editableElement: targetElement, fieldMetadata } = eventDetails;\n const targetElementDimension = targetElement.getBoundingClientRect();\n\n const distanceFromTop =\n targetElementDimension.top + window.scrollY - TOOLBAR_EDGE_BUFFER;\n // Position the toolbar at the top unless there's insufficient space or scrolling up is not possible (topmost element targetted).\n const adjustedDistanceFromTop =\n targetElementDimension.top + window.scrollY < TOP_EDGE_BUFFER\n ? distanceFromTop + targetElementDimension.height + TOP_EDGE_BUFFER\n : distanceFromTop;\n\n const distanceFromLeft =\n targetElementDimension.left - LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX;\n const adjustedDistanceFromLeft = Math.max(\n distanceFromLeft,\n TOOLBAR_EDGE_BUFFER\n );\n\n const targetElementRightEdgeOffset =\n window.scrollX + window.innerWidth - targetElementDimension.left;\n\n if (targetElementRightEdgeOffset < RIGHT_EDGE_BUFFER) {\n // Overflow / Cutoff on right edge\n focusedToolbarElement.style.justifyContent = \"flex-end\";\n focusedToolbarElement.style.left = `${\n targetElementDimension.right + LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX\n }px`;\n } else {\n focusedToolbarElement.style.justifyContent = \"flex-start\"; // default\n focusedToolbarElement.style.left = `${adjustedDistanceFromLeft}px`;\n }\n\n focusedToolbarElement.style.top = `${adjustedDistanceFromTop}px`;\n\n const parentPaths = collectParentCSLPPaths(targetElement, 2);\n\n const wrapper = document.createDocumentFragment();\n render(\n <FieldLabelWrapperComponent\n fieldMetadata={fieldMetadata}\n eventDetails={eventDetails}\n parentPaths={parentPaths}\n getParentEditableElement={(cslp: string) => {\n const parentElement = targetElement.closest(\n `[${DATA_CSLP_ATTR_SELECTOR}=\"${cslp}\"]`\n ) as HTMLElement | null;\n return parentElement;\n }}\n />,\n wrapper\n );\n\n focusedToolbarElement.appendChild(wrapper);\n}\n\nfunction collectParentCSLPPaths(\n targetElement: Element,\n count: number\n): Array<string> {\n const cslpPaths: Array<string> = [];\n let currentElement = targetElement.parentElement;\n\n while (count > 0 || currentElement === window.document.body) {\n if (!currentElement) {\n return cslpPaths;\n }\n\n if (currentElement.hasAttribute(DATA_CSLP_ATTR_SELECTOR)) {\n cslpPaths.push(\n currentElement.getAttribute(DATA_CSLP_ATTR_SELECTOR) as string\n );\n count--;\n }\n currentElement = currentElement.parentElement;\n }\n\n return cslpPaths;\n}\n"],"mappings":";;;AACA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAIP,OAAO,2BAA2B;AAClC,SAAS,cAAc;AACvB,OAAO,gCAAgC;AAwB/B;AAtBD,SAAS,qBACZ,cACA,uBACA,aACI;AACJ,0BAAwB,cAAc,qBAAqB;AAC3D,qBAAmB,cAAc,uBAAuB,WAAW;AACvE;AAEO,SAAS,mBACZ,cACA,uBACA,aACI;AACJ,MACI,sBAAsB;AAAA,IAClB;AAAA,EACJ;AAEA;AACJ,QAAM,UAAU,SAAS,uBAAuB;AAChD;AAAA,IACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,wBAAsB,OAAO,OAAO;AACxC;AAEO,SAAS,wBACZ,cACA,uBACI;AACJ,MAAG,SAAS,cAAc,sDAAsD;AAC5E;AACJ,QAAM,EAAE,iBAAiB,eAAe,cAAc,IAAI;AAC1D,QAAM,yBAAyB,cAAc,sBAAsB;AAEnE,QAAM,kBACF,uBAAuB,MAAM,OAAO,UAAU;AAElD,QAAM,0BACF,uBAAuB,MAAM,OAAO,UAAU,kBACxC,kBAAkB,uBAAuB,SAAS,kBAClD;AAEV,QAAM,mBACF,uBAAuB,OAAO;AAClC,QAAM,2BAA2B,KAAK;AAAA,IAClC;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,+BACF,OAAO,UAAU,OAAO,aAAa,uBAAuB;AAEhE,MAAI,+BAA+B,mBAAmB;AAElD,0BAAsB,MAAM,iBAAiB;AAC7C,0BAAsB,MAAM,OAAO,GAC/B,uBAAuB,QAAQ,gCACnC;AAAA,EACJ,OAAO;AACH,0BAAsB,MAAM,iBAAiB;AAC7C,0BAAsB,MAAM,OAAO,GAAG,wBAAwB;AAAA,EAClE;AAEA,wBAAsB,MAAM,MAAM,GAAG,uBAAuB;AAE5D,QAAM,cAAc,uBAAuB,eAAe,CAAC;AAE3D,QAAM,UAAU,SAAS,uBAAuB;AAChD;AAAA,IACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B,CAAC,SAAiB;AACxC,gBAAM,gBAAgB,cAAc;AAAA,YAChC,IAAI,uBAAuB,KAAK,IAAI;AAAA,UACxC;AACA,iBAAO;AAAA,QACX;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,wBAAsB,YAAY,OAAO;AAC7C;AAEA,SAAS,uBACL,eACA,OACa;AACb,QAAM,YAA2B,CAAC;AAClC,MAAI,iBAAiB,cAAc;AAEnC,SAAO,QAAQ,KAAK,mBAAmB,OAAO,SAAS,MAAM;AACzD,QAAI,CAAC,gBAAgB;AACjB,aAAO;AAAA,IACX;AAEA,QAAI,eAAe,aAAa,uBAAuB,GAAG;AACtD,gBAAU;AAAA,QACN,eAAe,aAAa,uBAAuB;AAAA,MACvD;AACA;AAAA,IACJ;AACA,qBAAiB,eAAe;AAAA,EACpC;AAEA,SAAO;AACX;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/generators/generateToolbar.tsx"],"sourcesContent":["import { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport {\n DATA_CSLP_ATTR_SELECTOR,\n LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX,\n RIGHT_EDGE_BUFFER,\n TOOLBAR_EDGE_BUFFER,\n TOP_EDGE_BUFFER,\n} from \"../utils/constants\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\n\nimport FieldToolbarComponent from \"../components/FieldToolbar\";\nimport { render } from \"preact\";\nimport FieldLabelWrapperComponent from \"../components/fieldLabelWrapper\";\n\nexport function appendFocusedToolbar(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement,\n hideOverlay: () => void\n): void {\n appendFieldPathDropdown(eventDetails, focusedToolbarElement);\n appendFieldToolbar(eventDetails, focusedToolbarElement, hideOverlay);\n}\n\nexport function appendFieldToolbar(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement,\n hideOverlay: () => void\n): void {\n if (\n focusedToolbarElement.querySelector(\n \".visual-builder__focused-toolbar__multiple-field-toolbar\"\n )\n )\n return;\n const wrapper = document.createDocumentFragment();\n render(\n <FieldToolbarComponent\n eventDetails={eventDetails}\n hideOverlay={hideOverlay}\n />,\n wrapper\n );\n\n focusedToolbarElement.append(wrapper);\n}\n\nexport function appendFieldPathDropdown(\n eventDetails: VisualBuilderCslpEventDetails,\n focusedToolbarElement: HTMLDivElement\n): void {\n if(document.querySelector(\".visual-builder__focused-toolbar__field-label-wrapper\"))\n return;\n const { editableElement: targetElement, fieldMetadata } = eventDetails;\n const targetElementDimension = targetElement.getBoundingClientRect();\n\n const distanceFromTop =\n targetElementDimension.top + window.scrollY - TOOLBAR_EDGE_BUFFER;\n // Position the toolbar at the top unless there's insufficient space or scrolling up is not possible (topmost element targetted).\n const adjustedDistanceFromTop =\n targetElementDimension.top + window.scrollY < TOP_EDGE_BUFFER\n ? distanceFromTop + targetElementDimension.height + TOP_EDGE_BUFFER\n : distanceFromTop;\n\n const distanceFromLeft =\n targetElementDimension.left - LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX;\n const adjustedDistanceFromLeft = Math.max(\n distanceFromLeft,\n TOOLBAR_EDGE_BUFFER\n );\n\n const targetElementRightEdgeOffset =\n window.scrollX + window.innerWidth - targetElementDimension.left;\n\n if (targetElementRightEdgeOffset < RIGHT_EDGE_BUFFER) {\n // Overflow / Cutoff on right edge\n focusedToolbarElement.style.justifyContent = \"flex-end\";\n focusedToolbarElement.style.left = `${\n targetElementDimension.right + LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX\n }px`;\n } else {\n focusedToolbarElement.style.justifyContent = \"flex-start\"; // default\n focusedToolbarElement.style.left = `${adjustedDistanceFromLeft}px`;\n }\n\n focusedToolbarElement.style.top = `${adjustedDistanceFromTop}px`;\n\n const parentPaths = collectParentCSLPPaths(targetElement, 2);\n\n const wrapper = document.createDocumentFragment();\n render(\n <FieldLabelWrapperComponent\n fieldMetadata={fieldMetadata}\n eventDetails={eventDetails}\n parentPaths={parentPaths}\n getParentEditableElement={(cslp: string) => {\n const parentElement = targetElement.closest(\n `[${DATA_CSLP_ATTR_SELECTOR}=\"${cslp}\"]`\n ) as HTMLElement | null;\n return parentElement;\n }}\n />,\n wrapper\n );\n\n focusedToolbarElement.appendChild(wrapper);\n}\n\nfunction collectParentCSLPPaths(\n targetElement: Element,\n count: number\n): Array<string> {\n const cslpPaths: Array<string> = [];\n let currentElement = targetElement.parentElement;\n\n while (count > 0 || currentElement === window.document.body) {\n if (!currentElement) {\n return cslpPaths;\n }\n\n if (currentElement.hasAttribute(DATA_CSLP_ATTR_SELECTOR)) {\n cslpPaths.push(\n currentElement.getAttribute(DATA_CSLP_ATTR_SELECTOR) as string\n );\n count--;\n }\n currentElement = currentElement.parentElement;\n }\n\n return cslpPaths;\n}\n"],"mappings":";;;AACA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAIP,OAAO,2BAA2B;AAClC,SAAS,cAAc;AACvB,OAAO,gCAAgC;AAwB/B;AAtBD,SAAS,qBACZ,cACA,uBACA,aACI;AACJ,0BAAwB,cAAc,qBAAqB;AAC3D,qBAAmB,cAAc,uBAAuB,WAAW;AACvE;AAEO,SAAS,mBACZ,cACA,uBACA,aACI;AACJ,MACI,sBAAsB;AAAA,IAClB;AAAA,EACJ;AAEA;AACJ,QAAM,UAAU,SAAS,uBAAuB;AAChD;AAAA,IACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,wBAAsB,OAAO,OAAO;AACxC;AAEO,SAAS,wBACZ,cACA,uBACI;AACJ,MAAG,SAAS,cAAc,uDAAuD;AAC7E;AACJ,QAAM,EAAE,iBAAiB,eAAe,cAAc,IAAI;AAC1D,QAAM,yBAAyB,cAAc,sBAAsB;AAEnE,QAAM,kBACF,uBAAuB,MAAM,OAAO,UAAU;AAElD,QAAM,0BACF,uBAAuB,MAAM,OAAO,UAAU,kBACxC,kBAAkB,uBAAuB,SAAS,kBAClD;AAEV,QAAM,mBACF,uBAAuB,OAAO;AAClC,QAAM,2BAA2B,KAAK;AAAA,IAClC;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,+BACF,OAAO,UAAU,OAAO,aAAa,uBAAuB;AAEhE,MAAI,+BAA+B,mBAAmB;AAElD,0BAAsB,MAAM,iBAAiB;AAC7C,0BAAsB,MAAM,OAAO,GAC/B,uBAAuB,QAAQ,gCACnC;AAAA,EACJ,OAAO;AACH,0BAAsB,MAAM,iBAAiB;AAC7C,0BAAsB,MAAM,OAAO,GAAG,wBAAwB;AAAA,EAClE;AAEA,wBAAsB,MAAM,MAAM,GAAG,uBAAuB;AAE5D,QAAM,cAAc,uBAAuB,eAAe,CAAC;AAE3D,QAAM,UAAU,SAAS,uBAAuB;AAChD;AAAA,IACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B,CAAC,SAAiB;AACxC,gBAAM,gBAAgB,cAAc;AAAA,YAChC,IAAI,uBAAuB,KAAK,IAAI;AAAA,UACxC;AACA,iBAAO;AAAA,QACX;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,wBAAsB,YAAY,OAAO;AAC7C;AAEA,SAAS,uBACL,eACA,OACa;AACb,QAAM,YAA2B,CAAC;AAClC,MAAI,iBAAiB,cAAc;AAEnC,SAAO,QAAQ,KAAK,mBAAmB,OAAO,SAAS,MAAM;AACzD,QAAI,CAAC,gBAAgB;AACjB,aAAO;AAAA,IACX;AAEA,QAAI,eAAe,aAAa,uBAAuB,GAAG;AACtD,gBAAU;AAAA,QACN,eAAe,aAAa,uBAAuB;AAAA,MACvD;AACA;AAAA,IACJ;AACA,qBAAiB,eAAe;AAAA,EACpC;AAEA,SAAO;AACX;","names":[]}
@@ -91,10 +91,16 @@ function removeEventListeners(params) {
91
91
  window.removeEventListener("mousemove", mousemoveHandler);
92
92
  }
93
93
  if (mouseleaveHandler) {
94
- document.documentElement.removeEventListener("mouseleave", mouseleaveHandler);
94
+ document.documentElement.removeEventListener(
95
+ "mouseleave",
96
+ mouseleaveHandler
97
+ );
95
98
  }
96
99
  if (mouseenterHandler) {
97
- document.documentElement.removeEventListener("mouseenter", mouseenterHandler);
100
+ document.documentElement.removeEventListener(
101
+ "mouseenter",
102
+ mouseenterHandler
103
+ );
98
104
  }
99
105
  eventListenersMap.clear();
100
106
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/listeners/index.ts"],"sourcesContent":["import EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport handleBuilderInteraction from \"./mouseClick\";\nimport handleMouseHover, {\n hideCustomCursor,\n hideHoverOutline,\n showCustomCursor,\n} from \"./mouseHover\";\n\ntype AddEventListenersParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\"\n>;\n\ntype RemoveEventListenersParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\"\n>;\nconst eventHandlers = {\n click: (params: AddEventListenersParams) => (event: MouseEvent) => {\n handleBuilderInteraction({\n event: event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n },\n mousemove: (params: AddEventListenersParams) => (event: MouseEvent) => {\n handleMouseHover({\n event: event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n customCursor: params.customCursor,\n });\n },\n mouseleave: (params: AddEventListenersParams) => () => {\n hideCustomCursor(params.customCursor);\n hideHoverOutline(params.visualBuilderContainer);\n },\n mouseenter: (params: AddEventListenersParams) => () => {\n showCustomCursor(params.customCursor);\n },\n};\nconst eventListenersMap = new Map<string, EventListener>();\nexport function addEventListeners(params: AddEventListenersParams): void {\n const clickHandler = eventHandlers.click(params);\n const mousemoveHandler = eventHandlers.mousemove(params);\n const mouseleaveHandler = eventHandlers.mouseleave(params);\n const mouseenterHandler = eventHandlers.mouseenter(params);\n\n eventListenersMap.set(\"click\", clickHandler as EventListener);\n eventListenersMap.set(\"mousemove\", mousemoveHandler as EventListener);\n eventListenersMap.set(\"mouseleave\", mouseleaveHandler);\n eventListenersMap.set(\"mouseenter\", mouseenterHandler);\n\n window.addEventListener(\"click\", clickHandler, { capture: true });\n window.addEventListener(\"mousemove\", mousemoveHandler);\n document.documentElement.addEventListener(\"mouseleave\", mouseleaveHandler);\n document.documentElement.addEventListener(\"mouseenter\", mouseenterHandler);\n}\n\nexport function removeEventListeners(params: RemoveEventListenersParams): void {\n const clickHandler = eventListenersMap.get(\"click\");\n const mousemoveHandler = eventListenersMap.get(\"mousemove\");\n const mouseleaveHandler = eventListenersMap.get(\"mouseleave\");\n const mouseenterHandler = eventListenersMap.get(\"mouseenter\");\n\n if (clickHandler) {\n window.removeEventListener(\"click\", clickHandler, { capture: true });\n }\n if (mousemoveHandler) {\n window.removeEventListener(\"mousemove\", mousemoveHandler);\n }\n if (mouseleaveHandler) {\n document.documentElement.removeEventListener(\"mouseleave\", mouseleaveHandler);\n }\n if (mouseenterHandler) {\n document.documentElement.removeEventListener(\"mouseenter\", mouseenterHandler);\n }\n\n eventListenersMap.clear();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,eAA8B;AAC9B,wBAAqC;AACrC,wBAIO;AAWP,IAAM,gBAAgB;AAAA,EAClB,OAAO,CAAC,WAAoC,CAAC,UAAsB;AAC/D,0BAAAA,SAAyB;AAAA,MACrB;AAAA,MACA,gBAAgB,OAAO;AAAA,MACvB,wBAAwB,OAAO;AAAA,MAC/B,6BACI,uBAAc,yBAAyB,MAClC;AAAA,MACT,gBAAgB,OAAO;AAAA,MACvB,gBAAgB,OAAO;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA,EACA,WAAW,CAAC,WAAoC,CAAC,UAAsB;AACnE,0BAAAC,SAAiB;AAAA,MACb;AAAA,MACA,gBAAgB,OAAO;AAAA,MACvB,wBAAwB,OAAO;AAAA,MAC/B,cAAc,OAAO;AAAA,IACzB,CAAC;AAAA,EACL;AAAA,EACA,YAAY,CAAC,WAAoC,MAAM;AACnD,4CAAiB,OAAO,YAAY;AACpC,4CAAiB,OAAO,sBAAsB;AAAA,EAClD;AAAA,EACA,YAAY,CAAC,WAAoC,MAAM;AACnD,4CAAiB,OAAO,YAAY;AAAA,EACxC;AACJ;AACA,IAAM,oBAAoB,oBAAI,IAA2B;AAClD,SAAS,kBAAkB,QAAuC;AACrE,QAAM,eAAe,cAAc,MAAM,MAAM;AAC/C,QAAM,mBAAmB,cAAc,UAAU,MAAM;AACvD,QAAM,oBAAoB,cAAc,WAAW,MAAM;AACzD,QAAM,oBAAoB,cAAc,WAAW,MAAM;AAEzD,oBAAkB,IAAI,SAAS,YAA6B;AAC5D,oBAAkB,IAAI,aAAa,gBAAiC;AACpE,oBAAkB,IAAI,cAAc,iBAAiB;AACrD,oBAAkB,IAAI,cAAc,iBAAiB;AAErD,SAAO,iBAAiB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;AAChE,SAAO,iBAAiB,aAAa,gBAAgB;AACrD,WAAS,gBAAgB,iBAAiB,cAAc,iBAAiB;AACzE,WAAS,gBAAgB,iBAAiB,cAAc,iBAAiB;AAC7E;AAEO,SAAS,qBAAqB,QAA0C;AAC3E,QAAM,eAAe,kBAAkB,IAAI,OAAO;AAClD,QAAM,mBAAmB,kBAAkB,IAAI,WAAW;AAC1D,QAAM,oBAAoB,kBAAkB,IAAI,YAAY;AAC5D,QAAM,oBAAoB,kBAAkB,IAAI,YAAY;AAE5D,MAAI,cAAc;AACd,WAAO,oBAAoB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;AAAA,EACvE;AACA,MAAI,kBAAkB;AAClB,WAAO,oBAAoB,aAAa,gBAAgB;AAAA,EAC5D;AACA,MAAI,mBAAmB;AACnB,aAAS,gBAAgB,oBAAoB,cAAc,iBAAiB;AAAA,EAChF;AACA,MAAI,mBAAmB;AACnB,aAAS,gBAAgB,oBAAoB,cAAc,iBAAiB;AAAA,EAChF;AAEA,oBAAkB,MAAM;AAC5B;","names":["handleBuilderInteraction","handleMouseHover"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/listeners/index.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport handleBuilderInteraction from \"./mouseClick\";\nimport handleMouseHover, {\n hideCustomCursor,\n hideHoverOutline,\n showCustomCursor,\n} from \"./mouseHover\";\nimport EventListenerHandlerParams from \"./types\";\n\ntype AddEventListenersParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\"\n>;\n\ntype RemoveEventListenersParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\"\n>;\nconst eventHandlers = {\n click: (params: AddEventListenersParams) => (event: MouseEvent) => {\n handleBuilderInteraction({\n event: event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n },\n mousemove: (params: AddEventListenersParams) => (event: MouseEvent) => {\n handleMouseHover({\n event: event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n customCursor: params.customCursor,\n });\n },\n mouseleave: (params: AddEventListenersParams) => () => {\n hideCustomCursor(params.customCursor);\n hideHoverOutline(params.visualBuilderContainer);\n },\n mouseenter: (params: AddEventListenersParams) => () => {\n showCustomCursor(params.customCursor);\n },\n};\nconst eventListenersMap = new Map<string, EventListener>();\nexport function addEventListeners(params: AddEventListenersParams): void {\n const clickHandler = eventHandlers.click(params);\n const mousemoveHandler = eventHandlers.mousemove(params);\n const mouseleaveHandler = eventHandlers.mouseleave(params);\n const mouseenterHandler = eventHandlers.mouseenter(params);\n\n eventListenersMap.set(\"click\", clickHandler as EventListener);\n eventListenersMap.set(\"mousemove\", mousemoveHandler as EventListener);\n eventListenersMap.set(\"mouseleave\", mouseleaveHandler);\n eventListenersMap.set(\"mouseenter\", mouseenterHandler);\n\n window.addEventListener(\"click\", clickHandler, { capture: true });\n window.addEventListener(\"mousemove\", mousemoveHandler);\n document.documentElement.addEventListener(\"mouseleave\", mouseleaveHandler);\n document.documentElement.addEventListener(\"mouseenter\", mouseenterHandler);\n}\n\nexport function removeEventListeners(params: RemoveEventListenersParams): void {\n const clickHandler = eventListenersMap.get(\"click\");\n const mousemoveHandler = eventListenersMap.get(\"mousemove\");\n const mouseleaveHandler = eventListenersMap.get(\"mouseleave\");\n const mouseenterHandler = eventListenersMap.get(\"mouseenter\");\n\n if (clickHandler) {\n window.removeEventListener(\"click\", clickHandler, { capture: true });\n }\n if (mousemoveHandler) {\n window.removeEventListener(\"mousemove\", mousemoveHandler);\n }\n if (mouseleaveHandler) {\n document.documentElement.removeEventListener(\n \"mouseleave\",\n mouseleaveHandler\n );\n }\n if (mouseenterHandler) {\n document.documentElement.removeEventListener(\n \"mouseenter\",\n mouseenterHandler\n );\n }\n\n eventListenersMap.clear();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAA8B;AAC9B,wBAAqC;AACrC,wBAIO;AAYP,IAAM,gBAAgB;AAAA,EAClB,OAAO,CAAC,WAAoC,CAAC,UAAsB;AAC/D,0BAAAA,SAAyB;AAAA,MACrB;AAAA,MACA,gBAAgB,OAAO;AAAA,MACvB,wBAAwB,OAAO;AAAA,MAC/B,6BACI,uBAAc,yBAAyB,MAClC;AAAA,MACT,gBAAgB,OAAO;AAAA,MACvB,gBAAgB,OAAO;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA,EACA,WAAW,CAAC,WAAoC,CAAC,UAAsB;AACnE,0BAAAC,SAAiB;AAAA,MACb;AAAA,MACA,gBAAgB,OAAO;AAAA,MACvB,wBAAwB,OAAO;AAAA,MAC/B,cAAc,OAAO;AAAA,IACzB,CAAC;AAAA,EACL;AAAA,EACA,YAAY,CAAC,WAAoC,MAAM;AACnD,4CAAiB,OAAO,YAAY;AACpC,4CAAiB,OAAO,sBAAsB;AAAA,EAClD;AAAA,EACA,YAAY,CAAC,WAAoC,MAAM;AACnD,4CAAiB,OAAO,YAAY;AAAA,EACxC;AACJ;AACA,IAAM,oBAAoB,oBAAI,IAA2B;AAClD,SAAS,kBAAkB,QAAuC;AACrE,QAAM,eAAe,cAAc,MAAM,MAAM;AAC/C,QAAM,mBAAmB,cAAc,UAAU,MAAM;AACvD,QAAM,oBAAoB,cAAc,WAAW,MAAM;AACzD,QAAM,oBAAoB,cAAc,WAAW,MAAM;AAEzD,oBAAkB,IAAI,SAAS,YAA6B;AAC5D,oBAAkB,IAAI,aAAa,gBAAiC;AACpE,oBAAkB,IAAI,cAAc,iBAAiB;AACrD,oBAAkB,IAAI,cAAc,iBAAiB;AAErD,SAAO,iBAAiB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;AAChE,SAAO,iBAAiB,aAAa,gBAAgB;AACrD,WAAS,gBAAgB,iBAAiB,cAAc,iBAAiB;AACzE,WAAS,gBAAgB,iBAAiB,cAAc,iBAAiB;AAC7E;AAEO,SAAS,qBAAqB,QAA0C;AAC3E,QAAM,eAAe,kBAAkB,IAAI,OAAO;AAClD,QAAM,mBAAmB,kBAAkB,IAAI,WAAW;AAC1D,QAAM,oBAAoB,kBAAkB,IAAI,YAAY;AAC5D,QAAM,oBAAoB,kBAAkB,IAAI,YAAY;AAE5D,MAAI,cAAc;AACd,WAAO,oBAAoB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;AAAA,EACvE;AACA,MAAI,kBAAkB;AAClB,WAAO,oBAAoB,aAAa,gBAAgB;AAAA,EAC5D;AACA,MAAI,mBAAmB;AACnB,aAAS,gBAAgB;AAAA,MACrB;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACA,MAAI,mBAAmB;AACnB,aAAS,gBAAgB;AAAA,MACrB;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAEA,oBAAkB,MAAM;AAC5B;","names":["handleBuilderInteraction","handleMouseHover"]}
@@ -62,10 +62,16 @@ function removeEventListeners(params) {
62
62
  window.removeEventListener("mousemove", mousemoveHandler);
63
63
  }
64
64
  if (mouseleaveHandler) {
65
- document.documentElement.removeEventListener("mouseleave", mouseleaveHandler);
65
+ document.documentElement.removeEventListener(
66
+ "mouseleave",
67
+ mouseleaveHandler
68
+ );
66
69
  }
67
70
  if (mouseenterHandler) {
68
- document.documentElement.removeEventListener("mouseenter", mouseenterHandler);
71
+ document.documentElement.removeEventListener(
72
+ "mouseenter",
73
+ mouseenterHandler
74
+ );
69
75
  }
70
76
  eventListenersMap.clear();
71
77
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/listeners/index.ts"],"sourcesContent":["import EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport handleBuilderInteraction from \"./mouseClick\";\nimport handleMouseHover, {\n hideCustomCursor,\n hideHoverOutline,\n showCustomCursor,\n} from \"./mouseHover\";\n\ntype AddEventListenersParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\"\n>;\n\ntype RemoveEventListenersParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\"\n>;\nconst eventHandlers = {\n click: (params: AddEventListenersParams) => (event: MouseEvent) => {\n handleBuilderInteraction({\n event: event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n },\n mousemove: (params: AddEventListenersParams) => (event: MouseEvent) => {\n handleMouseHover({\n event: event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n customCursor: params.customCursor,\n });\n },\n mouseleave: (params: AddEventListenersParams) => () => {\n hideCustomCursor(params.customCursor);\n hideHoverOutline(params.visualBuilderContainer);\n },\n mouseenter: (params: AddEventListenersParams) => () => {\n showCustomCursor(params.customCursor);\n },\n};\nconst eventListenersMap = new Map<string, EventListener>();\nexport function addEventListeners(params: AddEventListenersParams): void {\n const clickHandler = eventHandlers.click(params);\n const mousemoveHandler = eventHandlers.mousemove(params);\n const mouseleaveHandler = eventHandlers.mouseleave(params);\n const mouseenterHandler = eventHandlers.mouseenter(params);\n\n eventListenersMap.set(\"click\", clickHandler as EventListener);\n eventListenersMap.set(\"mousemove\", mousemoveHandler as EventListener);\n eventListenersMap.set(\"mouseleave\", mouseleaveHandler);\n eventListenersMap.set(\"mouseenter\", mouseenterHandler);\n\n window.addEventListener(\"click\", clickHandler, { capture: true });\n window.addEventListener(\"mousemove\", mousemoveHandler);\n document.documentElement.addEventListener(\"mouseleave\", mouseleaveHandler);\n document.documentElement.addEventListener(\"mouseenter\", mouseenterHandler);\n}\n\nexport function removeEventListeners(params: RemoveEventListenersParams): void {\n const clickHandler = eventListenersMap.get(\"click\");\n const mousemoveHandler = eventListenersMap.get(\"mousemove\");\n const mouseleaveHandler = eventListenersMap.get(\"mouseleave\");\n const mouseenterHandler = eventListenersMap.get(\"mouseenter\");\n\n if (clickHandler) {\n window.removeEventListener(\"click\", clickHandler, { capture: true });\n }\n if (mousemoveHandler) {\n window.removeEventListener(\"mousemove\", mousemoveHandler);\n }\n if (mouseleaveHandler) {\n document.documentElement.removeEventListener(\"mouseleave\", mouseleaveHandler);\n }\n if (mouseenterHandler) {\n document.documentElement.removeEventListener(\"mouseenter\", mouseenterHandler);\n }\n\n eventListenersMap.clear();\n}\n"],"mappings":";;;AACA,SAAS,qBAAqB;AAC9B,OAAO,8BAA8B;AACrC,OAAO;AAAA,EACH;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAWP,IAAM,gBAAgB;AAAA,EAClB,OAAO,CAAC,WAAoC,CAAC,UAAsB;AAC/D,6BAAyB;AAAA,MACrB;AAAA,MACA,gBAAgB,OAAO;AAAA,MACvB,wBAAwB,OAAO;AAAA,MAC/B,6BACI,cAAc,yBAAyB,MAClC;AAAA,MACT,gBAAgB,OAAO;AAAA,MACvB,gBAAgB,OAAO;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA,EACA,WAAW,CAAC,WAAoC,CAAC,UAAsB;AACnE,qBAAiB;AAAA,MACb;AAAA,MACA,gBAAgB,OAAO;AAAA,MACvB,wBAAwB,OAAO;AAAA,MAC/B,cAAc,OAAO;AAAA,IACzB,CAAC;AAAA,EACL;AAAA,EACA,YAAY,CAAC,WAAoC,MAAM;AACnD,qBAAiB,OAAO,YAAY;AACpC,qBAAiB,OAAO,sBAAsB;AAAA,EAClD;AAAA,EACA,YAAY,CAAC,WAAoC,MAAM;AACnD,qBAAiB,OAAO,YAAY;AAAA,EACxC;AACJ;AACA,IAAM,oBAAoB,oBAAI,IAA2B;AAClD,SAAS,kBAAkB,QAAuC;AACrE,QAAM,eAAe,cAAc,MAAM,MAAM;AAC/C,QAAM,mBAAmB,cAAc,UAAU,MAAM;AACvD,QAAM,oBAAoB,cAAc,WAAW,MAAM;AACzD,QAAM,oBAAoB,cAAc,WAAW,MAAM;AAEzD,oBAAkB,IAAI,SAAS,YAA6B;AAC5D,oBAAkB,IAAI,aAAa,gBAAiC;AACpE,oBAAkB,IAAI,cAAc,iBAAiB;AACrD,oBAAkB,IAAI,cAAc,iBAAiB;AAErD,SAAO,iBAAiB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;AAChE,SAAO,iBAAiB,aAAa,gBAAgB;AACrD,WAAS,gBAAgB,iBAAiB,cAAc,iBAAiB;AACzE,WAAS,gBAAgB,iBAAiB,cAAc,iBAAiB;AAC7E;AAEO,SAAS,qBAAqB,QAA0C;AAC3E,QAAM,eAAe,kBAAkB,IAAI,OAAO;AAClD,QAAM,mBAAmB,kBAAkB,IAAI,WAAW;AAC1D,QAAM,oBAAoB,kBAAkB,IAAI,YAAY;AAC5D,QAAM,oBAAoB,kBAAkB,IAAI,YAAY;AAE5D,MAAI,cAAc;AACd,WAAO,oBAAoB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;AAAA,EACvE;AACA,MAAI,kBAAkB;AAClB,WAAO,oBAAoB,aAAa,gBAAgB;AAAA,EAC5D;AACA,MAAI,mBAAmB;AACnB,aAAS,gBAAgB,oBAAoB,cAAc,iBAAiB;AAAA,EAChF;AACA,MAAI,mBAAmB;AACnB,aAAS,gBAAgB,oBAAoB,cAAc,iBAAiB;AAAA,EAChF;AAEA,oBAAkB,MAAM;AAC5B;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/listeners/index.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport handleBuilderInteraction from \"./mouseClick\";\nimport handleMouseHover, {\n hideCustomCursor,\n hideHoverOutline,\n showCustomCursor,\n} from \"./mouseHover\";\nimport EventListenerHandlerParams from \"./types\";\n\ntype AddEventListenersParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\"\n>;\n\ntype RemoveEventListenersParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\"\n>;\nconst eventHandlers = {\n click: (params: AddEventListenersParams) => (event: MouseEvent) => {\n handleBuilderInteraction({\n event: event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n previousSelectedEditableDOM:\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n },\n mousemove: (params: AddEventListenersParams) => (event: MouseEvent) => {\n handleMouseHover({\n event: event,\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n customCursor: params.customCursor,\n });\n },\n mouseleave: (params: AddEventListenersParams) => () => {\n hideCustomCursor(params.customCursor);\n hideHoverOutline(params.visualBuilderContainer);\n },\n mouseenter: (params: AddEventListenersParams) => () => {\n showCustomCursor(params.customCursor);\n },\n};\nconst eventListenersMap = new Map<string, EventListener>();\nexport function addEventListeners(params: AddEventListenersParams): void {\n const clickHandler = eventHandlers.click(params);\n const mousemoveHandler = eventHandlers.mousemove(params);\n const mouseleaveHandler = eventHandlers.mouseleave(params);\n const mouseenterHandler = eventHandlers.mouseenter(params);\n\n eventListenersMap.set(\"click\", clickHandler as EventListener);\n eventListenersMap.set(\"mousemove\", mousemoveHandler as EventListener);\n eventListenersMap.set(\"mouseleave\", mouseleaveHandler);\n eventListenersMap.set(\"mouseenter\", mouseenterHandler);\n\n window.addEventListener(\"click\", clickHandler, { capture: true });\n window.addEventListener(\"mousemove\", mousemoveHandler);\n document.documentElement.addEventListener(\"mouseleave\", mouseleaveHandler);\n document.documentElement.addEventListener(\"mouseenter\", mouseenterHandler);\n}\n\nexport function removeEventListeners(params: RemoveEventListenersParams): void {\n const clickHandler = eventListenersMap.get(\"click\");\n const mousemoveHandler = eventListenersMap.get(\"mousemove\");\n const mouseleaveHandler = eventListenersMap.get(\"mouseleave\");\n const mouseenterHandler = eventListenersMap.get(\"mouseenter\");\n\n if (clickHandler) {\n window.removeEventListener(\"click\", clickHandler, { capture: true });\n }\n if (mousemoveHandler) {\n window.removeEventListener(\"mousemove\", mousemoveHandler);\n }\n if (mouseleaveHandler) {\n document.documentElement.removeEventListener(\n \"mouseleave\",\n mouseleaveHandler\n );\n }\n if (mouseenterHandler) {\n document.documentElement.removeEventListener(\n \"mouseenter\",\n mouseenterHandler\n );\n }\n\n eventListenersMap.clear();\n}\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAC9B,OAAO,8BAA8B;AACrC,OAAO;AAAA,EACH;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAYP,IAAM,gBAAgB;AAAA,EAClB,OAAO,CAAC,WAAoC,CAAC,UAAsB;AAC/D,6BAAyB;AAAA,MACrB;AAAA,MACA,gBAAgB,OAAO;AAAA,MACvB,wBAAwB,OAAO;AAAA,MAC/B,6BACI,cAAc,yBAAyB,MAClC;AAAA,MACT,gBAAgB,OAAO;AAAA,MACvB,gBAAgB,OAAO;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA,EACA,WAAW,CAAC,WAAoC,CAAC,UAAsB;AACnE,qBAAiB;AAAA,MACb;AAAA,MACA,gBAAgB,OAAO;AAAA,MACvB,wBAAwB,OAAO;AAAA,MAC/B,cAAc,OAAO;AAAA,IACzB,CAAC;AAAA,EACL;AAAA,EACA,YAAY,CAAC,WAAoC,MAAM;AACnD,qBAAiB,OAAO,YAAY;AACpC,qBAAiB,OAAO,sBAAsB;AAAA,EAClD;AAAA,EACA,YAAY,CAAC,WAAoC,MAAM;AACnD,qBAAiB,OAAO,YAAY;AAAA,EACxC;AACJ;AACA,IAAM,oBAAoB,oBAAI,IAA2B;AAClD,SAAS,kBAAkB,QAAuC;AACrE,QAAM,eAAe,cAAc,MAAM,MAAM;AAC/C,QAAM,mBAAmB,cAAc,UAAU,MAAM;AACvD,QAAM,oBAAoB,cAAc,WAAW,MAAM;AACzD,QAAM,oBAAoB,cAAc,WAAW,MAAM;AAEzD,oBAAkB,IAAI,SAAS,YAA6B;AAC5D,oBAAkB,IAAI,aAAa,gBAAiC;AACpE,oBAAkB,IAAI,cAAc,iBAAiB;AACrD,oBAAkB,IAAI,cAAc,iBAAiB;AAErD,SAAO,iBAAiB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;AAChE,SAAO,iBAAiB,aAAa,gBAAgB;AACrD,WAAS,gBAAgB,iBAAiB,cAAc,iBAAiB;AACzE,WAAS,gBAAgB,iBAAiB,cAAc,iBAAiB;AAC7E;AAEO,SAAS,qBAAqB,QAA0C;AAC3E,QAAM,eAAe,kBAAkB,IAAI,OAAO;AAClD,QAAM,mBAAmB,kBAAkB,IAAI,WAAW;AAC1D,QAAM,oBAAoB,kBAAkB,IAAI,YAAY;AAC5D,QAAM,oBAAoB,kBAAkB,IAAI,YAAY;AAE5D,MAAI,cAAc;AACd,WAAO,oBAAoB,SAAS,cAAc,EAAE,SAAS,KAAK,CAAC;AAAA,EACvE;AACA,MAAI,kBAAkB;AAClB,WAAO,oBAAoB,aAAa,gBAAgB;AAAA,EAC5D;AACA,MAAI,mBAAmB;AACnB,aAAS,gBAAgB;AAAA,MACrB;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACA,MAAI,mBAAmB;AACnB,aAAS,gBAAgB;AAAA,MACrB;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAEA,oBAAkB,MAAM;AAC5B;","names":[]}
@@ -31,7 +31,8 @@ __export(constants_exports, {
31
31
  TOP_EDGE_BUFFER: () => TOP_EDGE_BUFFER,
32
32
  VISUAL_BUILDER_CHANNEL_ID: () => VISUAL_BUILDER_CHANNEL_ID,
33
33
  VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY: () => VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
34
- numericInputRegex: () => numericInputRegex
34
+ numericInputRegex: () => numericInputRegex,
35
+ unicodeNonBreakingSpace: () => unicodeNonBreakingSpace
35
36
  });
36
37
  module.exports = __toCommonJS(constants_exports);
37
38
  var import_types = require("./types/index.types.cjs");
@@ -66,6 +67,7 @@ var DEFAULT_MULTIPLE_FIELDS = [
66
67
  import_types.FieldDataType.GROUP,
67
68
  import_types.FieldDataType.BLOCK
68
69
  ];
70
+ var unicodeNonBreakingSpace = "\xA0";
69
71
  // Annotate the CommonJS export names for ESM import in node:
70
72
  0 && (module.exports = {
71
73
  ALLOWED_INLINE_EDITABLE_FIELD,
@@ -79,6 +81,7 @@ var DEFAULT_MULTIPLE_FIELDS = [
79
81
  TOP_EDGE_BUFFER,
80
82
  VISUAL_BUILDER_CHANNEL_ID,
81
83
  VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
82
- numericInputRegex
84
+ numericInputRegex,
85
+ unicodeNonBreakingSpace
83
86
  });
84
87
  //# sourceMappingURL=constants.cjs.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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;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,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;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,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA0B;","names":[]}
@@ -17,5 +17,6 @@ declare const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[];
17
17
  declare const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[];
18
18
  declare const ALLOWED_REPLACE_FIELDS: FieldDataType[];
19
19
  declare const DEFAULT_MULTIPLE_FIELDS: FieldDataType[];
20
+ declare const unicodeNonBreakingSpace = "\u00A0";
20
21
 
21
- export { ALLOWED_INLINE_EDITABLE_FIELD, ALLOWED_MODAL_EDITABLE_FIELD, ALLOWED_REPLACE_FIELDS, DATA_CSLP_ATTR_SELECTOR, DEFAULT_MULTIPLE_FIELDS, LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX, RIGHT_EDGE_BUFFER, TOOLBAR_EDGE_BUFFER, TOP_EDGE_BUFFER, VISUAL_BUILDER_CHANNEL_ID, VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY, numericInputRegex };
22
+ export { ALLOWED_INLINE_EDITABLE_FIELD, ALLOWED_MODAL_EDITABLE_FIELD, ALLOWED_REPLACE_FIELDS, DATA_CSLP_ATTR_SELECTOR, DEFAULT_MULTIPLE_FIELDS, LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX, RIGHT_EDGE_BUFFER, TOOLBAR_EDGE_BUFFER, TOP_EDGE_BUFFER, VISUAL_BUILDER_CHANNEL_ID, VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY, numericInputRegex, unicodeNonBreakingSpace };
@@ -17,5 +17,6 @@ declare const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[];
17
17
  declare const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[];
18
18
  declare const ALLOWED_REPLACE_FIELDS: FieldDataType[];
19
19
  declare const DEFAULT_MULTIPLE_FIELDS: FieldDataType[];
20
+ declare const unicodeNonBreakingSpace = "\u00A0";
20
21
 
21
- export { ALLOWED_INLINE_EDITABLE_FIELD, ALLOWED_MODAL_EDITABLE_FIELD, ALLOWED_REPLACE_FIELDS, DATA_CSLP_ATTR_SELECTOR, DEFAULT_MULTIPLE_FIELDS, LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX, RIGHT_EDGE_BUFFER, TOOLBAR_EDGE_BUFFER, TOP_EDGE_BUFFER, VISUAL_BUILDER_CHANNEL_ID, VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY, numericInputRegex };
22
+ export { ALLOWED_INLINE_EDITABLE_FIELD, ALLOWED_MODAL_EDITABLE_FIELD, ALLOWED_REPLACE_FIELDS, DATA_CSLP_ATTR_SELECTOR, DEFAULT_MULTIPLE_FIELDS, LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX, RIGHT_EDGE_BUFFER, TOOLBAR_EDGE_BUFFER, TOP_EDGE_BUFFER, VISUAL_BUILDER_CHANNEL_ID, VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY, numericInputRegex, unicodeNonBreakingSpace };
@@ -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 : fieldSchema.field_metadata.multiline) {
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 : fieldSchema.field_metadata.allow_rich_text) {
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 : fieldSchema.field_metadata.markdown) {
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?.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;AACtE,MAAG,CAAC,YAAa;AACjB,MAAI,OAAO,eAAe,KAAK,aAAa,eAAe,GAAG;AAC1D,WAAO,2BAAc;AAAA,EACzB;AAEA,UAAQ,YAAY,WAAW;AAAA,IAC3B,KAAK,QAAQ;AACT,UAAI,2CAAa,eAAe,WAAW;AACvC,eAAO,2BAAc;AAAA,MACzB,WAAW,2CAAa,eAAe,iBAAiB;AACpD,eAAO,2BAAc;AAAA,MACzB,WAAW,2CAAa,eAAe,UAAU;AAC7C,eAAO,2BAAc;AAAA,MACzB,WAAW,YAAY,MAAM;AACzB,eAAO,2BAAc;AAAA,MACzB,WACI,YAAY,QAAQ,SACpB,YAAY,eAAe,UAC7B;AACE,eAAO,2BAAc;AAAA,MACzB,OAAO;AACH,eAAO,2BAAc;AAAA,MACzB;AAAA,IACJ;AAAA,IACA,KAAK,QAAQ;AACT,UAAI,YAAY,eAAe,gBAAgB;AAC3C,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":[]}
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 : fieldSchema.field_metadata.multiline) {
13
+ if ((_a = fieldSchema.field_metadata) == null ? void 0 : _a.multiline) {
13
14
  return FieldDataType.MULTILINE;
14
- } else if (fieldSchema == null ? void 0 : fieldSchema.field_metadata.allow_rich_text) {
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 : fieldSchema.field_metadata.markdown) {
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?.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;AACtE,MAAG,CAAC,YAAa;AACjB,MAAI,OAAO,eAAe,KAAK,aAAa,eAAe,GAAG;AAC1D,WAAO,cAAc;AAAA,EACzB;AAEA,UAAQ,YAAY,WAAW;AAAA,IAC3B,KAAK,QAAQ;AACT,UAAI,2CAAa,eAAe,WAAW;AACvC,eAAO,cAAc;AAAA,MACzB,WAAW,2CAAa,eAAe,iBAAiB;AACpD,eAAO,cAAc;AAAA,MACzB,WAAW,2CAAa,eAAe,UAAU;AAC7C,eAAO,cAAc;AAAA,MACzB,WAAW,YAAY,MAAM;AACzB,eAAO,cAAc;AAAA,MACzB,WACI,YAAY,QAAQ,SACpB,YAAY,eAAe,UAC7B;AACE,eAAO,cAAc;AAAA,MACzB,OAAO;AACH,eAAO,cAAc;AAAA,MACzB;AAAA,IACJ;AAAA,IACA,KAAK,QAAQ;AACT,UAAI,YAAY,eAAe,gBAAgB;AAC3C,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":[]}
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":[]}