@payloadcms/ui 3.29.0-internal.2984e42 → 3.29.0-internal.37e46b5
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/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +8 -5
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +127 -143
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +5 -5
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +3 -3
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +4 -2
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/Collapsible/provider.d.ts.map +1 -1
- package/dist/elements/Collapsible/provider.js +5 -3
- package/dist/elements/Collapsible/provider.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js +1 -1
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.scss +3 -2
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +1 -1
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +1 -2
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.js +3 -3
- package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +0 -4
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/elements/DocumentFields/index.js +5 -1
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/Drawer/index.d.ts.map +1 -1
- package/dist/elements/Drawer/index.js +5 -3
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts +1 -2
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +120 -108
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +5 -6
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.d.ts +2 -12
- package/dist/elements/FieldSelect/index.d.ts.map +1 -1
- package/dist/elements/FieldSelect/index.js +48 -31
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -2
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts +24 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +86 -115
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +9 -5
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +2 -4
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.js +3 -3
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListDrawer/types.d.ts +2 -3
- package/dist/elements/ListDrawer/types.d.ts.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +3 -3
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Nav/context.d.ts.map +1 -1
- package/dist/elements/Nav/context.js +4 -2
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/Pill/index.d.ts +1 -1
- package/dist/elements/Pill/index.d.ts.map +1 -1
- package/dist/elements/Pill/index.js +0 -2
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Pill/index.scss +6 -29
- package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -1
- package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.js +0 -1
- package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +1 -1
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +1 -2
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +1 -4
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +3 -3
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +4 -3
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/StepNav/context.d.ts.map +1 -1
- package/dist/elements/StepNav/context.js +5 -3
- package/dist/elements/StepNav/context.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js +1 -24
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +25 -32
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js +5 -3
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.js +6 -4
- package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildColumnState.d.ts +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildColumnState.js +2 -9
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.js +1 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
- package/dist/elements/TableColumns/context.d.ts.map +1 -0
- package/dist/elements/TableColumns/context.js +4 -0
- package/dist/elements/TableColumns/context.js.map +1 -0
- package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
- package/dist/elements/TableColumns/filterFields.js.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
- package/dist/elements/TableColumns/index.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/index.js +3 -5
- package/dist/elements/TableColumns/index.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/types.d.ts +1 -1
- package/dist/elements/TableColumns/types.d.ts.map +1 -0
- package/dist/elements/TableColumns/types.js.map +1 -0
- package/dist/elements/Thumbnail/index.js +23 -25
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +2 -2
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +52 -8
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/index.scss +1 -0
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +15 -18
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +8 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.js +45 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.js.map +1 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +4 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.js +36 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -0
- package/dist/exports/client/{DatePicker-DMHV2M2L.js → CodeEditor-TQ5ADFPC.js} +2 -2
- package/dist/exports/client/{CodeEditor-J4IKAVAK.js → DatePicker-HHQ6TPOW.js} +2 -2
- package/dist/exports/client/{chunk-3AA2TJQ5.js → chunk-IMEQ6NKQ.js} +2 -2
- package/dist/exports/client/{chunk-3AA2TJQ5.js.map → chunk-IMEQ6NKQ.js.map} +3 -3
- package/dist/exports/client/{chunk-PKQOCWZD.js → chunk-LMYT7O7U.js} +2 -2
- package/dist/exports/client/{chunk-PKQOCWZD.js.map → chunk-LMYT7O7U.js.map} +3 -3
- package/dist/exports/client/index.d.ts +3 -7
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +23 -23
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +3 -8
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +3 -4
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +20 -26
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +4 -5
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/index.d.ts +1 -1
- package/dist/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/fields/Checkbox/index.js +3 -4
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.d.ts.map +1 -1
- package/dist/fields/Code/index.js +3 -4
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +2 -3
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.js +11 -13
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/DateTime/index.d.ts.map +1 -1
- package/dist/fields/DateTime/index.js +4 -5
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.d.ts.map +1 -1
- package/dist/fields/Email/index.js +2 -3
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Group/index.scss +6 -12
- package/dist/fields/Group/provider.d.ts.map +1 -1
- package/dist/fields/Group/provider.js +5 -3
- package/dist/fields/Group/provider.js.map +1 -1
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +4 -5
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Number/index.d.ts.map +1 -1
- package/dist/fields/Number/index.js +5 -6
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +4 -2
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Point/index.d.ts.map +1 -1
- package/dist/fields/Point/index.js +3 -4
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.d.ts.map +1 -1
- package/dist/fields/RadioGroup/index.js +3 -4
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +4 -5
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Row/provider.d.ts.map +1 -1
- package/dist/fields/Row/provider.js +5 -3
- package/dist/fields/Row/provider.js.map +1 -1
- package/dist/fields/Select/index.d.ts.map +1 -1
- package/dist/fields/Select/index.js +3 -4
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.d.ts +0 -1
- package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +25 -29
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.scss +0 -4
- package/dist/fields/Tabs/index.d.ts +1 -1
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +194 -285
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Tabs/index.scss +0 -8
- package/dist/fields/Tabs/provider.d.ts.map +1 -1
- package/dist/fields/Tabs/provider.js +5 -3
- package/dist/fields/Tabs/provider.js.map +1 -1
- package/dist/fields/Text/index.d.ts.map +1 -1
- package/dist/fields/Text/index.js +3 -4
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Textarea/index.d.ts.map +1 -1
- package/dist/fields/Textarea/index.js +1 -2
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +1 -2
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/forms/Form/context.d.ts.map +1 -1
- package/dist/forms/Form/context.js +25 -9
- package/dist/forms/Form/context.js.map +1 -1
- package/dist/forms/Form/fieldReducer.js +1 -1
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +8 -8
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
- package/dist/forms/RowLabel/Context/index.js +2 -2
- package/dist/forms/RowLabel/Context/index.js.map +1 -1
- package/dist/forms/RowLabel/index.d.ts.map +1 -1
- package/dist/forms/RowLabel/index.js +2 -2
- package/dist/forms/RowLabel/index.js.map +1 -1
- package/dist/forms/RowLabel/types.d.ts +1 -1
- package/dist/forms/RowLabel/types.d.ts.map +1 -1
- package/dist/forms/RowLabel/types.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -3
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -45
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +2 -4
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js +0 -4
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +2 -4
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js +0 -4
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +2 -4
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +2 -41
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -4
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +0 -6
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -4
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +0 -16
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +67 -70
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/useField/types.d.ts +0 -1
- package/dist/forms/useField/types.d.ts.map +1 -1
- package/dist/forms/useField/types.js.map +1 -1
- package/dist/hooks/useQueues.js +3 -3
- package/dist/hooks/useQueues.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts +0 -1
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +0 -2
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Dots/index.d.ts +0 -2
- package/dist/icons/Dots/index.d.ts.map +1 -1
- package/dist/icons/Dots/index.js +2 -5
- package/dist/icons/Dots/index.js.map +1 -1
- package/dist/icons/Dots/index.scss +0 -14
- package/dist/providers/Actions/index.d.ts.map +1 -1
- package/dist/providers/Actions/index.js +5 -3
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +5 -3
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/ClientFunction/index.d.ts.map +1 -1
- package/dist/providers/ClientFunction/index.js +4 -4
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/Config/index.d.ts.map +1 -1
- package/dist/providers/Config/index.js +5 -3
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentEvents/index.d.ts.map +1 -1
- package/dist/providers/DocumentEvents/index.js +5 -3
- package/dist/providers/DocumentEvents/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +5 -3
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +0 -1
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/EditDepth/index.d.ts.map +1 -1
- package/dist/providers/EditDepth/index.js +5 -3
- package/dist/providers/EditDepth/index.js.map +1 -1
- package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
- package/dist/providers/EntityVisibility/index.js +5 -3
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/ListQuery/context.d.ts +0 -2
- package/dist/providers/ListQuery/context.d.ts.map +1 -1
- package/dist/providers/ListQuery/context.js +2 -4
- package/dist/providers/ListQuery/context.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +14 -30
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +3 -6
- package/dist/providers/ListQuery/types.d.ts.map +1 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +9 -5
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Operation/index.d.ts.map +1 -1
- package/dist/providers/Operation/index.js +5 -3
- package/dist/providers/Operation/index.js.map +1 -1
- package/dist/providers/Params/index.d.ts.map +1 -1
- package/dist/providers/Params/index.js +5 -3
- package/dist/providers/Params/index.js.map +1 -1
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js +5 -3
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/RouteCache/index.d.ts.map +1 -1
- package/dist/providers/RouteCache/index.js +5 -3
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/RouteTransition/index.d.ts.map +1 -1
- package/dist/providers/RouteTransition/index.js +4 -2
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/providers/SearchParams/index.d.ts.map +1 -1
- package/dist/providers/SearchParams/index.js +5 -3
- package/dist/providers/SearchParams/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +5 -3
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +0 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +2 -2
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/Theme/index.d.ts.map +1 -1
- package/dist/providers/Theme/index.js +5 -3
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/Translation/index.d.ts.map +1 -1
- package/dist/providers/Translation/index.js +5 -3
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/providers/UploadControls/index.d.ts +12 -0
- package/dist/providers/UploadControls/index.d.ts.map +1 -0
- package/dist/providers/UploadControls/index.js +41 -0
- package/dist/providers/UploadControls/index.js.map +1 -0
- package/dist/providers/UploadEdits/index.d.ts.map +1 -1
- package/dist/providers/UploadEdits/index.js +4 -2
- package/dist/providers/UploadEdits/index.js.map +1 -1
- package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
- package/dist/providers/UploadHandlers/index.js +3 -3
- package/dist/providers/UploadHandlers/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +1 -5
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/mergeListSearchAndWhere.d.ts +10 -0
- package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -0
- package/dist/utilities/mergeListSearchAndWhere.js +47 -0
- package/dist/utilities/mergeListSearchAndWhere.js.map +1 -0
- package/dist/utilities/renderTable.js +4 -4
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/upsertPreferences.d.ts +2 -7
- package/dist/utilities/upsertPreferences.d.ts.map +1 -1
- package/dist/utilities/upsertPreferences.js +5 -11
- package/dist/utilities/upsertPreferences.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +10 -8
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +1 -7
- package/dist/views/List/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts +0 -8
- package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts.map +0 -1
- package/dist/elements/ListControls/ActiveQueryPreset/index.js +0 -102
- package/dist/elements/ListControls/ActiveQueryPreset/index.js.map +0 -1
- package/dist/elements/ListControls/ActiveQueryPreset/index.scss +0 -21
- package/dist/elements/ListControls/types.d.ts +0 -28
- package/dist/elements/ListControls/types.d.ts.map +0 -1
- package/dist/elements/ListControls/types.js.map +0 -1
- package/dist/elements/ListControls/useQueryPresets.d.ts +0 -17
- package/dist/elements/ListControls/useQueryPresets.d.ts.map +0 -1
- package/dist/elements/ListControls/useQueryPresets.js +0 -259
- package/dist/elements/ListControls/useQueryPresets.js.map +0 -1
- package/dist/elements/Popup/PopupDivider/index.d.ts +0 -4
- package/dist/elements/Popup/PopupDivider/index.d.ts.map +0 -1
- package/dist/elements/Popup/PopupDivider/index.js +0 -10
- package/dist/elements/Popup/PopupDivider/index.js.map +0 -1
- package/dist/elements/Popup/PopupDivider/index.scss +0 -10
- package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts +0 -4
- package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/cells/AccessCell/index.js +0 -25
- package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +0 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +0 -4
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +0 -11
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +0 -1
- package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts +0 -4
- package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/cells/WhereCell/index.js +0 -29
- package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +0 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +0 -4
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +0 -64
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +0 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -28
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +0 -4
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js +0 -121
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +0 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
- package/dist/icons/People/index.d.ts +0 -6
- package/dist/icons/People/index.d.ts.map +0 -1
- package/dist/icons/People/index.js +0 -18
- package/dist/icons/People/index.js.map +0 -1
- package/dist/icons/People/index.scss +0 -11
- package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +0 -1
- package/dist/providers/TableColumns/buildColumnState.d.ts.map +0 -1
- package/dist/providers/TableColumns/buildColumnState.js.map +0 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +0 -1
- package/dist/providers/TableColumns/context.d.ts.map +0 -1
- package/dist/providers/TableColumns/context.js +0 -4
- package/dist/providers/TableColumns/context.js.map +0 -1
- package/dist/providers/TableColumns/filterFields.d.ts.map +0 -1
- package/dist/providers/TableColumns/filterFields.js.map +0 -1
- package/dist/providers/TableColumns/getInitialColumns.d.ts.map +0 -1
- package/dist/providers/TableColumns/getInitialColumns.js.map +0 -1
- package/dist/providers/TableColumns/index.d.ts.map +0 -1
- package/dist/providers/TableColumns/index.js.map +0 -1
- package/dist/providers/TableColumns/types.d.ts.map +0 -1
- package/dist/providers/TableColumns/types.js +0 -2
- package/dist/providers/TableColumns/types.js.map +0 -1
- package/dist/utilities/getDisplayedFieldValue.d.ts +0 -13
- package/dist/utilities/getDisplayedFieldValue.d.ts.map +0 -1
- package/dist/utilities/getDisplayedFieldValue.js +0 -28
- package/dist/utilities/getDisplayedFieldValue.js.map +0 -1
- package/dist/utilities/hasOptionLabelJSXElement.d.ts +0 -3
- package/dist/utilities/hasOptionLabelJSXElement.d.ts.map +0 -1
- package/dist/utilities/hasOptionLabelJSXElement.js +0 -15
- package/dist/utilities/hasOptionLabelJSXElement.js.map +0 -1
- /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.scss +0 -0
- /package/dist/{providers → elements}/TableColumns/context.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/filterFields.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/filterFields.js +0 -0
- /package/dist/{providers → elements}/TableColumns/getInitialColumns.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/getInitialColumns.js +0 -0
- /package/dist/{providers → elements}/TableColumns/index.d.ts +0 -0
- /package/dist/elements/{ListControls → TableColumns}/types.js +0 -0
- /package/dist/exports/client/{CodeEditor-J4IKAVAK.js.map → CodeEditor-TQ5ADFPC.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-DMHV2M2L.js.map → DatePicker-HHQ6TPOW.js.map} +0 -0
|
@@ -8,7 +8,7 @@ const baseClass = 'thumbnail';
|
|
|
8
8
|
import { File } from '../../graphics/File/index.js';
|
|
9
9
|
import { ShimmerEffect } from '../ShimmerEffect/index.js';
|
|
10
10
|
export const Thumbnail = props => {
|
|
11
|
-
const $ = _c(
|
|
11
|
+
const $ = _c(17);
|
|
12
12
|
const {
|
|
13
13
|
className: t0,
|
|
14
14
|
doc: t1,
|
|
@@ -26,8 +26,7 @@ export const Thumbnail = props => {
|
|
|
26
26
|
t2 = $[1];
|
|
27
27
|
}
|
|
28
28
|
const {
|
|
29
|
-
filename
|
|
30
|
-
mimeType
|
|
29
|
+
filename
|
|
31
30
|
} = t2;
|
|
32
31
|
const [fileExists, setFileExists] = React.useState(undefined);
|
|
33
32
|
const t3 = `${baseClass}--size-${size || "medium"}`;
|
|
@@ -43,9 +42,9 @@ export const Thumbnail = props => {
|
|
|
43
42
|
const classNames = t4.join(" ");
|
|
44
43
|
let t5;
|
|
45
44
|
let t6;
|
|
46
|
-
if ($[5] !== fileSrc
|
|
45
|
+
if ($[5] !== fileSrc) {
|
|
47
46
|
t5 = () => {
|
|
48
|
-
if (!fileSrc
|
|
47
|
+
if (!fileSrc) {
|
|
49
48
|
setFileExists(false);
|
|
50
49
|
return;
|
|
51
50
|
}
|
|
@@ -59,35 +58,34 @@ export const Thumbnail = props => {
|
|
|
59
58
|
setFileExists(false);
|
|
60
59
|
};
|
|
61
60
|
};
|
|
62
|
-
t6 = [fileSrc
|
|
61
|
+
t6 = [fileSrc];
|
|
63
62
|
$[5] = fileSrc;
|
|
64
|
-
$[6] =
|
|
65
|
-
$[7] =
|
|
66
|
-
$[8] = t6;
|
|
63
|
+
$[6] = t5;
|
|
64
|
+
$[7] = t6;
|
|
67
65
|
} else {
|
|
68
|
-
t5 = $[
|
|
69
|
-
t6 = $[
|
|
66
|
+
t5 = $[6];
|
|
67
|
+
t6 = $[7];
|
|
70
68
|
}
|
|
71
69
|
React.useEffect(t5, t6);
|
|
72
|
-
let src =
|
|
70
|
+
let src = "";
|
|
73
71
|
if (fileSrc) {
|
|
74
72
|
const queryChar = fileSrc?.includes("?") ? "&" : "?";
|
|
75
73
|
src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc;
|
|
76
74
|
}
|
|
77
75
|
let t7;
|
|
78
|
-
if ($[
|
|
76
|
+
if ($[8] !== classNames || $[9] !== fileExists || $[10] !== filename || $[11] !== src) {
|
|
79
77
|
let t8;
|
|
80
|
-
if ($[
|
|
78
|
+
if ($[13] !== fileExists || $[14] !== filename || $[15] !== src) {
|
|
81
79
|
t8 = fileExists && _jsx("img", {
|
|
82
80
|
alt: filename,
|
|
83
81
|
src
|
|
84
82
|
});
|
|
85
|
-
$[
|
|
86
|
-
$[
|
|
87
|
-
$[
|
|
88
|
-
$[
|
|
83
|
+
$[13] = fileExists;
|
|
84
|
+
$[14] = filename;
|
|
85
|
+
$[15] = src;
|
|
86
|
+
$[16] = t8;
|
|
89
87
|
} else {
|
|
90
|
-
t8 = $[
|
|
88
|
+
t8 = $[16];
|
|
91
89
|
}
|
|
92
90
|
t7 = _jsxs("div", {
|
|
93
91
|
className: classNames,
|
|
@@ -95,13 +93,13 @@ export const Thumbnail = props => {
|
|
|
95
93
|
height: "100%"
|
|
96
94
|
}), t8, fileExists === false && _jsx(File, {})]
|
|
97
95
|
});
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
-
$[
|
|
101
|
-
$[
|
|
102
|
-
$[
|
|
96
|
+
$[8] = classNames;
|
|
97
|
+
$[9] = fileExists;
|
|
98
|
+
$[10] = filename;
|
|
99
|
+
$[11] = src;
|
|
100
|
+
$[12] = t7;
|
|
103
101
|
} else {
|
|
104
|
-
t7 = $[
|
|
102
|
+
t7 = $[12];
|
|
105
103
|
}
|
|
106
104
|
return t7;
|
|
107
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","baseClass","File","ShimmerEffect","Thumbnail","props","$","className","t0","doc","t1","fileSrc","imageCacheTag","size","undefined","t2","filename","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","baseClass","File","ShimmerEffect","Thumbnail","props","$","className","t0","doc","t1","fileSrc","imageCacheTag","size","undefined","t2","filename","fileExists","setFileExists","useState","t3","t4","classNames","join","t5","t6","img","Image","src","onload","onerror","useEffect","queryChar","includes","encodeURIComponent","t7","t8","_jsx","alt","_jsxs","children","height","ThumbnailComponent"],"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'thumbnail'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { File } from '../../graphics/File/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nexport type ThumbnailProps = {\n className?: string\n collectionSlug?: string\n doc?: Record<string, unknown>\n fileSrc?: string\n imageCacheTag?: string\n size?: 'expand' | 'large' | 'medium' | 'small'\n uploadConfig?: SanitizedCollectionConfig['upload']\n}\n\nexport const Thumbnail: React.FC<ThumbnailProps> = (props) => {\n const { className = '', doc: { filename } = {}, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: string = ''\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={filename as string} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n\ntype ThumbnailComponentProps = {\n readonly alt?: string\n readonly className?: string\n readonly filename: string\n readonly fileSrc: string\n readonly imageCacheTag?: string\n readonly size?: 'expand' | 'large' | 'medium' | 'small'\n}\nexport function ThumbnailComponent(props: ThumbnailComponentProps) {\n const { alt, className = '', filename, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: string = ''\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={alt || filename} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAIlB,SAASC,IAAI,QAAQ;AACrB,SAASC,aAAa,QAAQ;AAY9B,OAAO,MAAMC,SAAA,GAAsCC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACjD;IAAAQ,SAAA,EAAAC,EAAA;IAAAC,GAAA,EAAAC,EAAA;IAAAC,OAAA;IAAAC,aAAA;IAAAC;EAAA,IAAiFR,KAAA;EAAzE,MAAAE,SAAA,GAAAC,EAAc,KAAAM,SAAA,GAAF,EAAE,GAAdN,EAAc;EAAA,IAAAO,EAAA;EAAA,IAAAT,CAAA,QAAAI,EAAA;IAAOK,EAAA,GAAAL,EAAiB,KAAAI,SAAA,QAAjBJ,EAAiB;IAAAJ,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAjB;IAAAU;EAAA,IAAAD,EAAiB;EAC9C,OAAAE,UAAA,EAAAC,aAAA,IAAoClB,KAAA,CAAAmB,QAAA,CAAAL,SAAe;EAEpB,MAAAM,EAAA,MAAAnB,SAAA,UAAsBY,IAAA,IAAQ,UAAU;EAAA,IAAAQ,EAAA;EAAA,IAAAf,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAc,EAAA;IAApDC,EAAA,IAAApB,SAAA,EAAYmB,EAAwC,EAAEb,SAAA;IAAUD,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAc,EAAA;IAAAd,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAnF,MAAAgB,UAAA,GAAmBD,EAAgE,CAAAE,IAAA,CAAM;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAnB,CAAA,QAAAK,OAAA;IAEzEa,EAAA,GAAAA,CAAA;MAAA,KACTb,OAAA;QACHO,aAAA,MAAc;QAAA;MAAA;MAGhBA,aAAA,CAAAJ,SAAc;MAEd,MAAAY,GAAA,OAAAC,KAAA;MACAD,GAAA,CAAAE,GAAA,GAAUjB,OAAA;MACVe,GAAA,CAAAG,MAAA;QACEX,aAAA,KAAc;MAAA;MAEhBQ,GAAA,CAAAI,OAAA;QACEZ,aAAA,MAAc;MAAA;IAAA;IAEfO,EAAA,IAACd,OAAA;IAAQL,CAAA,MAAAK,OAAA;IAAAL,CAAA,MAAAkB,EAAA;IAAAlB,CAAA,MAAAmB,EAAA;EAAA;IAAAD,EAAA,GAAAlB,CAAA;IAAAmB,EAAA,GAAAnB,CAAA;EAAA;EAfZN,KAAA,CAAA+B,SAAA,CAAgBP,EAehB,EAAGC,EAAS;EAEZ,IAAAG,GAAA,GAAkB;EAAA,IAMdjB,OAAA;IACF,MAAAqB,SAAA,GAAkBrB,OAAA,EAAAsB,QAAA,CAAkB,OAAO,MAAM;IACjDL,GAAA,CAAAA,CAAA,CAAMhB,aAAA,GAAgB,GAAGD,OAAA,GAAUqB,SAAA,GAAYE,kBAAA,CAAmBtB,aAAA,GAAgB,GAAGD,OAAA;EAArF;EAAA,IAAAwB,EAAA;EAAA,IAAA7B,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAW,UAAA,IAAAX,CAAA,SAAAU,QAAA,IAAAV,CAAA,SAAAsB,GAAA;IAAA,IAAAQ,EAAA;IAAA,IAAA9B,CAAA,SAAAW,UAAA,IAAAX,CAAA,SAAAU,QAAA,IAAAV,CAAA,SAAAsB,GAAA;MAMGQ,EAAA,GAAAnB,UAAA,IAAcoB,IAAA,CAAC;QAAAC,GAAA,EAAStB,QAAA;QAAAY;MAAA,C;;;;;;;;IAF3BO,EAAA,GAAAI,KAAA,CAAC;MAAAhC,SAAA,EAAee,UAAA;MAAAkB,QAAA,GACbvB,UAAA,KAAAH,SAAe,IAAauB,IAAA,CAAAlC,aAAA;QAAAsC,MAAA,EAAsB;MAAA,C,GAClDL,E,EACAnB,UAAA,UAAe,IAASoB,IAAA,CAAAnC,IAAA,IAAC;IAAA,C;;;;;;;;;SAH5BiC,E;CAMJ;AAUA,OAAO,SAAAO,mBAAArC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACL;IAAAuC,GAAA;IAAA/B,SAAA,EAAAC,EAAA;IAAAQ,QAAA;IAAAL,OAAA;IAAAC,aAAA;IAAAC;EAAA,IAAwER,KAAA;EAA3D,MAAAE,SAAA,GAAAC,EAAc,KAAAM,SAAA,GAAF,EAAE,GAAdN,EAAc;EAC3B,OAAAS,UAAA,EAAAC,aAAA,IAAoClB,KAAA,CAAAmB,QAAA,CAAAL,SAAe;EAEpB,MAAAJ,EAAA,MAAAT,SAAA,UAAsBY,IAAA,IAAQ,UAAU;EAAA,IAAAE,EAAA;EAAA,IAAAT,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAI,EAAA;IAApDK,EAAA,IAAAd,SAAA,EAAYS,EAAwC,EAAEH,SAAA;IAAUD,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAnF,MAAAgB,UAAA,GAAmBP,EAAgE,CAAAQ,IAAA,CAAM;EAAA,IAAAH,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAf,CAAA,QAAAK,OAAA;IAEzES,EAAA,GAAAA,CAAA;MAAA,KACTT,OAAA;QACHO,aAAA,MAAc;QAAA;MAAA;MAGhBA,aAAA,CAAAJ,SAAc;MAEd,MAAAY,GAAA,OAAAC,KAAA;MACAD,GAAA,CAAAE,GAAA,GAAUjB,OAAA;MACVe,GAAA,CAAAG,MAAA;QACEX,aAAA,KAAc;MAAA;MAEhBQ,GAAA,CAAAI,OAAA;QACEZ,aAAA,MAAc;MAAA;IAAA;IAEfG,EAAA,IAACV,OAAA;IAAQL,CAAA,MAAAK,OAAA;IAAAL,CAAA,MAAAc,EAAA;IAAAd,CAAA,MAAAe,EAAA;EAAA;IAAAD,EAAA,GAAAd,CAAA;IAAAe,EAAA,GAAAf,CAAA;EAAA;EAfZN,KAAA,CAAA+B,SAAA,CAAgBX,EAehB,EAAGC,EAAS;EAEZ,IAAAO,GAAA,GAAkB;EAAA,IAMdjB,OAAA;IACF,MAAAqB,SAAA,GAAkBrB,OAAA,EAAAsB,QAAA,CAAkB,OAAO,MAAM;IACjDL,GAAA,CAAAA,CAAA,CAAMhB,aAAA,GAAgB,GAAGD,OAAA,GAAUqB,SAAA,GAAYE,kBAAA,CAAmBtB,aAAA,GAAgB,GAAGD,OAAA;EAArF;EAAA,IAAAa,EAAA;EAAA,IAAAlB,CAAA,QAAAgC,GAAA,IAAAhC,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAW,UAAA,IAAAX,CAAA,QAAAU,QAAA,IAAAV,CAAA,SAAAsB,GAAA;IAAA,IAAAH,EAAA;IAAA,IAAAnB,CAAA,SAAAgC,GAAA,IAAAhC,CAAA,SAAAW,UAAA,IAAAX,CAAA,SAAAU,QAAA,IAAAV,CAAA,SAAAsB,GAAA;MAMGH,EAAA,GAAAR,UAAA,IAAcoB,IAAA,CAAC;QAAAC,GAAA,EAASA,GAAA,IAAOtB,QAAA;QAAAY;MAAA,C;;;;;;;;;IAFlCJ,EAAA,GAAAe,KAAA,CAAC;MAAAhC,SAAA,EAAee,UAAA;MAAAkB,QAAA,GACbvB,UAAA,KAAAH,SAAe,IAAauB,IAAA,CAAAlC,aAAA;QAAAsC,MAAA,EAAsB;MAAA,C,GAClDhB,E,EACAR,UAAA,UAAe,IAASoB,IAAA,CAAAnC,IAAA,IAAC;IAAA,C;;;;;;;;;;SAH5BsB,E","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldErrors.d.ts","sourceRoot":"","sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"fieldErrors.d.ts","sourceRoot":"","sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAyDzB,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE;;CAAA,qBAehD"}
|
|
@@ -27,12 +27,12 @@ function groupSimilarErrors(items) {
|
|
|
27
27
|
}
|
|
28
28
|
function createErrorsFromMessage(message) {
|
|
29
29
|
const [intro, errorsString] = message.split(':');
|
|
30
|
-
|
|
30
|
+
const errors = (errorsString || '').split(',').map(error => error.replaceAll(' > ', ' → ').trim());
|
|
31
|
+
if (errors.length === 0) {
|
|
31
32
|
return {
|
|
32
33
|
message: intro
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
|
-
const errors = errorsString.split(',').map(error => error.replaceAll(' > ', ' → ').trim());
|
|
36
36
|
if (errors.length === 1) {
|
|
37
37
|
return {
|
|
38
38
|
errors,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","intro","errorsString","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","Array","isArray","_jsx","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\nfunction createErrorsFromMessage(message: string): {\n errors?: string[]\n message: string\n} {\n const [intro, errorsString] = message.split(':')\n
|
|
1
|
+
{"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","intro","errorsString","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","Array","isArray","_jsx","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\nfunction createErrorsFromMessage(message: string): {\n errors?: string[]\n message: string\n} {\n const [intro, errorsString] = message.split(':')\n const errors = (errorsString || '')\n .split(',')\n .map((error) => error.replaceAll(' > ', ' → ').trim())\n\n if (errors.length === 0) {\n return {\n message: intro,\n }\n }\n\n if (errors.length === 1) {\n return {\n errors,\n message: `${intro}:`,\n }\n }\n\n return {\n errors: groupSimilarErrors(errors),\n message: `${intro} (${errors.length}):`,\n }\n}\n\nexport function FieldErrorsToast({ errorMessage }) {\n const [{ errors, message }] = React.useState(() => createErrorsFromMessage(errorMessage))\n\n return (\n <div>\n {message}\n {Array.isArray(errors) && errors.length > 0 ? (\n <ul data-testid=\"field-errors\">\n {errors.map((error, index) => {\n return <li key={index}>{error}</li>\n })}\n </ul>\n ) : null}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,mBAAmBC,KAAe;EACzC,MAAMC,MAAA,GAAmB,EAAE;EAE3B,KAAK,MAAMC,IAAA,IAAQF,KAAA,EAAO;IACxB,IAAIE,IAAA,EAAM;MACR,MAAMC,KAAA,GAAQD,IAAA,CAAKE,KAAK,CAAC;MACzB,IAAIC,QAAA,GAAW;MAEf;MACA,KAAK,IAAIC,CAAA,GAAI,GAAGA,CAAA,GAAIL,MAAA,CAAOM,MAAM,EAAED,CAAA,IAAK;QACtC,IAAIL,MAAM,CAACK,CAAA,CAAE,CAACE,UAAU,CAACL,KAAK,CAAC,EAAE,GAAG;UAClCF,MAAA,CAAOQ,MAAM,CAACH,CAAA,GAAI,GAAG,GAAGJ,IAAA;UACxBG,QAAA,GAAW;UACX;QACF;MACF;MAEA;MACA,IAAI,CAACA,QAAA,EAAU;QACbJ,MAAA,CAAOS,IAAI,CAACR,IAAA;MACd;IACF;EACF;EAEA,OAAOD,MAAA;AACT;AAEA,SAASU,wBAAwBC,OAAe;EAI9C,MAAM,CAACC,KAAA,EAAOC,YAAA,CAAa,GAAGF,OAAA,CAAQR,KAAK,CAAC;EAC5C,MAAMW,MAAA,GAAS,CAACD,YAAA,IAAgB,EAAC,EAC9BV,KAAK,CAAC,KACNY,GAAG,CAAEC,KAAA,IAAUA,KAAA,CAAMC,UAAU,CAAC,OAAO,OAAOC,IAAI;EAErD,IAAIJ,MAAA,CAAOR,MAAM,KAAK,GAAG;IACvB,OAAO;MACLK,OAAA,EAASC;IACX;EACF;EAEA,IAAIE,MAAA,CAAOR,MAAM,KAAK,GAAG;IACvB,OAAO;MACLQ,MAAA;MACAH,OAAA,EAAS,GAAGC,KAAA;IACd;EACF;EAEA,OAAO;IACLE,MAAA,EAAQhB,kBAAA,CAAmBgB,MAAA;IAC3BH,OAAA,EAAS,GAAGC,KAAA,KAAUE,MAAA,CAAOR,MAAM;EACrC;AACF;AAEA,OAAO,SAAAa,iBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAzB,EAAA;EAA0B;IAAA0B;EAAA,IAAAF,EAAgB;EAAA,IAAAG,EAAA;EAAA,IAAAF,CAAA,QAAAC,YAAA;IACFC,EAAA,GAAAA,CAAA,KAAMb,uBAAA,CAAwBY,YAAA;IAAAD,CAAA,MAAAC,YAAA;IAAAD,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAA3E,OAAAG,EAAA,IAA8B3B,KAAA,CAAA4B,QAAA,CAAeF,EAA8B;EAApE;IAAAT,MAAA;IAAAH;EAAA,IAAAa,EAAmB;EAAA,IAAAE,EAAA;EAAA,IAAAL,CAAA,QAAAP,MAAA,IAAAO,CAAA,QAAAV,OAAA;IAGxBe,EAAA,GAAAC,KAAA,CAAC;MAAAC,QAAA,GACEjB,OAAA,EACAkB,KAAA,CAAAC,OAAA,CAAchB,MAAA,KAAWA,MAAA,CAAAR,MAAA,IAAgB,GACxCyB,IAAA,CAAC;QAAA,eAAe;QAAAH,QAAA,EACbd,MAAA,CAAAC,GAAA,CAAAiB,KAED;MAAA,C,QAEA;IAAA,C;;;;;;;SARNN,E;;AAJG,SAAAM,MAAAhB,KAAA,EAAAiB,KAAA;EAAA,OASYF,IAAA,CAAC;IAAAH,QAAA,EAAgBZ;EAAA,GAARiB,KAAA;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,yBAAyB,EAAe,MAAM,SAAS,CAAA;AAG/F,OAAO,KAA6D,MAAM,OAAO,CAAA;AAkBjF,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAU9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBAiCnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAC3D,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2ZxC,CAAA"}
|
|
@@ -12,14 +12,16 @@ import { useField } from '../../forms/useField/index.js';
|
|
|
12
12
|
import { useConfig } from '../../providers/Config/index.js';
|
|
13
13
|
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
14
14
|
import { EditDepthProvider } from '../../providers/EditDepth/index.js';
|
|
15
|
+
import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
|
|
15
16
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
17
|
+
import { useUploadControls } from '../../providers/UploadControls/index.js';
|
|
16
18
|
import { useUploadEdits } from '../../providers/UploadEdits/index.js';
|
|
17
19
|
import { Button } from '../Button/index.js';
|
|
18
20
|
import { Drawer, DrawerToggler } from '../Drawer/index.js';
|
|
19
21
|
import { Dropzone } from '../Dropzone/index.js';
|
|
20
22
|
import { EditUpload } from '../EditUpload/index.js';
|
|
21
|
-
import { FileDetails } from '../FileDetails/index.js';
|
|
22
23
|
import './index.scss';
|
|
24
|
+
import { FileDetails } from '../FileDetails/index.js';
|
|
23
25
|
import { PreviewSizes } from '../PreviewSizes/index.js';
|
|
24
26
|
import { Thumbnail } from '../Thumbnail/index.js';
|
|
25
27
|
const baseClass = 'file-field';
|
|
@@ -99,6 +101,16 @@ export const Upload = props => {
|
|
|
99
101
|
onChange,
|
|
100
102
|
uploadConfig
|
|
101
103
|
} = props;
|
|
104
|
+
const {
|
|
105
|
+
getDocumentSlots
|
|
106
|
+
} = useServerFunctions();
|
|
107
|
+
const [documentSlots, setDocumentSlots] = React.useState({});
|
|
108
|
+
const {
|
|
109
|
+
setUploadControlFile,
|
|
110
|
+
setUploadControlFileUrl,
|
|
111
|
+
uploadControlFile,
|
|
112
|
+
uploadControlFileUrl
|
|
113
|
+
} = useUploadControls();
|
|
102
114
|
const {
|
|
103
115
|
config: {
|
|
104
116
|
routes: {
|
|
@@ -148,10 +160,12 @@ export const Upload = props => {
|
|
|
148
160
|
}
|
|
149
161
|
setValue(newFile);
|
|
150
162
|
setShowUrlInput(false);
|
|
163
|
+
setUploadControlFileUrl('');
|
|
164
|
+
setUploadControlFile(null);
|
|
151
165
|
if (typeof onChange === 'function') {
|
|
152
166
|
onChange(newFile);
|
|
153
167
|
}
|
|
154
|
-
}, [onChange, setValue]);
|
|
168
|
+
}, [onChange, setValue, setUploadControlFile, setUploadControlFileUrl]);
|
|
155
169
|
const renameFile = (fileToChange, newName) => {
|
|
156
170
|
// Creating a new File object with updated properties
|
|
157
171
|
const newFile_0 = new File([fileToChange], newName, {
|
|
@@ -178,12 +192,14 @@ export const Upload = props => {
|
|
|
178
192
|
setFileUrl('');
|
|
179
193
|
resetUploadEdits();
|
|
180
194
|
setShowUrlInput(false);
|
|
181
|
-
|
|
195
|
+
setUploadControlFileUrl('');
|
|
196
|
+
setUploadControlFile(null);
|
|
197
|
+
}, [handleFileChange, resetUploadEdits, setUploadControlFile, setUploadControlFileUrl]);
|
|
182
198
|
const onEditsSave = useCallback(args => {
|
|
183
199
|
setModified(true);
|
|
184
200
|
updateUploadEdits(args);
|
|
185
201
|
}, [setModified, updateUploadEdits]);
|
|
186
|
-
const handleUrlSubmit = async () => {
|
|
202
|
+
const handleUrlSubmit = useCallback(async () => {
|
|
187
203
|
if (!fileUrl || uploadConfig?.pasteURL === false) {
|
|
188
204
|
return;
|
|
189
205
|
}
|
|
@@ -228,7 +244,7 @@ export const Upload = props => {
|
|
|
228
244
|
toast.error('The provided URL is not allowed.');
|
|
229
245
|
setUploadStatus('failed');
|
|
230
246
|
}
|
|
231
|
-
};
|
|
247
|
+
}, [fileUrl, uploadConfig, setUploadStatus, handleFileChange, useServerSideFetch, collectionSlug, id, serverURL, api]);
|
|
232
248
|
useEffect(() => {
|
|
233
249
|
if (initialState?.file?.value instanceof File) {
|
|
234
250
|
setFileSrc(URL.createObjectURL(initialState.file.value));
|
|
@@ -257,9 +273,31 @@ export const Upload = props => {
|
|
|
257
273
|
const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled);
|
|
258
274
|
const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ');
|
|
259
275
|
const imageCacheTag = uploadConfig?.cacheTags && savedDocumentData?.updatedAt;
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
276
|
+
useEffect(() => {
|
|
277
|
+
void (async () => {
|
|
278
|
+
const slots = await getDocumentSlots({
|
|
279
|
+
collectionSlug
|
|
280
|
+
});
|
|
281
|
+
setDocumentSlots(slots);
|
|
282
|
+
})();
|
|
283
|
+
}, [getDocumentSlots, collectionSlug]);
|
|
284
|
+
useEffect(() => {
|
|
285
|
+
const handleControlFileUrl = async () => {
|
|
286
|
+
if (uploadControlFileUrl) {
|
|
287
|
+
setFileUrl(uploadControlFileUrl);
|
|
288
|
+
await handleUrlSubmit();
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
void handleControlFileUrl();
|
|
292
|
+
}, [uploadControlFileUrl, handleUrlSubmit]);
|
|
293
|
+
useEffect(() => {
|
|
294
|
+
const handleControlFile = () => {
|
|
295
|
+
if (uploadControlFile) {
|
|
296
|
+
handleFileChange(uploadControlFile);
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
void handleControlFile();
|
|
300
|
+
}, [uploadControlFile, handleFileChange]);
|
|
263
301
|
return /*#__PURE__*/_jsxs("div", {
|
|
264
302
|
className: [fieldBaseClass, baseClass].filter(Boolean).join(' '),
|
|
265
303
|
children: [/*#__PURE__*/_jsx(FieldError, {
|
|
@@ -312,10 +350,14 @@ export const Upload = props => {
|
|
|
312
350
|
buttonStyle: "pill",
|
|
313
351
|
onClick: () => {
|
|
314
352
|
setShowUrlInput(true);
|
|
353
|
+
setUploadControlFileUrl('');
|
|
354
|
+
setUploadControlFile(null);
|
|
315
355
|
},
|
|
316
356
|
size: "small",
|
|
317
357
|
children: t('upload:pasteURL')
|
|
318
358
|
})]
|
|
359
|
+
}), uploadConfig?.admin?.components?.controls && documentSlots?.UploadControls !== undefined && /*#__PURE__*/_jsx(Fragment, {
|
|
360
|
+
children: documentSlots.UploadControls
|
|
319
361
|
})]
|
|
320
362
|
}), /*#__PURE__*/_jsxs("p", {
|
|
321
363
|
className: `${baseClass}__dragAndDropText`,
|
|
@@ -351,6 +393,8 @@ export const Upload = props => {
|
|
|
351
393
|
iconStyle: "with-border",
|
|
352
394
|
onClick: () => {
|
|
353
395
|
setShowUrlInput(false);
|
|
396
|
+
setUploadControlFileUrl('');
|
|
397
|
+
setUploadControlFile(null);
|
|
354
398
|
},
|
|
355
399
|
round: true,
|
|
356
400
|
tooltip: t('general:cancel')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","isImage","React","Fragment","useCallback","useEffect","useRef","useState","toast","FieldError","fieldBaseClass","useForm","useFormProcessing","useField","useConfig","useDocumentInfo","EditDepthProvider","useTranslation","useUploadEdits","Button","Drawer","DrawerToggler","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","UploadActions","t0","$","customActions","enableAdjustments","enablePreviewSizes","mimeType","t","t1","t2","Symbol","for","bb0","fileTypeIsAdjustable","length","t3","map","_temp","_jsxs","className","children","_jsx","slug","Upload","props","collectionSlug","initialState","onChange","uploadConfig","config","routes","api","serverURL","setModified","resetUploadEdits","updateUploadEdits","uploadEdits","id","docPermissions","savedDocumentData","setUploadStatus","isFormSubmitting","errorMessage","setValue","showError","path","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","name","showUrlInput","setShowUrlInput","fileUrl","setFileUrl","urlInputRef","inputRef","useServerSideFetch","pasteURL","allowList","handleFileChange","newFile","File","URL","createObjectURL","renameFile","fileToChange","newName","type","lastModified","handleFileNameChange","e","updatedFileName","target","handleFileSelection","files","fileToUpload","handleFileRemoval","onEditsSave","args","handleUrlSubmit","clientResponse","fetch","ok","Error","status","blob","fileName","decodeURIComponent","split","pop","file","_clientError","error","encodeURIComponent","serverResponse","_serverError","current","canRemoveUpload","update","delete","hasImageSizes","imageSizes","hasResizeOptions","Boolean","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","hideFileInputOnCreate","filter","message","customUploadActions","doc","handleRemove","hideRemoveFile","buttonStyle","onClick","click","size","accept","hidden","ref","icon","iconStyle","round","tooltip","Header","url","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","title","label","CustomAction","i"],"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState, SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { isImage } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { useForm, useFormProcessing } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport { FileDetails } from '../FileDetails/index.js'\nimport './index.scss'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\n\nconst baseClass = 'file-field'\nexport const editDrawerSlug = 'edit-upload'\nexport const sizePreviewSlug = 'preview-sizes'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n\n return true\n}\n\ntype UploadActionsArgs = {\n readonly customActions?: React.ReactNode[]\n readonly enableAdjustments: boolean\n readonly enablePreviewSizes: boolean\n readonly mimeType: string\n}\n\nexport const UploadActions = ({\n customActions,\n enableAdjustments,\n enablePreviewSizes,\n mimeType,\n}: UploadActionsArgs) => {\n const { t } = useTranslation()\n\n const fileTypeIsAdjustable =\n isImage(mimeType) && mimeType !== 'image/svg+xml' && mimeType !== 'image/jxl'\n\n if (!fileTypeIsAdjustable && (!customActions || customActions.length === 0)) {\n return null\n }\n\n return (\n <div className={`${baseClass}__upload-actions`}>\n {fileTypeIsAdjustable && (\n <React.Fragment>\n {enablePreviewSizes && (\n <DrawerToggler className={`${baseClass}__previewSizes`} slug={sizePreviewSlug}>\n {t('upload:previewSizes')}\n </DrawerToggler>\n )}\n {enableAdjustments && (\n <DrawerToggler className={`${baseClass}__edit`} slug={editDrawerSlug}>\n {t('upload:editImage')}\n </DrawerToggler>\n )}\n </React.Fragment>\n )}\n\n {customActions &&\n customActions.map((CustomAction, i) => {\n return <React.Fragment key={i}>{CustomAction}</React.Fragment>\n })}\n </div>\n )\n}\n\nexport type UploadProps = {\n readonly collectionSlug: string\n readonly customActions?: React.ReactNode[]\n readonly initialState?: FormState\n readonly onChange?: (file?: File) => void\n readonly uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { collectionSlug, customActions, initialState, onChange, uploadConfig } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { resetUploadEdits, updateUploadEdits, uploadEdits } = useUploadEdits()\n const { id, docPermissions, savedDocumentData, setUploadStatus } = useDocumentInfo()\n const isFormSubmitting = useFormProcessing()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n const [showUrlInput, setShowUrlInput] = useState(false)\n const [fileUrl, setFileUrl] = useState<string>('')\n\n const urlInputRef = useRef<HTMLInputElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const handleFileChange = useCallback(\n (newFile: File) => {\n if (newFile instanceof File) {\n setFileSrc(URL.createObjectURL(newFile))\n }\n\n setValue(newFile)\n setShowUrlInput(false)\n\n if (typeof onChange === 'function') {\n onChange(newFile)\n }\n },\n [onChange, setValue],\n )\n\n const renameFile = (fileToChange: File, newName: string): File => {\n // Creating a new File object with updated properties\n const newFile = new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n return newFile\n }\n\n const handleFileNameChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n\n if (value) {\n handleFileChange(renameFile(value, updatedFileName))\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileSelection = useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n handleFileChange(fileToUpload)\n },\n [handleFileChange],\n )\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange(null)\n setFileSrc('')\n setFileUrl('')\n resetUploadEdits()\n setShowUrlInput(false)\n }, [handleFileChange, resetUploadEdits])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n const handleUrlSubmit = async () => {\n if (!fileUrl || uploadConfig?.pasteURL === false) {\n return\n }\n\n setUploadStatus('uploading')\n try {\n // Attempt client-side fetch\n const clientResponse = await fetch(fileUrl)\n\n if (!clientResponse.ok) {\n throw new Error(`Fetch failed with status: ${clientResponse.status}`)\n }\n\n const blob = await clientResponse.blob()\n const fileName = decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange(file)\n setUploadStatus('idle')\n return // Exit if client-side fetch succeeds\n } catch (_clientError) {\n if (!useServerSideFetch) {\n // If server-side fetch is not enabled, show client-side error\n toast.error('Failed to fetch the file.')\n setUploadStatus('failed')\n return\n }\n }\n\n // Attempt server-side fetch if client-side fetch fails and useServerSideFetch is true\n try {\n const pasteURL = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`\n const serverResponse = await fetch(`${serverURL}${api}${pasteURL}`)\n\n if (!serverResponse.ok) {\n throw new Error(`Fetch failed with status: ${serverResponse.status}`)\n }\n\n const blob = await serverResponse.blob()\n const fileName = decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange(file)\n setUploadStatus('idle')\n } catch (_serverError) {\n toast.error('The provided URL is not allowed.')\n setUploadStatus('failed')\n }\n }\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n if (showUrlInput && urlInputRef.current) {\n // urlInputRef.current.focus() // Focus on the remote-url input field when showUrlInput is true\n }\n }, [showUrlInput])\n\n useEffect(() => {\n if (isFormSubmitting) {\n setRemovedFile(false)\n }\n }, [isFormSubmitting])\n\n const canRemoveUpload =\n docPermissions?.update && 'delete' in docPermissions && docPermissions?.delete\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n // Explicity check if set to true, default is undefined\n const focalPointEnabled = uploadConfig?.focalPoint === true\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n\n const imageCacheTag = uploadConfig?.cacheTags && savedDocumentData?.updatedAt\n\n if (uploadConfig.hideFileInputOnCreate && !savedDocumentData?.filename) {\n return null\n }\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {savedDocumentData && savedDocumentData.filename && !removedFile && (\n <FileDetails\n collectionSlug={collectionSlug}\n customUploadActions={customActions}\n doc={savedDocumentData}\n enableAdjustments={showCrop || showFocalPoint}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n hideRemoveFile={uploadConfig.hideRemoveFile}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n {((!uploadConfig.hideFileInputOnCreate && !savedDocumentData?.filename) || removedFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && !showUrlInput && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneButtons`}>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"small\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n {uploadConfig?.pasteURL !== false && (\n <Fragment>\n <span className={`${baseClass}__orText`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n setShowUrlInput(true)\n }}\n size=\"small\"\n >\n {t('upload:pasteURL')}\n </Button>\n </Fragment>\n )}\n </div>\n\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {showUrlInput && (\n <React.Fragment>\n <div className={`${baseClass}__remote-file-wrap`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__remote-file`}\n onChange={(e) => {\n setFileUrl(e.target.value)\n }}\n ref={urlInputRef}\n type=\"text\"\n value={fileUrl}\n />\n <div className={`${baseClass}__add-file-wrap`}>\n <button\n className={`${baseClass}__add-file`}\n onClick={() => {\n void handleUrlSubmit()\n }}\n type=\"button\"\n >\n {t('upload:addFile')}\n </button>\n </div>\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() => {\n setShowUrlInput(false)\n }}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n {value && fileSrc && (\n <React.Fragment>\n <div className={`${baseClass}__thumbnail-wrap`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(value.type) ? fileSrc : null}\n />\n </div>\n <div className={`${baseClass}__file-adjustments`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__filename`}\n onChange={handleFileNameChange}\n type=\"text\"\n value={filename || value.name}\n />\n <UploadActions\n customActions={customActions}\n enableAdjustments={showCrop || showFocalPoint}\n enablePreviewSizes={hasImageSizes && savedDocumentData?.filename && !removedFile}\n mimeType={value.type}\n />\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n </div>\n )}\n {(value || savedDocumentData?.filename) && (\n <EditDepthProvider>\n <Drawer Header={null} slug={editDrawerSlug}>\n <EditUpload\n fileName={value?.name || savedDocumentData?.filename}\n fileSrc={savedDocumentData?.url || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || savedDocumentData?.focalX || 50,\n y: uploadEdits?.focalPoint?.y || savedDocumentData?.focalY || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </Drawer>\n </EditDepthProvider>\n )}\n {savedDocumentData && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: savedDocumentData.filename })}\n >\n <PreviewSizes\n doc={savedDocumentData}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n </Drawer>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","isImage","React","Fragment","useCallback","useEffect","useRef","useState","toast","FieldError","fieldBaseClass","useForm","useFormProcessing","useField","useConfig","useDocumentInfo","EditDepthProvider","useServerFunctions","useTranslation","useUploadControls","useUploadEdits","Button","Drawer","DrawerToggler","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","UploadActions","t0","$","customActions","enableAdjustments","enablePreviewSizes","mimeType","t","t1","t2","Symbol","for","bb0","fileTypeIsAdjustable","length","t3","map","_temp","_jsxs","className","children","_jsx","slug","Upload","props","collectionSlug","initialState","onChange","uploadConfig","getDocumentSlots","documentSlots","setDocumentSlots","setUploadControlFile","setUploadControlFileUrl","uploadControlFile","uploadControlFileUrl","config","routes","api","serverURL","setModified","resetUploadEdits","updateUploadEdits","uploadEdits","id","docPermissions","savedDocumentData","setUploadStatus","isFormSubmitting","errorMessage","setValue","showError","path","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","name","showUrlInput","setShowUrlInput","fileUrl","setFileUrl","urlInputRef","inputRef","useServerSideFetch","pasteURL","allowList","handleFileChange","newFile","File","URL","createObjectURL","renameFile","fileToChange","newName","type","lastModified","handleFileNameChange","e","updatedFileName","target","handleFileSelection","files","fileToUpload","handleFileRemoval","onEditsSave","args","handleUrlSubmit","clientResponse","fetch","ok","Error","status","blob","fileName","decodeURIComponent","split","pop","file","_clientError","error","encodeURIComponent","serverResponse","_serverError","current","canRemoveUpload","update","delete","hasImageSizes","imageSizes","hasResizeOptions","Boolean","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","slots","handleControlFileUrl","handleControlFile","filter","message","customUploadActions","doc","handleRemove","hideRemoveFile","hideFileInputOnCreate","buttonStyle","onClick","click","size","accept","hidden","ref","admin","components","controls","UploadControls","icon","iconStyle","round","tooltip","Header","url","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","title","label","CustomAction","i"],"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { DocumentSlots, FormState, SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { isImage } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { useForm, useFormProcessing } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadControls } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport './index.scss'\nimport { FileDetails } from '../FileDetails/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\n\nconst baseClass = 'file-field'\nexport const editDrawerSlug = 'edit-upload'\nexport const sizePreviewSlug = 'preview-sizes'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n\n return true\n}\n\ntype UploadActionsArgs = {\n readonly customActions?: React.ReactNode[]\n readonly enableAdjustments: boolean\n readonly enablePreviewSizes: boolean\n readonly mimeType: string\n}\n\nexport const UploadActions = ({\n customActions,\n enableAdjustments,\n enablePreviewSizes,\n mimeType,\n}: UploadActionsArgs) => {\n const { t } = useTranslation()\n\n const fileTypeIsAdjustable =\n isImage(mimeType) && mimeType !== 'image/svg+xml' && mimeType !== 'image/jxl'\n\n if (!fileTypeIsAdjustable && (!customActions || customActions.length === 0)) {\n return null\n }\n\n return (\n <div className={`${baseClass}__upload-actions`}>\n {fileTypeIsAdjustable && (\n <React.Fragment>\n {enablePreviewSizes && (\n <DrawerToggler className={`${baseClass}__previewSizes`} slug={sizePreviewSlug}>\n {t('upload:previewSizes')}\n </DrawerToggler>\n )}\n {enableAdjustments && (\n <DrawerToggler className={`${baseClass}__edit`} slug={editDrawerSlug}>\n {t('upload:editImage')}\n </DrawerToggler>\n )}\n </React.Fragment>\n )}\n\n {customActions &&\n customActions.map((CustomAction, i) => {\n return <React.Fragment key={i}>{CustomAction}</React.Fragment>\n })}\n </div>\n )\n}\n\nexport type UploadProps = {\n readonly collectionSlug: string\n readonly customActions?: React.ReactNode[]\n readonly initialState?: FormState\n readonly onChange?: (file?: File) => void\n readonly uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { collectionSlug, customActions, initialState, onChange, uploadConfig } = props\n const { getDocumentSlots } = useServerFunctions()\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const { setUploadControlFile, setUploadControlFileUrl, uploadControlFile, uploadControlFileUrl } =\n useUploadControls()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { resetUploadEdits, updateUploadEdits, uploadEdits } = useUploadEdits()\n const { id, docPermissions, savedDocumentData, setUploadStatus } = useDocumentInfo()\n const isFormSubmitting = useFormProcessing()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n const [showUrlInput, setShowUrlInput] = useState(false)\n const [fileUrl, setFileUrl] = useState<string>('')\n\n const urlInputRef = useRef<HTMLInputElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const handleFileChange = useCallback(\n (newFile: File) => {\n if (newFile instanceof File) {\n setFileSrc(URL.createObjectURL(newFile))\n }\n\n setValue(newFile)\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n\n if (typeof onChange === 'function') {\n onChange(newFile)\n }\n },\n [onChange, setValue, setUploadControlFile, setUploadControlFileUrl],\n )\n\n const renameFile = (fileToChange: File, newName: string): File => {\n // Creating a new File object with updated properties\n const newFile = new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n return newFile\n }\n\n const handleFileNameChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n\n if (value) {\n handleFileChange(renameFile(value, updatedFileName))\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileSelection = useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n handleFileChange(fileToUpload)\n },\n [handleFileChange],\n )\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange(null)\n setFileSrc('')\n setFileUrl('')\n resetUploadEdits()\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n }, [handleFileChange, resetUploadEdits, setUploadControlFile, setUploadControlFileUrl])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n const handleUrlSubmit = useCallback(async () => {\n if (!fileUrl || uploadConfig?.pasteURL === false) {\n return\n }\n\n setUploadStatus('uploading')\n try {\n // Attempt client-side fetch\n const clientResponse = await fetch(fileUrl)\n\n if (!clientResponse.ok) {\n throw new Error(`Fetch failed with status: ${clientResponse.status}`)\n }\n\n const blob = await clientResponse.blob()\n const fileName = decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange(file)\n setUploadStatus('idle')\n return // Exit if client-side fetch succeeds\n } catch (_clientError) {\n if (!useServerSideFetch) {\n // If server-side fetch is not enabled, show client-side error\n toast.error('Failed to fetch the file.')\n setUploadStatus('failed')\n return\n }\n }\n\n // Attempt server-side fetch if client-side fetch fails and useServerSideFetch is true\n try {\n const pasteURL = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`\n const serverResponse = await fetch(`${serverURL}${api}${pasteURL}`)\n\n if (!serverResponse.ok) {\n throw new Error(`Fetch failed with status: ${serverResponse.status}`)\n }\n\n const blob = await serverResponse.blob()\n const fileName = decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange(file)\n setUploadStatus('idle')\n } catch (_serverError) {\n toast.error('The provided URL is not allowed.')\n setUploadStatus('failed')\n }\n }, [\n fileUrl,\n uploadConfig,\n setUploadStatus,\n handleFileChange,\n useServerSideFetch,\n collectionSlug,\n id,\n serverURL,\n api,\n ])\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n if (showUrlInput && urlInputRef.current) {\n // urlInputRef.current.focus() // Focus on the remote-url input field when showUrlInput is true\n }\n }, [showUrlInput])\n\n useEffect(() => {\n if (isFormSubmitting) {\n setRemovedFile(false)\n }\n }, [isFormSubmitting])\n\n const canRemoveUpload =\n docPermissions?.update && 'delete' in docPermissions && docPermissions?.delete\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n // Explicity check if set to true, default is undefined\n const focalPointEnabled = uploadConfig?.focalPoint === true\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n\n const imageCacheTag = uploadConfig?.cacheTags && savedDocumentData?.updatedAt\n\n useEffect(() => {\n void (async () => {\n const slots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(slots)\n })()\n }, [getDocumentSlots, collectionSlug])\n\n useEffect(() => {\n const handleControlFileUrl = async () => {\n if (uploadControlFileUrl) {\n setFileUrl(uploadControlFileUrl)\n await handleUrlSubmit()\n }\n }\n\n void handleControlFileUrl()\n }, [uploadControlFileUrl, handleUrlSubmit])\n\n useEffect(() => {\n const handleControlFile = () => {\n if (uploadControlFile) {\n handleFileChange(uploadControlFile)\n }\n }\n\n void handleControlFile()\n }, [uploadControlFile, handleFileChange])\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {savedDocumentData && savedDocumentData.filename && !removedFile && (\n <FileDetails\n collectionSlug={collectionSlug}\n customUploadActions={customActions}\n doc={savedDocumentData}\n enableAdjustments={showCrop || showFocalPoint}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n hideRemoveFile={uploadConfig.hideRemoveFile}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n {((!uploadConfig.hideFileInputOnCreate && !savedDocumentData?.filename) || removedFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && !showUrlInput && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneButtons`}>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"small\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n {uploadConfig?.pasteURL !== false && (\n <Fragment>\n <span className={`${baseClass}__orText`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n setShowUrlInput(true)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n }}\n size=\"small\"\n >\n {t('upload:pasteURL')}\n </Button>\n </Fragment>\n )}\n\n {uploadConfig?.admin?.components?.controls &&\n documentSlots?.UploadControls !== undefined && (\n <Fragment>{documentSlots.UploadControls}</Fragment>\n )}\n </div>\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {showUrlInput && (\n <React.Fragment>\n <div className={`${baseClass}__remote-file-wrap`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__remote-file`}\n onChange={(e) => {\n setFileUrl(e.target.value)\n }}\n ref={urlInputRef}\n type=\"text\"\n value={fileUrl}\n />\n <div className={`${baseClass}__add-file-wrap`}>\n <button\n className={`${baseClass}__add-file`}\n onClick={() => {\n void handleUrlSubmit()\n }}\n type=\"button\"\n >\n {t('upload:addFile')}\n </button>\n </div>\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() => {\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n }}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n {value && fileSrc && (\n <React.Fragment>\n <div className={`${baseClass}__thumbnail-wrap`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(value.type) ? fileSrc : null}\n />\n </div>\n <div className={`${baseClass}__file-adjustments`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__filename`}\n onChange={handleFileNameChange}\n type=\"text\"\n value={filename || value.name}\n />\n <UploadActions\n customActions={customActions}\n enableAdjustments={showCrop || showFocalPoint}\n enablePreviewSizes={hasImageSizes && savedDocumentData?.filename && !removedFile}\n mimeType={value.type}\n />\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n </div>\n )}\n {(value || savedDocumentData?.filename) && (\n <EditDepthProvider>\n <Drawer Header={null} slug={editDrawerSlug}>\n <EditUpload\n fileName={value?.name || savedDocumentData?.filename}\n fileSrc={savedDocumentData?.url || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || savedDocumentData?.focalX || 50,\n y: uploadEdits?.focalPoint?.y || savedDocumentData?.focalY || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </Drawer>\n </EditDepthProvider>\n )}\n {savedDocumentData && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: savedDocumentData.filename })}\n >\n <PreviewSizes\n doc={savedDocumentData}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n </Drawer>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE/F,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAA2B,qBAAqB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE/F,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAA2B,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAUvF,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+JrC,CAAA"}
|
|
@@ -7,8 +7,8 @@ import { useEffectEvent } from '../../../hooks/useEffectEvent.js';
|
|
|
7
7
|
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
8
8
|
import { Button } from '../../Button/index.js';
|
|
9
9
|
import { ReactSelect } from '../../ReactSelect/index.js';
|
|
10
|
-
import './index.scss';
|
|
11
10
|
import { DefaultFilter } from './DefaultFilter/index.js';
|
|
11
|
+
import './index.scss';
|
|
12
12
|
const baseClass = 'condition';
|
|
13
13
|
export const Condition = props => {
|
|
14
14
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useState","useDebounce","useEffectEvent","useTranslation","Button","ReactSelect","DefaultFilter","baseClass","Condition","props","addCondition","andIndex","fieldName","filterOptions","operator","orIndex","reducedFields","removeCondition","RenderedFilter","updateCondition","value","t","reducedField","find","field","internalValue","setInternalValue","debouncedValue","booleanSelect","includes","type","valueOptions","label","options","updateValue","disabled","admin","disableListFilter","handleFieldChange","undefined","option","handleOperatorChange","_jsx","className","_jsxs","isClearable","onChange","filter","operators","o","internalField","buttonStyle","icon","iconStyle","onClick","round","relation"],"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { AddCondition, ReducedField, RemoveCondition, UpdateCondition } from '../types.js'\n\nexport type Props = {\n readonly addCondition: AddCondition\n readonly andIndex: number\n readonly fieldName: string\n readonly filterOptions: ResolvedFilterOptions\n readonly operator: Operator\n readonly orIndex: number\n readonly reducedFields: ReducedField[]\n readonly removeCondition: RemoveCondition\n readonly RenderedFilter: React.ReactNode\n readonly updateCondition: UpdateCondition\n readonly value: string\n}\n\nimport type { Operator, Option as PayloadOption, ResolvedFilterOptions } from 'payload'\n\nimport type { Option } from '../../ReactSelect/index.js'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport './index.scss'\nimport { DefaultFilter } from './DefaultFilter/index.js'\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n addCondition,\n andIndex,\n fieldName,\n filterOptions,\n operator,\n orIndex,\n reducedFields,\n removeCondition,\n RenderedFilter,\n updateCondition,\n value,\n } = props\n\n const { t } = useTranslation()\n\n const reducedField = reducedFields.find((field) => field.value === fieldName)\n\n const [internalValue, setInternalValue] = useState<string>(value)\n\n const debouncedValue = useDebounce(internalValue, 300)\n\n const booleanSelect = ['exists'].includes(operator) || reducedField?.field?.type === 'checkbox'\n\n let valueOptions: PayloadOption[] = []\n\n if (booleanSelect) {\n valueOptions = [\n { label: t('general:true'), value: 'true' },\n { label: t('general:false'), value: 'false' },\n ]\n } else if (reducedField?.field && 'options' in reducedField.field) {\n valueOptions = reducedField.field.options\n }\n\n const updateValue = useEffectEvent(async (debouncedValue) => {\n if (operator) {\n await updateCondition({\n andIndex,\n field: reducedField,\n operator,\n orIndex,\n value: debouncedValue === null ? '' : debouncedValue,\n })\n }\n })\n\n useEffect(() => {\n void updateValue(debouncedValue)\n }, [debouncedValue])\n\n const disabled =\n (!reducedField?.value && typeof reducedField?.value !== 'number') ||\n reducedField?.field?.admin?.disableListFilter\n\n const handleFieldChange = useCallback(\n async (field: Option<string>) => {\n setInternalValue(undefined)\n await updateCondition({\n andIndex,\n field: reducedFields.find((option) => option.value === field.value),\n operator,\n orIndex,\n value: undefined,\n })\n },\n [andIndex, operator, orIndex, reducedFields, updateCondition],\n )\n\n const handleOperatorChange = useCallback(\n async (operator: Option<Operator>) => {\n await updateCondition({\n andIndex,\n field: reducedField,\n operator: operator.value,\n orIndex,\n value,\n })\n },\n [andIndex, reducedField, orIndex, updateCondition, value],\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n disabled={disabled}\n isClearable={false}\n onChange={handleFieldChange}\n options={reducedFields.filter((field) => !field.field.admin.disableListFilter)}\n value={\n reducedField || {\n value: reducedField?.value,\n }\n }\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n disabled={disabled}\n isClearable={false}\n onChange={handleOperatorChange}\n options={reducedField?.operators}\n value={reducedField?.operators.find((o) => operator === o.value) || null}\n />\n </div>\n <div className={`${baseClass}__value`}>\n {RenderedFilter || (\n <DefaultFilter\n booleanSelect={booleanSelect}\n disabled={\n !operator || !reducedField || reducedField?.field?.admin?.disableListFilter\n }\n filterOptions={filterOptions}\n internalField={reducedField}\n onChange={setInternalValue}\n operator={operator}\n options={valueOptions}\n value={internalValue ?? ''}\n />\n )}\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n round\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-add`}\n icon=\"plus\"\n iconStyle=\"with-border\"\n onClick={() =>\n addCondition({\n andIndex: andIndex + 1,\n field: reducedFields.find((field) => !field.field.admin?.disableListFilter),\n orIndex,\n relation: 'and',\n })\n }\n round\n />\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useState","useDebounce","useEffectEvent","useTranslation","Button","ReactSelect","DefaultFilter","baseClass","Condition","props","addCondition","andIndex","fieldName","filterOptions","operator","orIndex","reducedFields","removeCondition","RenderedFilter","updateCondition","value","t","reducedField","find","field","internalValue","setInternalValue","debouncedValue","booleanSelect","includes","type","valueOptions","label","options","updateValue","disabled","admin","disableListFilter","handleFieldChange","undefined","option","handleOperatorChange","_jsx","className","_jsxs","isClearable","onChange","filter","operators","o","internalField","buttonStyle","icon","iconStyle","onClick","round","relation"],"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { AddCondition, ReducedField, RemoveCondition, UpdateCondition } from '../types.js'\n\nexport type Props = {\n readonly addCondition: AddCondition\n readonly andIndex: number\n readonly fieldName: string\n readonly filterOptions: ResolvedFilterOptions\n readonly operator: Operator\n readonly orIndex: number\n readonly reducedFields: ReducedField[]\n readonly removeCondition: RemoveCondition\n readonly RenderedFilter: React.ReactNode\n readonly updateCondition: UpdateCondition\n readonly value: string\n}\n\nimport type { Operator, Option as PayloadOption, ResolvedFilterOptions } from 'payload'\n\nimport type { Option } from '../../ReactSelect/index.js'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { DefaultFilter } from './DefaultFilter/index.js'\nimport './index.scss'\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n addCondition,\n andIndex,\n fieldName,\n filterOptions,\n operator,\n orIndex,\n reducedFields,\n removeCondition,\n RenderedFilter,\n updateCondition,\n value,\n } = props\n\n const { t } = useTranslation()\n\n const reducedField = reducedFields.find((field) => field.value === fieldName)\n\n const [internalValue, setInternalValue] = useState<string>(value)\n\n const debouncedValue = useDebounce(internalValue, 300)\n\n const booleanSelect = ['exists'].includes(operator) || reducedField?.field?.type === 'checkbox'\n\n let valueOptions: PayloadOption[] = []\n\n if (booleanSelect) {\n valueOptions = [\n { label: t('general:true'), value: 'true' },\n { label: t('general:false'), value: 'false' },\n ]\n } else if (reducedField?.field && 'options' in reducedField.field) {\n valueOptions = reducedField.field.options\n }\n\n const updateValue = useEffectEvent(async (debouncedValue) => {\n if (operator) {\n await updateCondition({\n andIndex,\n field: reducedField,\n operator,\n orIndex,\n value: debouncedValue === null ? '' : debouncedValue,\n })\n }\n })\n\n useEffect(() => {\n void updateValue(debouncedValue)\n }, [debouncedValue])\n\n const disabled =\n (!reducedField?.value && typeof reducedField?.value !== 'number') ||\n reducedField?.field?.admin?.disableListFilter\n\n const handleFieldChange = useCallback(\n async (field: Option<string>) => {\n setInternalValue(undefined)\n await updateCondition({\n andIndex,\n field: reducedFields.find((option) => option.value === field.value),\n operator,\n orIndex,\n value: undefined,\n })\n },\n [andIndex, operator, orIndex, reducedFields, updateCondition],\n )\n\n const handleOperatorChange = useCallback(\n async (operator: Option<Operator>) => {\n await updateCondition({\n andIndex,\n field: reducedField,\n operator: operator.value,\n orIndex,\n value,\n })\n },\n [andIndex, reducedField, orIndex, updateCondition, value],\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n disabled={disabled}\n isClearable={false}\n onChange={handleFieldChange}\n options={reducedFields.filter((field) => !field.field.admin.disableListFilter)}\n value={\n reducedField || {\n value: reducedField?.value,\n }\n }\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n disabled={disabled}\n isClearable={false}\n onChange={handleOperatorChange}\n options={reducedField?.operators}\n value={reducedField?.operators.find((o) => operator === o.value) || null}\n />\n </div>\n <div className={`${baseClass}__value`}>\n {RenderedFilter || (\n <DefaultFilter\n booleanSelect={booleanSelect}\n disabled={\n !operator || !reducedField || reducedField?.field?.admin?.disableListFilter\n }\n filterOptions={filterOptions}\n internalField={reducedField}\n onChange={setInternalValue}\n operator={operator}\n options={valueOptions}\n value={internalValue ?? ''}\n />\n )}\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n round\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-add`}\n icon=\"plus\"\n iconStyle=\"with-border\"\n onClick={() =>\n addCondition({\n andIndex: andIndex + 1,\n field: reducedFields.find((field) => !field.field.admin?.disableListFilter),\n orIndex,\n relation: 'and',\n })\n }\n round\n />\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAkD,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAUnG,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA+LpD,CAAA"}
|