@strapi/content-type-builder 5.37.1 → 5.38.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/dist/admin/components/AIChat/Chat.js.map +1 -1
- package/dist/admin/components/AIChat/Chat.mjs +2 -2
- package/dist/admin/components/AIChat/Chat.mjs.map +1 -1
- package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -1
- package/dist/admin/components/AIChat/FeedbackModal.mjs +1 -1
- package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -1
- package/dist/admin/components/AIChat/UploadCodeModal.mjs +1 -1
- package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Alert.js.map +1 -1
- package/dist/admin/components/AIChat/components/Alert.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/AnimatedBox.js.map +1 -1
- package/dist/admin/components/AIChat/components/AnimatedBox.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js.map +1 -1
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -1
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +1 -1
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Base64Image.js.map +1 -1
- package/dist/admin/components/AIChat/components/Base64Image.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -1
- package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Dropzone.js +2 -6
- package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -1
- package/dist/admin/components/AIChat/components/Dropzone.mjs +3 -7
- package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -1
- package/dist/admin/components/AIChat/components/FloatingPanel.mjs +1 -1
- package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -1
- package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/ImagePreview.js.map +1 -1
- package/dist/admin/components/AIChat/components/ImagePreview.mjs +1 -1
- package/dist/admin/components/AIChat/components/ImagePreview.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Input.js +1 -5
- package/dist/admin/components/AIChat/components/Input.js.map +1 -1
- package/dist/admin/components/AIChat/components/Input.mjs +4 -7
- package/dist/admin/components/AIChat/components/Input.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Marker.js.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Marker.mjs +2 -2
- package/dist/admin/components/AIChat/components/Messages/Marker.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.mjs +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/ResizableTextArea.js.map +1 -1
- package/dist/admin/components/AIChat/components/ResizableTextArea.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -1
- package/dist/admin/components/AIChat/components/SimpleMenu.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/StepModal.js.map +1 -1
- package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/animations.js.map +1 -1
- package/dist/admin/components/AIChat/components/animations.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.js.map +1 -1
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/icons/StopIcon.js.map +1 -1
- package/dist/admin/components/AIChat/components/icons/StopIcon.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useAttachments.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useAttachments.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useChatTitle.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useChatTitle.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFeedback.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFeedback.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs.map +1 -1
- package/dist/admin/components/AIChat/hooks/useTranslations.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useTranslations.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -1
- package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/constants.js.map +1 -1
- package/dist/admin/components/AIChat/lib/constants.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/misc.js.map +1 -1
- package/dist/admin/components/AIChat/lib/misc.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -1
- package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -1
- package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -1
- package/dist/admin/components/ApplyConditionButton.js.map +1 -1
- package/dist/admin/components/ApplyConditionButton.mjs.map +1 -1
- package/dist/admin/components/AttributeIcon.js.map +1 -1
- package/dist/admin/components/AttributeIcon.mjs +1 -1
- package/dist/admin/components/AttributeIcon.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeList.js.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeList.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOptions.js.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOptions.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldsList.js.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -1
- package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js.map +1 -1
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs.map +1 -1
- package/dist/admin/components/AttributeRow.js.map +1 -1
- package/dist/admin/components/AttributeRow.mjs +1 -1
- package/dist/admin/components/AttributeRow.mjs.map +1 -1
- package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -1
- package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -1
- package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -1
- package/dist/admin/components/BooleanRadioGroup.js.map +1 -1
- package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CTBSession/CTBSessionProvider.js.map +1 -1
- package/dist/admin/components/CTBSession/CTBSessionProvider.mjs.map +1 -1
- package/dist/admin/components/CTBSession/sessionContext.js.map +1 -1
- package/dist/admin/components/CTBSession/sessionContext.mjs.map +1 -1
- package/dist/admin/components/CTBSession/useCTBSession.js.map +1 -1
- package/dist/admin/components/CTBSession/useCTBSession.mjs.map +1 -1
- package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -1
- package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -1
- package/dist/admin/components/CheckboxWithNumberField.js.map +1 -1
- package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.mjs +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs.map +1 -1
- package/dist/admin/components/ComponentList.js.map +1 -1
- package/dist/admin/components/ComponentList.mjs.map +1 -1
- package/dist/admin/components/ComponentRow.js.map +1 -1
- package/dist/admin/components/ComponentRow.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +2 -2
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
- package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -1
- package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.mjs +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
- package/dist/admin/components/DataManager/reducer.js.map +1 -1
- package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
- package/dist/admin/components/DataManager/undoRedo.js.map +1 -1
- package/dist/admin/components/DataManager/undoRedo.mjs.map +1 -1
- package/dist/admin/components/DataManager/useDataManager.js.map +1 -1
- package/dist/admin/components/DataManager/useDataManager.mjs.map +1 -1
- package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -1
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -1
- package/dist/admin/components/DisplayedType.js.map +1 -1
- package/dist/admin/components/DisplayedType.mjs.map +1 -1
- package/dist/admin/components/DraftAndPublishToggle.js.map +1 -1
- package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -1
- package/dist/admin/components/DynamicZoneList.js.map +1 -1
- package/dist/admin/components/DynamicZoneList.mjs +1 -1
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
- package/dist/admin/components/ExitPrompt.js.map +1 -1
- package/dist/admin/components/ExitPrompt.mjs.map +1 -1
- package/dist/admin/components/Footers.js.map +1 -1
- package/dist/admin/components/Footers.mjs +2 -2
- package/dist/admin/components/Footers.mjs.map +1 -1
- package/dist/admin/components/FormModal/FormModal.js.map +1 -1
- package/dist/admin/components/FormModal/FormModal.mjs +1 -1
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/attributeOptions.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/attributeOptions.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/baseForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/baseForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/commonBaseForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/form.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/form.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/nameField.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/nameField.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.mjs +1 -1
- package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
- package/dist/admin/components/FormModal/component/componentField.js.map +1 -1
- package/dist/admin/components/FormModal/component/componentField.mjs.map +1 -1
- package/dist/admin/components/FormModal/component/componentForm.js.map +1 -1
- package/dist/admin/components/FormModal/component/componentForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
- package/dist/admin/components/FormModal/contentType/contentTypeForm.js.map +1 -1
- package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -1
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs.map +1 -1
- package/dist/admin/components/FormModal/dynamiczoneForm.js.map +1 -1
- package/dist/admin/components/FormModal/dynamiczoneForm.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
- package/dist/admin/components/FormModal/reducer.js.map +1 -1
- package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/createUid.js.map +1 -1
- package/dist/admin/components/FormModal/utils/createUid.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -1
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -1
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/relations.js.map +1 -1
- package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -1
- package/dist/admin/components/FormModalEndActions.js.map +1 -1
- package/dist/admin/components/FormModalEndActions.mjs.map +1 -1
- package/dist/admin/components/FormModalHeader.js.map +1 -1
- package/dist/admin/components/FormModalHeader.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +1 -1
- package/dist/admin/components/FormModalSubHeader.js.map +1 -1
- package/dist/admin/components/FormModalSubHeader.mjs.map +1 -1
- package/dist/admin/components/GenericInputs.js +1 -5
- package/dist/admin/components/GenericInputs.js.map +1 -1
- package/dist/admin/components/GenericInputs.mjs +1 -5
- package/dist/admin/components/GenericInputs.mjs.map +1 -1
- package/dist/admin/components/IconPicker/IconPicker.js.map +1 -1
- package/dist/admin/components/IconPicker/IconPicker.mjs +1 -1
- package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -1
- package/dist/admin/components/IconPicker/constants.js.map +1 -1
- package/dist/admin/components/IconPicker/constants.mjs.map +1 -1
- package/dist/admin/components/List.js.map +1 -1
- package/dist/admin/components/List.mjs +1 -1
- package/dist/admin/components/List.mjs.map +1 -1
- package/dist/admin/components/PluralName.js.map +1 -1
- package/dist/admin/components/PluralName.mjs.map +1 -1
- package/dist/admin/components/Relation/Relation.js.map +1 -1
- package/dist/admin/components/Relation/Relation.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -1
- package/dist/admin/components/SelectCategory.js.map +1 -1
- package/dist/admin/components/SelectCategory.mjs.map +1 -1
- package/dist/admin/components/SelectComponent.js.map +1 -1
- package/dist/admin/components/SelectComponent.mjs.map +1 -1
- package/dist/admin/components/SelectComponents.js.map +1 -1
- package/dist/admin/components/SelectComponents.mjs.map +1 -1
- package/dist/admin/components/SelectDateType.js.map +1 -1
- package/dist/admin/components/SelectDateType.mjs.map +1 -1
- package/dist/admin/components/SelectNumber.js.map +1 -1
- package/dist/admin/components/SelectNumber.mjs.map +1 -1
- package/dist/admin/components/SingularName.js.map +1 -1
- package/dist/admin/components/SingularName.mjs.map +1 -1
- package/dist/admin/components/Status.js.map +1 -1
- package/dist/admin/components/Status.mjs.map +1 -1
- package/dist/admin/components/TabForm.js.map +1 -1
- package/dist/admin/components/TabForm.mjs.map +1 -1
- package/dist/admin/components/TextareaEnum.js.map +1 -1
- package/dist/admin/components/TextareaEnum.mjs.map +1 -1
- package/dist/admin/constants.js.map +1 -1
- package/dist/admin/constants.mjs.map +1 -1
- package/dist/admin/icons/Curve.js.map +1 -1
- package/dist/admin/icons/Curve.mjs.map +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/App/index.js.map +1 -1
- package/dist/admin/pages/App/index.mjs.map +1 -1
- package/dist/admin/pages/ListView/EmptyState.js.map +1 -1
- package/dist/admin/pages/ListView/EmptyState.mjs +1 -1
- package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -1
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -1
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListView.js.map +1 -1
- package/dist/admin/pages/ListView/ListView.mjs +1 -1
- package/dist/admin/pages/ListView/ListView.mjs.map +1 -1
- package/dist/admin/reducers.js +4 -4
- package/dist/admin/reducers.js.map +1 -1
- package/dist/admin/reducers.mjs +4 -4
- package/dist/admin/reducers.mjs.map +1 -1
- package/dist/admin/utils/conditions.js.map +1 -1
- package/dist/admin/utils/conditions.mjs.map +1 -1
- package/dist/admin/utils/findAttribute.js.map +1 -1
- package/dist/admin/utils/findAttribute.mjs.map +1 -1
- package/dist/admin/utils/formAPI.js.map +1 -1
- package/dist/admin/utils/formAPI.mjs.map +1 -1
- package/dist/admin/utils/getAttributeDisplayedType.js.map +1 -1
- package/dist/admin/utils/getAttributeDisplayedType.mjs.map +1 -1
- package/dist/admin/utils/getMaxDepth.js.map +1 -1
- package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
- package/dist/admin/utils/getRelationType.js.map +1 -1
- package/dist/admin/utils/getRelationType.mjs.map +1 -1
- package/dist/admin/utils/getTrad.js.map +1 -1
- package/dist/admin/utils/getTrad.mjs.map +1 -1
- package/dist/admin/utils/getYupInnerErrors.js.map +1 -1
- package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -1
- package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -1
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -1
- package/dist/admin/utils/makeUnique.js.map +1 -1
- package/dist/admin/utils/makeUnique.mjs.map +1 -1
- package/dist/admin/utils/nameToSlug.js.map +1 -1
- package/dist/admin/utils/nameToSlug.mjs.map +1 -1
- package/dist/admin/utils/parseDateValue.js.map +1 -1
- package/dist/admin/utils/parseDateValue.mjs.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
- package/dist/admin/utils/timeFormat.js.map +1 -1
- package/dist/admin/utils/timeFormat.mjs.map +1 -1
- package/dist/admin/utils/toRegressedEnumValue.js.map +1 -1
- package/dist/admin/utils/toRegressedEnumValue.mjs.map +1 -1
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/controllers/builder.js.map +1 -1
- package/dist/server/controllers/builder.mjs.map +1 -1
- package/dist/server/controllers/component-categories.js.map +1 -1
- package/dist/server/controllers/component-categories.mjs.map +1 -1
- package/dist/server/controllers/components.js.map +1 -1
- package/dist/server/controllers/components.mjs +1 -1
- package/dist/server/controllers/components.mjs.map +1 -1
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/content-types.mjs +1 -1
- package/dist/server/controllers/content-types.mjs.map +1 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/schema.js.map +1 -1
- package/dist/server/controllers/schema.mjs.map +1 -1
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/common.mjs.map +1 -1
- package/dist/server/controllers/validation/component-category.js.map +1 -1
- package/dist/server/controllers/validation/component-category.mjs.map +1 -1
- package/dist/server/controllers/validation/component.js.map +1 -1
- package/dist/server/controllers/validation/component.mjs +1 -1
- package/dist/server/controllers/validation/component.mjs.map +1 -1
- package/dist/server/controllers/validation/content-type.js.map +1 -1
- package/dist/server/controllers/validation/content-type.mjs.map +1 -1
- package/dist/server/controllers/validation/data-transform.js.map +1 -1
- package/dist/server/controllers/validation/data-transform.mjs.map +1 -1
- package/dist/server/controllers/validation/model-schema.js.map +1 -1
- package/dist/server/controllers/validation/model-schema.mjs.map +1 -1
- package/dist/server/controllers/validation/relations.js.map +1 -1
- package/dist/server/controllers/validation/relations.mjs.map +1 -1
- package/dist/server/controllers/validation/schema.js.map +1 -1
- package/dist/server/controllers/validation/schema.mjs +1 -1
- package/dist/server/controllers/validation/schema.mjs.map +1 -1
- package/dist/server/controllers/validation/types.js +0 -1
- package/dist/server/controllers/validation/types.js.map +1 -1
- package/dist/server/controllers/validation/types.mjs +1 -2
- package/dist/server/controllers/validation/types.mjs.map +1 -1
- package/dist/server/index.js +8 -8
- package/dist/server/middlewares/is-development-mode.js.map +1 -1
- package/dist/server/middlewares/is-development-mode.mjs.map +1 -1
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/admin.mjs.map +1 -1
- package/dist/server/routes/content-api.js.map +1 -1
- package/dist/server/routes/content-api.mjs.map +1 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/api-handler.js.map +1 -1
- package/dist/server/services/api-handler.mjs.map +1 -1
- package/dist/server/services/builder.js.map +1 -1
- package/dist/server/services/builder.mjs.map +1 -1
- package/dist/server/services/component-categories.js.map +1 -1
- package/dist/server/services/component-categories.mjs +1 -1
- package/dist/server/services/component-categories.mjs.map +1 -1
- package/dist/server/services/components.js.map +1 -1
- package/dist/server/services/components.mjs +1 -1
- package/dist/server/services/components.mjs.map +1 -1
- package/dist/server/services/constants.js.map +1 -1
- package/dist/server/services/constants.mjs.map +1 -1
- package/dist/server/services/content-types.js.map +1 -1
- package/dist/server/services/content-types.mjs +1 -1
- package/dist/server/services/content-types.mjs.map +1 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/schema-builder/component-builder.js.map +1 -1
- package/dist/server/services/schema-builder/component-builder.mjs +1 -1
- package/dist/server/services/schema-builder/component-builder.mjs.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.mjs +2 -2
- package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
- package/dist/server/services/schema-builder/index.js.map +1 -1
- package/dist/server/services/schema-builder/index.mjs +3 -3
- package/dist/server/services/schema-builder/index.mjs.map +1 -1
- package/dist/server/services/schema-builder/schema-handler.js.map +1 -1
- package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -1
- package/dist/server/services/schema.js.map +1 -1
- package/dist/server/services/schema.mjs +1 -1
- package/dist/server/services/schema.mjs.map +1 -1
- package/dist/server/utils/attributes.js.map +1 -1
- package/dist/server/utils/attributes.mjs.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/server/utils/typeguards.js.map +1 -1
- package/dist/server/utils/typeguards.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","sources":["../../../../admin/src/components/IconPicker/constants.ts"],"sourcesContent":["import * as Icons from '@strapi/icons';\nimport * as Symbols from '@strapi/icons/symbols';\n\nexport type Icon = (typeof Icons)[keyof typeof Icons] | (typeof Symbols)[keyof typeof Symbols];\n\nconst COMPONENT_ICONS: Record<string, Icon> = {\n alien: Icons.Alien,\n apps: Icons.GridNine,\n archive: Icons.Archive,\n arrowDown: Icons.ArrowDown,\n arrowLeft: Icons.ArrowLeft,\n arrowRight: Icons.ArrowRight,\n arrowUp: Icons.ArrowUp,\n attachment: Icons.Paperclip,\n bell: Icons.Bell,\n bold: Icons.Bold,\n book: Icons.Book,\n briefcase: Icons.Briefcase,\n brush: Icons.PaintBrush,\n bulletList: Icons.BulletList,\n calendar: Icons.Calendar,\n car: Icons.Car,\n cast: Icons.Cast,\n chartBubble: Icons.ChartBubble,\n chartCircle: Icons.ChartCircle,\n chartPie: Icons.ChartPie,\n check: Icons.Check,\n clock: Icons.Clock,\n cloud: Icons.Cloud,\n code: Icons.Code,\n cog: Icons.Cog,\n collapse: Icons.Collapse,\n command: Icons.Command,\n connector: Icons.Faders,\n crop: Icons.Crop,\n crown: Icons.Crown,\n cup: Icons.Coffee,\n cursor: Icons.Cursor,\n dashboard: Icons.SquaresFour,\n database: Icons.Database,\n discuss: Icons.Discuss,\n doctor: Icons.Stethoscope,\n earth: Icons.Earth,\n emotionHappy: Icons.EmotionHappy,\n emotionUnhappy: Icons.EmotionUnhappy,\n envelop: Icons.Mail,\n exit: Icons.SignOut,\n expand: Icons.Expand,\n eye: Icons.Eye,\n feather: Icons.Feather,\n file: Icons.File,\n fileError: Icons.FileError,\n filePdf: Icons.FilePdf,\n fileXls: Icons.FileXls,\n fileZip: Icons.FileZip,\n fileCsv: Icons.FileCsv,\n filter: Icons.Filter,\n folder: Icons.Folder,\n gate: Icons.CastleTurret,\n gift: Icons.Gift,\n globe: Icons.Globe,\n grid: Icons.GridFour,\n handHeart: Icons.HandHeart,\n hashtag: Icons.Hashtag,\n headphone: Icons.Headphones,\n heart: Icons.Heart,\n house: Icons.House,\n information: Icons.Information,\n italic: Icons.Italic,\n key: Icons.Key,\n landscape: Icons.Images,\n layer: Icons.ListPlus,\n layout: Icons.Layout,\n lightbulb: Icons.Lightbulb,\n link: Icons.Link,\n lock: Icons.Lock,\n magic: Icons.Magic,\n manyToMany: Icons.ManyToMany,\n manyToOne: Icons.ManyToOne,\n manyWays: Icons.ManyWays,\n medium: Symbols.Medium,\n message: Icons.Message,\n microphone: Icons.Microphone,\n monitor: Icons.Monitor,\n moon: Icons.Moon,\n music: Icons.MusicNotes,\n oneToMany: Icons.OneToMany,\n oneToOne: Icons.OneToOne,\n oneWay: Icons.OneWay,\n paint: Icons.PaintBrush,\n paintBrush: Icons.PaintBrush,\n paperPlane: Icons.PaperPlane,\n pencil: Icons.Pencil,\n phone: Icons.Phone,\n picture: Icons.Image,\n pin: Icons.Pin,\n pinMap: Icons.PinMap,\n plane: Icons.Plane,\n play: Icons.Play,\n plus: Icons.Plus,\n priceTag: Icons.PriceTag,\n puzzle: Icons.PuzzlePiece,\n question: Icons.Question,\n quote: Icons.Quotes,\n refresh: Icons.ArrowClockwise,\n restaurant: Icons.Restaurant,\n rocket: Icons.Rocket,\n rotate: Icons.ArrowsCounterClockwise,\n scissors: Icons.Scissors,\n search: Icons.Search,\n seed: Icons.Plant,\n server: Icons.Server,\n shield: Icons.Shield,\n shirt: Icons.Shirt,\n shoppingCart: Icons.ShoppingCart,\n slideshow: Icons.PresentationChart,\n stack: Icons.Stack,\n star: Icons.Star,\n store: Icons.Store,\n strikeThrough: Icons.StrikeThrough,\n sun: Icons.Sun,\n television: Icons.Television,\n thumbDown: Icons.ThumbDown,\n thumbUp: Icons.ThumbUp,\n train: Icons.Train,\n twitter: Symbols.X,\n typhoon: Icons.Typhoon,\n underline: Icons.Underline,\n user: Icons.User,\n volumeMute: Icons.VolumeMute,\n volumeUp: Icons.VolumeUp,\n walk: Icons.Walk,\n wheelchair: Icons.Wheelchair,\n write: Icons.Feather,\n};\n\nexport { COMPONENT_ICONS };\n"],"names":["COMPONENT_ICONS","alien","Icons","Alien","apps","GridNine","archive","Archive","arrowDown","ArrowDown","arrowLeft","ArrowLeft","arrowRight","ArrowRight","arrowUp","ArrowUp","attachment","Paperclip","bell","Bell","bold","Bold","book","Book","briefcase","Briefcase","brush","PaintBrush","bulletList","BulletList","calendar","Calendar","car","Car","cast","Cast","chartBubble","ChartBubble","chartCircle","ChartCircle","chartPie","ChartPie","check","Check","clock","Clock","cloud","Cloud","code","Code","cog","Cog","collapse","Collapse","command","Command","connector","Faders","crop","Crop","crown","Crown","cup","Coffee","cursor","Cursor","dashboard","SquaresFour","database","Database","discuss","Discuss","doctor","Stethoscope","earth","Earth","emotionHappy","EmotionHappy","emotionUnhappy","EmotionUnhappy","envelop","Mail","exit","SignOut","expand","Expand","eye","Eye","feather","Feather","file","File","fileError","FileError","filePdf","FilePdf","fileXls","FileXls","fileZip","FileZip","fileCsv","FileCsv","filter","Filter","folder","Folder","gate","CastleTurret","gift","Gift","globe","Globe","grid","GridFour","handHeart","HandHeart","hashtag","Hashtag","headphone","Headphones","heart","Heart","house","House","information","Information","italic","Italic","key","Key","landscape","Images","layer","ListPlus","layout","Layout","lightbulb","Lightbulb","link","Link","lock","Lock","magic","Magic","manyToMany","ManyToMany","manyToOne","ManyToOne","manyWays","ManyWays","medium","Symbols","Medium","message","Message","microphone","Microphone","monitor","Monitor","moon","Moon","music","MusicNotes","oneToMany","OneToMany","oneToOne","OneToOne","oneWay","OneWay","paint","paintBrush","paperPlane","PaperPlane","pencil","Pencil","phone","Phone","picture","Image","pin","Pin","pinMap","PinMap","plane","Plane","play","Play","plus","Plus","priceTag","PriceTag","puzzle","PuzzlePiece","question","Question","quote","Quotes","refresh","ArrowClockwise","restaurant","Restaurant","rocket","Rocket","rotate","ArrowsCounterClockwise","scissors","Scissors","search","Search","seed","Plant","server","Server","shield","Shield","shirt","Shirt","shoppingCart","ShoppingCart","slideshow","PresentationChart","stack","Stack","star","Star","store","Store","strikeThrough","StrikeThrough","sun","Sun","television","Television","thumbDown","ThumbDown","thumbUp","ThumbUp","train","Train","twitter","X","typhoon","Typhoon","underline","Underline","user","User","volumeMute","VolumeMute","volumeUp","VolumeUp","walk","Walk","wheelchair","Wheelchair","write"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../../admin/src/components/IconPicker/constants.ts"],"sourcesContent":["import * as Icons from '@strapi/icons';\nimport * as Symbols from '@strapi/icons/symbols';\n\nexport type Icon = (typeof Icons)[keyof typeof Icons] | (typeof Symbols)[keyof typeof Symbols];\n\nconst COMPONENT_ICONS: Record<string, Icon> = {\n alien: Icons.Alien,\n apps: Icons.GridNine,\n archive: Icons.Archive,\n arrowDown: Icons.ArrowDown,\n arrowLeft: Icons.ArrowLeft,\n arrowRight: Icons.ArrowRight,\n arrowUp: Icons.ArrowUp,\n attachment: Icons.Paperclip,\n bell: Icons.Bell,\n bold: Icons.Bold,\n book: Icons.Book,\n briefcase: Icons.Briefcase,\n brush: Icons.PaintBrush,\n bulletList: Icons.BulletList,\n calendar: Icons.Calendar,\n car: Icons.Car,\n cast: Icons.Cast,\n chartBubble: Icons.ChartBubble,\n chartCircle: Icons.ChartCircle,\n chartPie: Icons.ChartPie,\n check: Icons.Check,\n clock: Icons.Clock,\n cloud: Icons.Cloud,\n code: Icons.Code,\n cog: Icons.Cog,\n collapse: Icons.Collapse,\n command: Icons.Command,\n connector: Icons.Faders,\n crop: Icons.Crop,\n crown: Icons.Crown,\n cup: Icons.Coffee,\n cursor: Icons.Cursor,\n dashboard: Icons.SquaresFour,\n database: Icons.Database,\n discuss: Icons.Discuss,\n doctor: Icons.Stethoscope,\n earth: Icons.Earth,\n emotionHappy: Icons.EmotionHappy,\n emotionUnhappy: Icons.EmotionUnhappy,\n envelop: Icons.Mail,\n exit: Icons.SignOut,\n expand: Icons.Expand,\n eye: Icons.Eye,\n feather: Icons.Feather,\n file: Icons.File,\n fileError: Icons.FileError,\n filePdf: Icons.FilePdf,\n fileXls: Icons.FileXls,\n fileZip: Icons.FileZip,\n fileCsv: Icons.FileCsv,\n filter: Icons.Filter,\n folder: Icons.Folder,\n gate: Icons.CastleTurret,\n gift: Icons.Gift,\n globe: Icons.Globe,\n grid: Icons.GridFour,\n handHeart: Icons.HandHeart,\n hashtag: Icons.Hashtag,\n headphone: Icons.Headphones,\n heart: Icons.Heart,\n house: Icons.House,\n information: Icons.Information,\n italic: Icons.Italic,\n key: Icons.Key,\n landscape: Icons.Images,\n layer: Icons.ListPlus,\n layout: Icons.Layout,\n lightbulb: Icons.Lightbulb,\n link: Icons.Link,\n lock: Icons.Lock,\n magic: Icons.Magic,\n manyToMany: Icons.ManyToMany,\n manyToOne: Icons.ManyToOne,\n manyWays: Icons.ManyWays,\n medium: Symbols.Medium,\n message: Icons.Message,\n microphone: Icons.Microphone,\n monitor: Icons.Monitor,\n moon: Icons.Moon,\n music: Icons.MusicNotes,\n oneToMany: Icons.OneToMany,\n oneToOne: Icons.OneToOne,\n oneWay: Icons.OneWay,\n paint: Icons.PaintBrush,\n paintBrush: Icons.PaintBrush,\n paperPlane: Icons.PaperPlane,\n pencil: Icons.Pencil,\n phone: Icons.Phone,\n picture: Icons.Image,\n pin: Icons.Pin,\n pinMap: Icons.PinMap,\n plane: Icons.Plane,\n play: Icons.Play,\n plus: Icons.Plus,\n priceTag: Icons.PriceTag,\n puzzle: Icons.PuzzlePiece,\n question: Icons.Question,\n quote: Icons.Quotes,\n refresh: Icons.ArrowClockwise,\n restaurant: Icons.Restaurant,\n rocket: Icons.Rocket,\n rotate: Icons.ArrowsCounterClockwise,\n scissors: Icons.Scissors,\n search: Icons.Search,\n seed: Icons.Plant,\n server: Icons.Server,\n shield: Icons.Shield,\n shirt: Icons.Shirt,\n shoppingCart: Icons.ShoppingCart,\n slideshow: Icons.PresentationChart,\n stack: Icons.Stack,\n star: Icons.Star,\n store: Icons.Store,\n strikeThrough: Icons.StrikeThrough,\n sun: Icons.Sun,\n television: Icons.Television,\n thumbDown: Icons.ThumbDown,\n thumbUp: Icons.ThumbUp,\n train: Icons.Train,\n twitter: Symbols.X,\n typhoon: Icons.Typhoon,\n underline: Icons.Underline,\n user: Icons.User,\n volumeMute: Icons.VolumeMute,\n volumeUp: Icons.VolumeUp,\n walk: Icons.Walk,\n wheelchair: Icons.Wheelchair,\n write: Icons.Feather,\n};\n\nexport { COMPONENT_ICONS };\n"],"names":["COMPONENT_ICONS","alien","Icons","Alien","apps","GridNine","archive","Archive","arrowDown","ArrowDown","arrowLeft","ArrowLeft","arrowRight","ArrowRight","arrowUp","ArrowUp","attachment","Paperclip","bell","Bell","bold","Bold","book","Book","briefcase","Briefcase","brush","PaintBrush","bulletList","BulletList","calendar","Calendar","car","Car","cast","Cast","chartBubble","ChartBubble","chartCircle","ChartCircle","chartPie","ChartPie","check","Check","clock","Clock","cloud","Cloud","code","Code","cog","Cog","collapse","Collapse","command","Command","connector","Faders","crop","Crop","crown","Crown","cup","Coffee","cursor","Cursor","dashboard","SquaresFour","database","Database","discuss","Discuss","doctor","Stethoscope","earth","Earth","emotionHappy","EmotionHappy","emotionUnhappy","EmotionUnhappy","envelop","Mail","exit","SignOut","expand","Expand","eye","Eye","feather","Feather","file","File","fileError","FileError","filePdf","FilePdf","fileXls","FileXls","fileZip","FileZip","fileCsv","FileCsv","filter","Filter","folder","Folder","gate","CastleTurret","gift","Gift","globe","Globe","grid","GridFour","handHeart","HandHeart","hashtag","Hashtag","headphone","Headphones","heart","Heart","house","House","information","Information","italic","Italic","key","Key","landscape","Images","layer","ListPlus","layout","Layout","lightbulb","Lightbulb","link","Link","lock","Lock","magic","Magic","manyToMany","ManyToMany","manyToOne","ManyToOne","manyWays","ManyWays","medium","Symbols","Medium","message","Message","microphone","Microphone","monitor","Monitor","moon","Moon","music","MusicNotes","oneToMany","OneToMany","oneToOne","OneToOne","oneWay","OneWay","paint","paintBrush","paperPlane","PaperPlane","pencil","Pencil","phone","Phone","picture","Image","pin","Pin","pinMap","PinMap","plane","Plane","play","Play","plus","Plus","priceTag","PriceTag","puzzle","PuzzlePiece","question","Question","quote","Quotes","refresh","ArrowClockwise","restaurant","Restaurant","rocket","Rocket","rotate","ArrowsCounterClockwise","scissors","Scissors","search","Search","seed","Plant","server","Server","shield","Shield","shirt","Shirt","shoppingCart","ShoppingCart","slideshow","PresentationChart","stack","Stack","star","Star","store","Store","strikeThrough","StrikeThrough","sun","Sun","television","Television","thumbDown","ThumbDown","thumbUp","ThumbUp","train","Train","twitter","X","typhoon","Typhoon","underline","Underline","user","User","volumeMute","VolumeMute","volumeUp","VolumeUp","walk","Walk","wheelchair","Wheelchair","write"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sources":["../../../admin/src/components/List.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n DragEndEvent,\n DragStartEvent,\n DragOverlay,\n UniqueIdentifier,\n} from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport {\n SortableContext,\n verticalListSortingStrategy,\n useSortable,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { tours } from '@strapi/admin/strapi-admin';\nimport { Box, Button, EmptyStateLayout } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { createPortal } from 'react-dom';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../utils/getTrad';\n\nimport { AttributeRow, type AttributeRowProps } from './AttributeRow';\nimport { useCTBTracking } from './CTBSession/ctbSession';\nimport { useDataManager } from './DataManager/useDataManager';\nimport { NestedTFooter, TFooter } from './Footers';\nimport { useFormModalNavigation } from './FormModalNavigation/useFormModalNavigation';\n\nimport type { Component, ContentType } from '../types';\nimport type { UID } from '@strapi/types';\n\nexport const ListGrid = styled(Box)`\n white-space: nowrap;\n list-style: none;\n list-style-type: none;\n`;\n\ntype ListProps = {\n addComponentToDZ?: () => void;\n firstLoopComponentUid?: UID.Component | null;\n isFromDynamicZone?: boolean;\n isMain?: boolean;\n secondLoopComponentUid?: UID.Component | null;\n isSub?: boolean;\n type: ContentType | Component;\n};\n\nconst SortableRow = (props: AttributeRowProps) => {\n const { isInDevelopmentMode } = useDataManager();\n\n const {\n isDragging,\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n setActivatorNodeRef,\n } = useSortable({\n disabled:\n !isInDevelopmentMode || props.item.status === 'REMOVED' || props.type.status === 'REMOVED',\n id: props.item.id,\n data: { index: props.item.index },\n });\n\n const style = {\n transform: CSS.Transform.toString({\n x: transform?.x ?? 0,\n y: transform?.y ?? 0,\n scaleX: 1,\n scaleY: 1,\n }),\n transition,\n };\n\n return (\n <AttributeRow\n ref={setNodeRef}\n handleRef={setActivatorNodeRef}\n isDragging={isDragging}\n attributes={attributes}\n listeners={listeners}\n style={style}\n {...props}\n />\n );\n};\n\nexport const List = ({\n addComponentToDZ,\n firstLoopComponentUid,\n isFromDynamicZone = false,\n isMain = false,\n isSub = false,\n secondLoopComponentUid,\n type,\n}: ListProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useCTBTracking();\n const { isInDevelopmentMode, moveAttribute } = useDataManager();\n const { onOpenModalAddField } = useFormModalNavigation();\n\n const items = type?.attributes.map((item, index) => {\n return {\n id: `${type.uid}_${item.name}`,\n index,\n ...item,\n };\n });\n\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>(null);\n\n const isDeleted = type?.status === 'REMOVED';\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n\n function handlerDragStart({ active }: DragStartEvent) {\n if (!active) {\n return;\n }\n\n setActiveId(active.id);\n }\n\n function handleDragEnd(event: DragEndEvent) {\n const { active, over } = event;\n\n setActiveId(null);\n\n if (over) {\n if (active.id !== over.id) {\n moveAttribute({\n forTarget: type.modelType,\n targetUid: type.uid,\n from: active.data.current!.index,\n to: over.data.current!.index,\n });\n }\n }\n }\n\n const activeItem = items.find((item) => item.id === activeId);\n\n const onClickAddField = () => {\n if (isDeleted) {\n return;\n }\n\n trackUsage('hasClickedCTBAddFieldBanner');\n\n onOpenModalAddField({ forTarget: type?.modelType, targetUid: type.uid });\n };\n\n if (type?.attributes.length === 0 && isMain) {\n return (\n <EmptyStateLayout\n action={\n <tours.contentTypeBuilder.AddFields>\n <Button onClick={onClickAddField} size=\"L\" startIcon={<Plus />} variant=\"secondary\">\n {formatMessage({\n id: getTrad('table.button.no-fields'),\n defaultMessage: 'Add new field',\n })}\n </Button>\n </tours.contentTypeBuilder.AddFields>\n }\n content={formatMessage(\n type.modelType === 'contentType'\n ? {\n id: getTrad('table.content.no-fields.collection-type'),\n defaultMessage: 'Add your first field to this Collection-Type',\n }\n : {\n id: getTrad('table.content.no-fields.component'),\n defaultMessage: 'Add your first field to this component',\n }\n )}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n );\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n onDragStart={handlerDragStart}\n onDragCancel={() => setActiveId(null)}\n modifiers={[restrictToVerticalAxis]}\n >\n <ListGrid tag=\"ul\">\n {createPortal(\n <DragOverlay zIndex={10}>\n {activeItem && (\n <AttributeRow\n isOverlay\n item={activeItem}\n firstLoopComponentUid={firstLoopComponentUid}\n isFromDynamicZone={isFromDynamicZone}\n secondLoopComponentUid={secondLoopComponentUid}\n type={type}\n addComponentToDZ={addComponentToDZ}\n />\n )}\n </DragOverlay>,\n document.body\n )}\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n {items.map((item) => {\n return (\n <SortableRow\n key={item.id}\n item={item}\n firstLoopComponentUid={firstLoopComponentUid}\n isFromDynamicZone={isFromDynamicZone}\n secondLoopComponentUid={secondLoopComponentUid}\n type={type}\n addComponentToDZ={addComponentToDZ}\n />\n );\n })}\n </SortableContext>\n </ListGrid>\n\n {isMain && isInDevelopmentMode && (\n <TFooter\n cursor={isDeleted ? 'normal' : 'pointer'}\n icon={<Plus />}\n onClick={onClickAddField}\n color={isDeleted ? 'neutral' : 'primary'}\n >\n {formatMessage({\n id: getTrad(\n `form.button.add.field.to.${type.modelType === 'component' ? 'component' : type.kind}`\n ),\n defaultMessage: 'Add another field',\n })}\n </TFooter>\n )}\n {isSub && isInDevelopmentMode && (\n <NestedTFooter\n cursor={isDeleted ? 'normal' : 'pointer'}\n icon={<Plus />}\n onClick={onClickAddField}\n color={isFromDynamicZone && !isDeleted ? 'primary' : 'neutral'}\n >\n {formatMessage({\n id: getTrad(`form.button.add.field.to.component`),\n defaultMessage: 'Add another field',\n })}\n </NestedTFooter>\n )}\n </DndContext>\n );\n};\n"],"names":["ListGrid","styled","Box","SortableRow","props","isInDevelopmentMode","useDataManager","isDragging","attributes","listeners","setNodeRef","transform","transition","setActivatorNodeRef","useSortable","disabled","item","status","type","id","data","index","style","CSS","Transform","toString","x","y","scaleX","scaleY","_jsx","AttributeRow","ref","handleRef","List","addComponentToDZ","firstLoopComponentUid","isFromDynamicZone","isMain","isSub","secondLoopComponentUid","formatMessage","useIntl","trackUsage","useCTBTracking","moveAttribute","onOpenModalAddField","useFormModalNavigation","items","map","uid","name","activeId","setActiveId","useState","isDeleted","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","coordinateGetter","sortableKeyboardCoordinates","handlerDragStart","active","handleDragEnd","event","over","forTarget","modelType","targetUid","from","current","to","activeItem","find","onClickAddField","length","EmptyStateLayout","action","tours","contentTypeBuilder","AddFields","Button","onClick","size","startIcon","Plus","variant","getTrad","defaultMessage","content","hasRadius","icon","EmptyDocuments","width","_jsxs","DndContext","collisionDetection","closestCenter","onDragEnd","onDragStart","onDragCancel","modifiers","restrictToVerticalAxis","tag","createPortal","DragOverlay","zIndex","isOverlay","document","body","SortableContext","strategy","verticalListSortingStrategy","TFooter","cursor","color","kind","NestedTFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"List.js","sources":["../../../admin/src/components/List.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n DragEndEvent,\n DragStartEvent,\n DragOverlay,\n UniqueIdentifier,\n} from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport {\n SortableContext,\n verticalListSortingStrategy,\n useSortable,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { tours } from '@strapi/admin/strapi-admin';\nimport { Box, Button, EmptyStateLayout } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { createPortal } from 'react-dom';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../utils/getTrad';\n\nimport { AttributeRow, type AttributeRowProps } from './AttributeRow';\nimport { useCTBTracking } from './CTBSession/ctbSession';\nimport { useDataManager } from './DataManager/useDataManager';\nimport { NestedTFooter, TFooter } from './Footers';\nimport { useFormModalNavigation } from './FormModalNavigation/useFormModalNavigation';\n\nimport type { Component, ContentType } from '../types';\nimport type { UID } from '@strapi/types';\n\nexport const ListGrid = styled(Box)`\n white-space: nowrap;\n list-style: none;\n list-style-type: none;\n`;\n\ntype ListProps = {\n addComponentToDZ?: () => void;\n firstLoopComponentUid?: UID.Component | null;\n isFromDynamicZone?: boolean;\n isMain?: boolean;\n secondLoopComponentUid?: UID.Component | null;\n isSub?: boolean;\n type: ContentType | Component;\n};\n\nconst SortableRow = (props: AttributeRowProps) => {\n const { isInDevelopmentMode } = useDataManager();\n\n const {\n isDragging,\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n setActivatorNodeRef,\n } = useSortable({\n disabled:\n !isInDevelopmentMode || props.item.status === 'REMOVED' || props.type.status === 'REMOVED',\n id: props.item.id,\n data: { index: props.item.index },\n });\n\n const style = {\n transform: CSS.Transform.toString({\n x: transform?.x ?? 0,\n y: transform?.y ?? 0,\n scaleX: 1,\n scaleY: 1,\n }),\n transition,\n };\n\n return (\n <AttributeRow\n ref={setNodeRef}\n handleRef={setActivatorNodeRef}\n isDragging={isDragging}\n attributes={attributes}\n listeners={listeners}\n style={style}\n {...props}\n />\n );\n};\n\nexport const List = ({\n addComponentToDZ,\n firstLoopComponentUid,\n isFromDynamicZone = false,\n isMain = false,\n isSub = false,\n secondLoopComponentUid,\n type,\n}: ListProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useCTBTracking();\n const { isInDevelopmentMode, moveAttribute } = useDataManager();\n const { onOpenModalAddField } = useFormModalNavigation();\n\n const items = type?.attributes.map((item, index) => {\n return {\n id: `${type.uid}_${item.name}`,\n index,\n ...item,\n };\n });\n\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>(null);\n\n const isDeleted = type?.status === 'REMOVED';\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n\n function handlerDragStart({ active }: DragStartEvent) {\n if (!active) {\n return;\n }\n\n setActiveId(active.id);\n }\n\n function handleDragEnd(event: DragEndEvent) {\n const { active, over } = event;\n\n setActiveId(null);\n\n if (over) {\n if (active.id !== over.id) {\n moveAttribute({\n forTarget: type.modelType,\n targetUid: type.uid,\n from: active.data.current!.index,\n to: over.data.current!.index,\n });\n }\n }\n }\n\n const activeItem = items.find((item) => item.id === activeId);\n\n const onClickAddField = () => {\n if (isDeleted) {\n return;\n }\n\n trackUsage('hasClickedCTBAddFieldBanner');\n\n onOpenModalAddField({ forTarget: type?.modelType, targetUid: type.uid });\n };\n\n if (type?.attributes.length === 0 && isMain) {\n return (\n <EmptyStateLayout\n action={\n <tours.contentTypeBuilder.AddFields>\n <Button onClick={onClickAddField} size=\"L\" startIcon={<Plus />} variant=\"secondary\">\n {formatMessage({\n id: getTrad('table.button.no-fields'),\n defaultMessage: 'Add new field',\n })}\n </Button>\n </tours.contentTypeBuilder.AddFields>\n }\n content={formatMessage(\n type.modelType === 'contentType'\n ? {\n id: getTrad('table.content.no-fields.collection-type'),\n defaultMessage: 'Add your first field to this Collection-Type',\n }\n : {\n id: getTrad('table.content.no-fields.component'),\n defaultMessage: 'Add your first field to this component',\n }\n )}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n );\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n onDragStart={handlerDragStart}\n onDragCancel={() => setActiveId(null)}\n modifiers={[restrictToVerticalAxis]}\n >\n <ListGrid tag=\"ul\">\n {createPortal(\n <DragOverlay zIndex={10}>\n {activeItem && (\n <AttributeRow\n isOverlay\n item={activeItem}\n firstLoopComponentUid={firstLoopComponentUid}\n isFromDynamicZone={isFromDynamicZone}\n secondLoopComponentUid={secondLoopComponentUid}\n type={type}\n addComponentToDZ={addComponentToDZ}\n />\n )}\n </DragOverlay>,\n document.body\n )}\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n {items.map((item) => {\n return (\n <SortableRow\n key={item.id}\n item={item}\n firstLoopComponentUid={firstLoopComponentUid}\n isFromDynamicZone={isFromDynamicZone}\n secondLoopComponentUid={secondLoopComponentUid}\n type={type}\n addComponentToDZ={addComponentToDZ}\n />\n );\n })}\n </SortableContext>\n </ListGrid>\n\n {isMain && isInDevelopmentMode && (\n <TFooter\n cursor={isDeleted ? 'normal' : 'pointer'}\n icon={<Plus />}\n onClick={onClickAddField}\n color={isDeleted ? 'neutral' : 'primary'}\n >\n {formatMessage({\n id: getTrad(\n `form.button.add.field.to.${type.modelType === 'component' ? 'component' : type.kind}`\n ),\n defaultMessage: 'Add another field',\n })}\n </TFooter>\n )}\n {isSub && isInDevelopmentMode && (\n <NestedTFooter\n cursor={isDeleted ? 'normal' : 'pointer'}\n icon={<Plus />}\n onClick={onClickAddField}\n color={isFromDynamicZone && !isDeleted ? 'primary' : 'neutral'}\n >\n {formatMessage({\n id: getTrad(`form.button.add.field.to.component`),\n defaultMessage: 'Add another field',\n })}\n </NestedTFooter>\n )}\n </DndContext>\n );\n};\n"],"names":["ListGrid","styled","Box","SortableRow","props","isInDevelopmentMode","useDataManager","isDragging","attributes","listeners","setNodeRef","transform","transition","setActivatorNodeRef","useSortable","disabled","item","status","type","id","data","index","style","CSS","Transform","toString","x","y","scaleX","scaleY","_jsx","AttributeRow","ref","handleRef","List","addComponentToDZ","firstLoopComponentUid","isFromDynamicZone","isMain","isSub","secondLoopComponentUid","formatMessage","useIntl","trackUsage","useCTBTracking","moveAttribute","onOpenModalAddField","useFormModalNavigation","items","map","uid","name","activeId","setActiveId","useState","isDeleted","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","coordinateGetter","sortableKeyboardCoordinates","handlerDragStart","active","handleDragEnd","event","over","forTarget","modelType","targetUid","from","current","to","activeItem","find","onClickAddField","length","EmptyStateLayout","action","tours","contentTypeBuilder","AddFields","Button","onClick","size","startIcon","Plus","variant","getTrad","defaultMessage","content","hasRadius","icon","EmptyDocuments","width","_jsxs","DndContext","collisionDetection","closestCenter","onDragEnd","onDragStart","onDragCancel","modifiers","restrictToVerticalAxis","tag","createPortal","DragOverlay","zIndex","isOverlay","document","body","SortableContext","strategy","verticalListSortingStrategy","TFooter","cursor","color","kind","NestedTFooter"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { restrictToVerticalAxis } from '@dnd-kit/modifiers';
|
|
|
5
5
|
import { sortableKeyboardCoordinates, SortableContext, verticalListSortingStrategy, useSortable } from '@dnd-kit/sortable';
|
|
6
6
|
import { CSS } from '@dnd-kit/utilities';
|
|
7
7
|
import { tours } from '@strapi/admin/strapi-admin';
|
|
8
|
-
import {
|
|
8
|
+
import { EmptyStateLayout, Button, Box } from '@strapi/design-system';
|
|
9
9
|
import { Plus } from '@strapi/icons';
|
|
10
10
|
import { EmptyDocuments } from '@strapi/icons/symbols';
|
|
11
11
|
import { createPortal } from 'react-dom';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.mjs","sources":["../../../admin/src/components/List.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n DragEndEvent,\n DragStartEvent,\n DragOverlay,\n UniqueIdentifier,\n} from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport {\n SortableContext,\n verticalListSortingStrategy,\n useSortable,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { tours } from '@strapi/admin/strapi-admin';\nimport { Box, Button, EmptyStateLayout } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { createPortal } from 'react-dom';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../utils/getTrad';\n\nimport { AttributeRow, type AttributeRowProps } from './AttributeRow';\nimport { useCTBTracking } from './CTBSession/ctbSession';\nimport { useDataManager } from './DataManager/useDataManager';\nimport { NestedTFooter, TFooter } from './Footers';\nimport { useFormModalNavigation } from './FormModalNavigation/useFormModalNavigation';\n\nimport type { Component, ContentType } from '../types';\nimport type { UID } from '@strapi/types';\n\nexport const ListGrid = styled(Box)`\n white-space: nowrap;\n list-style: none;\n list-style-type: none;\n`;\n\ntype ListProps = {\n addComponentToDZ?: () => void;\n firstLoopComponentUid?: UID.Component | null;\n isFromDynamicZone?: boolean;\n isMain?: boolean;\n secondLoopComponentUid?: UID.Component | null;\n isSub?: boolean;\n type: ContentType | Component;\n};\n\nconst SortableRow = (props: AttributeRowProps) => {\n const { isInDevelopmentMode } = useDataManager();\n\n const {\n isDragging,\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n setActivatorNodeRef,\n } = useSortable({\n disabled:\n !isInDevelopmentMode || props.item.status === 'REMOVED' || props.type.status === 'REMOVED',\n id: props.item.id,\n data: { index: props.item.index },\n });\n\n const style = {\n transform: CSS.Transform.toString({\n x: transform?.x ?? 0,\n y: transform?.y ?? 0,\n scaleX: 1,\n scaleY: 1,\n }),\n transition,\n };\n\n return (\n <AttributeRow\n ref={setNodeRef}\n handleRef={setActivatorNodeRef}\n isDragging={isDragging}\n attributes={attributes}\n listeners={listeners}\n style={style}\n {...props}\n />\n );\n};\n\nexport const List = ({\n addComponentToDZ,\n firstLoopComponentUid,\n isFromDynamicZone = false,\n isMain = false,\n isSub = false,\n secondLoopComponentUid,\n type,\n}: ListProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useCTBTracking();\n const { isInDevelopmentMode, moveAttribute } = useDataManager();\n const { onOpenModalAddField } = useFormModalNavigation();\n\n const items = type?.attributes.map((item, index) => {\n return {\n id: `${type.uid}_${item.name}`,\n index,\n ...item,\n };\n });\n\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>(null);\n\n const isDeleted = type?.status === 'REMOVED';\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n\n function handlerDragStart({ active }: DragStartEvent) {\n if (!active) {\n return;\n }\n\n setActiveId(active.id);\n }\n\n function handleDragEnd(event: DragEndEvent) {\n const { active, over } = event;\n\n setActiveId(null);\n\n if (over) {\n if (active.id !== over.id) {\n moveAttribute({\n forTarget: type.modelType,\n targetUid: type.uid,\n from: active.data.current!.index,\n to: over.data.current!.index,\n });\n }\n }\n }\n\n const activeItem = items.find((item) => item.id === activeId);\n\n const onClickAddField = () => {\n if (isDeleted) {\n return;\n }\n\n trackUsage('hasClickedCTBAddFieldBanner');\n\n onOpenModalAddField({ forTarget: type?.modelType, targetUid: type.uid });\n };\n\n if (type?.attributes.length === 0 && isMain) {\n return (\n <EmptyStateLayout\n action={\n <tours.contentTypeBuilder.AddFields>\n <Button onClick={onClickAddField} size=\"L\" startIcon={<Plus />} variant=\"secondary\">\n {formatMessage({\n id: getTrad('table.button.no-fields'),\n defaultMessage: 'Add new field',\n })}\n </Button>\n </tours.contentTypeBuilder.AddFields>\n }\n content={formatMessage(\n type.modelType === 'contentType'\n ? {\n id: getTrad('table.content.no-fields.collection-type'),\n defaultMessage: 'Add your first field to this Collection-Type',\n }\n : {\n id: getTrad('table.content.no-fields.component'),\n defaultMessage: 'Add your first field to this component',\n }\n )}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n );\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n onDragStart={handlerDragStart}\n onDragCancel={() => setActiveId(null)}\n modifiers={[restrictToVerticalAxis]}\n >\n <ListGrid tag=\"ul\">\n {createPortal(\n <DragOverlay zIndex={10}>\n {activeItem && (\n <AttributeRow\n isOverlay\n item={activeItem}\n firstLoopComponentUid={firstLoopComponentUid}\n isFromDynamicZone={isFromDynamicZone}\n secondLoopComponentUid={secondLoopComponentUid}\n type={type}\n addComponentToDZ={addComponentToDZ}\n />\n )}\n </DragOverlay>,\n document.body\n )}\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n {items.map((item) => {\n return (\n <SortableRow\n key={item.id}\n item={item}\n firstLoopComponentUid={firstLoopComponentUid}\n isFromDynamicZone={isFromDynamicZone}\n secondLoopComponentUid={secondLoopComponentUid}\n type={type}\n addComponentToDZ={addComponentToDZ}\n />\n );\n })}\n </SortableContext>\n </ListGrid>\n\n {isMain && isInDevelopmentMode && (\n <TFooter\n cursor={isDeleted ? 'normal' : 'pointer'}\n icon={<Plus />}\n onClick={onClickAddField}\n color={isDeleted ? 'neutral' : 'primary'}\n >\n {formatMessage({\n id: getTrad(\n `form.button.add.field.to.${type.modelType === 'component' ? 'component' : type.kind}`\n ),\n defaultMessage: 'Add another field',\n })}\n </TFooter>\n )}\n {isSub && isInDevelopmentMode && (\n <NestedTFooter\n cursor={isDeleted ? 'normal' : 'pointer'}\n icon={<Plus />}\n onClick={onClickAddField}\n color={isFromDynamicZone && !isDeleted ? 'primary' : 'neutral'}\n >\n {formatMessage({\n id: getTrad(`form.button.add.field.to.component`),\n defaultMessage: 'Add another field',\n })}\n </NestedTFooter>\n )}\n </DndContext>\n );\n};\n"],"names":["ListGrid","styled","Box","SortableRow","props","isInDevelopmentMode","useDataManager","isDragging","attributes","listeners","setNodeRef","transform","transition","setActivatorNodeRef","useSortable","disabled","item","status","type","id","data","index","style","CSS","Transform","toString","x","y","scaleX","scaleY","_jsx","AttributeRow","ref","handleRef","List","addComponentToDZ","firstLoopComponentUid","isFromDynamicZone","isMain","isSub","secondLoopComponentUid","formatMessage","useIntl","trackUsage","useCTBTracking","moveAttribute","onOpenModalAddField","useFormModalNavigation","items","map","uid","name","activeId","setActiveId","useState","isDeleted","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","coordinateGetter","sortableKeyboardCoordinates","handlerDragStart","active","handleDragEnd","event","over","forTarget","modelType","targetUid","from","current","to","activeItem","find","onClickAddField","length","EmptyStateLayout","action","tours","contentTypeBuilder","AddFields","Button","onClick","size","startIcon","Plus","variant","getTrad","defaultMessage","content","hasRadius","icon","EmptyDocuments","width","_jsxs","DndContext","collisionDetection","closestCenter","onDragEnd","onDragStart","onDragCancel","modifiers","restrictToVerticalAxis","tag","createPortal","DragOverlay","zIndex","isOverlay","document","body","SortableContext","strategy","verticalListSortingStrategy","TFooter","cursor","color","kind","NestedTFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"List.mjs","sources":["../../../admin/src/components/List.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n DragEndEvent,\n DragStartEvent,\n DragOverlay,\n UniqueIdentifier,\n} from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport {\n SortableContext,\n verticalListSortingStrategy,\n useSortable,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { tours } from '@strapi/admin/strapi-admin';\nimport { Box, Button, EmptyStateLayout } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { createPortal } from 'react-dom';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../utils/getTrad';\n\nimport { AttributeRow, type AttributeRowProps } from './AttributeRow';\nimport { useCTBTracking } from './CTBSession/ctbSession';\nimport { useDataManager } from './DataManager/useDataManager';\nimport { NestedTFooter, TFooter } from './Footers';\nimport { useFormModalNavigation } from './FormModalNavigation/useFormModalNavigation';\n\nimport type { Component, ContentType } from '../types';\nimport type { UID } from '@strapi/types';\n\nexport const ListGrid = styled(Box)`\n white-space: nowrap;\n list-style: none;\n list-style-type: none;\n`;\n\ntype ListProps = {\n addComponentToDZ?: () => void;\n firstLoopComponentUid?: UID.Component | null;\n isFromDynamicZone?: boolean;\n isMain?: boolean;\n secondLoopComponentUid?: UID.Component | null;\n isSub?: boolean;\n type: ContentType | Component;\n};\n\nconst SortableRow = (props: AttributeRowProps) => {\n const { isInDevelopmentMode } = useDataManager();\n\n const {\n isDragging,\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n setActivatorNodeRef,\n } = useSortable({\n disabled:\n !isInDevelopmentMode || props.item.status === 'REMOVED' || props.type.status === 'REMOVED',\n id: props.item.id,\n data: { index: props.item.index },\n });\n\n const style = {\n transform: CSS.Transform.toString({\n x: transform?.x ?? 0,\n y: transform?.y ?? 0,\n scaleX: 1,\n scaleY: 1,\n }),\n transition,\n };\n\n return (\n <AttributeRow\n ref={setNodeRef}\n handleRef={setActivatorNodeRef}\n isDragging={isDragging}\n attributes={attributes}\n listeners={listeners}\n style={style}\n {...props}\n />\n );\n};\n\nexport const List = ({\n addComponentToDZ,\n firstLoopComponentUid,\n isFromDynamicZone = false,\n isMain = false,\n isSub = false,\n secondLoopComponentUid,\n type,\n}: ListProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useCTBTracking();\n const { isInDevelopmentMode, moveAttribute } = useDataManager();\n const { onOpenModalAddField } = useFormModalNavigation();\n\n const items = type?.attributes.map((item, index) => {\n return {\n id: `${type.uid}_${item.name}`,\n index,\n ...item,\n };\n });\n\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>(null);\n\n const isDeleted = type?.status === 'REMOVED';\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n\n function handlerDragStart({ active }: DragStartEvent) {\n if (!active) {\n return;\n }\n\n setActiveId(active.id);\n }\n\n function handleDragEnd(event: DragEndEvent) {\n const { active, over } = event;\n\n setActiveId(null);\n\n if (over) {\n if (active.id !== over.id) {\n moveAttribute({\n forTarget: type.modelType,\n targetUid: type.uid,\n from: active.data.current!.index,\n to: over.data.current!.index,\n });\n }\n }\n }\n\n const activeItem = items.find((item) => item.id === activeId);\n\n const onClickAddField = () => {\n if (isDeleted) {\n return;\n }\n\n trackUsage('hasClickedCTBAddFieldBanner');\n\n onOpenModalAddField({ forTarget: type?.modelType, targetUid: type.uid });\n };\n\n if (type?.attributes.length === 0 && isMain) {\n return (\n <EmptyStateLayout\n action={\n <tours.contentTypeBuilder.AddFields>\n <Button onClick={onClickAddField} size=\"L\" startIcon={<Plus />} variant=\"secondary\">\n {formatMessage({\n id: getTrad('table.button.no-fields'),\n defaultMessage: 'Add new field',\n })}\n </Button>\n </tours.contentTypeBuilder.AddFields>\n }\n content={formatMessage(\n type.modelType === 'contentType'\n ? {\n id: getTrad('table.content.no-fields.collection-type'),\n defaultMessage: 'Add your first field to this Collection-Type',\n }\n : {\n id: getTrad('table.content.no-fields.component'),\n defaultMessage: 'Add your first field to this component',\n }\n )}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n );\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n onDragStart={handlerDragStart}\n onDragCancel={() => setActiveId(null)}\n modifiers={[restrictToVerticalAxis]}\n >\n <ListGrid tag=\"ul\">\n {createPortal(\n <DragOverlay zIndex={10}>\n {activeItem && (\n <AttributeRow\n isOverlay\n item={activeItem}\n firstLoopComponentUid={firstLoopComponentUid}\n isFromDynamicZone={isFromDynamicZone}\n secondLoopComponentUid={secondLoopComponentUid}\n type={type}\n addComponentToDZ={addComponentToDZ}\n />\n )}\n </DragOverlay>,\n document.body\n )}\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n {items.map((item) => {\n return (\n <SortableRow\n key={item.id}\n item={item}\n firstLoopComponentUid={firstLoopComponentUid}\n isFromDynamicZone={isFromDynamicZone}\n secondLoopComponentUid={secondLoopComponentUid}\n type={type}\n addComponentToDZ={addComponentToDZ}\n />\n );\n })}\n </SortableContext>\n </ListGrid>\n\n {isMain && isInDevelopmentMode && (\n <TFooter\n cursor={isDeleted ? 'normal' : 'pointer'}\n icon={<Plus />}\n onClick={onClickAddField}\n color={isDeleted ? 'neutral' : 'primary'}\n >\n {formatMessage({\n id: getTrad(\n `form.button.add.field.to.${type.modelType === 'component' ? 'component' : type.kind}`\n ),\n defaultMessage: 'Add another field',\n })}\n </TFooter>\n )}\n {isSub && isInDevelopmentMode && (\n <NestedTFooter\n cursor={isDeleted ? 'normal' : 'pointer'}\n icon={<Plus />}\n onClick={onClickAddField}\n color={isFromDynamicZone && !isDeleted ? 'primary' : 'neutral'}\n >\n {formatMessage({\n id: getTrad(`form.button.add.field.to.component`),\n defaultMessage: 'Add another field',\n })}\n </NestedTFooter>\n )}\n </DndContext>\n );\n};\n"],"names":["ListGrid","styled","Box","SortableRow","props","isInDevelopmentMode","useDataManager","isDragging","attributes","listeners","setNodeRef","transform","transition","setActivatorNodeRef","useSortable","disabled","item","status","type","id","data","index","style","CSS","Transform","toString","x","y","scaleX","scaleY","_jsx","AttributeRow","ref","handleRef","List","addComponentToDZ","firstLoopComponentUid","isFromDynamicZone","isMain","isSub","secondLoopComponentUid","formatMessage","useIntl","trackUsage","useCTBTracking","moveAttribute","onOpenModalAddField","useFormModalNavigation","items","map","uid","name","activeId","setActiveId","useState","isDeleted","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","coordinateGetter","sortableKeyboardCoordinates","handlerDragStart","active","handleDragEnd","event","over","forTarget","modelType","targetUid","from","current","to","activeItem","find","onClickAddField","length","EmptyStateLayout","action","tours","contentTypeBuilder","AddFields","Button","onClick","size","startIcon","Plus","variant","getTrad","defaultMessage","content","hasRadius","icon","EmptyDocuments","width","_jsxs","DndContext","collisionDetection","closestCenter","onDragEnd","onDragStart","onDragCancel","modifiers","restrictToVerticalAxis","tag","createPortal","DragOverlay","zIndex","isOverlay","document","body","SortableContext","strategy","verticalListSortingStrategy","TFooter","cursor","color","kind","NestedTFooter"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluralName.js","sources":["../../../admin/src/components/PluralName.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface PluralNameProps {\n description?: Description;\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const PluralName = ({\n description,\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value,\n}: PluralNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n const previousDisplayName = useRef(displayName);\n const previousValue = useRef(value);\n\n useEffect(() => {\n if (displayName && displayName !== previousDisplayName.current) {\n const baseValue = nameToSlug(displayName);\n let newValue = baseValue;\n\n try {\n newValue = pluralize(baseValue, 2);\n } catch (err) {\n // If pluralize fails, use the base value\n }\n\n onChangeRef.current({ target: { name, value: newValue } });\n previousValue.current = newValue;\n previousDisplayName.current = displayName;\n } else if (!displayName) {\n onChangeRef.current({ target: { name, value: '' } });\n previousValue.current = '';\n previousDisplayName.current = '';\n }\n }, [displayName, name, value]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} type=\"text\" />\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["PluralName","description","error","intlLabel","modifiedData","name","onChange","value","formatMessage","useIntl","onChangeRef","useRef","displayName","previousDisplayName","previousValue","useEffect","current","baseValue","nameToSlug","newValue","pluralize","err","target","errorMessage","id","defaultMessage","hint","values","label","_jsxs","Field","Root","_jsx","Label","TextInput","type","Error"],"mappings":";;;;;;;;;MA0BaA,
|
|
1
|
+
{"version":3,"file":"PluralName.js","sources":["../../../admin/src/components/PluralName.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface PluralNameProps {\n description?: Description;\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const PluralName = ({\n description,\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value,\n}: PluralNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n const previousDisplayName = useRef(displayName);\n const previousValue = useRef(value);\n\n useEffect(() => {\n if (displayName && displayName !== previousDisplayName.current) {\n const baseValue = nameToSlug(displayName);\n let newValue = baseValue;\n\n try {\n newValue = pluralize(baseValue, 2);\n } catch (err) {\n // If pluralize fails, use the base value\n }\n\n onChangeRef.current({ target: { name, value: newValue } });\n previousValue.current = newValue;\n previousDisplayName.current = displayName;\n } else if (!displayName) {\n onChangeRef.current({ target: { name, value: '' } });\n previousValue.current = '';\n previousDisplayName.current = '';\n }\n }, [displayName, name, value]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} type=\"text\" />\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["PluralName","description","error","intlLabel","modifiedData","name","onChange","value","formatMessage","useIntl","onChangeRef","useRef","displayName","previousDisplayName","previousValue","useEffect","current","baseValue","nameToSlug","newValue","pluralize","err","target","errorMessage","id","defaultMessage","hint","values","label","_jsxs","Field","Root","_jsx","Label","TextInput","type","Error"],"mappings":";;;;;;;;;MA0BaA,UAAAA,GAAa,CAAC,EACzBC,WAAW,EACXC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,IAAI,EACJC,QAAQ,EACRC,KAAK,EACW,GAAA;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,cAAcC,YAAAA,CAAOL,QAAAA,CAAAA;IAC3B,MAAMM,WAAAA,GAAcR,cAAcQ,WAAAA,IAAe,EAAA;AACjD,IAAA,MAAMC,sBAAsBF,YAAAA,CAAOC,WAAAA,CAAAA;AACnC,IAAA,MAAME,gBAAgBH,YAAAA,CAAOJ,KAAAA,CAAAA;IAE7BQ,eAAAA,CAAU,IAAA;AACR,QAAA,IAAIH,WAAAA,IAAeA,WAAAA,KAAgBC,mBAAAA,CAAoBG,OAAO,EAAE;AAC9D,YAAA,MAAMC,YAAYC,qBAAAA,CAAWN,WAAAA,CAAAA;AAC7B,YAAA,IAAIO,QAAAA,GAAWF,SAAAA;YAEf,IAAI;AACFE,gBAAAA,QAAAA,GAAWC,UAAUH,SAAAA,EAAW,CAAA,CAAA;AAClC,YAAA,CAAA,CAAE,OAAOI,GAAAA,EAAK;;AAEd,YAAA;AAEAX,YAAAA,WAAAA,CAAYM,OAAO,CAAC;gBAAEM,MAAAA,EAAQ;AAAEjB,oBAAAA,IAAAA;oBAAME,KAAAA,EAAOY;AAAS;AAAE,aAAA,CAAA;AACxDL,YAAAA,aAAAA,CAAcE,OAAO,GAAGG,QAAAA;AACxBN,YAAAA,mBAAAA,CAAoBG,OAAO,GAAGJ,WAAAA;QAChC,CAAA,MAAO,IAAI,CAACA,WAAAA,EAAa;AACvBF,YAAAA,WAAAA,CAAYM,OAAO,CAAC;gBAAEM,MAAAA,EAAQ;AAAEjB,oBAAAA,IAAAA;oBAAME,KAAAA,EAAO;AAAG;AAAE,aAAA,CAAA;AAClDO,YAAAA,aAAAA,CAAcE,OAAO,GAAG,EAAA;AACxBH,YAAAA,mBAAAA,CAAoBG,OAAO,GAAG,EAAA;AAChC,QAAA;IACF,CAAA,EAAG;AAACJ,QAAAA,WAAAA;AAAaP,QAAAA,IAAAA;AAAME,QAAAA;AAAM,KAAA,CAAA;IAE7B,MAAMgB,YAAAA,GAAerB,QAAQM,aAAAA,CAAc;QAAEgB,EAAAA,EAAItB,KAAAA;QAAOuB,cAAAA,EAAgBvB;KAAM,CAAA,GAAK,EAAA;IACnF,MAAMwB,IAAAA,GAAOzB,cACTO,aAAAA,CACE;AAAEgB,QAAAA,EAAAA,EAAIvB,YAAYuB,EAAE;AAAEC,QAAAA,cAAAA,EAAgBxB,YAAYwB;KAAe,EACjE;AAAE,QAAA,GAAGxB,YAAY0B;KAAO,CAAA,GAE1B,EAAA;AACJ,IAAA,MAAMC,QAAQpB,aAAAA,CAAcL,SAAAA,CAAAA;IAE5B,qBACE0B,eAAA,CAACC,mBAAMC,IAAI,EAAA;QAAC7B,KAAAA,EAAOqB,YAAAA;QAAcG,IAAAA,EAAMA,IAAAA;QAAMrB,IAAAA,EAAMA,IAAAA;;AACjD,0BAAA2B,cAAA,CAACF,mBAAMG,KAAK,EAAA;AAAEL,gBAAAA,QAAAA,EAAAA;;0BACdI,cAAA,CAACE,sBAAAA,EAAAA;gBAAU5B,QAAAA,EAAUA,QAAAA;AAAUC,gBAAAA,KAAAA,EAAOA,KAAAA,IAAS,EAAA;gBAAI4B,IAAAA,EAAK;;AACxD,0BAAAH,cAAA,CAACF,mBAAMM,KAAK,EAAA,EAAA;;;AAGlB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluralName.mjs","sources":["../../../admin/src/components/PluralName.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface PluralNameProps {\n description?: Description;\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const PluralName = ({\n description,\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value,\n}: PluralNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n const previousDisplayName = useRef(displayName);\n const previousValue = useRef(value);\n\n useEffect(() => {\n if (displayName && displayName !== previousDisplayName.current) {\n const baseValue = nameToSlug(displayName);\n let newValue = baseValue;\n\n try {\n newValue = pluralize(baseValue, 2);\n } catch (err) {\n // If pluralize fails, use the base value\n }\n\n onChangeRef.current({ target: { name, value: newValue } });\n previousValue.current = newValue;\n previousDisplayName.current = displayName;\n } else if (!displayName) {\n onChangeRef.current({ target: { name, value: '' } });\n previousValue.current = '';\n previousDisplayName.current = '';\n }\n }, [displayName, name, value]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} type=\"text\" />\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["PluralName","description","error","intlLabel","modifiedData","name","onChange","value","formatMessage","useIntl","onChangeRef","useRef","displayName","previousDisplayName","previousValue","useEffect","current","baseValue","nameToSlug","newValue","pluralize","err","target","errorMessage","id","defaultMessage","hint","values","label","_jsxs","Field","Root","_jsx","Label","TextInput","type","Error"],"mappings":";;;;;;;MA0BaA,
|
|
1
|
+
{"version":3,"file":"PluralName.mjs","sources":["../../../admin/src/components/PluralName.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface PluralNameProps {\n description?: Description;\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const PluralName = ({\n description,\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value,\n}: PluralNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n const previousDisplayName = useRef(displayName);\n const previousValue = useRef(value);\n\n useEffect(() => {\n if (displayName && displayName !== previousDisplayName.current) {\n const baseValue = nameToSlug(displayName);\n let newValue = baseValue;\n\n try {\n newValue = pluralize(baseValue, 2);\n } catch (err) {\n // If pluralize fails, use the base value\n }\n\n onChangeRef.current({ target: { name, value: newValue } });\n previousValue.current = newValue;\n previousDisplayName.current = displayName;\n } else if (!displayName) {\n onChangeRef.current({ target: { name, value: '' } });\n previousValue.current = '';\n previousDisplayName.current = '';\n }\n }, [displayName, name, value]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} type=\"text\" />\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["PluralName","description","error","intlLabel","modifiedData","name","onChange","value","formatMessage","useIntl","onChangeRef","useRef","displayName","previousDisplayName","previousValue","useEffect","current","baseValue","nameToSlug","newValue","pluralize","err","target","errorMessage","id","defaultMessage","hint","values","label","_jsxs","Field","Root","_jsx","Label","TextInput","type","Error"],"mappings":";;;;;;;MA0BaA,UAAAA,GAAa,CAAC,EACzBC,WAAW,EACXC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,IAAI,EACJC,QAAQ,EACRC,KAAK,EACW,GAAA;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,cAAcC,MAAAA,CAAOL,QAAAA,CAAAA;IAC3B,MAAMM,WAAAA,GAAcR,cAAcQ,WAAAA,IAAe,EAAA;AACjD,IAAA,MAAMC,sBAAsBF,MAAAA,CAAOC,WAAAA,CAAAA;AACnC,IAAA,MAAME,gBAAgBH,MAAAA,CAAOJ,KAAAA,CAAAA;IAE7BQ,SAAAA,CAAU,IAAA;AACR,QAAA,IAAIH,WAAAA,IAAeA,WAAAA,KAAgBC,mBAAAA,CAAoBG,OAAO,EAAE;AAC9D,YAAA,MAAMC,YAAYC,UAAAA,CAAWN,WAAAA,CAAAA;AAC7B,YAAA,IAAIO,QAAAA,GAAWF,SAAAA;YAEf,IAAI;AACFE,gBAAAA,QAAAA,GAAWC,UAAUH,SAAAA,EAAW,CAAA,CAAA;AAClC,YAAA,CAAA,CAAE,OAAOI,GAAAA,EAAK;;AAEd,YAAA;AAEAX,YAAAA,WAAAA,CAAYM,OAAO,CAAC;gBAAEM,MAAAA,EAAQ;AAAEjB,oBAAAA,IAAAA;oBAAME,KAAAA,EAAOY;AAAS;AAAE,aAAA,CAAA;AACxDL,YAAAA,aAAAA,CAAcE,OAAO,GAAGG,QAAAA;AACxBN,YAAAA,mBAAAA,CAAoBG,OAAO,GAAGJ,WAAAA;QAChC,CAAA,MAAO,IAAI,CAACA,WAAAA,EAAa;AACvBF,YAAAA,WAAAA,CAAYM,OAAO,CAAC;gBAAEM,MAAAA,EAAQ;AAAEjB,oBAAAA,IAAAA;oBAAME,KAAAA,EAAO;AAAG;AAAE,aAAA,CAAA;AAClDO,YAAAA,aAAAA,CAAcE,OAAO,GAAG,EAAA;AACxBH,YAAAA,mBAAAA,CAAoBG,OAAO,GAAG,EAAA;AAChC,QAAA;IACF,CAAA,EAAG;AAACJ,QAAAA,WAAAA;AAAaP,QAAAA,IAAAA;AAAME,QAAAA;AAAM,KAAA,CAAA;IAE7B,MAAMgB,YAAAA,GAAerB,QAAQM,aAAAA,CAAc;QAAEgB,EAAAA,EAAItB,KAAAA;QAAOuB,cAAAA,EAAgBvB;KAAM,CAAA,GAAK,EAAA;IACnF,MAAMwB,IAAAA,GAAOzB,cACTO,aAAAA,CACE;AAAEgB,QAAAA,EAAAA,EAAIvB,YAAYuB,EAAE;AAAEC,QAAAA,cAAAA,EAAgBxB,YAAYwB;KAAe,EACjE;AAAE,QAAA,GAAGxB,YAAY0B;KAAO,CAAA,GAE1B,EAAA;AACJ,IAAA,MAAMC,QAAQpB,aAAAA,CAAcL,SAAAA,CAAAA;IAE5B,qBACE0B,IAAA,CAACC,MAAMC,IAAI,EAAA;QAAC7B,KAAAA,EAAOqB,YAAAA;QAAcG,IAAAA,EAAMA,IAAAA;QAAMrB,IAAAA,EAAMA,IAAAA;;AACjD,0BAAA2B,GAAA,CAACF,MAAMG,KAAK,EAAA;AAAEL,gBAAAA,QAAAA,EAAAA;;0BACdI,GAAA,CAACE,SAAAA,EAAAA;gBAAU5B,QAAAA,EAAUA,QAAAA;AAAUC,gBAAAA,KAAAA,EAAOA,KAAAA,IAAS,EAAA;gBAAI4B,IAAAA,EAAK;;AACxD,0BAAAH,GAAA,CAACF,MAAMM,KAAK,EAAA,EAAA;;;AAGlB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relation.js","sources":["../../../../admin/src/components/Relation/Relation.tsx"],"sourcesContent":["import { Flex } from '@strapi/design-system';\n\nimport { getRelationType } from '../../utils/getRelationType';\n\nimport { RelationFormBox } from './RelationField/RelationField';\nimport { RelationNaturePicker } from './RelationNaturePicker/RelationNaturePicker';\n\ninterface RelationProps {\n formErrors: Record<string, any>;\n mainBoxHeader: string;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n naturePickerType: string;\n targetUid: string;\n}\n\nexport const Relation = ({\n formErrors,\n mainBoxHeader,\n modifiedData,\n naturePickerType,\n onChange,\n targetUid,\n}: RelationProps) => {\n const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);\n\n return (\n <Flex style={{ position: 'relative' }}>\n <RelationFormBox\n isMain\n header={mainBoxHeader}\n error={formErrors?.name || null}\n name=\"name\"\n onChange={onChange}\n value={modifiedData?.name || ''}\n />\n <RelationNaturePicker\n naturePickerType={naturePickerType}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n relationType={relationType!}\n target={modifiedData.target}\n targetUid={targetUid}\n />\n <RelationFormBox\n disabled={['oneWay', 'manyWay'].includes(relationType!)}\n error={formErrors?.targetAttribute || null}\n name=\"targetAttribute\"\n onChange={onChange}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n target={modifiedData.target}\n value={modifiedData?.targetAttribute || ''}\n />\n </Flex>\n );\n};\n"],"names":["Relation","formErrors","mainBoxHeader","modifiedData","naturePickerType","onChange","targetUid","relationType","getRelationType","relation","targetAttribute","_jsxs","Flex","style","position","_jsx","RelationFormBox","isMain","header","error","name","value","RelationNaturePicker","oneThatIsCreatingARelationWithAnother","target","disabled","includes"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"Relation.js","sources":["../../../../admin/src/components/Relation/Relation.tsx"],"sourcesContent":["import { Flex } from '@strapi/design-system';\n\nimport { getRelationType } from '../../utils/getRelationType';\n\nimport { RelationFormBox } from './RelationField/RelationField';\nimport { RelationNaturePicker } from './RelationNaturePicker/RelationNaturePicker';\n\ninterface RelationProps {\n formErrors: Record<string, any>;\n mainBoxHeader: string;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n naturePickerType: string;\n targetUid: string;\n}\n\nexport const Relation = ({\n formErrors,\n mainBoxHeader,\n modifiedData,\n naturePickerType,\n onChange,\n targetUid,\n}: RelationProps) => {\n const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);\n\n return (\n <Flex style={{ position: 'relative' }}>\n <RelationFormBox\n isMain\n header={mainBoxHeader}\n error={formErrors?.name || null}\n name=\"name\"\n onChange={onChange}\n value={modifiedData?.name || ''}\n />\n <RelationNaturePicker\n naturePickerType={naturePickerType}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n relationType={relationType!}\n target={modifiedData.target}\n targetUid={targetUid}\n />\n <RelationFormBox\n disabled={['oneWay', 'manyWay'].includes(relationType!)}\n error={formErrors?.targetAttribute || null}\n name=\"targetAttribute\"\n onChange={onChange}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n target={modifiedData.target}\n value={modifiedData?.targetAttribute || ''}\n />\n </Flex>\n );\n};\n"],"names":["Relation","formErrors","mainBoxHeader","modifiedData","naturePickerType","onChange","targetUid","relationType","getRelationType","relation","targetAttribute","_jsxs","Flex","style","position","_jsx","RelationFormBox","isMain","header","error","name","value","RelationNaturePicker","oneThatIsCreatingARelationWithAnother","target","disabled","includes"],"mappings":";;;;;;;;AAgBO,MAAMA,QAAAA,GAAW,CAAC,EACvBC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,gBAAgB,EAChBC,QAAQ,EACRC,SAAS,EACK,GAAA;AACd,IAAA,MAAMC,eAAeC,+BAAAA,CAAgBL,YAAAA,CAAaM,QAAQ,EAAEN,aAAaO,eAAe,CAAA;AAExF,IAAA,qBACEC,eAAA,CAACC,iBAAAA,EAAAA;QAAKC,KAAAA,EAAO;YAAEC,QAAAA,EAAU;AAAW,SAAA;;0BAClCC,cAAA,CAACC,6BAAAA,EAAAA;gBACCC,MAAM,EAAA,IAAA;gBACNC,MAAAA,EAAQhB,aAAAA;AACRiB,gBAAAA,KAAAA,EAAOlB,YAAYmB,IAAAA,IAAQ,IAAA;gBAC3BA,IAAAA,EAAK,MAAA;gBACLf,QAAAA,EAAUA,QAAAA;AACVgB,gBAAAA,KAAAA,EAAOlB,cAAciB,IAAAA,IAAQ;;0BAE/BL,cAAA,CAACO,yCAAAA,EAAAA;gBACClB,gBAAAA,EAAkBA,gBAAAA;gBAClBmB,qCAAAA,EAAuCrB,aAAAA;gBACvCK,YAAAA,EAAcA,YAAAA;AACdiB,gBAAAA,MAAAA,EAAQrB,aAAaqB,MAAM;gBAC3BlB,SAAAA,EAAWA;;0BAEbS,cAAA,CAACC,6BAAAA,EAAAA;gBACCS,QAAAA,EAAU;AAAC,oBAAA,QAAA;AAAU,oBAAA;AAAU,iBAAA,CAACC,QAAQ,CAACnB,YAAAA,CAAAA;AACzCY,gBAAAA,KAAAA,EAAOlB,YAAYS,eAAAA,IAAmB,IAAA;gBACtCU,IAAAA,EAAK,iBAAA;gBACLf,QAAAA,EAAUA,QAAAA;gBACVkB,qCAAAA,EAAuCrB,aAAAA;AACvCsB,gBAAAA,MAAAA,EAAQrB,aAAaqB,MAAM;AAC3BH,gBAAAA,KAAAA,EAAOlB,cAAcO,eAAAA,IAAmB;;;;AAIhD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relation.mjs","sources":["../../../../admin/src/components/Relation/Relation.tsx"],"sourcesContent":["import { Flex } from '@strapi/design-system';\n\nimport { getRelationType } from '../../utils/getRelationType';\n\nimport { RelationFormBox } from './RelationField/RelationField';\nimport { RelationNaturePicker } from './RelationNaturePicker/RelationNaturePicker';\n\ninterface RelationProps {\n formErrors: Record<string, any>;\n mainBoxHeader: string;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n naturePickerType: string;\n targetUid: string;\n}\n\nexport const Relation = ({\n formErrors,\n mainBoxHeader,\n modifiedData,\n naturePickerType,\n onChange,\n targetUid,\n}: RelationProps) => {\n const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);\n\n return (\n <Flex style={{ position: 'relative' }}>\n <RelationFormBox\n isMain\n header={mainBoxHeader}\n error={formErrors?.name || null}\n name=\"name\"\n onChange={onChange}\n value={modifiedData?.name || ''}\n />\n <RelationNaturePicker\n naturePickerType={naturePickerType}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n relationType={relationType!}\n target={modifiedData.target}\n targetUid={targetUid}\n />\n <RelationFormBox\n disabled={['oneWay', 'manyWay'].includes(relationType!)}\n error={formErrors?.targetAttribute || null}\n name=\"targetAttribute\"\n onChange={onChange}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n target={modifiedData.target}\n value={modifiedData?.targetAttribute || ''}\n />\n </Flex>\n );\n};\n"],"names":["Relation","formErrors","mainBoxHeader","modifiedData","naturePickerType","onChange","targetUid","relationType","getRelationType","relation","targetAttribute","_jsxs","Flex","style","position","_jsx","RelationFormBox","isMain","header","error","name","value","RelationNaturePicker","oneThatIsCreatingARelationWithAnother","target","disabled","includes"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Relation.mjs","sources":["../../../../admin/src/components/Relation/Relation.tsx"],"sourcesContent":["import { Flex } from '@strapi/design-system';\n\nimport { getRelationType } from '../../utils/getRelationType';\n\nimport { RelationFormBox } from './RelationField/RelationField';\nimport { RelationNaturePicker } from './RelationNaturePicker/RelationNaturePicker';\n\ninterface RelationProps {\n formErrors: Record<string, any>;\n mainBoxHeader: string;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n naturePickerType: string;\n targetUid: string;\n}\n\nexport const Relation = ({\n formErrors,\n mainBoxHeader,\n modifiedData,\n naturePickerType,\n onChange,\n targetUid,\n}: RelationProps) => {\n const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);\n\n return (\n <Flex style={{ position: 'relative' }}>\n <RelationFormBox\n isMain\n header={mainBoxHeader}\n error={formErrors?.name || null}\n name=\"name\"\n onChange={onChange}\n value={modifiedData?.name || ''}\n />\n <RelationNaturePicker\n naturePickerType={naturePickerType}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n relationType={relationType!}\n target={modifiedData.target}\n targetUid={targetUid}\n />\n <RelationFormBox\n disabled={['oneWay', 'manyWay'].includes(relationType!)}\n error={formErrors?.targetAttribute || null}\n name=\"targetAttribute\"\n onChange={onChange}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n target={modifiedData.target}\n value={modifiedData?.targetAttribute || ''}\n />\n </Flex>\n );\n};\n"],"names":["Relation","formErrors","mainBoxHeader","modifiedData","naturePickerType","onChange","targetUid","relationType","getRelationType","relation","targetAttribute","_jsxs","Flex","style","position","_jsx","RelationFormBox","isMain","header","error","name","value","RelationNaturePicker","oneThatIsCreatingARelationWithAnother","target","disabled","includes"],"mappings":";;;;;;AAgBO,MAAMA,QAAAA,GAAW,CAAC,EACvBC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,gBAAgB,EAChBC,QAAQ,EACRC,SAAS,EACK,GAAA;AACd,IAAA,MAAMC,eAAeC,eAAAA,CAAgBL,YAAAA,CAAaM,QAAQ,EAAEN,aAAaO,eAAe,CAAA;AAExF,IAAA,qBACEC,IAAA,CAACC,IAAAA,EAAAA;QAAKC,KAAAA,EAAO;YAAEC,QAAAA,EAAU;AAAW,SAAA;;0BAClCC,GAAA,CAACC,eAAAA,EAAAA;gBACCC,MAAM,EAAA,IAAA;gBACNC,MAAAA,EAAQhB,aAAAA;AACRiB,gBAAAA,KAAAA,EAAOlB,YAAYmB,IAAAA,IAAQ,IAAA;gBAC3BA,IAAAA,EAAK,MAAA;gBACLf,QAAAA,EAAUA,QAAAA;AACVgB,gBAAAA,KAAAA,EAAOlB,cAAciB,IAAAA,IAAQ;;0BAE/BL,GAAA,CAACO,oBAAAA,EAAAA;gBACClB,gBAAAA,EAAkBA,gBAAAA;gBAClBmB,qCAAAA,EAAuCrB,aAAAA;gBACvCK,YAAAA,EAAcA,YAAAA;AACdiB,gBAAAA,MAAAA,EAAQrB,aAAaqB,MAAM;gBAC3BlB,SAAAA,EAAWA;;0BAEbS,GAAA,CAACC,eAAAA,EAAAA;gBACCS,QAAAA,EAAU;AAAC,oBAAA,QAAA;AAAU,oBAAA;AAAU,iBAAA,CAACC,QAAQ,CAACnB,YAAAA,CAAAA;AACzCY,gBAAAA,KAAAA,EAAOlB,YAAYS,eAAAA,IAAmB,IAAA;gBACtCU,IAAAA,EAAK,iBAAA;gBACLf,QAAAA,EAAUA,QAAAA;gBACVkB,qCAAAA,EAAuCrB,aAAAA;AACvCsB,gBAAAA,MAAAA,EAAQrB,aAAaqB,MAAM;AAC3BH,gBAAAA,KAAAA,EAAOlB,cAAcO,eAAAA,IAAmB;;;;AAIhD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationField.js","sources":["../../../../../admin/src/components/Relation/RelationField/RelationField.tsx"],"sourcesContent":["import { Box, Divider, Flex, Typography } from '@strapi/design-system';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { GenericInput } from '../../GenericInputs';\n\nimport { RelationTargetPicker } from './RelationTargetPicker/RelationTargetPicker';\n\nimport type { Internal } from '@strapi/types';\n\ninterface RelationFormBoxProps {\n disabled?: boolean;\n error?: Record<string, any>;\n header?: string;\n isMain?: boolean;\n name: string;\n onChange: (value: any) => void;\n oneThatIsCreatingARelationWithAnother?: string;\n target?: Internal.UID.ContentType;\n value?: string;\n}\n\nexport const RelationFormBox = ({\n disabled = false,\n error,\n header,\n isMain = false,\n name,\n onChange,\n oneThatIsCreatingARelationWithAnother = '',\n target,\n value = '',\n}: RelationFormBoxProps) => {\n return (\n <Box background=\"neutral100\" hasRadius borderColor=\"neutral200\">\n <Flex paddingTop={isMain ? 4 : 1} paddingBottom={isMain ? 3 : 1} justifyContent=\"center\">\n {isMain ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\">\n {header}\n </Typography>\n ) : (\n <RelationTargetPicker\n target={target!}\n oneThatIsCreatingARelationWithAnother={oneThatIsCreatingARelationWithAnother}\n />\n )}\n </Flex>\n <Divider background=\"neutral200\" />\n <Box padding={4}>\n <GenericInput\n disabled={disabled}\n error={error?.id || null}\n intlLabel={{\n id: getTrad('form.attribute.item.defineRelation.fieldName'),\n defaultMessage: 'Field name',\n }}\n name={name}\n onChange={onChange}\n type=\"text\"\n value={value}\n />\n </Box>\n </Box>\n );\n};\n"],"names":["RelationFormBox","disabled","error","header","isMain","name","onChange","oneThatIsCreatingARelationWithAnother","target","value","_jsxs","Box","background","hasRadius","borderColor","_jsx","Flex","paddingTop","paddingBottom","justifyContent","Typography","variant","fontWeight","textColor","RelationTargetPicker","Divider","padding","GenericInput","id","intlLabel","getTrad","defaultMessage","type"],"mappings":";;;;;;;;AAqBO,MAAMA,
|
|
1
|
+
{"version":3,"file":"RelationField.js","sources":["../../../../../admin/src/components/Relation/RelationField/RelationField.tsx"],"sourcesContent":["import { Box, Divider, Flex, Typography } from '@strapi/design-system';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { GenericInput } from '../../GenericInputs';\n\nimport { RelationTargetPicker } from './RelationTargetPicker/RelationTargetPicker';\n\nimport type { Internal } from '@strapi/types';\n\ninterface RelationFormBoxProps {\n disabled?: boolean;\n error?: Record<string, any>;\n header?: string;\n isMain?: boolean;\n name: string;\n onChange: (value: any) => void;\n oneThatIsCreatingARelationWithAnother?: string;\n target?: Internal.UID.ContentType;\n value?: string;\n}\n\nexport const RelationFormBox = ({\n disabled = false,\n error,\n header,\n isMain = false,\n name,\n onChange,\n oneThatIsCreatingARelationWithAnother = '',\n target,\n value = '',\n}: RelationFormBoxProps) => {\n return (\n <Box background=\"neutral100\" hasRadius borderColor=\"neutral200\">\n <Flex paddingTop={isMain ? 4 : 1} paddingBottom={isMain ? 3 : 1} justifyContent=\"center\">\n {isMain ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\">\n {header}\n </Typography>\n ) : (\n <RelationTargetPicker\n target={target!}\n oneThatIsCreatingARelationWithAnother={oneThatIsCreatingARelationWithAnother}\n />\n )}\n </Flex>\n <Divider background=\"neutral200\" />\n <Box padding={4}>\n <GenericInput\n disabled={disabled}\n error={error?.id || null}\n intlLabel={{\n id: getTrad('form.attribute.item.defineRelation.fieldName'),\n defaultMessage: 'Field name',\n }}\n name={name}\n onChange={onChange}\n type=\"text\"\n value={value}\n />\n </Box>\n </Box>\n );\n};\n"],"names":["RelationFormBox","disabled","error","header","isMain","name","onChange","oneThatIsCreatingARelationWithAnother","target","value","_jsxs","Box","background","hasRadius","borderColor","_jsx","Flex","paddingTop","paddingBottom","justifyContent","Typography","variant","fontWeight","textColor","RelationTargetPicker","Divider","padding","GenericInput","id","intlLabel","getTrad","defaultMessage","type"],"mappings":";;;;;;;;AAqBO,MAAMA,eAAAA,GAAkB,CAAC,EAC9BC,QAAAA,GAAW,KAAK,EAChBC,KAAK,EACLC,MAAM,EACNC,MAAAA,GAAS,KAAK,EACdC,IAAI,EACJC,QAAQ,EACRC,qCAAAA,GAAwC,EAAE,EAC1CC,MAAM,EACNC,KAAAA,GAAQ,EAAE,EACW,GAAA;AACrB,IAAA,qBACEC,eAAA,CAACC,gBAAAA,EAAAA;QAAIC,UAAAA,EAAW,YAAA;QAAaC,SAAS,EAAA,IAAA;QAACC,WAAAA,EAAY,YAAA;;0BACjDC,cAAA,CAACC,iBAAAA,EAAAA;AAAKC,gBAAAA,UAAAA,EAAYb,SAAS,CAAA,GAAI,CAAA;AAAGc,gBAAAA,aAAAA,EAAed,SAAS,CAAA,GAAI,CAAA;gBAAGe,cAAAA,EAAe,QAAA;AAC7Ef,gBAAAA,QAAAA,EAAAA,MAAAA,iBACCW,cAAA,CAACK,uBAAAA,EAAAA;oBAAWC,OAAAA,EAAQ,IAAA;oBAAKC,UAAAA,EAAW,MAAA;oBAAOC,SAAAA,EAAU,YAAA;AAClDpB,oBAAAA,QAAAA,EAAAA;mCAGHY,cAAA,CAACS,yCAAAA,EAAAA;oBACChB,MAAAA,EAAQA,MAAAA;oBACRD,qCAAAA,EAAuCA;;;0BAI7CQ,cAAA,CAACU,oBAAAA,EAAAA;gBAAQb,UAAAA,EAAW;;0BACpBG,cAAA,CAACJ,gBAAAA,EAAAA;gBAAIe,OAAAA,EAAS,CAAA;AACZ,gBAAA,QAAA,gBAAAX,cAAA,CAACY,0BAAAA,EAAAA;oBACC1B,QAAAA,EAAUA,QAAAA;AACVC,oBAAAA,KAAAA,EAAOA,OAAO0B,EAAAA,IAAM,IAAA;oBACpBC,SAAAA,EAAW;AACTD,wBAAAA,EAAAA,EAAIE,eAAAA,CAAQ,8CAAA,CAAA;wBACZC,cAAAA,EAAgB;AAClB,qBAAA;oBACA1B,IAAAA,EAAMA,IAAAA;oBACNC,QAAAA,EAAUA,QAAAA;oBACV0B,IAAAA,EAAK,MAAA;oBACLvB,KAAAA,EAAOA;;;;;AAKjB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationField.mjs","sources":["../../../../../admin/src/components/Relation/RelationField/RelationField.tsx"],"sourcesContent":["import { Box, Divider, Flex, Typography } from '@strapi/design-system';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { GenericInput } from '../../GenericInputs';\n\nimport { RelationTargetPicker } from './RelationTargetPicker/RelationTargetPicker';\n\nimport type { Internal } from '@strapi/types';\n\ninterface RelationFormBoxProps {\n disabled?: boolean;\n error?: Record<string, any>;\n header?: string;\n isMain?: boolean;\n name: string;\n onChange: (value: any) => void;\n oneThatIsCreatingARelationWithAnother?: string;\n target?: Internal.UID.ContentType;\n value?: string;\n}\n\nexport const RelationFormBox = ({\n disabled = false,\n error,\n header,\n isMain = false,\n name,\n onChange,\n oneThatIsCreatingARelationWithAnother = '',\n target,\n value = '',\n}: RelationFormBoxProps) => {\n return (\n <Box background=\"neutral100\" hasRadius borderColor=\"neutral200\">\n <Flex paddingTop={isMain ? 4 : 1} paddingBottom={isMain ? 3 : 1} justifyContent=\"center\">\n {isMain ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\">\n {header}\n </Typography>\n ) : (\n <RelationTargetPicker\n target={target!}\n oneThatIsCreatingARelationWithAnother={oneThatIsCreatingARelationWithAnother}\n />\n )}\n </Flex>\n <Divider background=\"neutral200\" />\n <Box padding={4}>\n <GenericInput\n disabled={disabled}\n error={error?.id || null}\n intlLabel={{\n id: getTrad('form.attribute.item.defineRelation.fieldName'),\n defaultMessage: 'Field name',\n }}\n name={name}\n onChange={onChange}\n type=\"text\"\n value={value}\n />\n </Box>\n </Box>\n );\n};\n"],"names":["RelationFormBox","disabled","error","header","isMain","name","onChange","oneThatIsCreatingARelationWithAnother","target","value","_jsxs","Box","background","hasRadius","borderColor","_jsx","Flex","paddingTop","paddingBottom","justifyContent","Typography","variant","fontWeight","textColor","RelationTargetPicker","Divider","padding","GenericInput","id","intlLabel","getTrad","defaultMessage","type"],"mappings":";;;;;;AAqBO,MAAMA,
|
|
1
|
+
{"version":3,"file":"RelationField.mjs","sources":["../../../../../admin/src/components/Relation/RelationField/RelationField.tsx"],"sourcesContent":["import { Box, Divider, Flex, Typography } from '@strapi/design-system';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { GenericInput } from '../../GenericInputs';\n\nimport { RelationTargetPicker } from './RelationTargetPicker/RelationTargetPicker';\n\nimport type { Internal } from '@strapi/types';\n\ninterface RelationFormBoxProps {\n disabled?: boolean;\n error?: Record<string, any>;\n header?: string;\n isMain?: boolean;\n name: string;\n onChange: (value: any) => void;\n oneThatIsCreatingARelationWithAnother?: string;\n target?: Internal.UID.ContentType;\n value?: string;\n}\n\nexport const RelationFormBox = ({\n disabled = false,\n error,\n header,\n isMain = false,\n name,\n onChange,\n oneThatIsCreatingARelationWithAnother = '',\n target,\n value = '',\n}: RelationFormBoxProps) => {\n return (\n <Box background=\"neutral100\" hasRadius borderColor=\"neutral200\">\n <Flex paddingTop={isMain ? 4 : 1} paddingBottom={isMain ? 3 : 1} justifyContent=\"center\">\n {isMain ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\">\n {header}\n </Typography>\n ) : (\n <RelationTargetPicker\n target={target!}\n oneThatIsCreatingARelationWithAnother={oneThatIsCreatingARelationWithAnother}\n />\n )}\n </Flex>\n <Divider background=\"neutral200\" />\n <Box padding={4}>\n <GenericInput\n disabled={disabled}\n error={error?.id || null}\n intlLabel={{\n id: getTrad('form.attribute.item.defineRelation.fieldName'),\n defaultMessage: 'Field name',\n }}\n name={name}\n onChange={onChange}\n type=\"text\"\n value={value}\n />\n </Box>\n </Box>\n );\n};\n"],"names":["RelationFormBox","disabled","error","header","isMain","name","onChange","oneThatIsCreatingARelationWithAnother","target","value","_jsxs","Box","background","hasRadius","borderColor","_jsx","Flex","paddingTop","paddingBottom","justifyContent","Typography","variant","fontWeight","textColor","RelationTargetPicker","Divider","padding","GenericInput","id","intlLabel","getTrad","defaultMessage","type"],"mappings":";;;;;;AAqBO,MAAMA,eAAAA,GAAkB,CAAC,EAC9BC,QAAAA,GAAW,KAAK,EAChBC,KAAK,EACLC,MAAM,EACNC,MAAAA,GAAS,KAAK,EACdC,IAAI,EACJC,QAAQ,EACRC,qCAAAA,GAAwC,EAAE,EAC1CC,MAAM,EACNC,KAAAA,GAAQ,EAAE,EACW,GAAA;AACrB,IAAA,qBACEC,IAAA,CAACC,GAAAA,EAAAA;QAAIC,UAAAA,EAAW,YAAA;QAAaC,SAAS,EAAA,IAAA;QAACC,WAAAA,EAAY,YAAA;;0BACjDC,GAAA,CAACC,IAAAA,EAAAA;AAAKC,gBAAAA,UAAAA,EAAYb,SAAS,CAAA,GAAI,CAAA;AAAGc,gBAAAA,aAAAA,EAAed,SAAS,CAAA,GAAI,CAAA;gBAAGe,cAAAA,EAAe,QAAA;AAC7Ef,gBAAAA,QAAAA,EAAAA,MAAAA,iBACCW,GAAA,CAACK,UAAAA,EAAAA;oBAAWC,OAAAA,EAAQ,IAAA;oBAAKC,UAAAA,EAAW,MAAA;oBAAOC,SAAAA,EAAU,YAAA;AAClDpB,oBAAAA,QAAAA,EAAAA;mCAGHY,GAAA,CAACS,oBAAAA,EAAAA;oBACChB,MAAAA,EAAQA,MAAAA;oBACRD,qCAAAA,EAAuCA;;;0BAI7CQ,GAAA,CAACU,OAAAA,EAAAA;gBAAQb,UAAAA,EAAW;;0BACpBG,GAAA,CAACJ,GAAAA,EAAAA;gBAAIe,OAAAA,EAAS,CAAA;AACZ,gBAAA,QAAA,gBAAAX,GAAA,CAACY,oBAAAA,EAAAA;oBACC1B,QAAAA,EAAUA,QAAAA;AACVC,oBAAAA,KAAAA,EAAOA,OAAO0B,EAAAA,IAAM,IAAA;oBACpBC,SAAAA,EAAW;AACTD,wBAAAA,EAAAA,EAAIE,OAAAA,CAAQ,8CAAA,CAAA;wBACZC,cAAAA,EAAgB;AAClB,qBAAA;oBACA1B,IAAAA,EAAMA,IAAAA;oBACNC,QAAAA,EAAUA,QAAAA;oBACV0B,IAAAA,EAAK,MAAA;oBACLvB,KAAAA,EAAOA;;;;;AAKjB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationTargetPicker.js","sources":["../../../../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx"],"sourcesContent":["import { Menu } from '@strapi/design-system';\nimport { useDispatch } from 'react-redux';\nimport { styled } from 'styled-components';\n\nimport { isAllowedContentTypesForRelations } from '../../../../utils';\nimport { useDataManager } from '../../../DataManager/useDataManager';\nimport { actions } from '../../../FormModal/reducer';\n\nimport type { Internal, Schema } from '@strapi/types';\ninterface RelationTargetPickerProps {\n oneThatIsCreatingARelationWithAnother: string;\n target: Internal.UID.ContentType;\n}\n\ntype SelectOpts = {\n uid: string;\n plugin?: string;\n title: string;\n restrictRelationsTo: Schema.Attribute.RelationKind.Any[] | null;\n};\n\nexport const RelationTargetPicker = ({\n oneThatIsCreatingARelationWithAnother,\n target,\n}: RelationTargetPickerProps) => {\n const { contentTypes, sortedContentTypesList } = useDataManager();\n const dispatch = useDispatch();\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false }\n const allowedContentTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n const type = contentTypes[target];\n\n if (!type) {\n return null;\n }\n\n const handleSelect =\n ({ uid, plugin, title, restrictRelationsTo }: SelectOpts) =>\n () => {\n const selectedContentTypeFriendlyName = plugin ? `${plugin}_${title}` : title;\n\n dispatch(\n actions.onChangeRelationTarget({\n target: {\n value: uid,\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations: restrictRelationsTo,\n },\n })\n );\n };\n\n /**\n * TODO: This should be a Select but the design doesn't match the\n * styles of the select component and there isn't the ability to\n * change it correctly.\n */\n return (\n <Menu.Root>\n <MenuTrigger>{`${type.info.displayName} ${type.plugin ? `(from: ${type.plugin})` : ''}`}</MenuTrigger>\n <Menu.Content zIndex=\"popover\">\n {allowedContentTypesForRelation.map(({ uid, title, restrictRelationsTo, plugin }) => (\n <Menu.Item key={uid} onSelect={handleSelect({ uid, plugin, title, restrictRelationsTo })}>\n {title} \n {plugin && <>(from: {plugin})</>}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nconst MenuTrigger = styled(Menu.Trigger)`\n max-width: 16.8rem;\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n"],"names":["RelationTargetPicker","oneThatIsCreatingARelationWithAnother","target","contentTypes","sortedContentTypesList","useDataManager","dispatch","useDispatch","allowedContentTypesForRelation","filter","isAllowedContentTypesForRelations","type","handleSelect","uid","plugin","title","restrictRelationsTo","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","value","targetContentTypeAllowedRelations","_jsxs","Menu","Root","_jsx","MenuTrigger","info","displayName","Content","zIndex","map","Item","onSelect","_Fragment","styled","Trigger"],"mappings":";;;;;;;;;;MAqBaA,
|
|
1
|
+
{"version":3,"file":"RelationTargetPicker.js","sources":["../../../../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx"],"sourcesContent":["import { Menu } from '@strapi/design-system';\nimport { useDispatch } from 'react-redux';\nimport { styled } from 'styled-components';\n\nimport { isAllowedContentTypesForRelations } from '../../../../utils';\nimport { useDataManager } from '../../../DataManager/useDataManager';\nimport { actions } from '../../../FormModal/reducer';\n\nimport type { Internal, Schema } from '@strapi/types';\ninterface RelationTargetPickerProps {\n oneThatIsCreatingARelationWithAnother: string;\n target: Internal.UID.ContentType;\n}\n\ntype SelectOpts = {\n uid: string;\n plugin?: string;\n title: string;\n restrictRelationsTo: Schema.Attribute.RelationKind.Any[] | null;\n};\n\nexport const RelationTargetPicker = ({\n oneThatIsCreatingARelationWithAnother,\n target,\n}: RelationTargetPickerProps) => {\n const { contentTypes, sortedContentTypesList } = useDataManager();\n const dispatch = useDispatch();\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false }\n const allowedContentTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n const type = contentTypes[target];\n\n if (!type) {\n return null;\n }\n\n const handleSelect =\n ({ uid, plugin, title, restrictRelationsTo }: SelectOpts) =>\n () => {\n const selectedContentTypeFriendlyName = plugin ? `${plugin}_${title}` : title;\n\n dispatch(\n actions.onChangeRelationTarget({\n target: {\n value: uid,\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations: restrictRelationsTo,\n },\n })\n );\n };\n\n /**\n * TODO: This should be a Select but the design doesn't match the\n * styles of the select component and there isn't the ability to\n * change it correctly.\n */\n return (\n <Menu.Root>\n <MenuTrigger>{`${type.info.displayName} ${type.plugin ? `(from: ${type.plugin})` : ''}`}</MenuTrigger>\n <Menu.Content zIndex=\"popover\">\n {allowedContentTypesForRelation.map(({ uid, title, restrictRelationsTo, plugin }) => (\n <Menu.Item key={uid} onSelect={handleSelect({ uid, plugin, title, restrictRelationsTo })}>\n {title} \n {plugin && <>(from: {plugin})</>}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nconst MenuTrigger = styled(Menu.Trigger)`\n max-width: 16.8rem;\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n"],"names":["RelationTargetPicker","oneThatIsCreatingARelationWithAnother","target","contentTypes","sortedContentTypesList","useDataManager","dispatch","useDispatch","allowedContentTypesForRelation","filter","isAllowedContentTypesForRelations","type","handleSelect","uid","plugin","title","restrictRelationsTo","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","value","targetContentTypeAllowedRelations","_jsxs","Menu","Root","_jsx","MenuTrigger","info","displayName","Content","zIndex","map","Item","onSelect","_Fragment","styled","Trigger"],"mappings":";;;;;;;;;;MAqBaA,oBAAAA,GAAuB,CAAC,EACnCC,qCAAqC,EACrCC,MAAM,EACoB,GAAA;AAC1B,IAAA,MAAM,EAAEC,YAAY,EAAEC,sBAAsB,EAAE,GAAGC,6BAAAA,EAAAA;AACjD,IAAA,MAAMC,QAAAA,GAAWC,sBAAAA,EAAAA;;IAEjB,MAAMC,8BAAAA,GAAiCJ,sBAAAA,CAAuBK,MAAM,CAClEC,mEAAAA,CAAAA;IAGF,MAAMC,IAAAA,GAAOR,YAAY,CAACD,MAAAA,CAAO;AAEjC,IAAA,IAAI,CAACS,IAAAA,EAAM;QACT,OAAO,IAAA;AACT,IAAA;IAEA,MAAMC,YAAAA,GACJ,CAAC,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAEC,mBAAmB,EAAc,GACxD,IAAA;AACE,YAAA,MAAMC,kCAAkCH,MAAAA,GAAS,CAAA,EAAGA,OAAO,CAAC,EAAEC,OAAO,GAAGA,KAAAA;YAExET,QAAAA,CACEY,eAAAA,CAAQC,sBAAsB,CAAC;gBAC7BjB,MAAAA,EAAQ;oBACNkB,KAAAA,EAAOP,GAAAA;AACPZ,oBAAAA,qCAAAA;AACAgB,oBAAAA,+BAAAA;oBACAI,iCAAAA,EAAmCL;AACrC;AACF,aAAA,CAAA,CAAA;AAEJ,QAAA,CAAA;AAEF;;;;MAKA,qBACEM,eAAA,CAACC,iBAAAA,CAAKC,IAAI,EAAA;;0BACRC,cAAA,CAACC,WAAAA,EAAAA;AAAa,gBAAA,QAAA,EAAA,CAAA,EAAGf,KAAKgB,IAAI,CAACC,WAAW,CAAC,CAAC,EAAEjB,IAAAA,CAAKG,MAAM,GAAG,CAAC,OAAO,EAAEH,IAAAA,CAAKG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAA,CAAA;;AACnF,0BAAAW,cAAA,CAACF,kBAAKM,OAAO,EAAA;gBAACC,MAAAA,EAAO,SAAA;AAClBtB,gBAAAA,QAAAA,EAAAA,8BAAAA,CAA+BuB,GAAG,CAAC,CAAC,EAAElB,GAAG,EAAEE,KAAK,EAAEC,mBAAmB,EAAEF,MAAM,EAAE,iBAC9EQ,eAAA,CAACC,kBAAKS,IAAI,EAAA;AAAWC,wBAAAA,QAAAA,EAAUrB,YAAAA,CAAa;AAAEC,4BAAAA,GAAAA;AAAKC,4BAAAA,MAAAA;AAAQC,4BAAAA,KAAAA;AAAOC,4BAAAA;AAAoB,yBAAA,CAAA;;AACnFD,4BAAAA,KAAAA;AAAM,4BAAA,GAAA;4BACND,MAAAA,kBAAUQ,eAAA,CAAAY,mBAAA,EAAA;;AAAE,oCAAA,SAAA;AAAQpB,oCAAAA,MAAAA;AAAO,oCAAA;;;;AAFdD,qBAAAA,EAAAA,GAAAA,CAAAA;;;;AAQ1B;AAEA,MAAMa,WAAAA,GAAcS,uBAAAA,CAAOZ,iBAAAA,CAAKa,OAAO,CAAC;;;;;;;AAOxC,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationTargetPicker.mjs","sources":["../../../../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx"],"sourcesContent":["import { Menu } from '@strapi/design-system';\nimport { useDispatch } from 'react-redux';\nimport { styled } from 'styled-components';\n\nimport { isAllowedContentTypesForRelations } from '../../../../utils';\nimport { useDataManager } from '../../../DataManager/useDataManager';\nimport { actions } from '../../../FormModal/reducer';\n\nimport type { Internal, Schema } from '@strapi/types';\ninterface RelationTargetPickerProps {\n oneThatIsCreatingARelationWithAnother: string;\n target: Internal.UID.ContentType;\n}\n\ntype SelectOpts = {\n uid: string;\n plugin?: string;\n title: string;\n restrictRelationsTo: Schema.Attribute.RelationKind.Any[] | null;\n};\n\nexport const RelationTargetPicker = ({\n oneThatIsCreatingARelationWithAnother,\n target,\n}: RelationTargetPickerProps) => {\n const { contentTypes, sortedContentTypesList } = useDataManager();\n const dispatch = useDispatch();\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false }\n const allowedContentTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n const type = contentTypes[target];\n\n if (!type) {\n return null;\n }\n\n const handleSelect =\n ({ uid, plugin, title, restrictRelationsTo }: SelectOpts) =>\n () => {\n const selectedContentTypeFriendlyName = plugin ? `${plugin}_${title}` : title;\n\n dispatch(\n actions.onChangeRelationTarget({\n target: {\n value: uid,\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations: restrictRelationsTo,\n },\n })\n );\n };\n\n /**\n * TODO: This should be a Select but the design doesn't match the\n * styles of the select component and there isn't the ability to\n * change it correctly.\n */\n return (\n <Menu.Root>\n <MenuTrigger>{`${type.info.displayName} ${type.plugin ? `(from: ${type.plugin})` : ''}`}</MenuTrigger>\n <Menu.Content zIndex=\"popover\">\n {allowedContentTypesForRelation.map(({ uid, title, restrictRelationsTo, plugin }) => (\n <Menu.Item key={uid} onSelect={handleSelect({ uid, plugin, title, restrictRelationsTo })}>\n {title} \n {plugin && <>(from: {plugin})</>}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nconst MenuTrigger = styled(Menu.Trigger)`\n max-width: 16.8rem;\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n"],"names":["RelationTargetPicker","oneThatIsCreatingARelationWithAnother","target","contentTypes","sortedContentTypesList","useDataManager","dispatch","useDispatch","allowedContentTypesForRelation","filter","isAllowedContentTypesForRelations","type","handleSelect","uid","plugin","title","restrictRelationsTo","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","value","targetContentTypeAllowedRelations","_jsxs","Menu","Root","_jsx","MenuTrigger","info","displayName","Content","zIndex","map","Item","onSelect","_Fragment","styled","Trigger"],"mappings":";;;;;;;;MAqBaA,
|
|
1
|
+
{"version":3,"file":"RelationTargetPicker.mjs","sources":["../../../../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx"],"sourcesContent":["import { Menu } from '@strapi/design-system';\nimport { useDispatch } from 'react-redux';\nimport { styled } from 'styled-components';\n\nimport { isAllowedContentTypesForRelations } from '../../../../utils';\nimport { useDataManager } from '../../../DataManager/useDataManager';\nimport { actions } from '../../../FormModal/reducer';\n\nimport type { Internal, Schema } from '@strapi/types';\ninterface RelationTargetPickerProps {\n oneThatIsCreatingARelationWithAnother: string;\n target: Internal.UID.ContentType;\n}\n\ntype SelectOpts = {\n uid: string;\n plugin?: string;\n title: string;\n restrictRelationsTo: Schema.Attribute.RelationKind.Any[] | null;\n};\n\nexport const RelationTargetPicker = ({\n oneThatIsCreatingARelationWithAnother,\n target,\n}: RelationTargetPickerProps) => {\n const { contentTypes, sortedContentTypesList } = useDataManager();\n const dispatch = useDispatch();\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false }\n const allowedContentTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n const type = contentTypes[target];\n\n if (!type) {\n return null;\n }\n\n const handleSelect =\n ({ uid, plugin, title, restrictRelationsTo }: SelectOpts) =>\n () => {\n const selectedContentTypeFriendlyName = plugin ? `${plugin}_${title}` : title;\n\n dispatch(\n actions.onChangeRelationTarget({\n target: {\n value: uid,\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations: restrictRelationsTo,\n },\n })\n );\n };\n\n /**\n * TODO: This should be a Select but the design doesn't match the\n * styles of the select component and there isn't the ability to\n * change it correctly.\n */\n return (\n <Menu.Root>\n <MenuTrigger>{`${type.info.displayName} ${type.plugin ? `(from: ${type.plugin})` : ''}`}</MenuTrigger>\n <Menu.Content zIndex=\"popover\">\n {allowedContentTypesForRelation.map(({ uid, title, restrictRelationsTo, plugin }) => (\n <Menu.Item key={uid} onSelect={handleSelect({ uid, plugin, title, restrictRelationsTo })}>\n {title} \n {plugin && <>(from: {plugin})</>}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nconst MenuTrigger = styled(Menu.Trigger)`\n max-width: 16.8rem;\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n"],"names":["RelationTargetPicker","oneThatIsCreatingARelationWithAnother","target","contentTypes","sortedContentTypesList","useDataManager","dispatch","useDispatch","allowedContentTypesForRelation","filter","isAllowedContentTypesForRelations","type","handleSelect","uid","plugin","title","restrictRelationsTo","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","value","targetContentTypeAllowedRelations","_jsxs","Menu","Root","_jsx","MenuTrigger","info","displayName","Content","zIndex","map","Item","onSelect","_Fragment","styled","Trigger"],"mappings":";;;;;;;;MAqBaA,oBAAAA,GAAuB,CAAC,EACnCC,qCAAqC,EACrCC,MAAM,EACoB,GAAA;AAC1B,IAAA,MAAM,EAAEC,YAAY,EAAEC,sBAAsB,EAAE,GAAGC,cAAAA,EAAAA;AACjD,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;;IAEjB,MAAMC,8BAAAA,GAAiCJ,sBAAAA,CAAuBK,MAAM,CAClEC,iCAAAA,CAAAA;IAGF,MAAMC,IAAAA,GAAOR,YAAY,CAACD,MAAAA,CAAO;AAEjC,IAAA,IAAI,CAACS,IAAAA,EAAM;QACT,OAAO,IAAA;AACT,IAAA;IAEA,MAAMC,YAAAA,GACJ,CAAC,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAEC,mBAAmB,EAAc,GACxD,IAAA;AACE,YAAA,MAAMC,kCAAkCH,MAAAA,GAAS,CAAA,EAAGA,OAAO,CAAC,EAAEC,OAAO,GAAGA,KAAAA;YAExET,QAAAA,CACEY,OAAAA,CAAQC,sBAAsB,CAAC;gBAC7BjB,MAAAA,EAAQ;oBACNkB,KAAAA,EAAOP,GAAAA;AACPZ,oBAAAA,qCAAAA;AACAgB,oBAAAA,+BAAAA;oBACAI,iCAAAA,EAAmCL;AACrC;AACF,aAAA,CAAA,CAAA;AAEJ,QAAA,CAAA;AAEF;;;;MAKA,qBACEM,IAAA,CAACC,IAAAA,CAAKC,IAAI,EAAA;;0BACRC,GAAA,CAACC,WAAAA,EAAAA;AAAa,gBAAA,QAAA,EAAA,CAAA,EAAGf,KAAKgB,IAAI,CAACC,WAAW,CAAC,CAAC,EAAEjB,IAAAA,CAAKG,MAAM,GAAG,CAAC,OAAO,EAAEH,IAAAA,CAAKG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAA,CAAA;;AACnF,0BAAAW,GAAA,CAACF,KAAKM,OAAO,EAAA;gBAACC,MAAAA,EAAO,SAAA;AAClBtB,gBAAAA,QAAAA,EAAAA,8BAAAA,CAA+BuB,GAAG,CAAC,CAAC,EAAElB,GAAG,EAAEE,KAAK,EAAEC,mBAAmB,EAAEF,MAAM,EAAE,iBAC9EQ,IAAA,CAACC,KAAKS,IAAI,EAAA;AAAWC,wBAAAA,QAAAA,EAAUrB,YAAAA,CAAa;AAAEC,4BAAAA,GAAAA;AAAKC,4BAAAA,MAAAA;AAAQC,4BAAAA,KAAAA;AAAOC,4BAAAA;AAAoB,yBAAA,CAAA;;AACnFD,4BAAAA,KAAAA;AAAM,4BAAA,GAAA;4BACND,MAAAA,kBAAUQ,IAAA,CAAAY,QAAA,EAAA;;AAAE,oCAAA,SAAA;AAAQpB,oCAAAA,MAAAA;AAAO,oCAAA;;;;AAFdD,qBAAAA,EAAAA,GAAAA,CAAAA;;;;AAQ1B;AAEA,MAAMa,WAAAA,GAAcS,MAAAA,CAAOZ,IAAAA,CAAKa,OAAO,CAAC;;;;;;;AAOxC,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Components.js","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/Components.tsx"],"sourcesContent":["import { Box, BoxComponent, Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst Wrapper = styled<BoxComponent>(Box)`\n position: relative;\n width: 100%;\n &::before {\n content: '';\n position: absolute;\n top: calc(50% - 0px);\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.primary600};\n z-index: 0;\n }\n`;\n\nconst IconWrapper = styled<BoxComponent<'button'>>(Box)<{ $isSelected: boolean }>`\n background: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary100' : 'neutral0']};\n border: 1px solid\n ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral200']};\n border-radius: ${({ theme }) => theme.borderRadius};\n z-index: 1;\n flex: 0 0 2.4rem;\n svg {\n width: 2.4rem;\n height: 2.4rem;\n max-width: unset;\n path {\n fill: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral500']};\n }\n }\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n background: ${({ theme }) => theme.colors.neutral150};\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral300};\n }\n }\n }\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst InfosWrapper = styled<FlexComponent>(Flex)`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nexport { IconWrapper, InfosWrapper, Wrapper };\n"],"names":["Wrapper","styled","Box","theme","colors","primary600","IconWrapper","$isSelected","borderRadius","neutral150","neutral300","InfosWrapper","Flex"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"Components.js","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/Components.tsx"],"sourcesContent":["import { Box, BoxComponent, Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst Wrapper = styled<BoxComponent>(Box)`\n position: relative;\n width: 100%;\n &::before {\n content: '';\n position: absolute;\n top: calc(50% - 0px);\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.primary600};\n z-index: 0;\n }\n`;\n\nconst IconWrapper = styled<BoxComponent<'button'>>(Box)<{ $isSelected: boolean }>`\n background: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary100' : 'neutral0']};\n border: 1px solid\n ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral200']};\n border-radius: ${({ theme }) => theme.borderRadius};\n z-index: 1;\n flex: 0 0 2.4rem;\n svg {\n width: 2.4rem;\n height: 2.4rem;\n max-width: unset;\n path {\n fill: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral500']};\n }\n }\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n background: ${({ theme }) => theme.colors.neutral150};\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral300};\n }\n }\n }\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst InfosWrapper = styled<FlexComponent>(Flex)`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nexport { IconWrapper, InfosWrapper, Wrapper };\n"],"names":["Wrapper","styled","Box","theme","colors","primary600","IconWrapper","$isSelected","borderRadius","neutral150","neutral300","InfosWrapper","Flex"],"mappings":";;;;;AAGA,MAAMA,OAAAA,GAAUC,uBAAAA,CAAqBC,gBAAAA,CAAI;;;;;;;;;sBASnB,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACC,UAAU,CAAC;;;AAG/D;AAEA,MAAMC,WAAAA,GAAcL,uBAAAA,CAA+BC,gBAAAA,CAA8B;AACnE,cAAA,EAAE,CAAC,EAAEC,KAAK,EAAEI,WAAW,EAAE,GAAKJ,KAAAA,CAAMC,MAAM,CAACG,WAAAA,GAAc,YAAA,GAAe,WAAW,CAAC;;AAE9F,IAAA,EAAE,CAAC,EAAEJ,KAAK,EAAEI,WAAW,EAAE,GAAKJ,KAAAA,CAAMC,MAAM,CAACG,WAAAA,GAAc,YAAA,GAAe,aAAa,CAAC;AACzE,iBAAA,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAAA,CAAMK,YAAY,CAAC;;;;;;;;AAQzC,YAAA,EAAE,CAAC,EAAEL,KAAK,EAAEI,WAAW,EAAE,GAAKJ,KAAAA,CAAMC,MAAM,CAACG,WAAAA,GAAc,YAAA,GAAe,aAAa,CAAC;;;;;;gBAMlF,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACK,UAAU,CAAC;;;;cAI3C,EAAE,CAAC,EAAEN,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACM,UAAU,CAAC;;;;;;;AAOvD;AAEA,MAAMC,YAAAA,GAAeV,uBAAAA,CAAsBW,iBAAAA,CAAK;;;;;AAKhD;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Components.mjs","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/Components.tsx"],"sourcesContent":["import { Box, BoxComponent, Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst Wrapper = styled<BoxComponent>(Box)`\n position: relative;\n width: 100%;\n &::before {\n content: '';\n position: absolute;\n top: calc(50% - 0px);\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.primary600};\n z-index: 0;\n }\n`;\n\nconst IconWrapper = styled<BoxComponent<'button'>>(Box)<{ $isSelected: boolean }>`\n background: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary100' : 'neutral0']};\n border: 1px solid\n ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral200']};\n border-radius: ${({ theme }) => theme.borderRadius};\n z-index: 1;\n flex: 0 0 2.4rem;\n svg {\n width: 2.4rem;\n height: 2.4rem;\n max-width: unset;\n path {\n fill: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral500']};\n }\n }\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n background: ${({ theme }) => theme.colors.neutral150};\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral300};\n }\n }\n }\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst InfosWrapper = styled<FlexComponent>(Flex)`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nexport { IconWrapper, InfosWrapper, Wrapper };\n"],"names":["Wrapper","styled","Box","theme","colors","primary600","IconWrapper","$isSelected","borderRadius","neutral150","neutral300","InfosWrapper","Flex"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Components.mjs","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/Components.tsx"],"sourcesContent":["import { Box, BoxComponent, Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst Wrapper = styled<BoxComponent>(Box)`\n position: relative;\n width: 100%;\n &::before {\n content: '';\n position: absolute;\n top: calc(50% - 0px);\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.primary600};\n z-index: 0;\n }\n`;\n\nconst IconWrapper = styled<BoxComponent<'button'>>(Box)<{ $isSelected: boolean }>`\n background: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary100' : 'neutral0']};\n border: 1px solid\n ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral200']};\n border-radius: ${({ theme }) => theme.borderRadius};\n z-index: 1;\n flex: 0 0 2.4rem;\n svg {\n width: 2.4rem;\n height: 2.4rem;\n max-width: unset;\n path {\n fill: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral500']};\n }\n }\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n background: ${({ theme }) => theme.colors.neutral150};\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral300};\n }\n }\n }\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst InfosWrapper = styled<FlexComponent>(Flex)`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nexport { IconWrapper, InfosWrapper, Wrapper };\n"],"names":["Wrapper","styled","Box","theme","colors","primary600","IconWrapper","$isSelected","borderRadius","neutral150","neutral300","InfosWrapper","Flex"],"mappings":";;;AAGA,MAAMA,OAAAA,GAAUC,MAAAA,CAAqBC,GAAAA,CAAI;;;;;;;;;sBASnB,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACC,UAAU,CAAC;;;AAG/D;AAEA,MAAMC,WAAAA,GAAcL,MAAAA,CAA+BC,GAAAA,CAA8B;AACnE,cAAA,EAAE,CAAC,EAAEC,KAAK,EAAEI,WAAW,EAAE,GAAKJ,KAAAA,CAAMC,MAAM,CAACG,WAAAA,GAAc,YAAA,GAAe,WAAW,CAAC;;AAE9F,IAAA,EAAE,CAAC,EAAEJ,KAAK,EAAEI,WAAW,EAAE,GAAKJ,KAAAA,CAAMC,MAAM,CAACG,WAAAA,GAAc,YAAA,GAAe,aAAa,CAAC;AACzE,iBAAA,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAAA,CAAMK,YAAY,CAAC;;;;;;;;AAQzC,YAAA,EAAE,CAAC,EAAEL,KAAK,EAAEI,WAAW,EAAE,GAAKJ,KAAAA,CAAMC,MAAM,CAACG,WAAAA,GAAc,YAAA,GAAe,aAAa,CAAC;;;;;;gBAMlF,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACK,UAAU,CAAC;;;;cAI3C,EAAE,CAAC,EAAEN,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACM,UAAU,CAAC;;;;;;;AAOvD;AAEA,MAAMC,YAAAA,GAAeV,MAAAA,CAAsBW,IAAAA,CAAK;;;;;AAKhD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationNaturePicker.js","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx"],"sourcesContent":["import { Flex, KeyboardNavigable, Typography } from '@strapi/design-system';\nimport {\n ManyToMany,\n ManyToOne,\n ManyWays as ManyWay,\n OneToMany,\n OneToOne,\n OneWay,\n} from '@strapi/icons';\nimport get from 'lodash/get';\nimport truncate from 'lodash/truncate';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { useDataManager } from '../../DataManager/useDataManager';\nimport { actions } from '../../FormModal/reducer';\n\nimport { IconWrapper, InfosWrapper, Wrapper } from './Components';\n\nconst relations = {\n oneWay: OneWay,\n oneToOne: OneToOne,\n oneToMany: OneToMany,\n manyToOne: ManyToOne,\n manyToMany: ManyToMany,\n manyWay: ManyWay,\n};\n\ntype RelationType = keyof typeof relations;\n\ninterface RelationNaturePickerProps {\n naturePickerType: string;\n oneThatIsCreatingARelationWithAnother: string;\n relationType: string;\n target: string;\n targetUid: string;\n}\n\nconst ctRelations = ['oneWay', 'oneToOne', 'oneToMany', 'manyToOne', 'manyToMany', 'manyWay'];\nconst componentRelations = ['oneWay', 'manyWay'];\n\nexport const RelationNaturePicker = ({\n naturePickerType,\n oneThatIsCreatingARelationWithAnother,\n relationType,\n target,\n targetUid,\n}: RelationNaturePickerProps) => {\n const dispatch = useDispatch();\n const { formatMessage } = useIntl();\n\n const { contentTypes } = useDataManager();\n\n const dataType =\n naturePickerType === 'component' ? 'component' : get(contentTypes, [targetUid, 'kind'], '');\n\n const relationsType = (\n dataType === 'collectionType' ? ctRelations : componentRelations\n ) as RelationType[];\n\n const areDisplayedNamesInverted = relationType === 'manyToOne';\n const targetLabel = get(contentTypes, [target, 'info', 'displayName'], 'unknown');\n const leftTarget = areDisplayedNamesInverted\n ? targetLabel\n : oneThatIsCreatingARelationWithAnother;\n const rightTarget = areDisplayedNamesInverted\n ? oneThatIsCreatingARelationWithAnother\n : targetLabel;\n const leftDisplayedValue = pluralize(leftTarget, relationType === 'manyToMany' ? 2 : 1);\n const restrictedRelations = get(contentTypes, [target, 'restrictRelationsTo'], null);\n\n const rightDisplayedValue = pluralize(\n rightTarget,\n ['manyToMany', 'oneToMany', 'manyToOne', 'manyWay'].includes(relationType) ? 2 : 1\n );\n\n if (!relationType) {\n return null;\n }\n\n return (\n <Flex style={{ flex: 1 }}>\n <Wrapper>\n <Flex paddingLeft={9} paddingRight={9} paddingTop={1} justifyContent=\"center\">\n <KeyboardNavigable tagName=\"button\">\n <Flex gap={3}>\n {relationsType.map((relation) => {\n const Asset = relations[relation];\n const isEnabled =\n restrictedRelations === null || restrictedRelations.includes(relation);\n\n return (\n <IconWrapper\n tag=\"button\"\n $isSelected={relationType === relation}\n disabled={!isEnabled}\n key={relation}\n onClick={() => {\n if (isEnabled) {\n dispatch(\n actions.onChangeRelationType({\n target: {\n oneThatIsCreatingARelationWithAnother,\n value: relation,\n },\n })\n );\n }\n }}\n padding={2}\n type=\"button\"\n aria-label={formatMessage({ id: getTrad(`relation.${relation}`) })}\n aria-pressed={relationType === relation}\n data-relation-type={relation}\n >\n <Asset key={relation} aria-hidden=\"true\" />\n </IconWrapper>\n );\n })}\n </Flex>\n </KeyboardNavigable>\n </Flex>\n </Wrapper>\n <InfosWrapper justifyContent=\"center\">\n <Typography>{truncate(leftDisplayedValue, { length: 24 })} </Typography>\n <Typography textColor=\"primary600\">\n {formatMessage({ id: getTrad(`relation.${relationType}`) })} \n </Typography>\n <Typography>{truncate(rightDisplayedValue, { length: 24 })}</Typography>\n </InfosWrapper>\n </Flex>\n );\n};\n"],"names":["relations","oneWay","OneWay","oneToOne","OneToOne","oneToMany","OneToMany","manyToOne","ManyToOne","manyToMany","ManyToMany","manyWay","ManyWay","ctRelations","componentRelations","RelationNaturePicker","naturePickerType","oneThatIsCreatingARelationWithAnother","relationType","target","targetUid","dispatch","useDispatch","formatMessage","useIntl","contentTypes","useDataManager","dataType","get","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","pluralize","restrictedRelations","rightDisplayedValue","includes","_jsxs","Flex","style","flex","_jsx","Wrapper","paddingLeft","paddingRight","paddingTop","justifyContent","KeyboardNavigable","tagName","gap","map","relation","Asset","isEnabled","IconWrapper","tag","$isSelected","disabled","onClick","actions","onChangeRelationType","value","padding","type","aria-label","id","getTrad","aria-pressed","data-relation-type","aria-hidden","InfosWrapper","Typography","truncate","length","textColor"],"mappings":";;;;;;;;;;;;;;;AAqBA,MAAMA,
|
|
1
|
+
{"version":3,"file":"RelationNaturePicker.js","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx"],"sourcesContent":["import { Flex, KeyboardNavigable, Typography } from '@strapi/design-system';\nimport {\n ManyToMany,\n ManyToOne,\n ManyWays as ManyWay,\n OneToMany,\n OneToOne,\n OneWay,\n} from '@strapi/icons';\nimport get from 'lodash/get';\nimport truncate from 'lodash/truncate';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { useDataManager } from '../../DataManager/useDataManager';\nimport { actions } from '../../FormModal/reducer';\n\nimport { IconWrapper, InfosWrapper, Wrapper } from './Components';\n\nconst relations = {\n oneWay: OneWay,\n oneToOne: OneToOne,\n oneToMany: OneToMany,\n manyToOne: ManyToOne,\n manyToMany: ManyToMany,\n manyWay: ManyWay,\n};\n\ntype RelationType = keyof typeof relations;\n\ninterface RelationNaturePickerProps {\n naturePickerType: string;\n oneThatIsCreatingARelationWithAnother: string;\n relationType: string;\n target: string;\n targetUid: string;\n}\n\nconst ctRelations = ['oneWay', 'oneToOne', 'oneToMany', 'manyToOne', 'manyToMany', 'manyWay'];\nconst componentRelations = ['oneWay', 'manyWay'];\n\nexport const RelationNaturePicker = ({\n naturePickerType,\n oneThatIsCreatingARelationWithAnother,\n relationType,\n target,\n targetUid,\n}: RelationNaturePickerProps) => {\n const dispatch = useDispatch();\n const { formatMessage } = useIntl();\n\n const { contentTypes } = useDataManager();\n\n const dataType =\n naturePickerType === 'component' ? 'component' : get(contentTypes, [targetUid, 'kind'], '');\n\n const relationsType = (\n dataType === 'collectionType' ? ctRelations : componentRelations\n ) as RelationType[];\n\n const areDisplayedNamesInverted = relationType === 'manyToOne';\n const targetLabel = get(contentTypes, [target, 'info', 'displayName'], 'unknown');\n const leftTarget = areDisplayedNamesInverted\n ? targetLabel\n : oneThatIsCreatingARelationWithAnother;\n const rightTarget = areDisplayedNamesInverted\n ? oneThatIsCreatingARelationWithAnother\n : targetLabel;\n const leftDisplayedValue = pluralize(leftTarget, relationType === 'manyToMany' ? 2 : 1);\n const restrictedRelations = get(contentTypes, [target, 'restrictRelationsTo'], null);\n\n const rightDisplayedValue = pluralize(\n rightTarget,\n ['manyToMany', 'oneToMany', 'manyToOne', 'manyWay'].includes(relationType) ? 2 : 1\n );\n\n if (!relationType) {\n return null;\n }\n\n return (\n <Flex style={{ flex: 1 }}>\n <Wrapper>\n <Flex paddingLeft={9} paddingRight={9} paddingTop={1} justifyContent=\"center\">\n <KeyboardNavigable tagName=\"button\">\n <Flex gap={3}>\n {relationsType.map((relation) => {\n const Asset = relations[relation];\n const isEnabled =\n restrictedRelations === null || restrictedRelations.includes(relation);\n\n return (\n <IconWrapper\n tag=\"button\"\n $isSelected={relationType === relation}\n disabled={!isEnabled}\n key={relation}\n onClick={() => {\n if (isEnabled) {\n dispatch(\n actions.onChangeRelationType({\n target: {\n oneThatIsCreatingARelationWithAnother,\n value: relation,\n },\n })\n );\n }\n }}\n padding={2}\n type=\"button\"\n aria-label={formatMessage({ id: getTrad(`relation.${relation}`) })}\n aria-pressed={relationType === relation}\n data-relation-type={relation}\n >\n <Asset key={relation} aria-hidden=\"true\" />\n </IconWrapper>\n );\n })}\n </Flex>\n </KeyboardNavigable>\n </Flex>\n </Wrapper>\n <InfosWrapper justifyContent=\"center\">\n <Typography>{truncate(leftDisplayedValue, { length: 24 })} </Typography>\n <Typography textColor=\"primary600\">\n {formatMessage({ id: getTrad(`relation.${relationType}`) })} \n </Typography>\n <Typography>{truncate(rightDisplayedValue, { length: 24 })}</Typography>\n </InfosWrapper>\n </Flex>\n );\n};\n"],"names":["relations","oneWay","OneWay","oneToOne","OneToOne","oneToMany","OneToMany","manyToOne","ManyToOne","manyToMany","ManyToMany","manyWay","ManyWay","ctRelations","componentRelations","RelationNaturePicker","naturePickerType","oneThatIsCreatingARelationWithAnother","relationType","target","targetUid","dispatch","useDispatch","formatMessage","useIntl","contentTypes","useDataManager","dataType","get","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","pluralize","restrictedRelations","rightDisplayedValue","includes","_jsxs","Flex","style","flex","_jsx","Wrapper","paddingLeft","paddingRight","paddingTop","justifyContent","KeyboardNavigable","tagName","gap","map","relation","Asset","isEnabled","IconWrapper","tag","$isSelected","disabled","onClick","actions","onChangeRelationType","value","padding","type","aria-label","id","getTrad","aria-pressed","data-relation-type","aria-hidden","InfosWrapper","Typography","truncate","length","textColor"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { Flex, KeyboardNavigable, Typography } from '@strapi/design-system';
|
|
3
|
-
import {
|
|
3
|
+
import { ManyWays, ManyToMany, ManyToOne, OneToMany, OneToOne, OneWay } from '@strapi/icons';
|
|
4
4
|
import get from 'lodash/get';
|
|
5
5
|
import truncate from 'lodash/truncate';
|
|
6
6
|
import pluralize from 'pluralize';
|