@payloadcms/ui 3.0.0-alpha.49 → 3.0.0-alpha.50
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/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +2 -43
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
- package/dist/elements/ColumnSelector/index.js +2 -5
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -2
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +13 -4
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +31 -112
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +0 -2
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +8 -2
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +4 -0
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +3 -25
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.d.ts.map +1 -1
- package/dist/elements/FieldSelect/index.js +39 -12
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/index.js +2 -1
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts +0 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +7 -6
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +5 -9
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/Nav/index.client.d.ts +3 -0
- package/dist/elements/Nav/index.client.d.ts.map +1 -0
- package/dist/elements/Nav/index.client.js +77 -0
- package/dist/elements/Nav/index.client.js.map +1 -0
- package/dist/elements/Nav/index.d.ts +3 -7
- package/dist/elements/Nav/index.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +4 -66
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/elements/PerPage/index.d.ts +1 -0
- package/dist/elements/PerPage/index.d.ts.map +1 -1
- package/dist/elements/PerPage/index.js +6 -4
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.d.ts +4 -6
- package/dist/elements/PreviewButton/index.d.ts.map +1 -1
- package/dist/elements/PreviewButton/index.js +11 -65
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.d.ts +9 -0
- package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -0
- package/dist/elements/PreviewButton/usePreviewURL.js +57 -0
- package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -0
- package/dist/elements/Publish/index.d.ts +4 -2
- package/dist/elements/Publish/index.d.ts.map +1 -1
- package/dist/elements/Publish/index.js +15 -25
- package/dist/elements/Publish/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js +2 -1
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/ValueContainer/index.scss +4 -0
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +4 -1
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +2 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/Save/index.d.ts +4 -2
- package/dist/elements/Save/index.d.ts.map +1 -1
- package/dist/elements/Save/index.js +7 -14
- package/dist/elements/Save/index.js.map +1 -1
- package/dist/elements/SaveDraft/index.d.ts +1 -2
- package/dist/elements/SaveDraft/index.d.ts.map +1 -1
- package/dist/elements/SaveDraft/index.js +33 -42
- package/dist/elements/SaveDraft/index.js.map +1 -1
- package/dist/elements/SortColumn/index.d.ts +3 -1
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +5 -6
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts +3 -3
- package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts +4 -4
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts +2 -5
- package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js +4 -3
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +4 -4
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts +3 -3
- package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -4
- package/dist/elements/Table/DefaultCell/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +4 -2
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/TableCellProvider/index.d.ts +11 -11
- package/dist/elements/Table/TableCellProvider/index.d.ts.map +1 -1
- package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
- package/dist/elements/Table/index.d.ts +8 -4
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +1 -0
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/TableColumns/{buildColumns.d.ts → buildColumnState.d.ts} +8 -6
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
- package/dist/elements/TableColumns/{buildColumns.js → buildColumnState.js} +37 -13
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
- package/dist/elements/TableColumns/filterFields.d.ts +3 -0
- package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
- package/dist/elements/TableColumns/filterFields.js +27 -0
- package/dist/elements/TableColumns/filterFields.js.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.d.ts +5 -0
- package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.js +48 -0
- package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
- package/dist/elements/TableColumns/index.d.ts +2 -2
- package/dist/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/index.js +11 -7
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts +6 -0
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +32 -16
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.d.ts +1 -1
- package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +2 -6
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/Tooltip/index.scss +4 -4
- package/dist/elements/Translation/index.d.ts.map +1 -1
- package/dist/elements/Translation/index.js +12 -9
- package/dist/elements/Translation/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -7
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts +21 -4
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +45 -61
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.scss +6 -0
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +134 -55
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +3 -0
- package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/reduceFieldMap.js +36 -0
- package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -0
- package/dist/elements/withMergedProps/index.js +1 -1
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.d.ts +2 -0
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +3 -3
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +23 -8
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts +1 -0
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +2 -3
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts +0 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +17 -5
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.d.ts +2 -1
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js +3 -1
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/fields/Checkbox/index.js +6 -2
- 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 +8 -3
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts +2 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +4 -3
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/DateTime/index.d.ts.map +1 -1
- package/dist/fields/DateTime/index.js +7 -2
- 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 +7 -2
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/Group/index.d.ts +0 -1
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js +9 -8
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/HiddenInput/index.d.ts +1 -0
- package/dist/fields/HiddenInput/index.d.ts.map +1 -1
- package/dist/fields/HiddenInput/index.js +4 -2
- package/dist/fields/HiddenInput/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +8 -4
- 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 +7 -2
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts +0 -1
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +5 -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 +15 -10
- 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 +7 -2
- 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 +45 -14
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/types.d.ts +3 -1
- package/dist/fields/Relationship/types.d.ts.map +1 -1
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/RichText/index.d.ts +2 -0
- package/dist/fields/RichText/index.d.ts.map +1 -1
- package/dist/fields/RichText/index.js.map +1 -1
- package/dist/fields/Row/index.d.ts.map +1 -1
- package/dist/fields/Row/index.js +2 -1
- package/dist/fields/Row/index.js.map +1 -1
- package/dist/fields/Select/index.d.ts +0 -1
- package/dist/fields/Select/index.d.ts.map +1 -1
- package/dist/fields/Select/index.js +8 -3
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts +0 -1
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +2 -2
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +4 -1
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.d.ts.map +1 -1
- package/dist/fields/Text/index.js +3 -1
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Textarea/Input.d.ts.map +1 -1
- package/dist/fields/Textarea/Input.js +4 -1
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.d.ts.map +1 -1
- package/dist/fields/Textarea/index.js +3 -1
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +10 -8
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +6 -2
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/shared/index.d.ts +1 -2
- package/dist/fields/shared/index.d.ts.map +1 -1
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/forms/FieldDescription/index.d.ts +1 -2
- package/dist/forms/FieldDescription/index.d.ts.map +1 -1
- package/dist/forms/FieldDescription/index.js.map +1 -1
- package/dist/forms/FieldError/index.js +1 -1
- package/dist/forms/FieldError/index.js.map +1 -1
- package/dist/forms/FieldLabel/index.d.ts.map +1 -1
- package/dist/forms/FieldLabel/index.js +4 -4
- package/dist/forms/FieldLabel/index.js.map +1 -1
- package/dist/forms/FieldLabel/index.scss +1 -1
- package/dist/forms/FieldPropsProvider/index.d.ts +5 -0
- package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
- package/dist/forms/FieldPropsProvider/index.js +5 -1
- package/dist/forms/FieldPropsProvider/index.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +6 -8
- 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 +37 -20
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/initContextState.d.ts.map +1 -1
- package/dist/forms/Form/initContextState.js +1 -0
- package/dist/forms/Form/initContextState.js.map +1 -1
- package/dist/forms/Form/mergeErrorPaths.d.ts +5 -0
- package/dist/forms/Form/mergeErrorPaths.d.ts.map +1 -0
- package/dist/forms/Form/mergeErrorPaths.js +29 -0
- package/dist/forms/Form/mergeErrorPaths.js.map +1 -0
- package/dist/forms/Form/mergeServerFormState.d.ts +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +36 -19
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/types.d.ts +8 -2
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.d.ts +1 -0
- package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +12 -4
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/index.d.ts.map +1 -1
- package/dist/forms/RenderFields/index.js +3 -3
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RenderFields/types.d.ts +1 -0
- package/dist/forms/RenderFields/types.d.ts.map +1 -1
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +4 -3
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +67 -42
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +11 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js +13 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +11 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js +16 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +12 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +122 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -0
- package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
- package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/index.js +10 -2
- package/dist/forms/buildStateFromSchema/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -2
- package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/iterateFields.js +4 -3
- package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +32 -12
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/useField/types.d.ts +1 -0
- package/dist/forms/useField/types.d.ts.map +1 -1
- package/dist/forms/useField/types.js.map +1 -1
- package/dist/forms/withCondition/WatchCondition.d.ts +3 -0
- package/dist/forms/withCondition/WatchCondition.d.ts.map +1 -1
- package/dist/forms/withCondition/WatchCondition.js +10 -2
- package/dist/forms/withCondition/WatchCondition.js.map +1 -1
- package/dist/forms/withCondition/index.js +4 -2
- package/dist/forms/withCondition/index.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js +1 -1
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/hooks/useUseAsTitle.d.ts +3 -2
- package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
- package/dist/hooks/useUseAsTitle.js +5 -6
- package/dist/hooks/useUseAsTitle.js.map +1 -1
- package/dist/providers/ClientFunction/index.d.ts.map +1 -1
- package/dist/providers/ClientFunction/index.js +27 -5
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/{mapActions.d.ts → actions.d.ts} +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/{mapActions.js → actions.js} +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +13 -0
- package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/collections.js +74 -0
- package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/{mapFields.d.ts → fields.d.ts} +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/{mapFields.js → fields.js} +43 -23
- package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +12 -0
- package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/globals.js +49 -0
- package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +2 -2
- package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/index.js +16 -83
- package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +8 -3
- package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +120 -96
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +12 -13
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/EntityVisibility/index.d.ts +16 -0
- package/dist/providers/EntityVisibility/index.d.ts.map +1 -0
- package/dist/providers/EntityVisibility/index.js +25 -0
- package/dist/providers/EntityVisibility/index.js.map +1 -0
- package/dist/providers/ListInfo/index.d.ts +0 -1
- package/dist/providers/ListInfo/index.d.ts.map +1 -1
- package/dist/providers/ListInfo/index.js +2 -7
- package/dist/providers/ListInfo/index.js.map +1 -1
- package/dist/templates/Default/index.d.ts +2 -7
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +10 -12
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/buildComponentMap.d.ts +1 -1
- package/dist/utilities/buildComponentMap.d.ts.map +1 -1
- package/dist/utilities/buildComponentMap.js +1 -1
- package/dist/utilities/buildComponentMap.js.map +1 -1
- package/dist/utilities/flattenFieldMap.d.ts +10 -0
- package/dist/utilities/flattenFieldMap.d.ts.map +1 -0
- package/dist/utilities/flattenFieldMap.js +33 -0
- package/dist/utilities/flattenFieldMap.js.map +1 -0
- package/dist/utilities/getFormState.d.ts +2 -0
- package/dist/utilities/getFormState.d.ts.map +1 -1
- package/dist/utilities/getFormState.js +8 -3
- package/dist/utilities/getFormState.js.map +1 -1
- package/package.json +10 -4
- package/dist/elements/TableColumns/buildColumns.d.ts.map +0 -1
- package/dist/elements/TableColumns/buildColumns.js.map +0 -1
- package/dist/elements/WhereBuilder/reducer.d.ts +0 -5
- package/dist/elements/WhereBuilder/reducer.d.ts.map +0 -1
- package/dist/elements/WhereBuilder/reducer.js +0 -78
- package/dist/elements/WhereBuilder/reducer.js.map +0 -1
- package/dist/forms/FieldDescription/types.d.ts +0 -8
- package/dist/forms/FieldDescription/types.d.ts.map +0 -1
- package/dist/forms/FieldDescription/types.js +0 -3
- package/dist/forms/FieldDescription/types.js.map +0 -1
- package/dist/hooks/useAdminThumbnail.d.ts +0 -3
- package/dist/hooks/useAdminThumbnail.d.ts.map +0 -1
- package/dist/hooks/useAdminThumbnail.js +0 -8
- package/dist/hooks/useAdminThumbnail.js.map +0 -1
- package/dist/hooks/useThumbnail.d.ts +0 -3
- package/dist/hooks/useThumbnail.d.ts.map +0 -1
- package/dist/hooks/useThumbnail.js +0 -45
- package/dist/hooks/useThumbnail.js.map +0 -1
- package/dist/providers/ComponentMap/buildComponentMap/mapActions.d.ts.map +0 -1
- package/dist/providers/ComponentMap/buildComponentMap/mapActions.js.map +0 -1
- package/dist/providers/ComponentMap/buildComponentMap/mapFields.d.ts.map +0 -1
- package/dist/providers/ComponentMap/buildComponentMap/mapFields.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { DocumentPreferences, FormState, TypeWithID } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport queryString from 'qs'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { useRelatedCollections } from '../../fields/Relationship/AddNew/useRelatedCollections.js'\nimport usePayloadAPI from '../../hooks/usePayloadAPI.js'\nimport { X } from '../../icons/X/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { useFormQueryParams } from '../../providers/FormQueryParams/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { RenderTitle } from '../RenderTitle/index.js'\nimport { baseClass } from './index.js'\n\nconst Content: React.FC<DocumentDrawerProps> = ({\n id,\n Header,\n collectionSlug,\n drawerSlug,\n initialData,\n onSave,\n}) => {\n const { useModal } = facelessUIImport\n\n const config = useConfig()\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const { closeModal, modalState, toggleModal } = useModal()\n const locale = useLocale()\n const [initialState, setInitialState] = useState<FormState>()\n const { i18n, t } = useTranslation()\n const hasInitializedState = useRef(false)\n const [isOpen, setIsOpen] = useState(false)\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n const { formQueryParams } = useFormQueryParams()\n const formattedQueryParams = queryString.stringify(formQueryParams)\n const { getPreference } = usePreferences()\n\n const { componentMap } = useComponentMap()\n\n const { Edit } = componentMap[`${collectionSlug ? 'collections' : 'globals'}`][collectionSlug]\n\n // no need to an additional requests when creating new documents\n const initialID = useRef(id)\n\n const [{ data, isError, isLoading: isLoadingDocument }] = usePayloadAPI(\n initialID.current ? `${serverURL}${apiRoute}/${collectionSlug}/${initialID.current}` : null,\n { initialData, initialParams: { depth: 0, draft: 'true', 'fallback-locale': 'null' } },\n )\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n useEffect(() => {\n if (isOpen && !isLoadingDocument && isError) {\n closeModal(drawerSlug)\n toast.error(data.errors?.[0].message || t('error:unspecific'))\n }\n }, [isError, t, isOpen, data, drawerSlug, closeModal, isLoadingDocument])\n\n const isEditing = Boolean(id)\n\n const apiURL = id ? `${serverURL}${apiRoute}/${collectionSlug}/${id}?locale=${locale.code}` : null\n\n const action = `${serverURL}${apiRoute}/${collectionSlug}${\n isEditing ? `/${id}` : ''\n }?${formattedQueryParams}`\n\n // const hasSavePermission =\n // (isEditing && docPermissions?.update?.permission) ||\n // (!isEditing && (docPermissions as CollectionPermission)?.create?.permission)\n\n useEffect(() => {\n if (!hasInitializedState.current && (!initialID.current || (initialID.current && data))) {\n const getInitialState = async () => {\n let docPreferences: DocumentPreferences = { fields: {} }\n\n if (id) {\n docPreferences = await getPreference(`collection-${collectionSlug}-${id}`)\n }\n\n const result = await getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n data: data || {},\n docPreferences,\n operation: isEditing ? 'update' : 'create',\n schemaPath: collectionSlug,\n },\n serverURL,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n }, [apiRoute, data, isEditing, collectionSlug, serverURL, id, getPreference])\n\n if (isError) return null\n\n if (!initialState || isLoadingDocument) {\n return <LoadingOverlay />\n }\n\n const title = formatDocTitle({\n collectionConfig,\n data,\n dateFormat: config.admin.dateFormat,\n i18n,\n })\n\n return (\n <DocumentInfoProvider\n BeforeDocument={\n <Gutter className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-content`}>\n <h2 className={`${baseClass}__header-text`}>\n {Header || <RenderTitle element=\"span\" />}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header-close`}\n onClick={() => toggleModal(drawerSlug)}\n type=\"button\"\n >\n <X />\n </button>\n </div>\n {id && id !== title ? <IDLabel id={id.toString()} /> : null}\n </Gutter>\n }\n action={action}\n apiURL={apiURL}\n collectionSlug={collectionConfig.slug}\n disableActions\n disableLeaveWithoutSaving\n // Do NOT pass in the docPermissions we have here. This is because the permissions we have here do not have their where: { } returns resolved.\n // If we set it to null though, the DocumentInfoProvider will fully-fetch the permissions from the server, and the where: { } returns will be resolved.\n docPermissions={null}\n // Same reason as above. We need to fully-fetch the docPreferences from the server. This is done in DocumentInfoProvider if we set it to null here.\n hasSavePermission={null}\n // isLoading,\n id={id}\n initialData={data}\n initialState={initialState}\n isEditing={isEditing}\n onSave={onSave}\n title={title}\n >\n {Edit}\n </DocumentInfoProvider>\n )\n}\n\n// First provide the document context using `DocumentInfoProvider`\n// this is so we can utilize the `useDocumentInfo` hook in the `Content` component\n// this drawer is used for both creating and editing documents\n// this means that the `id` may be unknown until the document is created\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = (props) => {\n const { id: idFromProps, collectionSlug, onSave: onSaveFromProps } = props\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n const [doc, setDoc] = useState<TypeWithID | null>()\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setDoc(args.doc)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig],\n )\n\n return <Content {...props} id={idFromProps || doc?.id} initialData={doc} onSave={onSave} />\n}\n"],"names":["facelessUIImport","queryString","React","useCallback","useEffect","useRef","useState","toast","useRelatedCollections","usePayloadAPI","X","useComponentMap","useConfig","DocumentInfoProvider","useFormQueryParams","useLocale","usePreferences","useTranslation","formatDocTitle","getFormState","Gutter","IDLabel","LoadingOverlay","RenderTitle","baseClass","Content","id","Header","collectionSlug","drawerSlug","initialData","onSave","useModal","config","routes","api","apiRoute","serverURL","closeModal","modalState","toggleModal","locale","initialState","setInitialState","i18n","t","hasInitializedState","isOpen","setIsOpen","collectionConfig","formQueryParams","formattedQueryParams","stringify","getPreference","componentMap","Edit","initialID","data","isError","isLoading","isLoadingDocument","current","initialParams","depth","draft","Boolean","error","errors","message","isEditing","apiURL","code","action","getInitialState","docPreferences","fields","result","body","operation","schemaPath","title","dateFormat","admin","BeforeDocument","className","div","h2","element","button","aria-label","onClick","type","toString","slug","disableActions","disableLeaveWithoutSaving","docPermissions","hasSavePermission","DocumentDrawerContent","props","idFromProps","onSaveFromProps","doc","setDoc","args"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport queryString from 'qs'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { useRelatedCollections } from '../../fields/Relationship/AddNew/useRelatedCollections.js'\nimport { X } from '../../icons/X/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider, useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useFormQueryParams } from '../../providers/FormQueryParams/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport { RenderTitle } from '../RenderTitle/index.js'\nimport { baseClass } from './index.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id,\n Header,\n collectionSlug,\n drawerSlug,\n onSave: onSaveFromProps,\n}) => {\n const { useModal } = facelessUIImport\n\n const config = useConfig()\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const { closeModal, modalState, toggleModal } = useModal()\n const locale = useLocale()\n const { t } = useTranslation()\n const [createdID, setCreatedID] = useState()\n const [isOpen, setIsOpen] = useState(false)\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n const { formQueryParams } = useFormQueryParams()\n const formattedQueryParams = queryString.stringify(formQueryParams)\n\n const { componentMap } = useComponentMap()\n\n const { Edit } = componentMap[`${collectionSlug ? 'collections' : 'globals'}`][collectionSlug]\n const isEditing = Boolean(id)\n const apiURL = id ? `${serverURL}${apiRoute}/${collectionSlug}/${id}?locale=${locale.code}` : null\n const action = `${serverURL}${apiRoute}/${collectionSlug}${\n isEditing ? `/${id}` : ''\n }?${formattedQueryParams}`\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const onLoadError = React.useCallback(\n (data) => {\n if (isOpen) {\n closeModal(drawerSlug)\n toast.error(data.errors?.[0].message || t('error:unspecific'))\n }\n },\n [closeModal, drawerSlug, isOpen, t],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setCreatedID(args.doc.id)\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig],\n )\n\n return (\n <DocumentInfoProvider\n BeforeDocument={\n <Gutter className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-content`}>\n <h2 className={`${baseClass}__header-text`}>\n {Header || <RenderTitle element=\"span\" />}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header-close`}\n onClick={() => toggleModal(drawerSlug)}\n type=\"button\"\n >\n <X />\n </button>\n </div>\n <DocumentTitle />\n </Gutter>\n }\n action={action}\n apiURL={apiURL}\n collectionSlug={collectionConfig.slug}\n disableActions\n disableLeaveWithoutSaving\n // Do NOT pass in the docPermissions we have here. This is because the permissions we have here do not have their where: { } returns resolved.\n // If we set it to null though, the DocumentInfoProvider will fully-fetch the permissions from the server, and the where: { } returns will be resolved.\n docPermissions={null}\n // Same reason as above. We need to fully-fetch the docPreferences from the server. This is done in DocumentInfoProvider if we set it to null here.\n hasSavePermission={null}\n // isLoading,\n id={id || createdID}\n isEditing={isEditing}\n onLoadError={onLoadError}\n onSave={onSave}\n >\n {Edit}\n </DocumentInfoProvider>\n )\n}\n\nconst DocumentTitle: React.FC = () => {\n const { id, title } = useDocumentInfo()\n return id && id !== title ? <IDLabel id={id.toString()} /> : null\n}\n"],"names":["facelessUIImport","queryString","React","useCallback","useEffect","useState","toast","useRelatedCollections","X","useComponentMap","useConfig","DocumentInfoProvider","useDocumentInfo","useFormQueryParams","useLocale","useTranslation","Gutter","IDLabel","RenderTitle","baseClass","DocumentDrawerContent","id","Header","collectionSlug","drawerSlug","onSave","onSaveFromProps","useModal","config","routes","api","apiRoute","serverURL","closeModal","modalState","toggleModal","locale","t","createdID","setCreatedID","isOpen","setIsOpen","collectionConfig","formQueryParams","formattedQueryParams","stringify","componentMap","Edit","isEditing","Boolean","apiURL","code","action","onLoadError","data","error","errors","message","args","doc","BeforeDocument","className","div","h2","element","button","aria-label","onClick","type","DocumentTitle","slug","disableActions","disableLeaveWithoutSaving","docPermissions","hasSavePermission","title","toString"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { TypeWithID } from 'payload/types';
|
|
2
1
|
import type React from 'react';
|
|
3
2
|
import type { HTMLAttributes } from 'react';
|
|
4
3
|
import type { DocumentInfoContext } from '../../providers/DocumentInfo/types.js';
|
|
@@ -7,7 +6,6 @@ export type DocumentDrawerProps = Pick<DrawerProps, 'Header'> & {
|
|
|
7
6
|
collectionSlug: string;
|
|
8
7
|
drawerSlug?: string;
|
|
9
8
|
id?: null | number | string;
|
|
10
|
-
initialData?: TypeWithID;
|
|
11
9
|
onSave?: DocumentInfoContext['onSave'];
|
|
12
10
|
};
|
|
13
11
|
export type DocumentTogglerProps = HTMLAttributes<HTMLButtonElement> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAE9D,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG;IAC9D,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IAC3B,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,iBAAiB,CAAC,GAAG;IACrE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,KAAK;IAC1F,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC7D;QACE,WAAW,EAAE,MAAM,IAAI,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,OAAO,CAAA;QACrB,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,YAAY,EAAE,MAAM,IAAI,CAAA;KACzB;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { DocumentInfoContext } from '../../providers/DocumentInfo/types.js'\nimport type { Props as DrawerProps } from '../Drawer/types.js'\n\nexport type DocumentDrawerProps = Pick<DrawerProps, 'Header'> & {\n collectionSlug: string\n drawerSlug?: string\n id?: null | number | string\n onSave?: DocumentInfoContext['onSave']\n}\n\nexport type DocumentTogglerProps = HTMLAttributes<HTMLButtonElement> & {\n children?: React.ReactNode\n className?: string\n collectionSlug: string\n disabled?: boolean\n drawerSlug?: string\n id?: string\n}\n\nexport type UseDocumentDrawer = (args: { collectionSlug: string; id?: number | string }) => [\n React.FC<Omit<DocumentDrawerProps, 'collectionSlug' | 'id'>>, // drawer\n React.FC<Omit<DocumentTogglerProps, 'collectionSlug' | 'id'>>, // toggler\n {\n closeDrawer: () => void\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n toggleDrawer: () => void\n },\n]\n"],"names":[],"mappings":"AAsBA,WAWC"}
|
|
@@ -2,6 +2,7 @@ import type { SanitizedConfig } from 'payload/types';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export declare const DocumentTabLink: React.FC<{
|
|
4
4
|
adminRoute: SanitizedConfig['routes']['admin'];
|
|
5
|
+
ariaLabel?: string;
|
|
5
6
|
baseClass: string;
|
|
6
7
|
children?: React.ReactNode;
|
|
7
8
|
href: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabLink.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAIpD,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"TabLink.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAIpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAmDA,CAAA"}
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
import LinkImport from 'next/link.js';
|
|
3
3
|
import { useParams, usePathname } from 'next/navigation.js';
|
|
4
4
|
import React from 'react';
|
|
5
|
+
import { useSearchParams } from '../../../../providers/SearchParams/index.js';
|
|
5
6
|
const Link = LinkImport.default || LinkImport;
|
|
6
|
-
export const DocumentTabLink = ({ adminRoute, baseClass, children, href: hrefFromProps, isActive: isActiveFromProps, newTab })=>{
|
|
7
|
+
export const DocumentTabLink = ({ adminRoute, ariaLabel, baseClass, children, href: hrefFromProps, isActive: isActiveFromProps, newTab })=>{
|
|
7
8
|
const pathname = usePathname();
|
|
8
9
|
const params = useParams();
|
|
10
|
+
const { searchParams } = useSearchParams();
|
|
11
|
+
const locale = 'locale' in searchParams && typeof searchParams.locale === 'string' ? searchParams.locale : undefined;
|
|
9
12
|
const [entityType, entitySlug, segmentThree, segmentFour, ...rest] = params.segments || [];
|
|
10
13
|
const isCollection = entityType === 'collections';
|
|
11
14
|
let docPath = `${adminRoute}/${isCollection ? 'collections' : 'globals'}/${entitySlug}`;
|
|
@@ -14,15 +17,18 @@ export const DocumentTabLink = ({ adminRoute, baseClass, children, href: hrefFro
|
|
|
14
17
|
docPath += `/${segmentThree}`;
|
|
15
18
|
}
|
|
16
19
|
const href = `${docPath}${hrefFromProps}`;
|
|
20
|
+
// separated the two so it doesn't break checks against pathname
|
|
21
|
+
const hrefWithLocale = `${href}${locale ? `?locale=${locale}` : ''}`;
|
|
17
22
|
const isActive = href === docPath && pathname === docPath || href !== docPath && pathname.startsWith(href) || isActiveFromProps;
|
|
18
23
|
return /*#__PURE__*/ React.createElement("li", {
|
|
24
|
+
"aria-label": ariaLabel,
|
|
19
25
|
className: [
|
|
20
26
|
baseClass,
|
|
21
27
|
isActive && `${baseClass}--active`
|
|
22
28
|
].filter(Boolean).join(' ')
|
|
23
29
|
}, /*#__PURE__*/ React.createElement(Link, {
|
|
24
30
|
className: `${baseClass}__link`,
|
|
25
|
-
href: !isActive || href !== pathname ?
|
|
31
|
+
href: !isActive || href !== pathname ? hrefWithLocale : '',
|
|
26
32
|
...newTab && {
|
|
27
33
|
rel: 'noopener noreferrer',
|
|
28
34
|
target: '_blank'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedConfig } from 'payload/types'\n\nimport LinkImport from 'next/link.js'\nimport { useParams, usePathname } from 'next/navigation.js'\nimport React from 'react'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DocumentTabLink: React.FC<{\n adminRoute: SanitizedConfig['routes']['admin']\n baseClass: string\n children?: React.ReactNode\n href: string\n isActive?: boolean\n isCollection?: boolean\n newTab?: boolean\n}> = ({\n adminRoute,\n baseClass,\n children,\n href: hrefFromProps,\n isActive: isActiveFromProps,\n newTab,\n}) => {\n const pathname = usePathname()\n const params = useParams()\n const [entityType, entitySlug, segmentThree, segmentFour, ...rest] = params.segments || []\n const isCollection = entityType === 'collections'\n let docPath = `${adminRoute}/${isCollection ? 'collections' : 'globals'}/${entitySlug}`\n if (isCollection && segmentThree) {\n // doc ID\n docPath += `/${segmentThree}`\n }\n\n const href = `${docPath}${hrefFromProps}`\n\n const isActive =\n (href === docPath && pathname === docPath) ||\n (href !== docPath && pathname.startsWith(href)) ||\n isActiveFromProps\n\n return (\n <li
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedConfig } from 'payload/types'\n\nimport LinkImport from 'next/link.js'\nimport { useParams, usePathname } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useSearchParams } from '../../../../providers/SearchParams/index.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DocumentTabLink: React.FC<{\n adminRoute: SanitizedConfig['routes']['admin']\n ariaLabel?: string\n baseClass: string\n children?: React.ReactNode\n href: string\n isActive?: boolean\n isCollection?: boolean\n newTab?: boolean\n}> = ({\n adminRoute,\n ariaLabel,\n baseClass,\n children,\n href: hrefFromProps,\n isActive: isActiveFromProps,\n newTab,\n}) => {\n const pathname = usePathname()\n const params = useParams()\n\n const { searchParams } = useSearchParams()\n\n const locale =\n 'locale' in searchParams && typeof searchParams.locale === 'string'\n ? searchParams.locale\n : undefined\n\n const [entityType, entitySlug, segmentThree, segmentFour, ...rest] = params.segments || []\n const isCollection = entityType === 'collections'\n let docPath = `${adminRoute}/${isCollection ? 'collections' : 'globals'}/${entitySlug}`\n if (isCollection && segmentThree) {\n // doc ID\n docPath += `/${segmentThree}`\n }\n\n const href = `${docPath}${hrefFromProps}`\n // separated the two so it doesn't break checks against pathname\n const hrefWithLocale = `${href}${locale ? `?locale=${locale}` : ''}`\n\n const isActive =\n (href === docPath && pathname === docPath) ||\n (href !== docPath && pathname.startsWith(href)) ||\n isActiveFromProps\n\n return (\n <li\n aria-label={ariaLabel}\n className={[baseClass, isActive && `${baseClass}--active`].filter(Boolean).join(' ')}\n >\n <Link\n className={`${baseClass}__link`}\n href={!isActive || href !== pathname ? hrefWithLocale : ''}\n {...(newTab && { rel: 'noopener noreferrer', target: '_blank' })}\n tabIndex={isActive ? -1 : 0}\n >\n {children}\n </Link>\n </li>\n )\n}\n"],"names":["LinkImport","useParams","usePathname","React","useSearchParams","Link","default","DocumentTabLink","adminRoute","ariaLabel","baseClass","children","href","hrefFromProps","isActive","isActiveFromProps","newTab","pathname","params","searchParams","locale","undefined","entityType","entitySlug","segmentThree","segmentFour","rest","segments","isCollection","docPath","hrefWithLocale","startsWith","li","aria-label","className","filter","Boolean","join","rel","target","tabIndex"],"mappings":"AAAA;AAGA,OAAOA,gBAAgB,eAAc;AACrC,SAASC,SAAS,EAAEC,WAAW,QAAQ,qBAAoB;AAC3D,OAAOC,WAAW,QAAO;AAEzB,SAASC,eAAe,QAAQ,8CAA6C;AAE7E,MAAMC,OAAQL,WAAWM,OAAO,IAAIN;AAEpC,OAAO,MAAMO,kBASR,CAAC,EACJC,UAAU,EACVC,SAAS,EACTC,SAAS,EACTC,QAAQ,EACRC,MAAMC,aAAa,EACnBC,UAAUC,iBAAiB,EAC3BC,MAAM,EACP;IACC,MAAMC,WAAWf;IACjB,MAAMgB,SAASjB;IAEf,MAAM,EAAEkB,YAAY,EAAE,GAAGf;IAEzB,MAAMgB,SACJ,YAAYD,gBAAgB,OAAOA,aAAaC,MAAM,KAAK,WACvDD,aAAaC,MAAM,GACnBC;IAEN,MAAM,CAACC,YAAYC,YAAYC,cAAcC,aAAa,GAAGC,KAAK,GAAGR,OAAOS,QAAQ,IAAI,EAAE;IAC1F,MAAMC,eAAeN,eAAe;IACpC,IAAIO,UAAU,CAAC,EAAErB,WAAW,CAAC,EAAEoB,eAAe,gBAAgB,UAAU,CAAC,EAAEL,WAAW,CAAC;IACvF,IAAIK,gBAAgBJ,cAAc;QAChC,SAAS;QACTK,WAAW,CAAC,CAAC,EAAEL,aAAa,CAAC;IAC/B;IAEA,MAAMZ,OAAO,CAAC,EAAEiB,QAAQ,EAAEhB,cAAc,CAAC;IACzC,gEAAgE;IAChE,MAAMiB,iBAAiB,CAAC,EAAElB,KAAK,EAAEQ,SAAS,CAAC,QAAQ,EAAEA,OAAO,CAAC,GAAG,GAAG,CAAC;IAEpE,MAAMN,WACJ,AAACF,SAASiB,WAAWZ,aAAaY,WACjCjB,SAASiB,WAAWZ,SAASc,UAAU,CAACnB,SACzCG;IAEF,qBACE,oBAACiB;QACCC,cAAYxB;QACZyB,WAAW;YAACxB;YAAWI,YAAY,CAAC,EAAEJ,UAAU,QAAQ,CAAC;SAAC,CAACyB,MAAM,CAACC,SAASC,IAAI,CAAC;qBAEhF,oBAAChC;QACC6B,WAAW,CAAC,EAAExB,UAAU,MAAM,CAAC;QAC/BE,MAAM,CAACE,YAAYF,SAASK,WAAWa,iBAAiB;QACvD,GAAId,UAAU;YAAEsB,KAAK;YAAuBC,QAAQ;QAAS,CAAC;QAC/DC,UAAU1B,WAAW,CAAC,IAAI;OAEzBH;AAIT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAExE,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,YAAY,CAAA;AAElC,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAExE,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,YAAY,CAAA;AAElC,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,iBAAiB,CAsEtE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"sourcesContent":["import type { DocumentTabConfig, DocumentTabProps } from 'payload/types'\n\nimport React, { Fragment } from 'react'\n\nimport { DocumentTabLink } from './TabLink.js'\nimport './index.scss'\n\nexport const baseClass = 'doc-tab'\n\nexport const DocumentTab: React.FC<DocumentTabProps & DocumentTabConfig> = (props) => {\n const {\n Pill,\n apiURL,\n collectionConfig,\n condition,\n config,\n globalConfig,\n href: tabHref,\n i18n,\n isActive: tabIsActive,\n label,\n newTab,\n } = props\n\n const { routes } = config\n\n let href = typeof tabHref === 'string' ? tabHref : ''\n let isActive = typeof tabIsActive === 'boolean' ? tabIsActive : false\n\n if (typeof tabHref === 'function') {\n href = tabHref({\n apiURL,\n collection: collectionConfig,\n global: globalConfig,\n routes,\n })\n }\n\n if (typeof tabIsActive === 'function') {\n isActive = tabIsActive({\n href,\n })\n }\n\n const meetsCondition =\n !condition || (condition && Boolean(condition({ collectionConfig, config, globalConfig })))\n\n if (meetsCondition) {\n const labelToRender =\n typeof label === 'function'\n ? label({\n t: i18n.t,\n })\n : label\n\n return (\n <DocumentTabLink\n adminRoute={routes.admin}\n baseClass={baseClass}\n href={href}\n isActive={isActive}\n isCollection={!!collectionConfig && !globalConfig}\n newTab={newTab}\n >\n <span className={`${baseClass}__label`}>\n {labelToRender}\n {Pill && (\n <Fragment>\n \n <Pill />\n </Fragment>\n )}\n </span>\n </DocumentTabLink>\n )\n }\n\n return null\n}\n"],"names":["React","Fragment","DocumentTabLink","baseClass","DocumentTab","props","Pill","apiURL","collectionConfig","condition","config","globalConfig","href","tabHref","i18n","isActive","tabIsActive","label","newTab","routes","collection","global","meetsCondition","Boolean","labelToRender","t","adminRoute","admin","isCollection","span","className"],"mappings":"AAEA,OAAOA,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,eAAe,QAAQ,eAAc;AAG9C,OAAO,MAAMC,YAAY,UAAS;AAElC,OAAO,MAAMC,cAA8D,CAACC;IAC1E,MAAM,EACJC,IAAI,EACJC,MAAM,EACNC,gBAAgB,EAChBC,SAAS,EACTC,MAAM,EACNC,YAAY,EACZC,MAAMC,OAAO,EACbC,IAAI,EACJC,UAAUC,WAAW,EACrBC,KAAK,EACLC,MAAM,EACP,GAAGb;IAEJ,MAAM,EAAEc,MAAM,EAAE,GAAGT;IAEnB,IAAIE,OAAO,OAAOC,YAAY,WAAWA,UAAU;IACnD,IAAIE,WAAW,OAAOC,gBAAgB,YAAYA,cAAc;IAEhE,IAAI,OAAOH,YAAY,YAAY;QACjCD,OAAOC,QAAQ;YACbN;YACAa,YAAYZ;YACZa,QAAQV;YACRQ;QACF;IACF;IAEA,IAAI,OAAOH,gBAAgB,YAAY;QACrCD,WAAWC,YAAY;YACrBJ;QACF;IACF;IAEA,MAAMU,iBACJ,CAACb,aAAcA,aAAac,QAAQd,UAAU;QAAED;QAAkBE;QAAQC;IAAa;IAEzF,IAAIW,gBAAgB;QAClB,MAAME,gBACJ,OAAOP,UAAU,aACbA,MAAM;YACJQ,GAAGX,KAAKW,CAAC;QACX,KACAR;QAEN,qBACE,oBAACf;YACCwB,YAAYP,OAAOQ,KAAK;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"sourcesContent":["import type { DocumentTabConfig, DocumentTabProps } from 'payload/types'\n\nimport React, { Fragment } from 'react'\n\nimport { DocumentTabLink } from './TabLink.js'\nimport './index.scss'\n\nexport const baseClass = 'doc-tab'\n\nexport const DocumentTab: React.FC<DocumentTabProps & DocumentTabConfig> = (props) => {\n const {\n Pill,\n apiURL,\n collectionConfig,\n condition,\n config,\n globalConfig,\n href: tabHref,\n i18n,\n isActive: tabIsActive,\n label,\n newTab,\n } = props\n\n const { routes } = config\n\n let href = typeof tabHref === 'string' ? tabHref : ''\n let isActive = typeof tabIsActive === 'boolean' ? tabIsActive : false\n\n if (typeof tabHref === 'function') {\n href = tabHref({\n apiURL,\n collection: collectionConfig,\n global: globalConfig,\n routes,\n })\n }\n\n if (typeof tabIsActive === 'function') {\n isActive = tabIsActive({\n href,\n })\n }\n\n const meetsCondition =\n !condition || (condition && Boolean(condition({ collectionConfig, config, globalConfig })))\n\n if (meetsCondition) {\n const labelToRender =\n typeof label === 'function'\n ? label({\n t: i18n.t,\n })\n : label\n\n return (\n <DocumentTabLink\n adminRoute={routes.admin}\n ariaLabel={labelToRender}\n baseClass={baseClass}\n href={href}\n isActive={isActive}\n isCollection={!!collectionConfig && !globalConfig}\n newTab={newTab}\n >\n <span className={`${baseClass}__label`}>\n {labelToRender}\n {Pill && (\n <Fragment>\n \n <Pill />\n </Fragment>\n )}\n </span>\n </DocumentTabLink>\n )\n }\n\n return null\n}\n"],"names":["React","Fragment","DocumentTabLink","baseClass","DocumentTab","props","Pill","apiURL","collectionConfig","condition","config","globalConfig","href","tabHref","i18n","isActive","tabIsActive","label","newTab","routes","collection","global","meetsCondition","Boolean","labelToRender","t","adminRoute","admin","ariaLabel","isCollection","span","className"],"mappings":"AAEA,OAAOA,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,eAAe,QAAQ,eAAc;AAG9C,OAAO,MAAMC,YAAY,UAAS;AAElC,OAAO,MAAMC,cAA8D,CAACC;IAC1E,MAAM,EACJC,IAAI,EACJC,MAAM,EACNC,gBAAgB,EAChBC,SAAS,EACTC,MAAM,EACNC,YAAY,EACZC,MAAMC,OAAO,EACbC,IAAI,EACJC,UAAUC,WAAW,EACrBC,KAAK,EACLC,MAAM,EACP,GAAGb;IAEJ,MAAM,EAAEc,MAAM,EAAE,GAAGT;IAEnB,IAAIE,OAAO,OAAOC,YAAY,WAAWA,UAAU;IACnD,IAAIE,WAAW,OAAOC,gBAAgB,YAAYA,cAAc;IAEhE,IAAI,OAAOH,YAAY,YAAY;QACjCD,OAAOC,QAAQ;YACbN;YACAa,YAAYZ;YACZa,QAAQV;YACRQ;QACF;IACF;IAEA,IAAI,OAAOH,gBAAgB,YAAY;QACrCD,WAAWC,YAAY;YACrBJ;QACF;IACF;IAEA,MAAMU,iBACJ,CAACb,aAAcA,aAAac,QAAQd,UAAU;QAAED;QAAkBE;QAAQC;IAAa;IAEzF,IAAIW,gBAAgB;QAClB,MAAME,gBACJ,OAAOP,UAAU,aACbA,MAAM;YACJQ,GAAGX,KAAKW,CAAC;QACX,KACAR;QAEN,qBACE,oBAACf;YACCwB,YAAYP,OAAOQ,KAAK;YACxBC,WAAWJ;YACXrB,WAAWA;YACXS,MAAMA;YACNG,UAAUA;YACVc,cAAc,CAAC,CAACrB,oBAAoB,CAACG;YACrCO,QAAQA;yBAER,oBAACY;YAAKC,WAAW,CAAC,EAAE5B,UAAU,OAAO,CAAC;WACnCqB,eACAlB,sBACC,oBAACL,gBAAS,mBAER,oBAACK;IAMb;IAEA,OAAO;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,eAAe,CAAA;AAGtB,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,qBAAqB,CAAA;IACnC,IAAI,EAAE,IAAI,CAAA;CACX,CA6EA,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isPlainObject } from 'payload/utilities';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { ShouldRenderTabs } from './ShouldRenderTabs.js';
|
|
3
4
|
import { DocumentTab } from './Tab/index.js';
|
|
@@ -48,6 +49,9 @@ export const DocumentTabs = (props)=>{
|
|
|
48
49
|
}), customViews?.map((CustomView, index)=>{
|
|
49
50
|
if ('Tab' in CustomView) {
|
|
50
51
|
const { Tab, path } = CustomView;
|
|
52
|
+
if (typeof Tab === 'object' && !isPlainObject(Tab)) {
|
|
53
|
+
throw new Error(`Custom 'Tab' Component for path: "${path}" must be a React Server Component. To use client-side functionality, render your Client Component within a Server Component and pass it only props that are serializable. More info: https://react.dev/reference/react/use-server#serializable-parameters-and-return-values`);
|
|
54
|
+
}
|
|
51
55
|
if (typeof Tab === 'function') {
|
|
52
56
|
return /*#__PURE__*/ React.createElement(Tab, {
|
|
53
57
|
path: path,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload/types'\n\nimport React from 'react'\n\nimport { ShouldRenderTabs } from './ShouldRenderTabs.js'\nimport { DocumentTab } from './Tab/index.js'\nimport { getCustomViews } from './getCustomViews.js'\nimport { getViewConfig } from './getViewConfig.js'\nimport './index.scss'\nimport { tabs as defaultTabs } from './tabs/index.js'\n\nconst baseClass = 'doc-tabs'\n\nexport const DocumentTabs: React.FC<{\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig: SanitizedGlobalConfig\n i18n: I18n\n}> = (props) => {\n const { collectionConfig, config, globalConfig } = props\n\n const customViews = getCustomViews({ collectionConfig, globalConfig })\n\n return (\n <ShouldRenderTabs>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs-container`}>\n <ul className={`${baseClass}__tabs`}>\n {Object.entries(defaultTabs)\n // sort `defaultViews` based on `order` property from smallest to largest\n // if no `order`, append the view to the end\n // TODO: open `order` to the config and merge `defaultViews` with `customViews`\n ?.sort(([, a], [, b]) => {\n if (a.order === undefined && b.order === undefined) return 0\n else if (a.order === undefined) return 1\n else if (b.order === undefined) return -1\n return a.order - b.order\n })\n ?.map(([name, tab], index) => {\n const viewConfig = getViewConfig({ name, collectionConfig, globalConfig })\n const tabFromConfig = viewConfig && 'Tab' in viewConfig ? viewConfig.Tab : undefined\n const tabConfig = typeof tabFromConfig === 'object' ? tabFromConfig : undefined\n\n const { condition } = tabConfig || {}\n\n const meetsCondition =\n !condition ||\n (condition && Boolean(condition({ collectionConfig, config, globalConfig })))\n\n if (meetsCondition) {\n return (\n <DocumentTab\n key={`tab-${index}`}\n {...{\n ...props,\n ...(tab || {}),\n ...(tabFromConfig || {}),\n }}\n />\n )\n }\n\n return null\n })}\n {customViews?.map((CustomView, index) => {\n if ('Tab' in CustomView) {\n const { Tab, path } = CustomView\n\n if (typeof Tab === 'function') {\n return <Tab path={path} {...props} key={`tab-custom-${index}`} />\n }\n\n return (\n <DocumentTab\n key={`tab-custom-${index}`}\n {...{\n ...props,\n ...Tab,\n }}\n />\n )\n }\n return null\n })}\n </ul>\n </div>\n </div>\n </ShouldRenderTabs>\n )\n}\n"],"names":["React","ShouldRenderTabs","DocumentTab","getCustomViews","getViewConfig","tabs","defaultTabs","baseClass","DocumentTabs","props","collectionConfig","config","globalConfig","customViews","div","className","ul","Object","entries","sort","a","b","order","undefined","map","name","tab","index","viewConfig","tabFromConfig","Tab","tabConfig","condition","meetsCondition","Boolean","key","CustomView","path"],"mappings":"AAOA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload/types'\n\nimport { isPlainObject } from 'payload/utilities'\nimport React from 'react'\n\nimport { ShouldRenderTabs } from './ShouldRenderTabs.js'\nimport { DocumentTab } from './Tab/index.js'\nimport { getCustomViews } from './getCustomViews.js'\nimport { getViewConfig } from './getViewConfig.js'\nimport './index.scss'\nimport { tabs as defaultTabs } from './tabs/index.js'\n\nconst baseClass = 'doc-tabs'\n\nexport const DocumentTabs: React.FC<{\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig: SanitizedGlobalConfig\n i18n: I18n\n}> = (props) => {\n const { collectionConfig, config, globalConfig } = props\n\n const customViews = getCustomViews({ collectionConfig, globalConfig })\n\n return (\n <ShouldRenderTabs>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs-container`}>\n <ul className={`${baseClass}__tabs`}>\n {Object.entries(defaultTabs)\n // sort `defaultViews` based on `order` property from smallest to largest\n // if no `order`, append the view to the end\n // TODO: open `order` to the config and merge `defaultViews` with `customViews`\n ?.sort(([, a], [, b]) => {\n if (a.order === undefined && b.order === undefined) return 0\n else if (a.order === undefined) return 1\n else if (b.order === undefined) return -1\n return a.order - b.order\n })\n ?.map(([name, tab], index) => {\n const viewConfig = getViewConfig({ name, collectionConfig, globalConfig })\n const tabFromConfig = viewConfig && 'Tab' in viewConfig ? viewConfig.Tab : undefined\n const tabConfig = typeof tabFromConfig === 'object' ? tabFromConfig : undefined\n\n const { condition } = tabConfig || {}\n\n const meetsCondition =\n !condition ||\n (condition && Boolean(condition({ collectionConfig, config, globalConfig })))\n\n if (meetsCondition) {\n return (\n <DocumentTab\n key={`tab-${index}`}\n {...{\n ...props,\n ...(tab || {}),\n ...(tabFromConfig || {}),\n }}\n />\n )\n }\n\n return null\n })}\n {customViews?.map((CustomView, index) => {\n if ('Tab' in CustomView) {\n const { Tab, path } = CustomView\n\n if (typeof Tab === 'object' && !isPlainObject(Tab)) {\n throw new Error(\n `Custom 'Tab' Component for path: \"${path}\" must be a React Server Component. To use client-side functionality, render your Client Component within a Server Component and pass it only props that are serializable. More info: https://react.dev/reference/react/use-server#serializable-parameters-and-return-values`,\n )\n }\n\n if (typeof Tab === 'function') {\n return <Tab path={path} {...props} key={`tab-custom-${index}`} />\n }\n\n return (\n <DocumentTab\n key={`tab-custom-${index}`}\n {...{\n ...props,\n ...Tab,\n }}\n />\n )\n }\n return null\n })}\n </ul>\n </div>\n </div>\n </ShouldRenderTabs>\n )\n}\n"],"names":["isPlainObject","React","ShouldRenderTabs","DocumentTab","getCustomViews","getViewConfig","tabs","defaultTabs","baseClass","DocumentTabs","props","collectionConfig","config","globalConfig","customViews","div","className","ul","Object","entries","sort","a","b","order","undefined","map","name","tab","index","viewConfig","tabFromConfig","Tab","tabConfig","condition","meetsCondition","Boolean","key","CustomView","path","Error"],"mappings":"AAOA,SAASA,aAAa,QAAQ,oBAAmB;AACjD,OAAOC,WAAW,QAAO;AAEzB,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,WAAW,QAAQ,iBAAgB;AAC5C,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,aAAa,QAAQ,qBAAoB;AAElD,SAASC,QAAQC,WAAW,QAAQ,kBAAiB;AAErD,MAAMC,YAAY;AAElB,OAAO,MAAMC,eAKR,CAACC;IACJ,MAAM,EAAEC,gBAAgB,EAAEC,MAAM,EAAEC,YAAY,EAAE,GAAGH;IAEnD,MAAMI,cAAcV,eAAe;QAAEO;QAAkBE;IAAa;IAEpE,qBACE,oBAACX,sCACC,oBAACa;QAAIC,WAAWR;qBACd,oBAACO;QAAIC,WAAW,CAAC,EAAER,UAAU,gBAAgB,CAAC;qBAC5C,oBAACS;QAAGD,WAAW,CAAC,EAAER,UAAU,MAAM,CAAC;OAChCU,OAAOC,OAAO,CAACZ,cAIZa,KAAK,CAAC,GAAGC,EAAE,EAAE,GAAGC,EAAE;QAClB,IAAID,EAAEE,KAAK,KAAKC,aAAaF,EAAEC,KAAK,KAAKC,WAAW,OAAO;aACtD,IAAIH,EAAEE,KAAK,KAAKC,WAAW,OAAO;aAClC,IAAIF,EAAEC,KAAK,KAAKC,WAAW,OAAO,CAAC;QACxC,OAAOH,EAAEE,KAAK,GAAGD,EAAEC,KAAK;IAC1B,IACEE,IAAI,CAAC,CAACC,MAAMC,IAAI,EAAEC;QAClB,MAAMC,aAAaxB,cAAc;YAAEqB;YAAMf;YAAkBE;QAAa;QACxE,MAAMiB,gBAAgBD,cAAc,SAASA,aAAaA,WAAWE,GAAG,GAAGP;QAC3E,MAAMQ,YAAY,OAAOF,kBAAkB,WAAWA,gBAAgBN;QAEtE,MAAM,EAAES,SAAS,EAAE,GAAGD,aAAa,CAAC;QAEpC,MAAME,iBACJ,CAACD,aACAA,aAAaE,QAAQF,UAAU;YAAEtB;YAAkBC;YAAQC;QAAa;QAE3E,IAAIqB,gBAAgB;YAClB,qBACE,oBAAC/B;gBACCiC,KAAK,CAAC,IAAI,EAAER,MAAM,CAAC;gBAEjB,GAAGlB,KAAK;gBACR,GAAIiB,OAAO,CAAC,CAAC;gBACb,GAAIG,iBAAiB,CAAC,CAAC;;QAI/B;QAEA,OAAO;IACT,IACDhB,aAAaW,IAAI,CAACY,YAAYT;QAC7B,IAAI,SAASS,YAAY;YACvB,MAAM,EAAEN,GAAG,EAAEO,IAAI,EAAE,GAAGD;YAEtB,IAAI,OAAON,QAAQ,YAAY,CAAC/B,cAAc+B,MAAM;gBAClD,MAAM,IAAIQ,MACR,CAAC,kCAAkC,EAAED,KAAK,4QAA4Q,CAAC;YAE3T;YAEA,IAAI,OAAOP,QAAQ,YAAY;gBAC7B,qBAAO,oBAACA;oBAAIO,MAAMA;oBAAO,GAAG5B,KAAK;oBAAE0B,KAAK,CAAC,WAAW,EAAER,MAAM,CAAC;;YAC/D;YAEA,qBACE,oBAACzB;gBACCiC,KAAK,CAAC,WAAW,EAAER,MAAM,CAAC;gBAExB,GAAGlB,KAAK;gBACR,GAAGqB,GAAG;;QAId;QACA,OAAO;IACT;AAMZ,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAgC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAoBpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAA;AAEpE,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAA;AA8DD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAoJ5C,CAAA"}
|
|
@@ -9,7 +9,6 @@ import { RenderFields } from '../../forms/RenderFields/index.js';
|
|
|
9
9
|
import { FormSubmit } from '../../forms/Submit/index.js';
|
|
10
10
|
import { X } from '../../icons/X/index.js';
|
|
11
11
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
12
|
-
import { useComponentMap } from '../../providers/ComponentMap/index.js';
|
|
13
12
|
import { useConfig } from '../../providers/Config/index.js';
|
|
14
13
|
import { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js';
|
|
15
14
|
import { OperationContext } from '../../providers/Operation/index.js';
|
|
@@ -86,7 +85,7 @@ const SaveDraft = ({ action, disabled })=>{
|
|
|
86
85
|
};
|
|
87
86
|
export const EditMany = (props)=>{
|
|
88
87
|
const { useModal } = facelessUIImport;
|
|
89
|
-
const { collection: { slug,
|
|
88
|
+
const { collection: { slug, labels: { plural } } = {}, collection, fieldMap } = props;
|
|
90
89
|
const { permissions } = useAuth();
|
|
91
90
|
const { closeModal } = useModal();
|
|
92
91
|
const { routes: { api: apiRoute }, serverURL } = useConfig();
|
|
@@ -95,33 +94,12 @@ export const EditMany = (props)=>{
|
|
|
95
94
|
const [selected, setSelected] = useState([]);
|
|
96
95
|
const { stringifyParams } = useSearchParams();
|
|
97
96
|
const router = useRouter();
|
|
98
|
-
const { componentMap } = useComponentMap();
|
|
99
|
-
const [reducedFieldMap, setReducedFieldMap] = useState([]);
|
|
100
97
|
const [initialState, setInitialState] = useState();
|
|
101
98
|
const hasInitializedState = React.useRef(false);
|
|
102
99
|
const { clearRouteCache } = useRouteCache();
|
|
103
100
|
const collectionPermissions = permissions?.collections?.[slug];
|
|
104
101
|
const hasUpdatePermission = collectionPermissions?.update?.permission;
|
|
105
102
|
const drawerSlug = `edit-${slug}`;
|
|
106
|
-
React.useEffect(()=>{
|
|
107
|
-
if (componentMap?.collections?.[slug]?.fieldMap) {
|
|
108
|
-
const fieldMap = componentMap.collections[slug].fieldMap;
|
|
109
|
-
const reducedFieldMap = [];
|
|
110
|
-
fieldMap.map((field)=>{
|
|
111
|
-
selected.map((selectedField)=>{
|
|
112
|
-
if ('name' in field && field.name === selectedField.name) {
|
|
113
|
-
reducedFieldMap.push(field);
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
setReducedFieldMap(reducedFieldMap);
|
|
118
|
-
}
|
|
119
|
-
}, [
|
|
120
|
-
componentMap.collections,
|
|
121
|
-
fields,
|
|
122
|
-
slug,
|
|
123
|
-
selected
|
|
124
|
-
]);
|
|
125
103
|
React.useEffect(()=>{
|
|
126
104
|
if (!hasInitializedState.current) {
|
|
127
105
|
const getInitialState = async ()=>{
|
|
@@ -214,8 +192,8 @@ export const EditMany = (props)=>{
|
|
|
214
192
|
}, /*#__PURE__*/ React.createElement(FieldSelect, {
|
|
215
193
|
fieldMap: fieldMap,
|
|
216
194
|
setSelected: setSelected
|
|
217
|
-
}),
|
|
218
|
-
fieldMap:
|
|
195
|
+
}), selected.length === 0 ? null : /*#__PURE__*/ React.createElement(RenderFields, {
|
|
196
|
+
fieldMap: selected,
|
|
219
197
|
path: "",
|
|
220
198
|
readOnly: false,
|
|
221
199
|
schemaPath: slug
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { X } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'edit-many'\n\nimport type { ClientCollectionConfig } from 'payload/types'\n\nimport type { FieldMap } from '../../utilities/buildComponentMap.js'\n\nexport type EditManyProps = {\n collection: ClientCollectionConfig\n fieldMap: FieldMap\n}\n\nconst Submit: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\nconst Publish: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\nconst SaveDraft: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__draft`} disabled={disabled} onClick={save}>\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { useModal } = facelessUIImport\n\n const { collection: { slug, fields, labels: { plural } } = {}, collection, fieldMap } = props\n\n const { permissions } = useAuth()\n const { closeModal } = useModal()\n const {\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState([])\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const { componentMap } = useComponentMap()\n const [reducedFieldMap, setReducedFieldMap] = useState([])\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update?.permission\n\n const drawerSlug = `edit-${slug}`\n\n React.useEffect(() => {\n if (componentMap?.collections?.[slug]?.fieldMap) {\n const fieldMap = componentMap.collections[slug].fieldMap\n const reducedFieldMap = []\n fieldMap.map((field) => {\n selected.map((selectedField) => {\n if ('name' in field && field.name === selectedField.name) {\n reducedFieldMap.push(field)\n }\n })\n })\n setReducedFieldMap(reducedFieldMap)\n }\n }, [componentMap.collections, fields, slug, selected])\n\n React.useEffect(() => {\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const result = await getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n data: {},\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n }, [apiRoute, hasInitializedState, serverURL, slug])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n ({ formState: prevFormState }) =>\n getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n }),\n [serverURL, apiRoute, slug],\n )\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n const onSuccess = () => {\n router.replace(\n stringifyParams({\n params: { page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined },\n }),\n )\n clearRouteCache()\n closeModal(drawerSlug)\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSelected([])\n }}\n slug={drawerSlug}\n >\n {t('general:edit')}\n </DrawerToggler>\n <Drawer Header={null} slug={drawerSlug}>\n <DocumentInfoProvider collectionSlug={slug} id={null}>\n <OperationContext.Provider value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', { count, label: getTranslation(plural, i18n) })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <X />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n initialState={initialState}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fieldMap={fieldMap} setSelected={setSelected} />\n {reducedFieldMap.length === 0 ? null : (\n <RenderFields\n fieldMap={reducedFieldMap}\n path=\"\"\n readOnly={false}\n schemaPath={slug}\n />\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <Publish\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n <SaveDraft\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext.Provider>\n </DocumentInfoProvider>\n </Drawer>\n </div>\n )\n}\n"],"names":["facelessUIImport","getTranslation","useRouter","React","useCallback","useState","useForm","Form","RenderFields","FormSubmit","X","useAuth","useComponentMap","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","getFormState","Drawer","DrawerToggler","FieldSelect","baseClass","Submit","action","disabled","submit","t","save","method","skipValidation","className","onClick","Publish","overrides","_status","SaveDraft","EditMany","props","useModal","collection","slug","fields","labels","plural","fieldMap","permissions","closeModal","routes","api","apiRoute","serverURL","count","getQueryParams","selectAll","i18n","selected","setSelected","stringifyParams","router","componentMap","reducedFieldMap","setReducedFieldMap","initialState","setInitialState","hasInitializedState","useRef","clearRouteCache","collectionPermissions","collections","hasUpdatePermission","update","permission","drawerSlug","useEffect","map","field","selectedField","name","push","current","getInitialState","result","body","collectionSlug","data","operation","schemaPath","onChange","formState","prevFormState","None","onSuccess","replace","params","page","AllAvailable","undefined","div","aria-label","Header","id","Provider","value","h2","label","button","type","length","path","readOnly","versions","drafts","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { X } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'edit-many'\n\nimport type { ClientCollectionConfig } from 'payload/types'\n\nimport type { FieldMap } from '../../utilities/buildComponentMap.js'\n\nexport type EditManyProps = {\n collection: ClientCollectionConfig\n fieldMap: FieldMap\n}\n\nconst Submit: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\nconst Publish: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\nconst SaveDraft: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__draft`} disabled={disabled} onClick={save}>\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { useModal } = facelessUIImport\n\n const { collection: { slug, labels: { plural } } = {}, collection, fieldMap } = props\n\n const { permissions } = useAuth()\n const { closeModal } = useModal()\n const {\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState([])\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update?.permission\n\n const drawerSlug = `edit-${slug}`\n\n React.useEffect(() => {\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const result = await getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n data: {},\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n }, [apiRoute, hasInitializedState, serverURL, slug])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n ({ formState: prevFormState }) =>\n getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n }),\n [serverURL, apiRoute, slug],\n )\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n const onSuccess = () => {\n router.replace(\n stringifyParams({\n params: { page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined },\n }),\n )\n clearRouteCache()\n closeModal(drawerSlug)\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSelected([])\n }}\n slug={drawerSlug}\n >\n {t('general:edit')}\n </DrawerToggler>\n <Drawer Header={null} slug={drawerSlug}>\n <DocumentInfoProvider collectionSlug={slug} id={null}>\n <OperationContext.Provider value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', { count, label: getTranslation(plural, i18n) })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <X />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n initialState={initialState}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fieldMap={fieldMap} setSelected={setSelected} />\n {selected.length === 0 ? null : (\n <RenderFields fieldMap={selected} path=\"\" readOnly={false} schemaPath={slug} />\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <Publish\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n <SaveDraft\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext.Provider>\n </DocumentInfoProvider>\n </Drawer>\n </div>\n )\n}\n"],"names":["facelessUIImport","getTranslation","useRouter","React","useCallback","useState","useForm","Form","RenderFields","FormSubmit","X","useAuth","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","getFormState","Drawer","DrawerToggler","FieldSelect","baseClass","Submit","action","disabled","submit","t","save","method","skipValidation","className","onClick","Publish","overrides","_status","SaveDraft","EditMany","props","useModal","collection","slug","labels","plural","fieldMap","permissions","closeModal","routes","api","apiRoute","serverURL","count","getQueryParams","selectAll","i18n","selected","setSelected","stringifyParams","router","initialState","setInitialState","hasInitializedState","useRef","clearRouteCache","collectionPermissions","collections","hasUpdatePermission","update","permission","drawerSlug","useEffect","current","getInitialState","result","body","collectionSlug","data","operation","schemaPath","onChange","formState","prevFormState","None","onSuccess","replace","params","page","AllAvailable","undefined","div","aria-label","Header","id","Provider","value","h2","label","button","type","length","path","readOnly","versions","drafts","Fragment"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FieldSelect/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,yDAAyD,CAAA;AAOpG,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAA;CAC/C,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FieldSelect/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,yDAAyD,CAAA;AAOpG,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAA;CAC/C,CAAA;AA8GD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgDlD,CAAA"}
|
|
@@ -5,18 +5,22 @@ import { createNestedClientFieldPath } from '../../forms/Form/createNestedFieldP
|
|
|
5
5
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
6
6
|
import { ReactSelect } from '../ReactSelect/index.js';
|
|
7
7
|
const baseClass = 'field-select';
|
|
8
|
-
const combineLabel = (
|
|
9
|
-
|
|
8
|
+
const combineLabel = ({ customLabel, field, prefix })=>{
|
|
9
|
+
const CustomLabelToRender = field && 'CustomLabel' in field.fieldComponentProps && field.fieldComponentProps.CustomLabel !== undefined ? field.fieldComponentProps.CustomLabel : null;
|
|
10
|
+
const DefaultLabelToRender = field && 'labelProps' in field.fieldComponentProps && field.fieldComponentProps.labelProps ? /*#__PURE__*/ React.createElement(FieldLabel, field.fieldComponentProps.labelProps) : null;
|
|
11
|
+
const LabelToRender = CustomLabelToRender || DefaultLabelToRender || customLabel;
|
|
12
|
+
if (!LabelToRender) return null;
|
|
13
|
+
return /*#__PURE__*/ React.createElement(Fragment, null, prefix && /*#__PURE__*/ React.createElement(Fragment, null, /*#__PURE__*/ React.createElement("span", {
|
|
10
14
|
style: {
|
|
11
15
|
display: 'inline-block'
|
|
12
16
|
}
|
|
13
|
-
}, prefix),
|
|
17
|
+
}, prefix), ' > '), /*#__PURE__*/ React.createElement("span", {
|
|
14
18
|
style: {
|
|
15
19
|
display: 'inline-block'
|
|
16
20
|
}
|
|
17
|
-
},
|
|
21
|
+
}, LabelToRender));
|
|
18
22
|
};
|
|
19
|
-
const reduceFields = (fieldMap,
|
|
23
|
+
const reduceFields = ({ fieldMap, labelPrefix = null, path = '' })=>{
|
|
20
24
|
if (!fieldMap) {
|
|
21
25
|
return [];
|
|
22
26
|
}
|
|
@@ -29,24 +33,39 @@ const reduceFields = (fieldMap, path = '', labelPrefix = null)=>{
|
|
|
29
33
|
if (!(field.type === 'array' || field.type === 'blocks') && 'fieldMap' in field.fieldComponentProps) {
|
|
30
34
|
return [
|
|
31
35
|
...fieldsToUse,
|
|
32
|
-
...reduceFields(
|
|
36
|
+
...reduceFields({
|
|
37
|
+
fieldMap: field.fieldComponentProps.fieldMap,
|
|
38
|
+
labelPrefix: combineLabel({
|
|
39
|
+
field,
|
|
40
|
+
prefix: labelPrefix
|
|
41
|
+
}),
|
|
42
|
+
path: createNestedClientFieldPath(path, field)
|
|
43
|
+
})
|
|
33
44
|
];
|
|
34
45
|
}
|
|
35
|
-
if (field.type === 'tabs' && '
|
|
46
|
+
if (field.type === 'tabs' && 'tabs' in field.fieldComponentProps) {
|
|
36
47
|
return [
|
|
37
48
|
...fieldsToUse,
|
|
38
|
-
...field.fieldComponentProps.
|
|
39
|
-
if ('fieldMap' in tab
|
|
49
|
+
...field.fieldComponentProps.tabs.reduce((tabFields, tab)=>{
|
|
50
|
+
if ('fieldMap' in tab) {
|
|
51
|
+
const isNamedTab = 'name' in tab && tab.name;
|
|
40
52
|
return [
|
|
41
53
|
...tabFields,
|
|
42
|
-
...reduceFields(
|
|
54
|
+
...reduceFields({
|
|
55
|
+
fieldMap: tab.fieldMap,
|
|
56
|
+
labelPrefix,
|
|
57
|
+
path: isNamedTab ? createNestedClientFieldPath(path, field) : path
|
|
58
|
+
})
|
|
43
59
|
];
|
|
44
60
|
}
|
|
45
61
|
}, [])
|
|
46
62
|
];
|
|
47
63
|
}
|
|
48
64
|
const formattedField = {
|
|
49
|
-
label: combineLabel(
|
|
65
|
+
label: combineLabel({
|
|
66
|
+
field,
|
|
67
|
+
prefix: labelPrefix
|
|
68
|
+
}),
|
|
50
69
|
value: {
|
|
51
70
|
...field,
|
|
52
71
|
path: createNestedClientFieldPath(path, field)
|
|
@@ -60,7 +79,9 @@ const reduceFields = (fieldMap, path = '', labelPrefix = null)=>{
|
|
|
60
79
|
};
|
|
61
80
|
export const FieldSelect = ({ fieldMap, setSelected })=>{
|
|
62
81
|
const { t } = useTranslation();
|
|
63
|
-
const [options] = useState(()=>reduceFields(
|
|
82
|
+
const [options] = useState(()=>reduceFields({
|
|
83
|
+
fieldMap
|
|
84
|
+
}));
|
|
64
85
|
const { dispatchFields, getFields } = useForm();
|
|
65
86
|
const handleChange = (selected)=>{
|
|
66
87
|
const activeFields = getFields();
|
|
@@ -88,6 +109,12 @@ export const FieldSelect = ({ fieldMap, setSelected })=>{
|
|
|
88
109
|
}, /*#__PURE__*/ React.createElement(FieldLabel, {
|
|
89
110
|
label: t('fields:selectFieldsToEdit')
|
|
90
111
|
}), /*#__PURE__*/ React.createElement(ReactSelect, {
|
|
112
|
+
getOptionValue: (option)=>{
|
|
113
|
+
if (typeof option.value === 'object' && 'path' in option.value) {
|
|
114
|
+
return String(option.value.path);
|
|
115
|
+
}
|
|
116
|
+
return String(option.value);
|
|
117
|
+
},
|
|
91
118
|
isMulti: true,
|
|
92
119
|
onChange: handleChange,
|
|
93
120
|
options: options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["import type { FieldWithPath } from 'payload/types'\n\nimport React, { Fragment, useState } from 'react'\n\nimport type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedFieldPath.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type FieldSelectProps = {\n fieldMap: FieldMap\n setSelected: (fields: FieldWithPath[]) => void\n}\n\nconst combineLabel = (prefix: JSX.Element
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["import type { FieldWithPath } from 'payload/types'\n\nimport React, { Fragment, useState } from 'react'\n\nimport type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedFieldPath.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type FieldSelectProps = {\n fieldMap: FieldMap\n setSelected: (fields: FieldWithPath[]) => void\n}\n\nconst combineLabel = ({\n customLabel,\n field,\n prefix,\n}: {\n customLabel?: string\n field?: MappedField\n prefix?: JSX.Element | string\n}): JSX.Element => {\n const CustomLabelToRender =\n field &&\n 'CustomLabel' in field.fieldComponentProps &&\n field.fieldComponentProps.CustomLabel !== undefined\n ? field.fieldComponentProps.CustomLabel\n : null\n const DefaultLabelToRender =\n field && 'labelProps' in field.fieldComponentProps && field.fieldComponentProps.labelProps ? (\n <FieldLabel {...field.fieldComponentProps.labelProps} />\n ) : null\n\n const LabelToRender = CustomLabelToRender || DefaultLabelToRender || customLabel\n\n if (!LabelToRender) return null\n\n return (\n <Fragment>\n {prefix && (\n <Fragment>\n <span style={{ display: 'inline-block' }}>{prefix}</span>\n {' > '}\n </Fragment>\n )}\n <span style={{ display: 'inline-block' }}>{LabelToRender}</span>\n </Fragment>\n )\n}\n\nconst reduceFields = ({\n fieldMap,\n labelPrefix = null,\n path = '',\n}: {\n fieldMap: FieldMap\n labelPrefix?: JSX.Element | string\n path?: string\n}): { Label: JSX.Element; value: FieldWithPath }[] => {\n if (!fieldMap) {\n return []\n }\n\n return fieldMap?.reduce((fieldsToUse, field) => {\n const { isFieldAffectingData } = field\n // escape for a variety of reasons\n if (\n isFieldAffectingData &&\n (field.disableBulkEdit ||\n field.unique ||\n field.isHidden ||\n ('readOnly' in field.fieldComponentProps && field.fieldComponentProps.readOnly))\n ) {\n return fieldsToUse\n }\n\n if (\n !(field.type === 'array' || field.type === 'blocks') &&\n 'fieldMap' in field.fieldComponentProps\n ) {\n return [\n ...fieldsToUse,\n ...reduceFields({\n fieldMap: field.fieldComponentProps.fieldMap,\n labelPrefix: combineLabel({ field, prefix: labelPrefix }),\n path: createNestedClientFieldPath(path, field),\n }),\n ]\n }\n\n if (field.type === 'tabs' && 'tabs' in field.fieldComponentProps) {\n return [\n ...fieldsToUse,\n ...field.fieldComponentProps.tabs.reduce((tabFields, tab) => {\n if ('fieldMap' in tab) {\n const isNamedTab = 'name' in tab && tab.name\n return [\n ...tabFields,\n ...reduceFields({\n fieldMap: tab.fieldMap,\n labelPrefix,\n path: isNamedTab ? createNestedClientFieldPath(path, field) : path,\n }),\n ]\n }\n }, []),\n ]\n }\n\n const formattedField = {\n label: combineLabel({ field, prefix: labelPrefix }),\n value: {\n ...field,\n path: createNestedClientFieldPath(path, field),\n },\n }\n\n return [...fieldsToUse, formattedField]\n }, [])\n}\n\nexport const FieldSelect: React.FC<FieldSelectProps> = ({ fieldMap, setSelected }) => {\n const { t } = useTranslation()\n const [options] = useState(() => reduceFields({ fieldMap }))\n\n const { dispatchFields, getFields } = useForm()\n\n const handleChange = (selected) => {\n const activeFields = getFields()\n if (selected === null) {\n setSelected([])\n } else {\n setSelected(selected.map(({ value }) => value))\n }\n\n // remove deselected values from form state\n if (selected === null || Object.keys(activeFields || []).length > selected.length) {\n Object.keys(activeFields).forEach((path) => {\n if (\n selected === null ||\n !selected.find((field) => {\n return field.value.path === path\n })\n ) {\n dispatchFields({\n type: 'REMOVE',\n path,\n })\n }\n })\n }\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label={t('fields:selectFieldsToEdit')} />\n <ReactSelect\n getOptionValue={(option) => {\n if (typeof option.value === 'object' && 'path' in option.value) {\n return String(option.value.path)\n }\n return String(option.value)\n }}\n isMulti\n onChange={handleChange}\n options={options}\n />\n </div>\n )\n}\n"],"names":["React","Fragment","useState","FieldLabel","useForm","createNestedClientFieldPath","useTranslation","ReactSelect","baseClass","combineLabel","customLabel","field","prefix","CustomLabelToRender","fieldComponentProps","CustomLabel","undefined","DefaultLabelToRender","labelProps","LabelToRender","span","style","display","reduceFields","fieldMap","labelPrefix","path","reduce","fieldsToUse","isFieldAffectingData","disableBulkEdit","unique","isHidden","readOnly","type","tabs","tabFields","tab","isNamedTab","name","formattedField","label","value","FieldSelect","setSelected","t","options","dispatchFields","getFields","handleChange","selected","activeFields","map","Object","keys","length","forEach","find","div","className","getOptionValue","option","String","isMulti","onChange"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAE/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,IAAI,GAAG;QACV,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAE/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,IAAI,GAAG;QACV,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6ClD,CAAA"}
|
|
@@ -7,12 +7,13 @@ import { FileMeta } from './FileMeta/index.js';
|
|
|
7
7
|
const baseClass = 'file-details';
|
|
8
8
|
export const FileDetails = (props)=>{
|
|
9
9
|
const { canEdit, collectionSlug, doc, handleRemove, hasImageSizes, imageCacheTag, uploadConfig } = props;
|
|
10
|
-
const { id, filename, filesize, height, mimeType, url, width } = doc;
|
|
10
|
+
const { id, filename, filesize, height, mimeType, thumbnailURL, url, width } = doc;
|
|
11
11
|
return /*#__PURE__*/ React.createElement("div", {
|
|
12
12
|
className: baseClass
|
|
13
13
|
}, /*#__PURE__*/ React.createElement("header", null, /*#__PURE__*/ React.createElement(Thumbnail, {
|
|
14
14
|
collectionSlug: collectionSlug,
|
|
15
15
|
doc: doc,
|
|
16
|
+
fileSrc: thumbnailURL,
|
|
16
17
|
imageCacheTag: imageCacheTag,
|
|
17
18
|
uploadConfig: uploadConfig
|
|
18
19
|
}), /*#__PURE__*/ React.createElement("div", {
|