@contentstack/live-preview-utils 3.3.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/legacy/common/inIframe.cjs +15 -2
- package/dist/legacy/common/inIframe.cjs.map +1 -1
- package/dist/legacy/common/inIframe.d.cts +2 -1
- package/dist/legacy/common/inIframe.d.ts +2 -1
- package/dist/legacy/common/inIframe.js +13 -1
- package/dist/legacy/common/inIframe.js.map +1 -1
- package/dist/legacy/light-sdk.cjs +1 -1
- package/dist/legacy/light-sdk.js +1 -1
- package/dist/legacy/livePreview/editButton/editButton.cjs +1 -1
- package/dist/legacy/livePreview/editButton/editButton.cjs.map +1 -1
- package/dist/legacy/livePreview/editButton/editButton.js +2 -2
- package/dist/legacy/livePreview/editButton/editButton.js.map +1 -1
- package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs +7 -2
- package/dist/legacy/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
- package/dist/legacy/livePreview/eventManager/livePreviewEventManager.js +7 -2
- package/dist/legacy/livePreview/eventManager/livePreviewEventManager.js.map +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +44 -8
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +47 -9
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
- package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs +15 -0
- package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs.map +1 -1
- package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +11 -1
- package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +11 -1
- package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js +10 -0
- package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js.map +1 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
- package/dist/legacy/utils/addLivePreviewQueryTags.cjs +7 -1
- package/dist/legacy/utils/addLivePreviewQueryTags.cjs.map +1 -1
- package/dist/legacy/utils/addLivePreviewQueryTags.js +7 -1
- package/dist/legacy/utils/addLivePreviewQueryTags.js.map +1 -1
- package/dist/legacy/utils/index.cjs +8 -4
- package/dist/legacy/utils/index.cjs.map +1 -1
- package/dist/legacy/utils/index.js +8 -4
- package/dist/legacy/utils/index.js.map +1 -1
- package/dist/legacy/visualBuilder/components/FieldLocationAppList.cjs +186 -0
- package/dist/legacy/visualBuilder/components/FieldLocationAppList.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/FieldLocationAppList.d.cts +35 -0
- package/dist/legacy/visualBuilder/components/FieldLocationAppList.d.ts +35 -0
- package/dist/legacy/visualBuilder/components/FieldLocationAppList.js +153 -0
- package/dist/legacy/visualBuilder/components/FieldLocationAppList.js.map +1 -0
- package/dist/legacy/visualBuilder/components/FieldLocationIcon.cjs +125 -0
- package/dist/legacy/visualBuilder/components/FieldLocationIcon.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/FieldLocationIcon.d.cts +13 -0
- package/dist/legacy/visualBuilder/components/FieldLocationIcon.d.ts +13 -0
- package/dist/legacy/visualBuilder/components/FieldLocationIcon.js +92 -0
- package/dist/legacy/visualBuilder/components/FieldLocationIcon.js.map +1 -0
- package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +185 -117
- package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/FieldToolbar.d.cts +3 -1
- package/dist/legacy/visualBuilder/components/FieldToolbar.d.ts +3 -1
- package/dist/legacy/visualBuilder/components/FieldToolbar.js +186 -118
- package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
- package/dist/legacy/visualBuilder/components/emptyBlock.cjs +26 -5
- package/dist/legacy/visualBuilder/components/emptyBlock.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/emptyBlock.js +26 -5
- package/dist/legacy/visualBuilder/components/emptyBlock.js.map +1 -1
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs +6 -4
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js +6 -4
- package/dist/legacy/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
- package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.cjs +78 -0
- package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.d.cts +9 -0
- package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.d.ts +9 -0
- package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.js +53 -0
- package/dist/legacy/visualBuilder/components/icons/EmptyAppIcon.js.map +1 -0
- package/dist/legacy/visualBuilder/components/icons/index.cjs +19 -0
- package/dist/legacy/visualBuilder/components/icons/index.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/icons/index.d.cts +2 -1
- package/dist/legacy/visualBuilder/components/icons/index.d.ts +2 -1
- package/dist/legacy/visualBuilder/components/icons/index.js +18 -0
- package/dist/legacy/visualBuilder/components/icons/index.js.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +8 -5
- package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateToolbar.js +8 -5
- package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
- package/dist/legacy/visualBuilder/index.cjs +11 -1
- package/dist/legacy/visualBuilder/index.cjs.map +1 -1
- package/dist/legacy/visualBuilder/index.js +11 -1
- package/dist/legacy/visualBuilder/index.js.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +16 -17
- package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.js +16 -17
- package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +67 -59
- package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseHover.js +67 -59
- package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +72 -0
- package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -0
- package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +14 -0
- package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +14 -0
- package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +49 -0
- package/dist/legacy/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -0
- package/dist/legacy/visualBuilder/utils/getEntryPermissions.cjs +2 -1
- package/dist/legacy/visualBuilder/utils/getEntryPermissions.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/getEntryPermissions.js +2 -1
- package/dist/legacy/visualBuilder/utils/getEntryPermissions.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs +79 -0
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -0
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.cts +18 -0
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.d.ts +18 -0
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js +46 -0
- package/dist/legacy/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -0
- package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +4 -3
- package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +4 -3
- package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs +43 -14
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.cts +3 -12
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.d.ts +3 -12
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.js +43 -14
- package/dist/legacy/visualBuilder/utils/isFieldDisabled.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +5 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +6 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +6 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +5 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +6 -4
- package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/updateFocussedState.js +6 -4
- package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
- package/dist/legacy/visualBuilder/visualBuilder.style.cjs +118 -3
- package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
- package/dist/legacy/visualBuilder/visualBuilder.style.d.cts +18 -0
- package/dist/legacy/visualBuilder/visualBuilder.style.d.ts +18 -0
- package/dist/legacy/visualBuilder/visualBuilder.style.js +118 -3
- package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
- package/dist/modern/common/inIframe.cjs +15 -2
- package/dist/modern/common/inIframe.cjs.map +1 -1
- package/dist/modern/common/inIframe.d.cts +2 -1
- package/dist/modern/common/inIframe.d.ts +2 -1
- package/dist/modern/common/inIframe.js +13 -1
- package/dist/modern/common/inIframe.js.map +1 -1
- package/dist/modern/light-sdk.cjs +1 -1
- package/dist/modern/light-sdk.js +1 -1
- package/dist/modern/livePreview/editButton/editButton.cjs +1 -1
- package/dist/modern/livePreview/editButton/editButton.cjs.map +1 -1
- package/dist/modern/livePreview/editButton/editButton.js +2 -2
- package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
- package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs +7 -2
- package/dist/modern/livePreview/eventManager/livePreviewEventManager.cjs.map +1 -1
- package/dist/modern/livePreview/eventManager/livePreviewEventManager.js +7 -2
- package/dist/modern/livePreview/eventManager/livePreviewEventManager.js.map +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +43 -8
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +46 -9
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
- package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs +15 -0
- package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.cjs.map +1 -1
- package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +11 -1
- package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +11 -1
- package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js +10 -0
- package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.js.map +1 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
- package/dist/modern/utils/addLivePreviewQueryTags.cjs +7 -1
- package/dist/modern/utils/addLivePreviewQueryTags.cjs.map +1 -1
- package/dist/modern/utils/addLivePreviewQueryTags.js +7 -1
- package/dist/modern/utils/addLivePreviewQueryTags.js.map +1 -1
- package/dist/modern/utils/index.cjs +8 -4
- package/dist/modern/utils/index.cjs.map +1 -1
- package/dist/modern/utils/index.js +8 -4
- package/dist/modern/utils/index.js.map +1 -1
- package/dist/modern/visualBuilder/components/FieldLocationAppList.cjs +185 -0
- package/dist/modern/visualBuilder/components/FieldLocationAppList.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/FieldLocationAppList.d.cts +35 -0
- package/dist/modern/visualBuilder/components/FieldLocationAppList.d.ts +35 -0
- package/dist/modern/visualBuilder/components/FieldLocationAppList.js +152 -0
- package/dist/modern/visualBuilder/components/FieldLocationAppList.js.map +1 -0
- package/dist/modern/visualBuilder/components/FieldLocationIcon.cjs +123 -0
- package/dist/modern/visualBuilder/components/FieldLocationIcon.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/FieldLocationIcon.d.cts +13 -0
- package/dist/modern/visualBuilder/components/FieldLocationIcon.d.ts +13 -0
- package/dist/modern/visualBuilder/components/FieldLocationIcon.js +90 -0
- package/dist/modern/visualBuilder/components/FieldLocationIcon.js.map +1 -0
- package/dist/modern/visualBuilder/components/FieldToolbar.cjs +184 -117
- package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/FieldToolbar.d.cts +3 -1
- package/dist/modern/visualBuilder/components/FieldToolbar.d.ts +3 -1
- package/dist/modern/visualBuilder/components/FieldToolbar.js +185 -118
- package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
- package/dist/modern/visualBuilder/components/emptyBlock.cjs +26 -5
- package/dist/modern/visualBuilder/components/emptyBlock.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/emptyBlock.js +26 -5
- package/dist/modern/visualBuilder/components/emptyBlock.js.map +1 -1
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs +6 -4
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.js +6 -4
- package/dist/modern/visualBuilder/components/fieldLabelWrapper.js.map +1 -1
- package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.cjs +78 -0
- package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.d.cts +9 -0
- package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.d.ts +9 -0
- package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.js +53 -0
- package/dist/modern/visualBuilder/components/icons/EmptyAppIcon.js.map +1 -0
- package/dist/modern/visualBuilder/components/icons/index.cjs +19 -0
- package/dist/modern/visualBuilder/components/icons/index.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/icons/index.d.cts +2 -1
- package/dist/modern/visualBuilder/components/icons/index.d.ts +2 -1
- package/dist/modern/visualBuilder/components/icons/index.js +18 -0
- package/dist/modern/visualBuilder/components/icons/index.js.map +1 -1
- package/dist/modern/visualBuilder/generators/generateToolbar.cjs +8 -5
- package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
- package/dist/modern/visualBuilder/generators/generateToolbar.js +8 -5
- package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
- package/dist/modern/visualBuilder/index.cjs +10 -0
- package/dist/modern/visualBuilder/index.cjs.map +1 -1
- package/dist/modern/visualBuilder/index.js +10 -0
- package/dist/modern/visualBuilder/index.js.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.cjs +16 -17
- package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.js +16 -17
- package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseHover.cjs +67 -59
- package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseHover.js +67 -59
- package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
- package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs +72 -0
- package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.cjs.map +1 -0
- package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.cts +14 -0
- package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.d.ts +14 -0
- package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js +49 -0
- package/dist/modern/visualBuilder/utils/fetchEntryPermissionsAndStageDetails.js.map +1 -0
- package/dist/modern/visualBuilder/utils/getEntryPermissions.cjs +2 -1
- package/dist/modern/visualBuilder/utils/getEntryPermissions.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/getEntryPermissions.js +2 -1
- package/dist/modern/visualBuilder/utils/getEntryPermissions.js.map +1 -1
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs +78 -0
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.cjs.map +1 -0
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.cts +18 -0
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.d.ts +18 -0
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js +45 -0
- package/dist/modern/visualBuilder/utils/getWorkflowStageDetails.js.map +1 -0
- package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +4 -3
- package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/handleIndividualFields.js +4 -3
- package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
- package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs +42 -13
- package/dist/modern/visualBuilder/utils/isFieldDisabled.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/isFieldDisabled.d.cts +3 -12
- package/dist/modern/visualBuilder/utils/isFieldDisabled.d.ts +3 -12
- package/dist/modern/visualBuilder/utils/isFieldDisabled.js +42 -13
- package/dist/modern/visualBuilder/utils/isFieldDisabled.js.map +1 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +5 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +6 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +6 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js +5 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +6 -4
- package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/updateFocussedState.js +6 -4
- package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
- package/dist/modern/visualBuilder/visualBuilder.style.cjs +118 -3
- package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
- package/dist/modern/visualBuilder/visualBuilder.style.d.cts +18 -0
- package/dist/modern/visualBuilder/visualBuilder.style.d.ts +18 -0
- package/dist/modern/visualBuilder/visualBuilder.style.js +118 -3
- package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
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\";\nimport { startCase, toLower } from \"lodash-es\";\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 This page doesn’t have any{\" \"}\n <span\n className={classNames(\n \"visual-builder__empty-block-field-name\",\n visualBuilderStyles()[\n \"visual-builder__empty-block-field-name\"\n ]\n )}\n >\n {startCase(toLower(blockParentName))}\n </span>{\" \"}\n added. 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 data-testid=\"visual-builder__empty-block-add-button\"\n >\n <span\n className={classNames(\n \"visual-builder__empty-block-plus-icon\",\n visualBuilderStyles()[\n \"visual-builder__empty-block-plus-icon\"\n ]\n )}\n >\n +\n </span>\n Add {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;AAE/C,uBAAmC;AAmCvB;AA1BL,SAAS,WAAW,OAAqC;AAC5D,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,kBAAkB,QAAQ,YAAY;AAE5C,iBAAe,uBAAuB;AAtB1C;AAuBQ,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,cAC8B;AAAA,cAC3B;AAAA,gBAAC;AAAA;AAAA,kBACG,eAAW,kBAAAA;AAAA,oBACP;AAAA,wBACA,0CAAoB,EAChB,wCACJ;AAAA,kBACJ;AAAA,kBAEC,8CAAU,0BAAQ,eAAe,CAAC;AAAA;AAAA,cACvC;AAAA,cAAQ;AAAA,cAAI;AAAA;AAAA;AAAA,QAEhB;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,YACL,eAAY;AAAA,YAEZ;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACG,eAAW,kBAAAA;AAAA,oBACP;AAAA,wBACA,0CAAoB,EAChB,uCACJ;AAAA,kBACJ;AAAA,kBACH;AAAA;AAAA,cAED;AAAA,cAAO;AAAA,cACK;AAAA;AAAA;AAAA,QAChB;AAAA;AAAA;AAAA,EACJ;AAER;","names":["visualBuilderPostMessage","classNames"]}
|
|
@@ -6,6 +6,7 @@ import { visualBuilderStyles } from "../visualBuilder.style.js";
|
|
|
6
6
|
import visualBuilderPostMessage from "../utils/visualBuilderPostMessage.js";
|
|
7
7
|
import { observeParentAndFocusNewInstance } from "../utils/multipleElementAddButton.js";
|
|
8
8
|
import { VisualBuilderPostMessageEvents } from "../utils/types/postMessage.types.js";
|
|
9
|
+
import { startCase, toLower } from "lodash-es";
|
|
9
10
|
import { jsx, jsxs } from "preact/jsx-runtime";
|
|
10
11
|
function EmptyBlock(props) {
|
|
11
12
|
const { details } = props;
|
|
@@ -40,9 +41,20 @@ function EmptyBlock(props) {
|
|
|
40
41
|
visualBuilderStyles()["visual-builder__empty-block-title"]
|
|
41
42
|
),
|
|
42
43
|
children: [
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
"This page doesn\u2019t have any",
|
|
45
|
+
" ",
|
|
46
|
+
/* @__PURE__ */ jsx(
|
|
47
|
+
"span",
|
|
48
|
+
{
|
|
49
|
+
className: classNames(
|
|
50
|
+
"visual-builder__empty-block-field-name",
|
|
51
|
+
visualBuilderStyles()["visual-builder__empty-block-field-name"]
|
|
52
|
+
),
|
|
53
|
+
children: startCase(toLower(blockParentName))
|
|
54
|
+
}
|
|
55
|
+
),
|
|
56
|
+
" ",
|
|
57
|
+
"added. Click the button below to add one."
|
|
46
58
|
]
|
|
47
59
|
}
|
|
48
60
|
),
|
|
@@ -57,8 +69,17 @@ function EmptyBlock(props) {
|
|
|
57
69
|
type: "button",
|
|
58
70
|
"data-testid": "visual-builder__empty-block-add-button",
|
|
59
71
|
children: [
|
|
60
|
-
/* @__PURE__ */ jsx(
|
|
61
|
-
|
|
72
|
+
/* @__PURE__ */ jsx(
|
|
73
|
+
"span",
|
|
74
|
+
{
|
|
75
|
+
className: classNames(
|
|
76
|
+
"visual-builder__empty-block-plus-icon",
|
|
77
|
+
visualBuilderStyles()["visual-builder__empty-block-plus-icon"]
|
|
78
|
+
),
|
|
79
|
+
children: "+"
|
|
80
|
+
}
|
|
81
|
+
),
|
|
82
|
+
"\xA0 Add ",
|
|
62
83
|
blockParentName
|
|
63
84
|
]
|
|
64
85
|
}
|
|
@@ -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
|
|
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\";\nimport { startCase, toLower } from \"lodash-es\";\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 This page doesn’t have any{\" \"}\n <span\n className={classNames(\n \"visual-builder__empty-block-field-name\",\n visualBuilderStyles()[\n \"visual-builder__empty-block-field-name\"\n ]\n )}\n >\n {startCase(toLower(blockParentName))}\n </span>{\" \"}\n added. 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 data-testid=\"visual-builder__empty-block-add-button\"\n >\n <span\n className={classNames(\n \"visual-builder__empty-block-plus-icon\",\n visualBuilderStyles()[\n \"visual-builder__empty-block-plus-icon\"\n ]\n )}\n >\n +\n </span>\n Add {blockParentName}\n </button>\n </div>\n );\n}\n"],"mappings":";;;AAAA,OAAO,gBAAgB;AAEvB,SAAS,2BAA2B;AACpC,OAAO,8BAA8B;AACrC,SAAS,wCAAwC;AAEjD,SAAS,sCAAsC;AAE/C,SAAS,WAAW,eAAe;AAmCvB,SAOI,KAPJ;AA1BL,SAAS,WAAW,OAAqC;AAC5D,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,kBAAkB,QAAQ,YAAY;AAE5C,iBAAe,uBAAuB;AAtB1C;AAuBQ,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,cAC8B;AAAA,cAC3B;AAAA,gBAAC;AAAA;AAAA,kBACG,WAAW;AAAA,oBACP;AAAA,oBACA,oBAAoB,EAChB,wCACJ;AAAA,kBACJ;AAAA,kBAEC,oBAAU,QAAQ,eAAe,CAAC;AAAA;AAAA,cACvC;AAAA,cAAQ;AAAA,cAAI;AAAA;AAAA;AAAA,QAEhB;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,YACL,eAAY;AAAA,YAEZ;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACG,WAAW;AAAA,oBACP;AAAA,oBACA,oBAAoB,EAChB,uCACJ;AAAA,kBACJ;AAAA,kBACH;AAAA;AAAA,cAED;AAAA,cAAO;AAAA,cACK;AAAA;AAAA;AAAA,QAChB;AAAA;AAAA;AAAA,EACJ;AAER;","names":[]}
|
|
@@ -47,9 +47,9 @@ var import_visualBuilder = require("../visualBuilder.style.cjs");
|
|
|
47
47
|
var import_CslpError = require("./CslpError.cjs");
|
|
48
48
|
var import_errorHandling = require("../utils/errorHandling.cjs");
|
|
49
49
|
var import_postMessage = require("../utils/types/postMessage.types.cjs");
|
|
50
|
-
var import_getEntryPermissionsCached = require("../utils/getEntryPermissionsCached.cjs");
|
|
51
50
|
var import_icons2 = require("./icons/index.cjs");
|
|
52
51
|
var import_Tooltip = require("./Tooltip.cjs");
|
|
52
|
+
var import_fetchEntryPermissionsAndStageDetails = require("../utils/fetchEntryPermissionsAndStageDetails.cjs");
|
|
53
53
|
var import_jsx_runtime = require("preact/jsx-runtime");
|
|
54
54
|
async function getFieldDisplayNames(fieldMetadata) {
|
|
55
55
|
var _a;
|
|
@@ -149,15 +149,17 @@ function FieldLabelWrapperComponent(props) {
|
|
|
149
149
|
setError(true);
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
152
|
-
const
|
|
152
|
+
const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } = await (0, import_fetchEntryPermissionsAndStageDetails.fetchEntryPermissionsAndStageDetails)({
|
|
153
153
|
entryUid: props.fieldMetadata.entry_uid,
|
|
154
154
|
contentTypeUid: props.fieldMetadata.content_type_uid,
|
|
155
|
-
locale: props.fieldMetadata.locale
|
|
155
|
+
locale: props.fieldMetadata.locale,
|
|
156
|
+
variantUid: props.fieldMetadata.variant
|
|
156
157
|
});
|
|
157
158
|
const { isDisabled: fieldDisabled, reason } = (0, import_isFieldDisabled.isFieldDisabled)(
|
|
158
159
|
fieldSchema,
|
|
159
160
|
eventDetails,
|
|
160
|
-
|
|
161
|
+
entryAcl,
|
|
162
|
+
entryWorkflowStageDetails
|
|
161
163
|
);
|
|
162
164
|
const currentFieldDisplayName = (displayNames2 == null ? void 0 : displayNames2[props.fieldMetadata.cslpValue]) ?? fieldSchema.display_name;
|
|
163
165
|
const hasParentPaths = !!((_a = props == null ? void 0 : props.parentPaths) == null ? void 0 : _a.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/components/fieldLabelWrapper.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React, { useEffect, useState } from \"preact/compat\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { CaretIcon, CaretRightIcon, InfoIcon } from \"./icons\";\nimport { LoadingIcon } from \"./icons/loading\";\nimport { FieldTypeIconsMap, getFieldIcon } from \"../generators/generateCustomCursor\";\nimport { uniqBy } from \"lodash-es\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { CslpError } from \"./CslpError\";\nimport { hasPostMessageError } from \"../utils/errorHandling\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport { getEntryPermissionsCached } from \"../utils/getEntryPermissionsCached\";\nimport { ContentTypeIcon } from \"./icons\";\nimport { ToolbarTooltip } from \"./Tooltip\";\n\ninterface ReferenceParentMap {\n [entryUid: string]: {\n contentTypeUid: string;\n contentTypeTitle: string;\n referenceFieldName: string;\n }[]\n}\n\nasync function getFieldDisplayNames(fieldMetadata: CslpData[]) {\n const result = await visualBuilderPostMessage?.send<{\n [k: string]: string;\n }>(VisualBuilderPostMessageEvents.GET_FIELD_DISPLAY_NAMES, fieldMetadata);\n return result;\n}\n\nasync function getContentTypeName(contentTypeUid: string) {\n try {\n const result = await visualBuilderPostMessage?.send<{\n contentTypeName: string;\n }>(VisualBuilderPostMessageEvents.GET_CONTENT_TYPE_NAME, {\n content_type_uid: contentTypeUid,\n });\n return result?.contentTypeName;\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error getting content type name\", e);\n return \"\";\n }\n}\n\nasync function getReferenceParentMap() {\n try {\n const result = await visualBuilderPostMessage?.send<ReferenceParentMap>(VisualBuilderPostMessageEvents.REFERENCE_MAP, {}) ?? {};\n return result;\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error getting reference parent map\", e);\n return {};\n }\n \n}\n\ninterface FieldLabelWrapperProps {\n fieldMetadata: CslpData;\n eventDetails: VisualBuilderCslpEventDetails;\n parentPaths: string[];\n getParentEditableElement: (cslp: string) => HTMLElement | null;\n}\n\ninterface ICurrentField {\n text: string;\n contentTypeName: string;\n icon: JSX.Element;\n prefixIcon: any;\n disabled: boolean;\n isVariant: boolean;\n isReference: boolean;\n referenceFieldName: string;\n parentContentTypeName: string;\n}\n\nfunction FieldLabelWrapperComponent(\n props: FieldLabelWrapperProps\n): JSX.Element {\n const { eventDetails } = props;\n const [currentField, setCurrentField] = useState<ICurrentField>({\n text: \"\",\n contentTypeName: \"\",\n icon: <CaretIcon />,\n prefixIcon: null,\n disabled: false,\n isVariant: false,\n isReference: false,\n referenceFieldName: \"\",\n parentContentTypeName: \"\",\n });\n const [displayNames, setDisplayNames] = useState<Record<string, string>>(\n {}\n );\n const [dataLoading, setDataLoading] = useState(true);\n const [error, setError] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n function calculateTopOffset(index: number) {\n const height = -30; // from bottom\n const offset = (index + 1) * height;\n return `${offset}px`;\n }\n\n useEffect(() => {\n const fetchData = async () => {\n setDataLoading(true);\n const allPaths = uniqBy(\n [\n props.fieldMetadata,\n ...props.parentPaths.map((path) => {\n return extractDetailsFromCslp(path);\n }),\n ],\n \"cslpValue\"\n );\n const [displayNames, fieldSchema, contentTypeName, referenceParentMap] = await Promise.all([\n getFieldDisplayNames(allPaths),\n FieldSchemaMap.getFieldSchema(\n props.fieldMetadata.content_type_uid,\n props.fieldMetadata.fieldPath\n ),\n getContentTypeName(\n props.fieldMetadata.content_type_uid\n ),\n getReferenceParentMap()\n ]);\n const entryUid = props.fieldMetadata.entry_uid;\n \n const referenceData = referenceParentMap[entryUid];\n const isReference = !!referenceData;\n\n let referenceFieldName = referenceData ? referenceData[0].referenceFieldName : \"\";\n let parentContentTypeName = referenceData ? referenceData[0].contentTypeTitle : \"\";\n\n if(isReference) {\n const domAncestor = eventDetails.editableElement.closest(`[data-cslp]:not([data-cslp^=\"${props.fieldMetadata.content_type_uid}\"])`);\n if(domAncestor) {\n const domAncestorCslp = domAncestor.getAttribute(\"data-cslp\");\n const domAncestorDetails = extractDetailsFromCslp(domAncestorCslp!);\n const domAncestorContentTypeUid = domAncestorDetails.content_type_uid;\n const domAncestorContentParent = referenceData?.find(data => data.contentTypeUid === domAncestorContentTypeUid);\n if(domAncestorContentParent) {\n referenceFieldName = domAncestorContentParent.referenceFieldName;\n parentContentTypeName = domAncestorContentParent.contentTypeTitle;\n }\n }\n }\n\n if (hasPostMessageError(displayNames) || !fieldSchema) {\n setDataLoading(false);\n setError(true);\n\n return;\n }\n\n const entryPermissions = await getEntryPermissionsCached({\n entryUid: props.fieldMetadata.entry_uid,\n contentTypeUid: props.fieldMetadata.content_type_uid,\n locale: props.fieldMetadata.locale,\n });\n const { isDisabled: fieldDisabled, reason } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryPermissions\n );\n\n const currentFieldDisplayName =\n displayNames?.[props.fieldMetadata.cslpValue] ??\n fieldSchema.display_name;\n\n const hasParentPaths = !!props?.parentPaths?.length;\n const isVariant = props.fieldMetadata.variant ? true : false;\n\n setCurrentField({\n text: currentFieldDisplayName,\n contentTypeName: contentTypeName ?? \"\",\n icon: fieldDisabled ? (\n <div\n className={classNames(\n visualBuilderStyles()[\n \"visual-builder__tooltip--persistent\"\n ]\n )}\n data-tooltip={reason}\n >\n <InfoIcon />\n </div>\n ) : hasParentPaths ? (\n <CaretIcon />\n ) : (\n <></>\n ),\n isReference,\n prefixIcon: getFieldIcon(fieldSchema),\n disabled: fieldDisabled,\n referenceFieldName,\n parentContentTypeName,\n isVariant: isVariant,\n });\n\n if (displayNames) {\n setDisplayNames(displayNames);\n }\n if (Object.keys(displayNames || {})?.length === allPaths.length) {\n setDataLoading(false);\n }\n };\n\n try {\n fetchData();\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error fetching field label data\", e);\n }\n }, [props]);\n\n const onParentPathClick = (cslp: string) => {\n const parentElement = props.getParentEditableElement(cslp);\n if (parentElement) {\n // emulate clicking on the parent element\n parentElement.click();\n }\n };\n\n function getCurrentFieldIcon() {\n if (error) {\n return null;\n } else if (dataLoading) {\n return <LoadingIcon />;\n } else {\n return currentField.icon;\n }\n }\n\n return (\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-container\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-container\"\n ]\n )}\n >\n <ToolbarTooltip data={{contentTypeName: currentField.parentContentTypeName, referenceFieldName: currentField.referenceFieldName}} disabled={!currentField.isReference || isDropdownOpen}>\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper\"\n ],\n {\n \"visual-builder__focused-toolbar--field-disabled\":\n currentField.disabled,\n },\n {\n [visualBuilderStyles()[\n \"visual-builder__focused-toolbar--field-disabled\"\n ]]: currentField.disabled,\n },\n {\n \"field-label-dropdown-open\": isDropdownOpen,\n [visualBuilderStyles()[\"field-label-dropdown-open\"]]:\n isDropdownOpen,\n }\n )}\n onClick={() => setIsDropdownOpen((prev) => !prev)}\n data-testid=\"visual-builder__focused-toolbar__field-label-wrapper\"\n data-hovered-cslp={props.fieldMetadata.cslpValue}\n >\n <button\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper__current-field visual-builder__button visual-builder__button--primary visual-builder__button-loader\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper__current-field\"\n ],\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\n \"visual-builder__button--primary\"\n ],\n visualBuilderStyles()[\"visual-builder__button-loader\"],\n error &&\n visualBuilderStyles()[\n \"visual-builder__button-error\"\n ]\n )}\n disabled={dataLoading}\n >\n {\n currentField.isReference && !dataLoading && !error ? \n <div \n className={classNames(\n \"visual-builder__reference-icon-container\",\n visualBuilderStyles()[\"visual-builder__reference-icon-container\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__field-icon\",\n visualBuilderStyles()[\n \"visual-builder__field-icon\"\n ]\n )}\n dangerouslySetInnerHTML={{\n __html: FieldTypeIconsMap.reference,\n }}\n data-testid=\"visual-builder__field-icon-caret\"\n />\n <CaretRightIcon />\n </div> : null\n }\n {\n currentField.contentTypeName && !dataLoading && !error ?\n <>\n <ContentTypeIcon />\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__ct-name\"\n >\n {currentField.contentTypeName + \" : \"}\n </div>\n </> : null\n }\n {currentField.prefixIcon ? (\n <div\n className={classNames(\n \"visual-builder__field-icon\",\n visualBuilderStyles()[\n \"visual-builder__field-icon\"\n ]\n )}\n dangerouslySetInnerHTML={{\n __html: currentField.prefixIcon,\n }}\n data-testid=\"visual-builder__field-icon\"\n />\n ) : null}\n {currentField.text ? (\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__text\"\n >\n {currentField.text}\n </div>\n ) : null}\n {getCurrentFieldIcon()}\n {error ? <CslpError /> : null}\n </button>\n {props.parentPaths.map((path, index) => (\n <button\n key={path}\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper__parent-field visual-builder__button visual-builder__button--secondary visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper__parent-field\"\n ],\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\n \"visual-builder__button--secondary\"\n ],\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-target-cslp={path}\n style={{ top: calculateTopOffset(index) }}\n onClick={() => onParentPathClick(path)}\n >\n {displayNames[path]}\n </button>\n ))}\n </div>\n </ToolbarTooltip>\n </div>\n );\n}\n\nexport default FieldLabelWrapperComponent;\n"],"mappings":"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","names":["import_icons","visualBuilderPostMessage","displayNames","classNames"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/components/fieldLabelWrapper.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React, { useEffect, useState } from \"preact/compat\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { CaretIcon, CaretRightIcon, InfoIcon } from \"./icons\";\nimport { LoadingIcon } from \"./icons/loading\";\nimport { FieldTypeIconsMap, getFieldIcon } from \"../generators/generateCustomCursor\";\nimport { uniqBy } from \"lodash-es\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { CslpError } from \"./CslpError\";\nimport { hasPostMessageError } from \"../utils/errorHandling\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport { ContentTypeIcon } from \"./icons\";\nimport { ToolbarTooltip } from \"./Tooltip\";\nimport { fetchEntryPermissionsAndStageDetails } from \"../utils/fetchEntryPermissionsAndStageDetails\";\n\ninterface ReferenceParentMap {\n [entryUid: string]: {\n contentTypeUid: string;\n contentTypeTitle: string;\n referenceFieldName: string;\n }[]\n}\n\nasync function getFieldDisplayNames(fieldMetadata: CslpData[]) {\n const result = await visualBuilderPostMessage?.send<{\n [k: string]: string;\n }>(VisualBuilderPostMessageEvents.GET_FIELD_DISPLAY_NAMES, fieldMetadata);\n return result;\n}\n\nasync function getContentTypeName(contentTypeUid: string) {\n try {\n const result = await visualBuilderPostMessage?.send<{\n contentTypeName: string;\n }>(VisualBuilderPostMessageEvents.GET_CONTENT_TYPE_NAME, {\n content_type_uid: contentTypeUid,\n });\n return result?.contentTypeName;\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error getting content type name\", e);\n return \"\";\n }\n}\n\nasync function getReferenceParentMap() {\n try {\n const result = await visualBuilderPostMessage?.send<ReferenceParentMap>(VisualBuilderPostMessageEvents.REFERENCE_MAP, {}) ?? {};\n return result;\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error getting reference parent map\", e);\n return {};\n }\n}\n\ninterface FieldLabelWrapperProps {\n fieldMetadata: CslpData;\n eventDetails: VisualBuilderCslpEventDetails;\n parentPaths: string[];\n getParentEditableElement: (cslp: string) => HTMLElement | null;\n}\n\ninterface ICurrentField {\n text: string;\n contentTypeName: string;\n icon: JSX.Element;\n prefixIcon: any;\n disabled: boolean;\n isVariant: boolean;\n isReference: boolean;\n referenceFieldName: string;\n parentContentTypeName: string;\n}\n\nfunction FieldLabelWrapperComponent(\n props: FieldLabelWrapperProps\n): JSX.Element {\n const { eventDetails } = props;\n const [currentField, setCurrentField] = useState<ICurrentField>({\n text: \"\",\n contentTypeName: \"\",\n icon: <CaretIcon />,\n prefixIcon: null,\n disabled: false,\n isVariant: false,\n isReference: false,\n referenceFieldName: \"\",\n parentContentTypeName: \"\",\n });\n const [displayNames, setDisplayNames] = useState<Record<string, string>>(\n {}\n );\n const [dataLoading, setDataLoading] = useState(true);\n const [error, setError] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n function calculateTopOffset(index: number) {\n const height = -30; // from bottom\n const offset = (index + 1) * height;\n return `${offset}px`;\n }\n\n useEffect(() => {\n const fetchData = async () => {\n setDataLoading(true);\n const allPaths = uniqBy(\n [\n props.fieldMetadata,\n ...props.parentPaths.map((path) => {\n return extractDetailsFromCslp(path);\n }),\n ],\n \"cslpValue\"\n );\n const [displayNames, fieldSchema, contentTypeName, referenceParentMap] = await Promise.all([\n getFieldDisplayNames(allPaths),\n FieldSchemaMap.getFieldSchema(\n props.fieldMetadata.content_type_uid,\n props.fieldMetadata.fieldPath\n ),\n getContentTypeName(\n props.fieldMetadata.content_type_uid\n ),\n getReferenceParentMap()\n ]);\n const entryUid = props.fieldMetadata.entry_uid;\n \n const referenceData = referenceParentMap[entryUid];\n const isReference = !!referenceData;\n\n let referenceFieldName = referenceData ? referenceData[0].referenceFieldName : \"\";\n let parentContentTypeName = referenceData ? referenceData[0].contentTypeTitle : \"\";\n\n if(isReference) {\n const domAncestor = eventDetails.editableElement.closest(`[data-cslp]:not([data-cslp^=\"${props.fieldMetadata.content_type_uid}\"])`);\n if(domAncestor) {\n const domAncestorCslp = domAncestor.getAttribute(\"data-cslp\");\n const domAncestorDetails = extractDetailsFromCslp(domAncestorCslp!);\n const domAncestorContentTypeUid = domAncestorDetails.content_type_uid;\n const domAncestorContentParent = referenceData?.find(data => data.contentTypeUid === domAncestorContentTypeUid);\n if(domAncestorContentParent) {\n referenceFieldName = domAncestorContentParent.referenceFieldName;\n parentContentTypeName = domAncestorContentParent.contentTypeTitle;\n }\n }\n }\n\n if (hasPostMessageError(displayNames) || !fieldSchema) {\n setDataLoading(false);\n setError(true);\n\n return;\n }\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: props.fieldMetadata.entry_uid,\n contentTypeUid: props.fieldMetadata.content_type_uid,\n locale: props.fieldMetadata.locale,\n variantUid: props.fieldMetadata.variant,\n });\n const { isDisabled: fieldDisabled, reason } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n const currentFieldDisplayName =\n displayNames?.[props.fieldMetadata.cslpValue] ??\n fieldSchema.display_name;\n\n const hasParentPaths = !!props?.parentPaths?.length;\n const isVariant = props.fieldMetadata.variant ? true : false;\n\n setCurrentField({\n text: currentFieldDisplayName,\n contentTypeName: contentTypeName ?? \"\",\n icon: fieldDisabled ? (\n <div\n className={classNames(\n visualBuilderStyles()[\n \"visual-builder__tooltip--persistent\"\n ]\n )}\n data-tooltip={reason}\n >\n <InfoIcon />\n </div>\n ) : hasParentPaths ? (\n <CaretIcon />\n ) : (\n <></>\n ),\n isReference,\n prefixIcon: getFieldIcon(fieldSchema),\n disabled: fieldDisabled,\n referenceFieldName,\n parentContentTypeName,\n isVariant: isVariant,\n });\n\n if (displayNames) {\n setDisplayNames(displayNames);\n }\n if (Object.keys(displayNames || {})?.length === allPaths.length) {\n setDataLoading(false);\n }\n };\n\n try {\n fetchData();\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error fetching field label data\", e);\n }\n }, [props]);\n\n const onParentPathClick = (cslp: string) => {\n const parentElement = props.getParentEditableElement(cslp);\n if (parentElement) {\n // emulate clicking on the parent element\n parentElement.click();\n }\n };\n\n function getCurrentFieldIcon() {\n if (error) {\n return null;\n } else if (dataLoading) {\n return <LoadingIcon />;\n } else {\n return currentField.icon;\n }\n }\n\n return (\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-container\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-container\"\n ]\n )}\n >\n <ToolbarTooltip data={{contentTypeName: currentField.parentContentTypeName, referenceFieldName: currentField.referenceFieldName}} disabled={!currentField.isReference || isDropdownOpen}>\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper\"\n ],\n {\n \"visual-builder__focused-toolbar--field-disabled\":\n currentField.disabled,\n },\n {\n [visualBuilderStyles()[\n \"visual-builder__focused-toolbar--field-disabled\"\n ]]: currentField.disabled,\n },\n {\n \"field-label-dropdown-open\": isDropdownOpen,\n [visualBuilderStyles()[\"field-label-dropdown-open\"]]:\n isDropdownOpen,\n }\n )}\n onClick={() => setIsDropdownOpen((prev) => !prev)}\n data-testid=\"visual-builder__focused-toolbar__field-label-wrapper\"\n data-hovered-cslp={props.fieldMetadata.cslpValue}\n >\n <button\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper__current-field visual-builder__button visual-builder__button--primary visual-builder__button-loader\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper__current-field\"\n ],\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\n \"visual-builder__button--primary\"\n ],\n visualBuilderStyles()[\"visual-builder__button-loader\"],\n error &&\n visualBuilderStyles()[\n \"visual-builder__button-error\"\n ]\n )}\n disabled={dataLoading}\n >\n {\n currentField.isReference && !dataLoading && !error ? \n <div \n className={classNames(\n \"visual-builder__reference-icon-container\",\n visualBuilderStyles()[\"visual-builder__reference-icon-container\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__field-icon\",\n visualBuilderStyles()[\n \"visual-builder__field-icon\"\n ]\n )}\n dangerouslySetInnerHTML={{\n __html: FieldTypeIconsMap.reference,\n }}\n data-testid=\"visual-builder__field-icon-caret\"\n />\n <CaretRightIcon />\n </div> : null\n }\n {\n currentField.contentTypeName && !dataLoading && !error ?\n <>\n <ContentTypeIcon />\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__ct-name\"\n >\n {currentField.contentTypeName + \" : \"}\n </div>\n </> : null\n }\n {currentField.prefixIcon ? (\n <div\n className={classNames(\n \"visual-builder__field-icon\",\n visualBuilderStyles()[\n \"visual-builder__field-icon\"\n ]\n )}\n dangerouslySetInnerHTML={{\n __html: currentField.prefixIcon,\n }}\n data-testid=\"visual-builder__field-icon\"\n />\n ) : null}\n {currentField.text ? (\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__text\"\n >\n {currentField.text}\n </div>\n ) : null}\n {getCurrentFieldIcon()}\n {error ? <CslpError /> : null}\n </button>\n {props.parentPaths.map((path, index) => (\n <button\n key={path}\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper__parent-field visual-builder__button visual-builder__button--secondary visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper__parent-field\"\n ],\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\n \"visual-builder__button--secondary\"\n ],\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-target-cslp={path}\n style={{ top: calculateTopOffset(index) }}\n onClick={() => onParentPathClick(path)}\n >\n {displayNames[path]}\n </button>\n ))}\n </div>\n </ToolbarTooltip>\n </div>\n );\n}\n\nexport default FieldLabelWrapperComponent;\n"],"mappings":"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","names":["import_icons","visualBuilderPostMessage","displayNames","classNames"]}
|
|
@@ -15,9 +15,9 @@ import { visualBuilderStyles } from "../visualBuilder.style.js";
|
|
|
15
15
|
import { CslpError } from "./CslpError.js";
|
|
16
16
|
import { hasPostMessageError } from "../utils/errorHandling.js";
|
|
17
17
|
import { VisualBuilderPostMessageEvents } from "../utils/types/postMessage.types.js";
|
|
18
|
-
import { getEntryPermissionsCached } from "../utils/getEntryPermissionsCached.js";
|
|
19
18
|
import { ContentTypeIcon } from "./icons/index.js";
|
|
20
19
|
import { ToolbarTooltip } from "./Tooltip.js";
|
|
20
|
+
import { fetchEntryPermissionsAndStageDetails } from "../utils/fetchEntryPermissionsAndStageDetails.js";
|
|
21
21
|
import { Fragment, jsx, jsxs } from "preact/jsx-runtime";
|
|
22
22
|
async function getFieldDisplayNames(fieldMetadata) {
|
|
23
23
|
var _a;
|
|
@@ -117,15 +117,17 @@ function FieldLabelWrapperComponent(props) {
|
|
|
117
117
|
setError(true);
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
120
|
-
const
|
|
120
|
+
const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } = await fetchEntryPermissionsAndStageDetails({
|
|
121
121
|
entryUid: props.fieldMetadata.entry_uid,
|
|
122
122
|
contentTypeUid: props.fieldMetadata.content_type_uid,
|
|
123
|
-
locale: props.fieldMetadata.locale
|
|
123
|
+
locale: props.fieldMetadata.locale,
|
|
124
|
+
variantUid: props.fieldMetadata.variant
|
|
124
125
|
});
|
|
125
126
|
const { isDisabled: fieldDisabled, reason } = isFieldDisabled(
|
|
126
127
|
fieldSchema,
|
|
127
128
|
eventDetails,
|
|
128
|
-
|
|
129
|
+
entryAcl,
|
|
130
|
+
entryWorkflowStageDetails
|
|
129
131
|
);
|
|
130
132
|
const currentFieldDisplayName = (displayNames2 == null ? void 0 : displayNames2[props.fieldMetadata.cslpValue]) ?? fieldSchema.display_name;
|
|
131
133
|
const hasParentPaths = !!((_a = props == null ? void 0 : props.parentPaths) == null ? void 0 : _a.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/components/fieldLabelWrapper.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React, { useEffect, useState } from \"preact/compat\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { CaretIcon, CaretRightIcon, InfoIcon } from \"./icons\";\nimport { LoadingIcon } from \"./icons/loading\";\nimport { FieldTypeIconsMap, getFieldIcon } from \"../generators/generateCustomCursor\";\nimport { uniqBy } from \"lodash-es\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { CslpError } from \"./CslpError\";\nimport { hasPostMessageError } from \"../utils/errorHandling\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport { getEntryPermissionsCached } from \"../utils/getEntryPermissionsCached\";\nimport { ContentTypeIcon } from \"./icons\";\nimport { ToolbarTooltip } from \"./Tooltip\";\n\ninterface ReferenceParentMap {\n [entryUid: string]: {\n contentTypeUid: string;\n contentTypeTitle: string;\n referenceFieldName: string;\n }[]\n}\n\nasync function getFieldDisplayNames(fieldMetadata: CslpData[]) {\n const result = await visualBuilderPostMessage?.send<{\n [k: string]: string;\n }>(VisualBuilderPostMessageEvents.GET_FIELD_DISPLAY_NAMES, fieldMetadata);\n return result;\n}\n\nasync function getContentTypeName(contentTypeUid: string) {\n try {\n const result = await visualBuilderPostMessage?.send<{\n contentTypeName: string;\n }>(VisualBuilderPostMessageEvents.GET_CONTENT_TYPE_NAME, {\n content_type_uid: contentTypeUid,\n });\n return result?.contentTypeName;\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error getting content type name\", e);\n return \"\";\n }\n}\n\nasync function getReferenceParentMap() {\n try {\n const result = await visualBuilderPostMessage?.send<ReferenceParentMap>(VisualBuilderPostMessageEvents.REFERENCE_MAP, {}) ?? {};\n return result;\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error getting reference parent map\", e);\n return {};\n }\n \n}\n\ninterface FieldLabelWrapperProps {\n fieldMetadata: CslpData;\n eventDetails: VisualBuilderCslpEventDetails;\n parentPaths: string[];\n getParentEditableElement: (cslp: string) => HTMLElement | null;\n}\n\ninterface ICurrentField {\n text: string;\n contentTypeName: string;\n icon: JSX.Element;\n prefixIcon: any;\n disabled: boolean;\n isVariant: boolean;\n isReference: boolean;\n referenceFieldName: string;\n parentContentTypeName: string;\n}\n\nfunction FieldLabelWrapperComponent(\n props: FieldLabelWrapperProps\n): JSX.Element {\n const { eventDetails } = props;\n const [currentField, setCurrentField] = useState<ICurrentField>({\n text: \"\",\n contentTypeName: \"\",\n icon: <CaretIcon />,\n prefixIcon: null,\n disabled: false,\n isVariant: false,\n isReference: false,\n referenceFieldName: \"\",\n parentContentTypeName: \"\",\n });\n const [displayNames, setDisplayNames] = useState<Record<string, string>>(\n {}\n );\n const [dataLoading, setDataLoading] = useState(true);\n const [error, setError] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n function calculateTopOffset(index: number) {\n const height = -30; // from bottom\n const offset = (index + 1) * height;\n return `${offset}px`;\n }\n\n useEffect(() => {\n const fetchData = async () => {\n setDataLoading(true);\n const allPaths = uniqBy(\n [\n props.fieldMetadata,\n ...props.parentPaths.map((path) => {\n return extractDetailsFromCslp(path);\n }),\n ],\n \"cslpValue\"\n );\n const [displayNames, fieldSchema, contentTypeName, referenceParentMap] = await Promise.all([\n getFieldDisplayNames(allPaths),\n FieldSchemaMap.getFieldSchema(\n props.fieldMetadata.content_type_uid,\n props.fieldMetadata.fieldPath\n ),\n getContentTypeName(\n props.fieldMetadata.content_type_uid\n ),\n getReferenceParentMap()\n ]);\n const entryUid = props.fieldMetadata.entry_uid;\n \n const referenceData = referenceParentMap[entryUid];\n const isReference = !!referenceData;\n\n let referenceFieldName = referenceData ? referenceData[0].referenceFieldName : \"\";\n let parentContentTypeName = referenceData ? referenceData[0].contentTypeTitle : \"\";\n\n if(isReference) {\n const domAncestor = eventDetails.editableElement.closest(`[data-cslp]:not([data-cslp^=\"${props.fieldMetadata.content_type_uid}\"])`);\n if(domAncestor) {\n const domAncestorCslp = domAncestor.getAttribute(\"data-cslp\");\n const domAncestorDetails = extractDetailsFromCslp(domAncestorCslp!);\n const domAncestorContentTypeUid = domAncestorDetails.content_type_uid;\n const domAncestorContentParent = referenceData?.find(data => data.contentTypeUid === domAncestorContentTypeUid);\n if(domAncestorContentParent) {\n referenceFieldName = domAncestorContentParent.referenceFieldName;\n parentContentTypeName = domAncestorContentParent.contentTypeTitle;\n }\n }\n }\n\n if (hasPostMessageError(displayNames) || !fieldSchema) {\n setDataLoading(false);\n setError(true);\n\n return;\n }\n\n const entryPermissions = await getEntryPermissionsCached({\n entryUid: props.fieldMetadata.entry_uid,\n contentTypeUid: props.fieldMetadata.content_type_uid,\n locale: props.fieldMetadata.locale,\n });\n const { isDisabled: fieldDisabled, reason } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryPermissions\n );\n\n const currentFieldDisplayName =\n displayNames?.[props.fieldMetadata.cslpValue] ??\n fieldSchema.display_name;\n\n const hasParentPaths = !!props?.parentPaths?.length;\n const isVariant = props.fieldMetadata.variant ? true : false;\n\n setCurrentField({\n text: currentFieldDisplayName,\n contentTypeName: contentTypeName ?? \"\",\n icon: fieldDisabled ? (\n <div\n className={classNames(\n visualBuilderStyles()[\n \"visual-builder__tooltip--persistent\"\n ]\n )}\n data-tooltip={reason}\n >\n <InfoIcon />\n </div>\n ) : hasParentPaths ? (\n <CaretIcon />\n ) : (\n <></>\n ),\n isReference,\n prefixIcon: getFieldIcon(fieldSchema),\n disabled: fieldDisabled,\n referenceFieldName,\n parentContentTypeName,\n isVariant: isVariant,\n });\n\n if (displayNames) {\n setDisplayNames(displayNames);\n }\n if (Object.keys(displayNames || {})?.length === allPaths.length) {\n setDataLoading(false);\n }\n };\n\n try {\n fetchData();\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error fetching field label data\", e);\n }\n }, [props]);\n\n const onParentPathClick = (cslp: string) => {\n const parentElement = props.getParentEditableElement(cslp);\n if (parentElement) {\n // emulate clicking on the parent element\n parentElement.click();\n }\n };\n\n function getCurrentFieldIcon() {\n if (error) {\n return null;\n } else if (dataLoading) {\n return <LoadingIcon />;\n } else {\n return currentField.icon;\n }\n }\n\n return (\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-container\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-container\"\n ]\n )}\n >\n <ToolbarTooltip data={{contentTypeName: currentField.parentContentTypeName, referenceFieldName: currentField.referenceFieldName}} disabled={!currentField.isReference || isDropdownOpen}>\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper\"\n ],\n {\n \"visual-builder__focused-toolbar--field-disabled\":\n currentField.disabled,\n },\n {\n [visualBuilderStyles()[\n \"visual-builder__focused-toolbar--field-disabled\"\n ]]: currentField.disabled,\n },\n {\n \"field-label-dropdown-open\": isDropdownOpen,\n [visualBuilderStyles()[\"field-label-dropdown-open\"]]:\n isDropdownOpen,\n }\n )}\n onClick={() => setIsDropdownOpen((prev) => !prev)}\n data-testid=\"visual-builder__focused-toolbar__field-label-wrapper\"\n data-hovered-cslp={props.fieldMetadata.cslpValue}\n >\n <button\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper__current-field visual-builder__button visual-builder__button--primary visual-builder__button-loader\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper__current-field\"\n ],\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\n \"visual-builder__button--primary\"\n ],\n visualBuilderStyles()[\"visual-builder__button-loader\"],\n error &&\n visualBuilderStyles()[\n \"visual-builder__button-error\"\n ]\n )}\n disabled={dataLoading}\n >\n {\n currentField.isReference && !dataLoading && !error ? \n <div \n className={classNames(\n \"visual-builder__reference-icon-container\",\n visualBuilderStyles()[\"visual-builder__reference-icon-container\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__field-icon\",\n visualBuilderStyles()[\n \"visual-builder__field-icon\"\n ]\n )}\n dangerouslySetInnerHTML={{\n __html: FieldTypeIconsMap.reference,\n }}\n data-testid=\"visual-builder__field-icon-caret\"\n />\n <CaretRightIcon />\n </div> : null\n }\n {\n currentField.contentTypeName && !dataLoading && !error ?\n <>\n <ContentTypeIcon />\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__ct-name\"\n >\n {currentField.contentTypeName + \" : \"}\n </div>\n </> : null\n }\n {currentField.prefixIcon ? (\n <div\n className={classNames(\n \"visual-builder__field-icon\",\n visualBuilderStyles()[\n \"visual-builder__field-icon\"\n ]\n )}\n dangerouslySetInnerHTML={{\n __html: currentField.prefixIcon,\n }}\n data-testid=\"visual-builder__field-icon\"\n />\n ) : null}\n {currentField.text ? (\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__text\"\n >\n {currentField.text}\n </div>\n ) : null}\n {getCurrentFieldIcon()}\n {error ? <CslpError /> : null}\n </button>\n {props.parentPaths.map((path, index) => (\n <button\n key={path}\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper__parent-field visual-builder__button visual-builder__button--secondary visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper__parent-field\"\n ],\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\n \"visual-builder__button--secondary\"\n ],\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-target-cslp={path}\n style={{ top: calculateTopOffset(index) }}\n onClick={() => onParentPathClick(path)}\n >\n {displayNames[path]}\n </button>\n ))}\n </div>\n </ToolbarTooltip>\n </div>\n );\n}\n\nexport default FieldLabelWrapperComponent;\n"],"mappings":"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","names":["displayNames"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/components/fieldLabelWrapper.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React, { useEffect, useState } from \"preact/compat\";\nimport { extractDetailsFromCslp } from \"../../cslp\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { VisualBuilderCslpEventDetails } from \"../types/visualBuilder.types\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { CaretIcon, CaretRightIcon, InfoIcon } from \"./icons\";\nimport { LoadingIcon } from \"./icons/loading\";\nimport { FieldTypeIconsMap, getFieldIcon } from \"../generators/generateCustomCursor\";\nimport { uniqBy } from \"lodash-es\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { CslpError } from \"./CslpError\";\nimport { hasPostMessageError } from \"../utils/errorHandling\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport { ContentTypeIcon } from \"./icons\";\nimport { ToolbarTooltip } from \"./Tooltip\";\nimport { fetchEntryPermissionsAndStageDetails } from \"../utils/fetchEntryPermissionsAndStageDetails\";\n\ninterface ReferenceParentMap {\n [entryUid: string]: {\n contentTypeUid: string;\n contentTypeTitle: string;\n referenceFieldName: string;\n }[]\n}\n\nasync function getFieldDisplayNames(fieldMetadata: CslpData[]) {\n const result = await visualBuilderPostMessage?.send<{\n [k: string]: string;\n }>(VisualBuilderPostMessageEvents.GET_FIELD_DISPLAY_NAMES, fieldMetadata);\n return result;\n}\n\nasync function getContentTypeName(contentTypeUid: string) {\n try {\n const result = await visualBuilderPostMessage?.send<{\n contentTypeName: string;\n }>(VisualBuilderPostMessageEvents.GET_CONTENT_TYPE_NAME, {\n content_type_uid: contentTypeUid,\n });\n return result?.contentTypeName;\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error getting content type name\", e);\n return \"\";\n }\n}\n\nasync function getReferenceParentMap() {\n try {\n const result = await visualBuilderPostMessage?.send<ReferenceParentMap>(VisualBuilderPostMessageEvents.REFERENCE_MAP, {}) ?? {};\n return result;\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error getting reference parent map\", e);\n return {};\n }\n}\n\ninterface FieldLabelWrapperProps {\n fieldMetadata: CslpData;\n eventDetails: VisualBuilderCslpEventDetails;\n parentPaths: string[];\n getParentEditableElement: (cslp: string) => HTMLElement | null;\n}\n\ninterface ICurrentField {\n text: string;\n contentTypeName: string;\n icon: JSX.Element;\n prefixIcon: any;\n disabled: boolean;\n isVariant: boolean;\n isReference: boolean;\n referenceFieldName: string;\n parentContentTypeName: string;\n}\n\nfunction FieldLabelWrapperComponent(\n props: FieldLabelWrapperProps\n): JSX.Element {\n const { eventDetails } = props;\n const [currentField, setCurrentField] = useState<ICurrentField>({\n text: \"\",\n contentTypeName: \"\",\n icon: <CaretIcon />,\n prefixIcon: null,\n disabled: false,\n isVariant: false,\n isReference: false,\n referenceFieldName: \"\",\n parentContentTypeName: \"\",\n });\n const [displayNames, setDisplayNames] = useState<Record<string, string>>(\n {}\n );\n const [dataLoading, setDataLoading] = useState(true);\n const [error, setError] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n function calculateTopOffset(index: number) {\n const height = -30; // from bottom\n const offset = (index + 1) * height;\n return `${offset}px`;\n }\n\n useEffect(() => {\n const fetchData = async () => {\n setDataLoading(true);\n const allPaths = uniqBy(\n [\n props.fieldMetadata,\n ...props.parentPaths.map((path) => {\n return extractDetailsFromCslp(path);\n }),\n ],\n \"cslpValue\"\n );\n const [displayNames, fieldSchema, contentTypeName, referenceParentMap] = await Promise.all([\n getFieldDisplayNames(allPaths),\n FieldSchemaMap.getFieldSchema(\n props.fieldMetadata.content_type_uid,\n props.fieldMetadata.fieldPath\n ),\n getContentTypeName(\n props.fieldMetadata.content_type_uid\n ),\n getReferenceParentMap()\n ]);\n const entryUid = props.fieldMetadata.entry_uid;\n \n const referenceData = referenceParentMap[entryUid];\n const isReference = !!referenceData;\n\n let referenceFieldName = referenceData ? referenceData[0].referenceFieldName : \"\";\n let parentContentTypeName = referenceData ? referenceData[0].contentTypeTitle : \"\";\n\n if(isReference) {\n const domAncestor = eventDetails.editableElement.closest(`[data-cslp]:not([data-cslp^=\"${props.fieldMetadata.content_type_uid}\"])`);\n if(domAncestor) {\n const domAncestorCslp = domAncestor.getAttribute(\"data-cslp\");\n const domAncestorDetails = extractDetailsFromCslp(domAncestorCslp!);\n const domAncestorContentTypeUid = domAncestorDetails.content_type_uid;\n const domAncestorContentParent = referenceData?.find(data => data.contentTypeUid === domAncestorContentTypeUid);\n if(domAncestorContentParent) {\n referenceFieldName = domAncestorContentParent.referenceFieldName;\n parentContentTypeName = domAncestorContentParent.contentTypeTitle;\n }\n }\n }\n\n if (hasPostMessageError(displayNames) || !fieldSchema) {\n setDataLoading(false);\n setError(true);\n\n return;\n }\n\n const { acl: entryAcl, workflowStage: entryWorkflowStageDetails } =\n await fetchEntryPermissionsAndStageDetails({\n entryUid: props.fieldMetadata.entry_uid,\n contentTypeUid: props.fieldMetadata.content_type_uid,\n locale: props.fieldMetadata.locale,\n variantUid: props.fieldMetadata.variant,\n });\n const { isDisabled: fieldDisabled, reason } = isFieldDisabled(\n fieldSchema,\n eventDetails,\n entryAcl,\n entryWorkflowStageDetails\n );\n\n const currentFieldDisplayName =\n displayNames?.[props.fieldMetadata.cslpValue] ??\n fieldSchema.display_name;\n\n const hasParentPaths = !!props?.parentPaths?.length;\n const isVariant = props.fieldMetadata.variant ? true : false;\n\n setCurrentField({\n text: currentFieldDisplayName,\n contentTypeName: contentTypeName ?? \"\",\n icon: fieldDisabled ? (\n <div\n className={classNames(\n visualBuilderStyles()[\n \"visual-builder__tooltip--persistent\"\n ]\n )}\n data-tooltip={reason}\n >\n <InfoIcon />\n </div>\n ) : hasParentPaths ? (\n <CaretIcon />\n ) : (\n <></>\n ),\n isReference,\n prefixIcon: getFieldIcon(fieldSchema),\n disabled: fieldDisabled,\n referenceFieldName,\n parentContentTypeName,\n isVariant: isVariant,\n });\n\n if (displayNames) {\n setDisplayNames(displayNames);\n }\n if (Object.keys(displayNames || {})?.length === allPaths.length) {\n setDataLoading(false);\n }\n };\n\n try {\n fetchData();\n } catch(e) {\n console.warn(\"[getFieldLabelWrapper] Error fetching field label data\", e);\n }\n }, [props]);\n\n const onParentPathClick = (cslp: string) => {\n const parentElement = props.getParentEditableElement(cslp);\n if (parentElement) {\n // emulate clicking on the parent element\n parentElement.click();\n }\n };\n\n function getCurrentFieldIcon() {\n if (error) {\n return null;\n } else if (dataLoading) {\n return <LoadingIcon />;\n } else {\n return currentField.icon;\n }\n }\n\n return (\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-container\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-container\"\n ]\n )}\n >\n <ToolbarTooltip data={{contentTypeName: currentField.parentContentTypeName, referenceFieldName: currentField.referenceFieldName}} disabled={!currentField.isReference || isDropdownOpen}>\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper\"\n ],\n {\n \"visual-builder__focused-toolbar--field-disabled\":\n currentField.disabled,\n },\n {\n [visualBuilderStyles()[\n \"visual-builder__focused-toolbar--field-disabled\"\n ]]: currentField.disabled,\n },\n {\n \"field-label-dropdown-open\": isDropdownOpen,\n [visualBuilderStyles()[\"field-label-dropdown-open\"]]:\n isDropdownOpen,\n }\n )}\n onClick={() => setIsDropdownOpen((prev) => !prev)}\n data-testid=\"visual-builder__focused-toolbar__field-label-wrapper\"\n data-hovered-cslp={props.fieldMetadata.cslpValue}\n >\n <button\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper__current-field visual-builder__button visual-builder__button--primary visual-builder__button-loader\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper__current-field\"\n ],\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\n \"visual-builder__button--primary\"\n ],\n visualBuilderStyles()[\"visual-builder__button-loader\"],\n error &&\n visualBuilderStyles()[\n \"visual-builder__button-error\"\n ]\n )}\n disabled={dataLoading}\n >\n {\n currentField.isReference && !dataLoading && !error ? \n <div \n className={classNames(\n \"visual-builder__reference-icon-container\",\n visualBuilderStyles()[\"visual-builder__reference-icon-container\"]\n )}\n >\n <div\n className={classNames(\n \"visual-builder__field-icon\",\n visualBuilderStyles()[\n \"visual-builder__field-icon\"\n ]\n )}\n dangerouslySetInnerHTML={{\n __html: FieldTypeIconsMap.reference,\n }}\n data-testid=\"visual-builder__field-icon-caret\"\n />\n <CaretRightIcon />\n </div> : null\n }\n {\n currentField.contentTypeName && !dataLoading && !error ?\n <>\n <ContentTypeIcon />\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__ct-name\"\n >\n {currentField.contentTypeName + \" : \"}\n </div>\n </> : null\n }\n {currentField.prefixIcon ? (\n <div\n className={classNames(\n \"visual-builder__field-icon\",\n visualBuilderStyles()[\n \"visual-builder__field-icon\"\n ]\n )}\n dangerouslySetInnerHTML={{\n __html: currentField.prefixIcon,\n }}\n data-testid=\"visual-builder__field-icon\"\n />\n ) : null}\n {currentField.text ? (\n <div\n className={classNames(\n \"visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-testid=\"visual-builder__focused-toolbar__text\"\n >\n {currentField.text}\n </div>\n ) : null}\n {getCurrentFieldIcon()}\n {error ? <CslpError /> : null}\n </button>\n {props.parentPaths.map((path, index) => (\n <button\n key={path}\n className={classNames(\n \"visual-builder__focused-toolbar__field-label-wrapper__parent-field visual-builder__button visual-builder__button--secondary visual-builder__focused-toolbar__text\",\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__field-label-wrapper__parent-field\"\n ],\n visualBuilderStyles()[\"visual-builder__button\"],\n visualBuilderStyles()[\n \"visual-builder__button--secondary\"\n ],\n visualBuilderStyles()[\n \"visual-builder__focused-toolbar__text\"\n ]\n )}\n data-target-cslp={path}\n style={{ top: calculateTopOffset(index) }}\n onClick={() => onParentPathClick(path)}\n >\n {displayNames[path]}\n </button>\n ))}\n </div>\n </ToolbarTooltip>\n </div>\n );\n}\n\nexport default FieldLabelWrapperComponent;\n"],"mappings":";;;AAAA,OAAO,gBAAgB;AACvB,SAAgB,WAAW,gBAAgB;AAC3C,SAAS,8BAA8B;AAGvC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,OAAO,8BAA8B;AACrC,SAAS,WAAW,gBAAgB,gBAAgB;AACpD,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB,oBAAoB;AAChD,SAAS,cAAc;AACvB,SAAS,2BAA2B;AACpC,SAAS,iBAAiB;AAC1B,SAAS,2BAA2B;AACpC,SAAS,sCAAsC;AAC/C,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAC/B,SAAS,4CAA4C;AAmEvC,SA+GM,UA/GN,KAiNc,YAjNd;AAzDd,eAAe,qBAAqB,eAA2B;AA5B/D;AA6BI,QAAM,SAAS,QAAM,qDAA0B,KAE5C,+BAA+B,yBAAyB;AAC3D,SAAO;AACX;AAEA,eAAe,mBAAmB,gBAAwB;AAnC1D;AAoCI,MAAI;AACA,UAAM,SAAS,QAAM,qDAA0B,KAE5C,+BAA+B,uBAAuB;AAAA,MACrD,kBAAkB;AAAA,IACtB;AACA,WAAO,iCAAQ;AAAA,EACnB,SAAQ,GAAG;AACP,YAAQ,KAAK,0DAA0D,CAAC;AACxE,WAAO;AAAA,EACX;AACJ;AAEA,eAAe,wBAAwB;AAjDvC;AAkDI,MAAI;AACA,UAAM,SAAS,QAAM,qDAA0B,KAAyB,+BAA+B,eAAe,CAAC,OAAM,CAAC;AAC9H,WAAO;AAAA,EACX,SAAQ,GAAG;AACP,YAAQ,KAAK,6DAA6D,CAAC;AAC3E,WAAO,CAAC;AAAA,EACZ;AACJ;AAqBA,SAAS,2BACL,OACW;AACX,QAAM,EAAE,aAAa,IAAI;AACzB,QAAM,CAAC,cAAc,eAAe,IAAI,SAAwB;AAAA,IAC5D,MAAM;AAAA,IACN,iBAAiB;AAAA,IACjB,MAAM,oBAAC,aAAU;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,EAC3B,CAAC;AACD,QAAM,CAAC,cAAc,eAAe,IAAI;AAAA,IACpC,CAAC;AAAA,EACL;AACA,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,IAAI;AACnD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,KAAK;AACxC,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAE1D,WAAS,mBAAmB,OAAe;AACvC,UAAM,SAAS;AACf,UAAM,UAAU,QAAQ,KAAK;AAC7B,WAAO,GAAG,MAAM;AAAA,EACpB;AAEA,YAAU,MAAM;AACZ,UAAM,YAAY,YAAY;AA3GtC;AA4GY,qBAAe,IAAI;AACnB,YAAM,WAAW;AAAA,QACb;AAAA,UACI,MAAM;AAAA,UACN,GAAG,MAAM,YAAY,IAAI,CAAC,SAAS;AAC/B,mBAAO,uBAAuB,IAAI;AAAA,UACtC,CAAC;AAAA,QACL;AAAA,QACA;AAAA,MACJ;AACA,YAAM,CAACA,eAAc,aAAa,iBAAiB,kBAAkB,IAAI,MAAM,QAAQ,IAAI;AAAA,QACvF,qBAAqB,QAAQ;AAAA,QAC7B,eAAe;AAAA,UACX,MAAM,cAAc;AAAA,UACpB,MAAM,cAAc;AAAA,QACxB;AAAA,QACA;AAAA,UACI,MAAM,cAAc;AAAA,QACxB;AAAA,QACA,sBAAsB;AAAA,MAC1B,CAAC;AACD,YAAM,WAAW,MAAM,cAAc;AAErC,YAAM,gBAAgB,mBAAmB,QAAQ;AACjD,YAAM,cAAc,CAAC,CAAC;AAEtB,UAAI,qBAAqB,gBAAgB,cAAc,CAAC,EAAE,qBAAqB;AAC/E,UAAI,wBAAwB,gBAAgB,cAAc,CAAC,EAAE,mBAAmB;AAEhF,UAAG,aAAa;AACZ,cAAM,cAAc,aAAa,gBAAgB,QAAQ,gCAAgC,MAAM,cAAc,gBAAgB,KAAK;AAClI,YAAG,aAAa;AACZ,gBAAM,kBAAkB,YAAY,aAAa,WAAW;AAC5D,gBAAM,qBAAqB,uBAAuB,eAAgB;AAClE,gBAAM,4BAA4B,mBAAmB;AACrD,gBAAM,2BAA2B,+CAAe,KAAK,UAAQ,KAAK,mBAAmB;AACrF,cAAG,0BAA0B;AACzB,iCAAqB,yBAAyB;AAC9C,oCAAwB,yBAAyB;AAAA,UACrD;AAAA,QACJ;AAAA,MACJ;AAEA,UAAI,oBAAoBA,aAAY,KAAK,CAAC,aAAa;AACnD,uBAAe,KAAK;AACpB,iBAAS,IAAI;AAEb;AAAA,MACJ;AAEA,YAAM,EAAE,KAAK,UAAU,eAAe,0BAA0B,IAC5D,MAAM,qCAAqC;AAAA,QACvC,UAAU,MAAM,cAAc;AAAA,QAC9B,gBAAgB,MAAM,cAAc;AAAA,QACpC,QAAQ,MAAM,cAAc;AAAA,QAC5B,YAAY,MAAM,cAAc;AAAA,MACpC,CAAC;AACL,YAAM,EAAE,YAAY,eAAe,OAAO,IAAI;AAAA,QAC1C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAEA,YAAM,2BACFA,iBAAA,gBAAAA,cAAe,MAAM,cAAc,eACnC,YAAY;AAEhB,YAAM,iBAAiB,CAAC,GAAC,oCAAO,gBAAP,mBAAoB;AAC7C,YAAM,YAAY,MAAM,cAAc,UAAU,OAAO;AAEvD,sBAAgB;AAAA,QACZ,MAAM;AAAA,QACN,iBAAiB,mBAAmB;AAAA,QACpC,MAAM,gBACF;AAAA,UAAC;AAAA;AAAA,YACG,WAAW;AAAA,cACP,oBAAoB,EAChB,qCACJ;AAAA,YACJ;AAAA,YACA,gBAAc;AAAA,YAEd,8BAAC,YAAS;AAAA;AAAA,QACd,IACA,iBACA,oBAAC,aAAU,IAEX,gCAAE;AAAA,QAEN;AAAA,QACA,YAAY,aAAa,WAAW;AAAA,QACpC,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAED,UAAIA,eAAc;AACd,wBAAgBA,aAAY;AAAA,MAChC;AACA,YAAI,YAAO,KAAKA,iBAAgB,CAAC,CAAC,MAA9B,mBAAiC,YAAW,SAAS,QAAQ;AAC7D,uBAAe,KAAK;AAAA,MACxB;AAAA,IACJ;AAEA,QAAI;AACA,gBAAU;AAAA,IACd,SAAQ,GAAG;AACP,cAAQ,KAAK,0DAA0D,CAAC;AAAA,IAC5E;AAAA,EACJ,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,oBAAoB,CAAC,SAAiB;AACxC,UAAM,gBAAgB,MAAM,yBAAyB,IAAI;AACzD,QAAI,eAAe;AAEf,oBAAc,MAAM;AAAA,IACxB;AAAA,EACJ;AAEA,WAAS,sBAAsB;AAC3B,QAAI,OAAO;AACP,aAAO;AAAA,IACX,WAAW,aAAa;AACpB,aAAO,oBAAC,eAAY;AAAA,IACxB,OAAO;AACH,aAAO,aAAa;AAAA,IACxB;AAAA,EACJ;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,QACP;AAAA,QACA,oBAAoB,EAChB,wDACJ;AAAA,MACJ;AAAA,MAEA,8BAAC,kBAAe,MAAM,EAAC,iBAAiB,aAAa,uBAAuB,oBAAoB,aAAa,mBAAkB,GAAG,UAAU,CAAC,aAAa,eAAe,gBACrK;AAAA,QAAC;AAAA;AAAA,UACG,WAAW;AAAA,YACP;AAAA,YACA,oBAAoB,EAChB,sDACJ;AAAA,YACA;AAAA,cACI,mDACI,aAAa;AAAA,YACrB;AAAA,YACA;AAAA,cACI,CAAC,oBAAoB,EACjB,iDACJ,CAAC,GAAG,aAAa;AAAA,YACrB;AAAA,YACA;AAAA,cACI,6BAA6B;AAAA,cAC7B,CAAC,oBAAoB,EAAE,2BAA2B,CAAC,GAC/C;AAAA,YACR;AAAA,UACJ;AAAA,UACA,SAAS,MAAM,kBAAkB,CAAC,SAAS,CAAC,IAAI;AAAA,UAChD,eAAY;AAAA,UACZ,qBAAmB,MAAM,cAAc;AAAA,UAEvC;AAAA;AAAA,cAAC;AAAA;AAAA,gBACG,WAAW;AAAA,kBACP;AAAA,kBACA,oBAAoB,EAChB,qEACJ;AAAA,kBACA,oBAAoB,EAAE,wBAAwB;AAAA,kBAC9C,oBAAoB,EAChB,iCACJ;AAAA,kBACA,oBAAoB,EAAE,+BAA+B;AAAA,kBACrD,SACI,oBAAoB,EAChB,8BACJ;AAAA,gBACR;AAAA,gBACA,UAAU;AAAA,gBAGN;AAAA,+BAAa,eAAe,CAAC,eAAe,CAAC,QAC7C;AAAA,oBAAC;AAAA;AAAA,sBACD,WAAW;AAAA,wBACP;AAAA,wBACA,oBAAoB,EAAE,0CAA0C;AAAA,sBACpE;AAAA,sBAEI;AAAA;AAAA,0BAAC;AAAA;AAAA,4BACG,WAAW;AAAA,8BACP;AAAA,8BACA,oBAAoB,EAChB,4BACJ;AAAA,4BACJ;AAAA,4BACA,yBAAyB;AAAA,8BACrB,QAAQ,kBAAkB;AAAA,4BAC9B;AAAA,4BACA,eAAY;AAAA;AAAA,wBAChB;AAAA,wBACA,oBAAC,kBAAe;AAAA;AAAA;AAAA,kBACpB,IAAS;AAAA,kBAGT,aAAa,mBAAmB,CAAC,eAAe,CAAC,QACjD,iCACI;AAAA,wCAAC,mBAAgB;AAAA,oBACjB;AAAA,sBAAC;AAAA;AAAA,wBACG,WAAW;AAAA,0BACP;AAAA,0BACA,oBAAoB,EAChB,uCACJ;AAAA,wBACJ;AAAA,wBACA,eAAY;AAAA,wBAEX,uBAAa,kBAAkB;AAAA;AAAA,oBACpC;AAAA,qBACJ,IAAM;AAAA,kBAET,aAAa,aACV;AAAA,oBAAC;AAAA;AAAA,sBACG,WAAW;AAAA,wBACP;AAAA,wBACA,oBAAoB,EAChB,4BACJ;AAAA,sBACJ;AAAA,sBACA,yBAAyB;AAAA,wBACrB,QAAQ,aAAa;AAAA,sBACzB;AAAA,sBACA,eAAY;AAAA;AAAA,kBAChB,IACA;AAAA,kBACH,aAAa,OACV;AAAA,oBAAC;AAAA;AAAA,sBACG,WAAW;AAAA,wBACP;AAAA,wBACA,oBAAoB,EAChB,uCACJ;AAAA,sBACJ;AAAA,sBACA,eAAY;AAAA,sBAEX,uBAAa;AAAA;AAAA,kBAClB,IACA;AAAA,kBACH,oBAAoB;AAAA,kBACpB,QAAQ,oBAAC,aAAU,IAAK;AAAA;AAAA;AAAA,YAC7B;AAAA,YACC,MAAM,YAAY,IAAI,CAAC,MAAM,UAC1B;AAAA,cAAC;AAAA;AAAA,gBAEG,WAAW;AAAA,kBACP;AAAA,kBACA,oBAAoB,EAChB,oEACJ;AAAA,kBACA,oBAAoB,EAAE,wBAAwB;AAAA,kBAC9C,oBAAoB,EAChB,mCACJ;AAAA,kBACA,oBAAoB,EAChB,uCACJ;AAAA,gBACJ;AAAA,gBACA,oBAAkB;AAAA,gBAClB,OAAO,EAAE,KAAK,mBAAmB,KAAK,EAAE;AAAA,gBACxC,SAAS,MAAM,kBAAkB,IAAI;AAAA,gBAEpC,uBAAa,IAAI;AAAA;AAAA,cAlBb;AAAA,YAmBT,CACH;AAAA;AAAA;AAAA,MACL,GACJ;AAAA;AAAA,EACJ;AAER;AAEA,IAAO,4BAAQ;","names":["displayNames"]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/visualBuilder/components/icons/EmptyAppIcon.tsx
|
|
21
|
+
var EmptyAppIcon_exports = {};
|
|
22
|
+
__export(EmptyAppIcon_exports, {
|
|
23
|
+
EmptyAppIcon: () => EmptyAppIcon,
|
|
24
|
+
getColorFromString: () => getColorFromString,
|
|
25
|
+
sumOfAscii: () => sumOfAscii
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(EmptyAppIcon_exports);
|
|
28
|
+
var import_jsx_runtime = require("preact/jsx-runtime");
|
|
29
|
+
var EmptyAppIcon = ({
|
|
30
|
+
id = "",
|
|
31
|
+
...props
|
|
32
|
+
}) => {
|
|
33
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
34
|
+
"svg",
|
|
35
|
+
{
|
|
36
|
+
width: "35",
|
|
37
|
+
height: "35",
|
|
38
|
+
viewBox: "0 0 72 72",
|
|
39
|
+
fill: "none",
|
|
40
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
41
|
+
...props,
|
|
42
|
+
children: [
|
|
43
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "36", cy: "36", r: "36", fill: getColorFromString(id) }),
|
|
44
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
45
|
+
"path",
|
|
46
|
+
{
|
|
47
|
+
fillRule: "evenodd",
|
|
48
|
+
clipRule: "evenodd",
|
|
49
|
+
d: "M32.0577 27.3091H25.7747C25.1627 27.3091 24.6667 27.8052 24.6667 28.4171V31.6933H25.4351C28.2423 31.6933 30.9099 33.6523 30.9099 36.8808C30.9099 40.0525 28.3048 42.1467 25.4351 42.1467H24.6667V47.2253C24.6667 47.8372 25.1627 48.3333 25.7747 48.3333H30.8533V47.5649C30.8533 44.6952 32.9475 42.0901 36.1192 42.0901C39.3477 42.0901 41.3067 44.7577 41.3067 47.5649V48.3333H44.5829C45.1948 48.3333 45.6909 47.8372 45.6909 47.2253V40.8782L47.9921 40.5598C49.9596 40.2875 51.3333 38.7771 51.3333 36.8808C51.3333 35.0149 49.9935 33.5515 47.9984 33.2804L45.6909 32.9668V28.4171C45.6909 27.8052 45.1948 27.3091 44.5829 27.3091H40.0974L39.7801 25.0065C39.5081 23.0327 38.0085 21.6667 36.1192 21.6667C34.1999 21.6667 32.6528 23.0659 32.3798 25.0128L32.0577 27.3091ZM38.64 51V47.5649C38.64 45.9382 37.5988 44.7567 36.1192 44.7567C34.6198 44.7567 33.52 45.9602 33.52 47.5649V51H25.7747C23.69 51 22 49.31 22 47.2253V39.48H25.4351C27.0398 39.48 28.2433 38.3802 28.2433 36.8808C28.2433 35.4012 27.0618 34.36 25.4351 34.36H22V28.4171C22 26.3324 23.69 24.6424 25.7747 24.6424H29.739C30.1842 21.4681 32.7819 19 36.1192 19C39.4662 19 41.9856 21.4774 42.4218 24.6424H44.5829C46.6676 24.6424 48.3576 26.3324 48.3576 28.4171V30.638C51.5153 31.0671 54 33.5263 54 36.8808C54 40.2256 51.5248 42.763 48.3576 43.2013V47.2253C48.3576 49.31 46.6676 51 44.5829 51H38.64Z",
|
|
50
|
+
fill: "white"
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
};
|
|
57
|
+
var sumOfAscii = (str) => [...str].reduce((a, b) => a + b.charCodeAt(0), 0);
|
|
58
|
+
var getColorFromString = (str = "") => {
|
|
59
|
+
const colorList = [
|
|
60
|
+
"#99D8CE",
|
|
61
|
+
"#6BC3FE",
|
|
62
|
+
"#5060C1",
|
|
63
|
+
"#835EC3",
|
|
64
|
+
"#B16DBD",
|
|
65
|
+
"#FF85BC",
|
|
66
|
+
"#FF7E83",
|
|
67
|
+
"#A2D959",
|
|
68
|
+
"#59BA5E"
|
|
69
|
+
];
|
|
70
|
+
return colorList[sumOfAscii(str) % colorList.length];
|
|
71
|
+
};
|
|
72
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
+
0 && (module.exports = {
|
|
74
|
+
EmptyAppIcon,
|
|
75
|
+
getColorFromString,
|
|
76
|
+
sumOfAscii
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=EmptyAppIcon.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/visualBuilder/components/icons/EmptyAppIcon.tsx"],"sourcesContent":["export const EmptyAppIcon = ({\n id = \"\",\n ...props\n}: React.SVGProps<SVGSVGElement> & { id?: string }) => {\n return (\n <svg\n width=\"35\"\n height=\"35\"\n viewBox=\"0 0 72 72\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"36\" cy=\"36\" r=\"36\" fill={getColorFromString(id)} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M32.0577 27.3091H25.7747C25.1627 27.3091 24.6667 27.8052 24.6667 28.4171V31.6933H25.4351C28.2423 31.6933 30.9099 33.6523 30.9099 36.8808C30.9099 40.0525 28.3048 42.1467 25.4351 42.1467H24.6667V47.2253C24.6667 47.8372 25.1627 48.3333 25.7747 48.3333H30.8533V47.5649C30.8533 44.6952 32.9475 42.0901 36.1192 42.0901C39.3477 42.0901 41.3067 44.7577 41.3067 47.5649V48.3333H44.5829C45.1948 48.3333 45.6909 47.8372 45.6909 47.2253V40.8782L47.9921 40.5598C49.9596 40.2875 51.3333 38.7771 51.3333 36.8808C51.3333 35.0149 49.9935 33.5515 47.9984 33.2804L45.6909 32.9668V28.4171C45.6909 27.8052 45.1948 27.3091 44.5829 27.3091H40.0974L39.7801 25.0065C39.5081 23.0327 38.0085 21.6667 36.1192 21.6667C34.1999 21.6667 32.6528 23.0659 32.3798 25.0128L32.0577 27.3091ZM38.64 51V47.5649C38.64 45.9382 37.5988 44.7567 36.1192 44.7567C34.6198 44.7567 33.52 45.9602 33.52 47.5649V51H25.7747C23.69 51 22 49.31 22 47.2253V39.48H25.4351C27.0398 39.48 28.2433 38.3802 28.2433 36.8808C28.2433 35.4012 27.0618 34.36 25.4351 34.36H22V28.4171C22 26.3324 23.69 24.6424 25.7747 24.6424H29.739C30.1842 21.4681 32.7819 19 36.1192 19C39.4662 19 41.9856 21.4774 42.4218 24.6424H44.5829C46.6676 24.6424 48.3576 26.3324 48.3576 28.4171V30.638C51.5153 31.0671 54 33.5263 54 36.8808C54 40.2256 51.5248 42.763 48.3576 43.2013V47.2253C48.3576 49.31 46.6676 51 44.5829 51H38.64Z\"\n fill=\"white\"\n />\n </svg>\n );\n};\nexport const sumOfAscii = (str: string): number =>\n [...str].reduce((a, b) => a + b.charCodeAt(0), 0);\n\nexport const getColorFromString = (str: string = \"\"): string => {\n const colorList: string[] = [\n \"#99D8CE\",\n \"#6BC3FE\",\n \"#5060C1\",\n \"#835EC3\",\n \"#B16DBD\",\n \"#FF85BC\",\n \"#FF7E83\",\n \"#A2D959\",\n \"#59BA5E\",\n ];\n return colorList[sumOfAscii(str) % colorList.length];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKQ;AALD,IAAM,eAAe,CAAC;AAAA,EACzB,KAAK;AAAA,EACL,GAAG;AACP,MAAuD;AACnD,SACI;AAAA,IAAC;AAAA;AAAA,MACG,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACL,GAAG;AAAA,MAEJ;AAAA,oDAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,MAAM,mBAAmB,EAAE,GAAG;AAAA,QAC7D;AAAA,UAAC;AAAA;AAAA,YACG,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACT;AAAA;AAAA;AAAA,EACJ;AAER;AACO,IAAM,aAAa,CAAC,QACvB,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC;AAE7C,IAAM,qBAAqB,CAAC,MAAc,OAAe;AAC5D,QAAM,YAAsB;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA,SAAO,UAAU,WAAW,GAAG,IAAI,UAAU,MAAM;AACvD;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
declare const EmptyAppIcon: ({ id, ...props }: React.SVGProps<SVGSVGElement> & {
|
|
4
|
+
id?: string;
|
|
5
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
6
|
+
declare const sumOfAscii: (str: string) => number;
|
|
7
|
+
declare const getColorFromString: (str?: string) => string;
|
|
8
|
+
|
|
9
|
+
export { EmptyAppIcon, getColorFromString, sumOfAscii };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
declare const EmptyAppIcon: ({ id, ...props }: React.SVGProps<SVGSVGElement> & {
|
|
4
|
+
id?: string;
|
|
5
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
6
|
+
declare const sumOfAscii: (str: string) => number;
|
|
7
|
+
declare const getColorFromString: (str?: string) => string;
|
|
8
|
+
|
|
9
|
+
export { EmptyAppIcon, getColorFromString, sumOfAscii };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import "../../../chunk-5WRI5ZAA.js";
|
|
2
|
+
|
|
3
|
+
// src/visualBuilder/components/icons/EmptyAppIcon.tsx
|
|
4
|
+
import { jsx, jsxs } from "preact/jsx-runtime";
|
|
5
|
+
var EmptyAppIcon = ({
|
|
6
|
+
id = "",
|
|
7
|
+
...props
|
|
8
|
+
}) => {
|
|
9
|
+
return /* @__PURE__ */ jsxs(
|
|
10
|
+
"svg",
|
|
11
|
+
{
|
|
12
|
+
width: "35",
|
|
13
|
+
height: "35",
|
|
14
|
+
viewBox: "0 0 72 72",
|
|
15
|
+
fill: "none",
|
|
16
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
17
|
+
...props,
|
|
18
|
+
children: [
|
|
19
|
+
/* @__PURE__ */ jsx("circle", { cx: "36", cy: "36", r: "36", fill: getColorFromString(id) }),
|
|
20
|
+
/* @__PURE__ */ jsx(
|
|
21
|
+
"path",
|
|
22
|
+
{
|
|
23
|
+
fillRule: "evenodd",
|
|
24
|
+
clipRule: "evenodd",
|
|
25
|
+
d: "M32.0577 27.3091H25.7747C25.1627 27.3091 24.6667 27.8052 24.6667 28.4171V31.6933H25.4351C28.2423 31.6933 30.9099 33.6523 30.9099 36.8808C30.9099 40.0525 28.3048 42.1467 25.4351 42.1467H24.6667V47.2253C24.6667 47.8372 25.1627 48.3333 25.7747 48.3333H30.8533V47.5649C30.8533 44.6952 32.9475 42.0901 36.1192 42.0901C39.3477 42.0901 41.3067 44.7577 41.3067 47.5649V48.3333H44.5829C45.1948 48.3333 45.6909 47.8372 45.6909 47.2253V40.8782L47.9921 40.5598C49.9596 40.2875 51.3333 38.7771 51.3333 36.8808C51.3333 35.0149 49.9935 33.5515 47.9984 33.2804L45.6909 32.9668V28.4171C45.6909 27.8052 45.1948 27.3091 44.5829 27.3091H40.0974L39.7801 25.0065C39.5081 23.0327 38.0085 21.6667 36.1192 21.6667C34.1999 21.6667 32.6528 23.0659 32.3798 25.0128L32.0577 27.3091ZM38.64 51V47.5649C38.64 45.9382 37.5988 44.7567 36.1192 44.7567C34.6198 44.7567 33.52 45.9602 33.52 47.5649V51H25.7747C23.69 51 22 49.31 22 47.2253V39.48H25.4351C27.0398 39.48 28.2433 38.3802 28.2433 36.8808C28.2433 35.4012 27.0618 34.36 25.4351 34.36H22V28.4171C22 26.3324 23.69 24.6424 25.7747 24.6424H29.739C30.1842 21.4681 32.7819 19 36.1192 19C39.4662 19 41.9856 21.4774 42.4218 24.6424H44.5829C46.6676 24.6424 48.3576 26.3324 48.3576 28.4171V30.638C51.5153 31.0671 54 33.5263 54 36.8808C54 40.2256 51.5248 42.763 48.3576 43.2013V47.2253C48.3576 49.31 46.6676 51 44.5829 51H38.64Z",
|
|
26
|
+
fill: "white"
|
|
27
|
+
}
|
|
28
|
+
)
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
var sumOfAscii = (str) => [...str].reduce((a, b) => a + b.charCodeAt(0), 0);
|
|
34
|
+
var getColorFromString = (str = "") => {
|
|
35
|
+
const colorList = [
|
|
36
|
+
"#99D8CE",
|
|
37
|
+
"#6BC3FE",
|
|
38
|
+
"#5060C1",
|
|
39
|
+
"#835EC3",
|
|
40
|
+
"#B16DBD",
|
|
41
|
+
"#FF85BC",
|
|
42
|
+
"#FF7E83",
|
|
43
|
+
"#A2D959",
|
|
44
|
+
"#59BA5E"
|
|
45
|
+
];
|
|
46
|
+
return colorList[sumOfAscii(str) % colorList.length];
|
|
47
|
+
};
|
|
48
|
+
export {
|
|
49
|
+
EmptyAppIcon,
|
|
50
|
+
getColorFromString,
|
|
51
|
+
sumOfAscii
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=EmptyAppIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/visualBuilder/components/icons/EmptyAppIcon.tsx"],"sourcesContent":["export const EmptyAppIcon = ({\n id = \"\",\n ...props\n}: React.SVGProps<SVGSVGElement> & { id?: string }) => {\n return (\n <svg\n width=\"35\"\n height=\"35\"\n viewBox=\"0 0 72 72\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"36\" cy=\"36\" r=\"36\" fill={getColorFromString(id)} />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M32.0577 27.3091H25.7747C25.1627 27.3091 24.6667 27.8052 24.6667 28.4171V31.6933H25.4351C28.2423 31.6933 30.9099 33.6523 30.9099 36.8808C30.9099 40.0525 28.3048 42.1467 25.4351 42.1467H24.6667V47.2253C24.6667 47.8372 25.1627 48.3333 25.7747 48.3333H30.8533V47.5649C30.8533 44.6952 32.9475 42.0901 36.1192 42.0901C39.3477 42.0901 41.3067 44.7577 41.3067 47.5649V48.3333H44.5829C45.1948 48.3333 45.6909 47.8372 45.6909 47.2253V40.8782L47.9921 40.5598C49.9596 40.2875 51.3333 38.7771 51.3333 36.8808C51.3333 35.0149 49.9935 33.5515 47.9984 33.2804L45.6909 32.9668V28.4171C45.6909 27.8052 45.1948 27.3091 44.5829 27.3091H40.0974L39.7801 25.0065C39.5081 23.0327 38.0085 21.6667 36.1192 21.6667C34.1999 21.6667 32.6528 23.0659 32.3798 25.0128L32.0577 27.3091ZM38.64 51V47.5649C38.64 45.9382 37.5988 44.7567 36.1192 44.7567C34.6198 44.7567 33.52 45.9602 33.52 47.5649V51H25.7747C23.69 51 22 49.31 22 47.2253V39.48H25.4351C27.0398 39.48 28.2433 38.3802 28.2433 36.8808C28.2433 35.4012 27.0618 34.36 25.4351 34.36H22V28.4171C22 26.3324 23.69 24.6424 25.7747 24.6424H29.739C30.1842 21.4681 32.7819 19 36.1192 19C39.4662 19 41.9856 21.4774 42.4218 24.6424H44.5829C46.6676 24.6424 48.3576 26.3324 48.3576 28.4171V30.638C51.5153 31.0671 54 33.5263 54 36.8808C54 40.2256 51.5248 42.763 48.3576 43.2013V47.2253C48.3576 49.31 46.6676 51 44.5829 51H38.64Z\"\n fill=\"white\"\n />\n </svg>\n );\n};\nexport const sumOfAscii = (str: string): number =>\n [...str].reduce((a, b) => a + b.charCodeAt(0), 0);\n\nexport const getColorFromString = (str: string = \"\"): string => {\n const colorList: string[] = [\n \"#99D8CE\",\n \"#6BC3FE\",\n \"#5060C1\",\n \"#835EC3\",\n \"#B16DBD\",\n \"#FF85BC\",\n \"#FF7E83\",\n \"#A2D959\",\n \"#59BA5E\",\n ];\n return colorList[sumOfAscii(str) % colorList.length];\n};\n"],"mappings":";;;AAKQ,SAQI,KARJ;AALD,IAAM,eAAe,CAAC;AAAA,EACzB,KAAK;AAAA,EACL,GAAG;AACP,MAAuD;AACnD,SACI;AAAA,IAAC;AAAA;AAAA,MACG,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACL,GAAG;AAAA,MAEJ;AAAA,4BAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,MAAM,mBAAmB,EAAE,GAAG;AAAA,QAC7D;AAAA,UAAC;AAAA;AAAA,YACG,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACT;AAAA;AAAA;AAAA,EACJ;AAER;AACO,IAAM,aAAa,CAAC,QACvB,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC;AAE7C,IAAM,qBAAqB,CAAC,MAAc,OAAe;AAC5D,QAAM,YAAsB;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA,SAAO,UAAU,WAAW,GAAG,IAAI,UAAU,MAAM;AACvD;","names":[]}
|
|
@@ -39,6 +39,7 @@ __export(icons_exports, {
|
|
|
39
39
|
FormIcon: () => FormIcon,
|
|
40
40
|
HighlightCommentIcon: () => HighlightCommentIcon,
|
|
41
41
|
InfoIcon: () => InfoIcon,
|
|
42
|
+
MoreIcon: () => MoreIcon,
|
|
42
43
|
MoveLeftIcon: () => MoveLeftIcon,
|
|
43
44
|
MoveRightIcon: () => MoveRightIcon,
|
|
44
45
|
PlusIcon: () => PlusIcon,
|
|
@@ -401,6 +402,23 @@ function WarningOctagonIcon() {
|
|
|
401
402
|
}
|
|
402
403
|
);
|
|
403
404
|
}
|
|
405
|
+
function MoreIcon() {
|
|
406
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
407
|
+
"svg",
|
|
408
|
+
{
|
|
409
|
+
width: "32",
|
|
410
|
+
height: "32",
|
|
411
|
+
viewBox: "0 0 24 24",
|
|
412
|
+
fill: "none",
|
|
413
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
414
|
+
children: [
|
|
415
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "12", cy: "6", r: "2", fill: "#475161" }),
|
|
416
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "12", cy: "12", r: "2", fill: "#475161" }),
|
|
417
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "12", cy: "18", r: "2", fill: "#475161" })
|
|
418
|
+
]
|
|
419
|
+
}
|
|
420
|
+
);
|
|
421
|
+
}
|
|
404
422
|
function ContentTypeIcon() {
|
|
405
423
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
406
424
|
"div",
|
|
@@ -440,6 +458,7 @@ function CaretRightIcon() {
|
|
|
440
458
|
FormIcon,
|
|
441
459
|
HighlightCommentIcon,
|
|
442
460
|
InfoIcon,
|
|
461
|
+
MoreIcon,
|
|
443
462
|
MoveLeftIcon,
|
|
444
463
|
MoveRightIcon,
|
|
445
464
|
PlusIcon,
|