@payloadcms/ui 3.2.3-canary.673b4b5 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/AddNewRelation/index.js +40 -40
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AddNewRelation/useRelatedCollections.js +3 -3
- package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -1
- package/dist/elements/AnimateHeight/index.d.ts.map +1 -1
- package/dist/elements/AnimateHeight/index.js +4 -1
- package/dist/elements/AnimateHeight/index.js.map +1 -1
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts +2 -1
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -1
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +67 -79
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
- package/dist/elements/ArrayAction/index.js +10 -10
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js +13 -13
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +14 -14
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +4 -4
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js +3 -3
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +29 -26
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +2 -0
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.js +8 -8
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +28 -32
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/Collapsible/index.js +13 -13
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js +10 -10
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +4 -4
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +10 -14
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +9 -9
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +4 -4
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +47 -47
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentLocked/index.js +21 -21
- package/dist/elements/DocumentLocked/index.js.map +1 -1
- package/dist/elements/DocumentTakeOver/index.js +10 -10
- package/dist/elements/DocumentTakeOver/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +9 -9
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
- package/dist/elements/DraggableSortable/index.js +11 -11
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js +8 -8
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
- package/dist/elements/Drawer/index.js +38 -38
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/Drawer/useDrawerSlug.js +3 -3
- package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +32 -33
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.js +17 -16
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js +15 -15
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js +15 -15
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js +4 -4
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/Hamburger/index.js +4 -4
- package/dist/elements/Hamburger/index.js.map +1 -1
- package/dist/elements/HydrateAuthProvider/index.js +3 -3
- package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js +11 -11
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/ListDrawer/index.js +19 -18
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListSelection/index.js +3 -3
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/Loading/index.js +15 -15
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +18 -16
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +5 -5
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/Localizer/index.d.ts.map +1 -1
- package/dist/elements/Localizer/index.js +20 -19
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Locked/index.js +3 -3
- package/dist/elements/Locked/index.js.map +1 -1
- package/dist/elements/Logout/index.js +7 -7
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/Nav/NavToggler/index.js +13 -13
- package/dist/elements/Nav/NavToggler/index.js.map +1 -1
- package/dist/elements/NavGroup/index.js +12 -12
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/PerPage/index.js +7 -7
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/Pill/index.js +8 -8
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Popup/index.js +1 -0
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.js +3 -3
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PublishButton/index.js +28 -28
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +10 -10
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/ReactSelect/Input/index.d.ts +2 -2
- package/dist/elements/ReactSelect/Input/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/Input/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js +10 -10
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueRemove/index.js +5 -5
- package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +4 -4
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.js +278 -142
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RenderIfInViewport/index.js +3 -3
- package/dist/elements/RenderIfInViewport/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.js +6 -6
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/SelectAll/index.js +3 -3
- package/dist/elements/SelectAll/index.js.map +1 -1
- package/dist/elements/SelectRow/index.js +6 -6
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js +7 -7
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.js +16 -16
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/SortComplex/index.d.ts.map +1 -1
- package/dist/elements/SortComplex/index.js +38 -51
- package/dist/elements/SortComplex/index.js.map +1 -1
- package/dist/elements/Status/index.js +38 -35
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +12 -12
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StepNav/SetStepNav.js +3 -3
- package/dist/elements/StepNav/SetStepNav.js.map +1 -1
- package/dist/elements/StepNav/context.js +3 -3
- package/dist/elements/StepNav/context.js.map +1 -1
- package/dist/elements/StepNav/index.js +9 -9
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +3 -3
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +31 -31
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js +3 -3
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +15 -15
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js +12 -9
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.js +6 -6
- package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.js +27 -27
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +10 -10
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/Tooltip/index.js +29 -24
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +11 -11
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/index.js +5 -5
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js +3 -3
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js +13 -10
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.js +5 -5
- package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +45 -45
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js +11 -11
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/{DatePicker-QST7QHAX.js → CodeEditor-RZ32B2QF.js} +2 -2
- package/dist/exports/client/DatePicker-QW5V4BQV.js +14 -0
- package/dist/exports/client/DatePicker-QW5V4BQV.js.map +8 -0
- package/dist/exports/client/chunk-CKHKQPOO.js +26 -0
- package/dist/exports/client/{CodeEditor-5MCGR4GL.js.map → chunk-CKHKQPOO.js.map} +4 -4
- package/dist/exports/client/chunk-KZPVHMBR.js +29 -0
- package/dist/exports/client/chunk-KZPVHMBR.js.map +8 -0
- package/dist/exports/client/index.d.ts +4 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +16 -16
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Array/ArrayRow.js +38 -38
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +27 -25
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +51 -49
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js +3 -3
- package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js +13 -13
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/RowActions.js +25 -25
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/SectionTitle/index.js +8 -8
- package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +26 -24
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +4 -2
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.js +6 -6
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js +18 -18
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js +6 -4
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Hidden/index.js +7 -7
- package/dist/fields/Hidden/index.js.map +1 -1
- package/dist/fields/Number/index.js +5 -5
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/input.js +24 -24
- package/dist/fields/Password/input.js.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.js +9 -9
- package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.d.ts.map +1 -1
- package/dist/fields/RadioGroup/index.js +4 -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 +4 -2
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +18 -18
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +18 -18
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Select/Input.js +28 -28
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +10 -10
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.js +69 -69
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/Input.js +24 -24
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Textarea/Input.js +19 -19
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +11 -11
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/Input.js +109 -104
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +20 -20
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/forms/NullifyField/index.js +3 -3
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +9 -9
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/index.js +16 -16
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.js +10 -10
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/useField/index.js +44 -44
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useDebounce.js +3 -3
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useDebouncedEffect.js +6 -6
- package/dist/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/hooks/useDelay.js +3 -3
- package/dist/hooks/useDelay.js.map +1 -1
- package/dist/hooks/useHotkey.js +18 -14
- package/dist/hooks/useHotkey.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js +13 -13
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/hooks/useThrottledEffect.js +3 -3
- package/dist/hooks/useThrottledEffect.js.map +1 -1
- package/dist/providers/Actions/index.js +4 -4
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/ClientFunction/index.js +3 -3
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/Config/index.js +9 -10
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentEvents/index.js +3 -3
- package/dist/providers/DocumentEvents/index.js.map +1 -1
- package/dist/providers/EditDepth/index.js +3 -3
- package/dist/providers/EditDepth/index.js.map +1 -1
- package/dist/providers/EntityVisibility/index.js +9 -10
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/ListQuery/index.js +2 -2
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +65 -59
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Params/index.d.ts +16 -0
- package/dist/providers/Params/index.d.ts.map +1 -1
- package/dist/providers/Params/index.js +19 -4
- package/dist/providers/Params/index.js.map +1 -1
- package/dist/providers/RouteCache/index.js +6 -6
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/SearchParams/index.d.ts +22 -4
- package/dist/providers/SearchParams/index.d.ts.map +1 -1
- package/dist/providers/SearchParams/index.js +28 -14
- package/dist/providers/SearchParams/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +7 -8
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/Theme/index.js +7 -7
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/Translation/index.js +12 -12
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/providers/UploadEdits/index.js +3 -3
- package/dist/providers/UploadEdits/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/index.js +2 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/index.js +2 -0
- package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
- package/dist/utilities/groupNavItems.js +3 -3
- package/dist/utilities/groupNavItems.js.map +1 -1
- package/dist/utilities/parseSearchParams.d.ts +4 -0
- package/dist/utilities/parseSearchParams.d.ts.map +1 -0
- package/dist/utilities/parseSearchParams.js +9 -0
- package/dist/utilities/parseSearchParams.js.map +1 -0
- package/dist/views/Edit/Auth/index.js +47 -47
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/Auth/types.d.ts +1 -1
- package/dist/views/Edit/Auth/types.d.ts.map +1 -1
- package/dist/views/Edit/Auth/types.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +14 -14
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js +5 -5
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.js +1 -1
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.js +20 -24
- package/dist/views/List/index.js.map +1 -1
- package/package.json +16 -17
- package/dist/exports/client/CodeEditor-5MCGR4GL.js +0 -26
- package/dist/exports/client/chunk-4SO5UCQD.js +0 -14
- package/dist/exports/client/chunk-4SO5UCQD.js.map +0 -8
- package/dist/exports/client/chunk-5LUHGAPX.js +0 -30
- package/dist/exports/client/chunk-5LUHGAPX.js.map +0 -8
- /package/dist/exports/client/{DatePicker-QST7QHAX.js.map → CodeEditor-RZ32B2QF.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useConfig","useLocale","useServerFunctions","useTranslation","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","createThumbnail","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","thumbnailUrls","totalErrorCount","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","formsCount","length","thumbnailUrlsRef","processedFiles","Set","renderedThumbnails","setRenderedThumbnails","useEffect","newThumbnails","i","file","formState","value","has","add","thumbnailUrl","setTimeout","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","onSuccess","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","_err","index","currentFormsData","type","map","form","errorCount","files","isLoading","key","count","overrides","currentForms","newDocs","total","req","status","doc","push","errors","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","Array","isArray","data","forEach","dataError","path","error","_","remainingForms","filter","successCount","Math","max","success","acc","_jsxs","Provider","_jsx","animationDuration","overlayType","show","useFormsManager","useContext"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Data, DocumentSlots, FormState, SanitizedDocumentPermissions } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { createThumbnail } from '../../Thumbnail/createThumbnail.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly thumbnailUrls: string[]\n readonly totalErrorCount?: number\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n thumbnailUrls: [],\n totalErrorCount: 0,\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n const formsCount = forms.length\n\n const thumbnailUrlsRef = React.useRef<string[]>([])\n const processedFiles = React.useRef(new Set()) // Track already-processed files\n const [renderedThumbnails, setRenderedThumbnails] = React.useState<string[]>([])\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n const newThumbnails = [...thumbnailUrlsRef.current]\n\n for (let i = 0; i < formsCount; i++) {\n const file = formsRef.current[i].formState.file.value as File\n\n // Skip if already processed\n if (processedFiles.current.has(file) || !file) {\n continue\n }\n processedFiles.current.add(file)\n\n // Generate thumbnail and update ref\n const thumbnailUrl = await createThumbnail(file)\n newThumbnails[i] = thumbnailUrl\n thumbnailUrlsRef.current = newThumbnails\n\n // Trigger re-render in batches\n setRenderedThumbnails([...newThumbnails])\n await new Promise((resolve) => setTimeout(resolve, 100))\n }\n })()\n }, [formsCount])\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug, initialFiles, onSuccess } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formState: currentFormsData,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({ type: 'ADD_FORMS', files, initialState: initialStateRef.current })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay],\n )\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formState: currentFormsData,\n }\n const newDocs = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const req = await fetch(actionURL, {\n body: createFormData(form.formState, overrides),\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push(json.doc)\n }\n\n // should expose some sort of helper for this\n if (json?.errors?.length) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = currentForms.filter(({ errorCount }) => errorCount > 0)\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n },\n [actionURL, activeIndex, forms, onSuccess, t, closeModal, drawerSlug],\n )\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (hasInitializedState && initialFiles && !hasInitializedWithFiles.current) {\n void addFiles(initialFiles)\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n addFiles,\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n ])\n\n return (\n <Context.Provider\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n thumbnailUrls: renderedThumbnails,\n totalErrorCount,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context.Provider>\n )\n}\n\nexport function useFormsManager() {\n return React.useContext(Context)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useConfig","useLocale","useServerFunctions","useTranslation","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","createThumbnail","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","thumbnailUrls","totalErrorCount","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","formsCount","length","thumbnailUrlsRef","processedFiles","Set","renderedThumbnails","setRenderedThumbnails","useEffect","newThumbnails","i","file","formState","value","has","add","thumbnailUrl","setTimeout","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","onSuccess","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","_err","index","currentFormsData","type","map","form","errorCount","files","isLoading","key","count","overrides","currentForms","newDocs","total","req","status","doc","push","errors","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","Array","isArray","data","forEach","dataError","path","error","_","remainingForms","filter","successCount","Math","max","success","acc","_jsxs","Provider","_jsx","animationDuration","overlayType","show","useFormsManager","useContext"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Data, DocumentSlots, FormState, SanitizedDocumentPermissions } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { createThumbnail } from '../../Thumbnail/createThumbnail.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly thumbnailUrls: string[]\n readonly totalErrorCount?: number\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n thumbnailUrls: [],\n totalErrorCount: 0,\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n const formsCount = forms.length\n\n const thumbnailUrlsRef = React.useRef<string[]>([])\n const processedFiles = React.useRef(new Set()) // Track already-processed files\n const [renderedThumbnails, setRenderedThumbnails] = React.useState<string[]>([])\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n const newThumbnails = [...thumbnailUrlsRef.current]\n\n for (let i = 0; i < formsCount; i++) {\n const file = formsRef.current[i].formState.file.value as File\n\n // Skip if already processed\n if (processedFiles.current.has(file) || !file) {\n continue\n }\n processedFiles.current.add(file)\n\n // Generate thumbnail and update ref\n const thumbnailUrl = await createThumbnail(file)\n newThumbnails[i] = thumbnailUrl\n thumbnailUrlsRef.current = newThumbnails\n\n // Trigger re-render in batches\n setRenderedThumbnails([...newThumbnails])\n await new Promise((resolve) => setTimeout(resolve, 100))\n }\n })()\n }, [formsCount])\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug, initialFiles, onSuccess } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formState: currentFormsData,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({ type: 'ADD_FORMS', files, initialState: initialStateRef.current })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay],\n )\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formState: currentFormsData,\n }\n const newDocs = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const req = await fetch(actionURL, {\n body: createFormData(form.formState, overrides),\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push(json.doc)\n }\n\n // should expose some sort of helper for this\n if (json?.errors?.length) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = currentForms.filter(({ errorCount }) => errorCount > 0)\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n },\n [actionURL, activeIndex, forms, onSuccess, t, closeModal, drawerSlug],\n )\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (hasInitializedState && initialFiles && !hasInitializedWithFiles.current) {\n void addFiles(initialFiles)\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n addFiles,\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n ])\n\n return (\n <Context.Provider\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n thumbnailUrls: renderedThumbnails,\n totalErrorCount,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context.Provider>\n )\n}\n\nexport function useFormsManager() {\n return React.useContext(Context)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -152,7 +152,7 @@ export function BulkUploadProvider(t0) {
|
|
|
152
152
|
t4 = $[5];
|
|
153
153
|
}
|
|
154
154
|
let t5;
|
|
155
|
-
if ($[6] !==
|
|
155
|
+
if ($[6] !== children || $[7] !== collection || $[8] !== drawerSlug || $[9] !== initialFiles || $[10] !== maxFiles || $[11] !== t3 || $[12] !== t4) {
|
|
156
156
|
t5 = _jsx(Context.Provider, {
|
|
157
157
|
value: {
|
|
158
158
|
collectionSlug: collection,
|
|
@@ -171,13 +171,13 @@ export function BulkUploadProvider(t0) {
|
|
|
171
171
|
children: [children, _jsx(BulkUploadDrawer, {})]
|
|
172
172
|
})
|
|
173
173
|
});
|
|
174
|
-
$[6] =
|
|
175
|
-
$[7] =
|
|
176
|
-
$[8] =
|
|
177
|
-
$[9] =
|
|
178
|
-
$[10] =
|
|
179
|
-
$[11] =
|
|
180
|
-
$[12] =
|
|
174
|
+
$[6] = children;
|
|
175
|
+
$[7] = collection;
|
|
176
|
+
$[8] = drawerSlug;
|
|
177
|
+
$[9] = initialFiles;
|
|
178
|
+
$[10] = maxFiles;
|
|
179
|
+
$[11] = t3;
|
|
180
|
+
$[12] = t4;
|
|
181
181
|
$[13] = t5;
|
|
182
182
|
} else {
|
|
183
183
|
t5 = $[13];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","toast","useConfig","useTranslation","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","config","t","uploadCollection","collections","find","col","slug","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","t0","gutter","Header","children","Context","createContext","initialFiles","maxFiles","onSuccess","setCollectionSlug","setInitialFiles","setMaxFiles","setOnCancel","setOnSuccess","BulkUploadProvider","collection","setCollection","useState","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","t1","Symbol","for","t2","t3","t4","docIDs","errorCount","t5","Provider","value","_jsxs","Fragment","useContext","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n const { config } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = config.collections.find((col) => col.slug === collectionSlug)\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const { drawerSlug } = useBulkUpload()\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <DrawerContent />\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\ntype BulkUploadContext = {\n collectionSlug: string\n drawerSlug: string\n initialFiles: FileList\n maxFiles: number\n onCancel: () => void\n onSuccess: (newDocs: JsonObject[], errorCount: number) => void\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n})\nexport function BulkUploadProvider({ children }: { readonly children: React.ReactNode }) {\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const drawerSlug = useBulkUploadDrawerSlug()\n\n const setCollectionSlug: BulkUploadContext['setCollectionSlug'] = (slug) => {\n setCollection(slug)\n }\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n\n return (\n <Context.Provider\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (docIDs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(docIDs, errorCount)\n }\n },\n setCollectionSlug,\n setInitialFiles,\n setMaxFiles,\n setOnCancel: setOnCancelFunction,\n setOnSuccess,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context.Provider>\n )\n}\n\nexport const useBulkUpload = () => React.useContext(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","toast","useConfig","useTranslation","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","config","t","uploadCollection","collections","find","col","slug","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","t0","gutter","Header","children","Context","createContext","initialFiles","maxFiles","onSuccess","setCollectionSlug","setInitialFiles","setMaxFiles","setOnCancel","setOnSuccess","BulkUploadProvider","collection","setCollection","useState","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","t1","Symbol","for","t2","t3","t4","docIDs","errorCount","t5","Provider","value","_jsxs","Fragment","useContext","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n const { config } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = config.collections.find((col) => col.slug === collectionSlug)\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const { drawerSlug } = useBulkUpload()\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <DrawerContent />\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\ntype BulkUploadContext = {\n collectionSlug: string\n drawerSlug: string\n initialFiles: FileList\n maxFiles: number\n onCancel: () => void\n onSuccess: (newDocs: JsonObject[], errorCount: number) => void\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n})\nexport function BulkUploadProvider({ children }: { readonly children: React.ReactNode }) {\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const drawerSlug = useBulkUploadDrawerSlug()\n\n const setCollectionSlug: BulkUploadContext['setCollectionSlug'] = (slug) => {\n setCollection(slug)\n }\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n\n return (\n <Context.Provider\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (docIDs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(docIDs, errorCount)\n }\n },\n setCollectionSlug,\n setInitialFiles,\n setMaxFiles,\n setOnCancel: setOnCancelFunction,\n setOnSuccess,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context.Provider>\n )\n}\n\nexport const useBulkUpload = () => React.useContext(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,12 +10,12 @@ import './index.scss';
|
|
|
10
10
|
const Editor = EditorImport.default || EditorImport;
|
|
11
11
|
const baseClass = 'code-editor';
|
|
12
12
|
const CodeEditor = props => {
|
|
13
|
-
const $ = _c(
|
|
14
|
-
let rest;
|
|
15
|
-
let readOnly;
|
|
13
|
+
const $ = _c(21);
|
|
16
14
|
let className;
|
|
17
|
-
let options;
|
|
18
15
|
let maxHeight;
|
|
16
|
+
let options;
|
|
17
|
+
let readOnly;
|
|
18
|
+
let rest;
|
|
19
19
|
if ($[0] !== props) {
|
|
20
20
|
({
|
|
21
21
|
className,
|
|
@@ -25,17 +25,17 @@ const CodeEditor = props => {
|
|
|
25
25
|
...rest
|
|
26
26
|
} = props);
|
|
27
27
|
$[0] = props;
|
|
28
|
-
$[1] =
|
|
29
|
-
$[2] =
|
|
30
|
-
$[3] =
|
|
31
|
-
$[4] =
|
|
32
|
-
$[5] =
|
|
28
|
+
$[1] = className;
|
|
29
|
+
$[2] = maxHeight;
|
|
30
|
+
$[3] = options;
|
|
31
|
+
$[4] = readOnly;
|
|
32
|
+
$[5] = rest;
|
|
33
33
|
} else {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
className = $[1];
|
|
35
|
+
maxHeight = $[2];
|
|
36
|
+
options = $[3];
|
|
37
|
+
readOnly = $[4];
|
|
38
|
+
rest = $[5];
|
|
39
39
|
}
|
|
40
40
|
const [dynamicHeight, setDynamicHeight] = useState(20);
|
|
41
41
|
const {
|
|
@@ -55,28 +55,24 @@ const CodeEditor = props => {
|
|
|
55
55
|
}
|
|
56
56
|
const classes = t2.join(" ");
|
|
57
57
|
let t3;
|
|
58
|
-
if ($[10] !==
|
|
58
|
+
if ($[10] !== classes || $[11] !== dynamicHeight || $[12] !== maxHeight || $[13] !== options || $[14] !== readOnly || $[15] !== rest || $[16] !== theme) {
|
|
59
59
|
let t4;
|
|
60
|
-
|
|
60
|
+
let t5;
|
|
61
|
+
if ($[18] !== rest) {
|
|
61
62
|
t4 = (value, ev) => {
|
|
62
63
|
rest.onChange?.(value, ev);
|
|
63
64
|
setDynamicHeight(Math.max(56, value.split("\n").length * 18 + 2));
|
|
64
65
|
};
|
|
65
|
-
$[18] = rest.onChange;
|
|
66
|
-
$[19] = t4;
|
|
67
|
-
} else {
|
|
68
|
-
t4 = $[19];
|
|
69
|
-
}
|
|
70
|
-
let t5;
|
|
71
|
-
if ($[20] !== rest.onMount) {
|
|
72
66
|
t5 = (editor, monaco) => {
|
|
73
67
|
rest.onMount?.(editor, monaco);
|
|
74
68
|
setDynamicHeight(Math.max(56, editor.getValue().split("\n").length * 18 + 2));
|
|
75
69
|
};
|
|
76
|
-
$[
|
|
77
|
-
$[
|
|
70
|
+
$[18] = rest;
|
|
71
|
+
$[19] = t4;
|
|
72
|
+
$[20] = t5;
|
|
78
73
|
} else {
|
|
79
|
-
|
|
74
|
+
t4 = $[19];
|
|
75
|
+
t5 = $[20];
|
|
80
76
|
}
|
|
81
77
|
t3 = _jsx(Editor, {
|
|
82
78
|
className: classes,
|
|
@@ -105,13 +101,13 @@ const CodeEditor = props => {
|
|
|
105
101
|
onChange: t4,
|
|
106
102
|
onMount: t5
|
|
107
103
|
});
|
|
108
|
-
$[10] =
|
|
109
|
-
$[11] =
|
|
110
|
-
$[12] =
|
|
111
|
-
$[13] =
|
|
112
|
-
$[14] =
|
|
104
|
+
$[10] = classes;
|
|
105
|
+
$[11] = dynamicHeight;
|
|
106
|
+
$[12] = maxHeight;
|
|
107
|
+
$[13] = options;
|
|
108
|
+
$[14] = readOnly;
|
|
113
109
|
$[15] = rest;
|
|
114
|
-
$[16] =
|
|
110
|
+
$[16] = theme;
|
|
115
111
|
$[17] = t3;
|
|
116
112
|
} else {
|
|
117
113
|
t3 = $[17];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEditor.js","names":["c","_c","EditorImport","React","useState","useTheme","ShimmerEffect","Editor","default","baseClass","CodeEditor","props","$","
|
|
1
|
+
{"version":3,"file":"CodeEditor.js","names":["c","_c","EditorImport","React","useState","useTheme","ShimmerEffect","Editor","default","baseClass","CodeEditor","props","$","className","maxHeight","options","readOnly","rest","dynamicHeight","setDynamicHeight","theme","t0","defaultLanguage","t1","t2","filter","Boolean","classes","join","t3","t4","t5","value","ev","onChange","Math","max","split","length","editor","monaco","onMount","getValue","_jsx","loading","height","scrollbar","alwaysConsumeMouseWheel","scrollBeyondLastLine","tabSize","wordWrap","min"],"sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"sourcesContent":["'use client'\nimport EditorImport from '@monaco-editor/react'\nimport React, { useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTheme } from '../../providers/Theme/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport './index.scss'\n\nconst Editor = (EditorImport.default || EditorImport) as unknown as typeof EditorImport.default\n\nconst baseClass = 'code-editor'\n\nconst CodeEditor: React.FC<Props> = (props) => {\n const { className, maxHeight, options, readOnly, ...rest } = props\n const [dynamicHeight, setDynamicHeight] = useState(20)\n const { theme } = useTheme()\n\n const MIN_HEIGHT = 56 // equivalent to 3 lines\n\n const classes = [\n baseClass,\n className,\n rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : '',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <Editor\n className={classes}\n loading={<ShimmerEffect height={dynamicHeight} />}\n options={{\n detectIndentation: true,\n hideCursorInOverviewRuler: true,\n minimap: {\n enabled: false,\n },\n overviewRulerBorder: false,\n readOnly: Boolean(readOnly),\n scrollbar: {\n alwaysConsumeMouseWheel: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n wordWrap: 'on',\n ...options,\n }}\n theme={theme === 'dark' ? 'vs-dark' : 'vs'}\n {...rest}\n // Since we are not building an IDE and the container\n // can already have scrolling, we want the height of the\n // editor to fit its content.\n // See: https://github.com/microsoft/monaco-editor/discussions/3677\n height={maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight}\n onChange={(value, ev) => {\n rest.onChange?.(value, ev)\n setDynamicHeight(Math.max(MIN_HEIGHT, value.split('\\n').length * 18 + 2))\n }}\n onMount={(editor, monaco) => {\n rest.onMount?.(editor, monaco)\n setDynamicHeight(Math.max(MIN_HEIGHT, editor.getValue().split('\\n').length * 18 + 2))\n }}\n />\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default CodeEditor\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -35,15 +35,15 @@ export const Collapsible = t0 => {
|
|
|
35
35
|
} = useTranslation();
|
|
36
36
|
const isCollapsed = typeof collapsedFromProps === "boolean" ? collapsedFromProps : collapsedLocal;
|
|
37
37
|
let t2;
|
|
38
|
-
if ($[0] !==
|
|
38
|
+
if ($[0] !== isCollapsed || $[1] !== onToggle) {
|
|
39
39
|
t2 = () => {
|
|
40
40
|
if (typeof onToggle === "function") {
|
|
41
41
|
onToggle(!isCollapsed);
|
|
42
42
|
}
|
|
43
43
|
setCollapsedLocal(!isCollapsed);
|
|
44
44
|
};
|
|
45
|
-
$[0] =
|
|
46
|
-
$[1] =
|
|
45
|
+
$[0] = isCollapsed;
|
|
46
|
+
$[1] = onToggle;
|
|
47
47
|
$[2] = t2;
|
|
48
48
|
} else {
|
|
49
49
|
t2 = $[2];
|
|
@@ -90,7 +90,7 @@ export const Collapsible = t0 => {
|
|
|
90
90
|
}
|
|
91
91
|
const t14 = t13.join(" ");
|
|
92
92
|
let t15;
|
|
93
|
-
if ($[14] !==
|
|
93
|
+
if ($[14] !== actions || $[15] !== children || $[16] !== dragHandleProps || $[17] !== header || $[18] !== isCollapsed || $[19] !== t || $[20] !== t14 || $[21] !== t9 || $[22] !== toggleCollapsible) {
|
|
94
94
|
let t16;
|
|
95
95
|
if ($[24] !== dragHandleProps) {
|
|
96
96
|
t16 = dragHandleProps && _jsx("div", {
|
|
@@ -144,15 +144,15 @@ export const Collapsible = t0 => {
|
|
|
144
144
|
})]
|
|
145
145
|
})
|
|
146
146
|
});
|
|
147
|
-
$[14] =
|
|
148
|
-
$[15] =
|
|
149
|
-
$[16] =
|
|
150
|
-
$[17] =
|
|
151
|
-
$[18] =
|
|
152
|
-
$[19] =
|
|
153
|
-
$[20] =
|
|
154
|
-
$[21] =
|
|
155
|
-
$[22] =
|
|
147
|
+
$[14] = actions;
|
|
148
|
+
$[15] = children;
|
|
149
|
+
$[16] = dragHandleProps;
|
|
150
|
+
$[17] = header;
|
|
151
|
+
$[18] = isCollapsed;
|
|
152
|
+
$[19] = t;
|
|
153
|
+
$[20] = t14;
|
|
154
|
+
$[21] = t9;
|
|
155
|
+
$[22] = toggleCollapsible;
|
|
156
156
|
$[23] = t15;
|
|
157
157
|
} else {
|
|
158
158
|
t15 = $[23];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useState","ChevronIcon","DragHandleIcon","useTranslation","AnimateHeight","CollapsibleProvider","useCollapsible","baseClass","Collapsible","t0","$","actions","children","className","collapsibleStyle","t1","dragHandleProps","header","initCollapsed","isCollapsed","collapsedFromProps","onToggle","undefined","collapsedLocal","setCollapsedLocal","Boolean","hoveringToggle","setHoveringToggle","isWithinCollapsible","t","t2","toggleCollapsible","t3","t4","t5","t6","t7","t8","filter","t9","join","t10","t11","Symbol","for","t12","t13","t14","t15","t16","_jsx","attributes","listeners","_jsxs","toggle","onMouseEnter","onMouseLeave","onClick","type","direction","height"],"sources":["../../../src/elements/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\n\nimport type { DragHandleProps } from '../DraggableSortable/DraggableSortableItem/types.js'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { DragHandleIcon } from '../../icons/DragHandle/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { CollapsibleProvider, useCollapsible } from './provider.js'\n\nconst baseClass = 'collapsible'\n\nexport { CollapsibleProvider, useCollapsible }\n\nexport type Props = {\n actions?: React.ReactNode\n children: React.ReactNode\n className?: string\n collapsibleStyle?: 'default' | 'error'\n dragHandleProps?: DragHandleProps\n header?: React.ReactNode\n initCollapsed?: boolean\n isCollapsed?: boolean\n onToggle?: (collapsed: boolean) => Promise<void> | void\n}\n\nexport const Collapsible: React.FC<Props> = ({\n actions,\n children,\n className,\n collapsibleStyle = 'default',\n dragHandleProps,\n header,\n initCollapsed,\n isCollapsed: collapsedFromProps,\n onToggle,\n}) => {\n const [collapsedLocal, setCollapsedLocal] = useState(Boolean(initCollapsed))\n const [hoveringToggle, setHoveringToggle] = useState(false)\n const { isWithinCollapsible } = useCollapsible()\n const { t } = useTranslation()\n\n const isCollapsed = typeof collapsedFromProps === 'boolean' ? collapsedFromProps : collapsedLocal\n\n const toggleCollapsible = React.useCallback(() => {\n if (typeof onToggle === 'function') {\n void onToggle(!isCollapsed)\n }\n setCollapsedLocal(!isCollapsed)\n }, [onToggle, isCollapsed])\n\n return (\n <div\n className={[\n baseClass,\n className,\n dragHandleProps && `${baseClass}--has-drag-handle`,\n isCollapsed && `${baseClass}--collapsed`,\n isWithinCollapsible && `${baseClass}--nested`,\n hoveringToggle && `${baseClass}--hovered`,\n `${baseClass}--style-${collapsibleStyle}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <CollapsibleProvider isCollapsed={isCollapsed} toggle={toggleCollapsible}>\n <div\n className={`${baseClass}__toggle-wrap`}\n onMouseEnter={() => setHoveringToggle(true)}\n onMouseLeave={() => setHoveringToggle(false)}\n >\n <button\n className={[\n `${baseClass}__toggle`,\n `${baseClass}__toggle--${isCollapsed ? 'collapsed' : 'open'}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={toggleCollapsible}\n type=\"button\"\n >\n <span>{t('fields:toggleBlock')}</span>\n </button>\n {dragHandleProps && (\n <div\n className={`${baseClass}__drag`}\n {...dragHandleProps.attributes}\n {...dragHandleProps.listeners}\n >\n <DragHandleIcon />\n </div>\n )}\n {header ? (\n <div\n className={[\n `${baseClass}__header-wrap`,\n dragHandleProps && `${baseClass}__header-wrap--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {header}\n </div>\n ) : null}\n <div className={`${baseClass}__actions-wrap`}>\n {actions ? <div className={`${baseClass}__actions`}>{actions}</div> : null}\n <div className={`${baseClass}__indicator`}>\n <ChevronIcon direction={!isCollapsed ? 'up' : undefined} />\n </div>\n </div>\n </div>\n <AnimateHeight height={isCollapsed ? 0 : 'auto'}>\n <div className={`${baseClass}__content`}>{children}</div>\n </AnimateHeight>\n </CollapsibleProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AACP,SAASC,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,EAAEC,cAAc,QAAQ;AAEpD,MAAMC,SAAA,GAAY;AAElB,SAASF,mBAAmB,EAAEC,cAAc;AAc5C,OAAO,MAAME,WAAA,GAA+BC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAAC;IAAAa,OAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,gBAAA,EAAAC,EAAA;IAAAC,eAAA;IAAAC,MAAA;IAAAC,aAAA;IAAAC,WAAA,EAAAC,kBAAA;IAAAC;EAAA,IAAAZ,EAU5C;EANC,MAAAK,gBAAA,GAAAC,EAA4B,KAAAO,SAAA,GAAT,SAAS,GAA5BP,EAA4B;EAO5B,OAAAQ,cAAA,EAAAC,iBAAA,IAA4CxB,QAAA,CAASyB,OAAA,CAAQP,aAAA;EAC7D,OAAAQ,cAAA,EAAAC,iBAAA,IAA4C3B,QAAA,MAAS;EACrD;IAAA4B;EAAA,IAAgCtB,cAAA;EAChC;IAAAuB;EAAA,IAAc1B,cAAA;EAEd,MAAAgB,WAAA,GAAoB,OAAOC,kBAAA,KAAuB,YAAYA,kBAAA,GAAqBG,cAAA;EAAA,IAAAO,EAAA;EAAA,IAAApB,CAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useState","ChevronIcon","DragHandleIcon","useTranslation","AnimateHeight","CollapsibleProvider","useCollapsible","baseClass","Collapsible","t0","$","actions","children","className","collapsibleStyle","t1","dragHandleProps","header","initCollapsed","isCollapsed","collapsedFromProps","onToggle","undefined","collapsedLocal","setCollapsedLocal","Boolean","hoveringToggle","setHoveringToggle","isWithinCollapsible","t","t2","toggleCollapsible","t3","t4","t5","t6","t7","t8","filter","t9","join","t10","t11","Symbol","for","t12","t13","t14","t15","t16","_jsx","attributes","listeners","_jsxs","toggle","onMouseEnter","onMouseLeave","onClick","type","direction","height"],"sources":["../../../src/elements/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\n\nimport type { DragHandleProps } from '../DraggableSortable/DraggableSortableItem/types.js'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { DragHandleIcon } from '../../icons/DragHandle/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { CollapsibleProvider, useCollapsible } from './provider.js'\n\nconst baseClass = 'collapsible'\n\nexport { CollapsibleProvider, useCollapsible }\n\nexport type Props = {\n actions?: React.ReactNode\n children: React.ReactNode\n className?: string\n collapsibleStyle?: 'default' | 'error'\n dragHandleProps?: DragHandleProps\n header?: React.ReactNode\n initCollapsed?: boolean\n isCollapsed?: boolean\n onToggle?: (collapsed: boolean) => Promise<void> | void\n}\n\nexport const Collapsible: React.FC<Props> = ({\n actions,\n children,\n className,\n collapsibleStyle = 'default',\n dragHandleProps,\n header,\n initCollapsed,\n isCollapsed: collapsedFromProps,\n onToggle,\n}) => {\n const [collapsedLocal, setCollapsedLocal] = useState(Boolean(initCollapsed))\n const [hoveringToggle, setHoveringToggle] = useState(false)\n const { isWithinCollapsible } = useCollapsible()\n const { t } = useTranslation()\n\n const isCollapsed = typeof collapsedFromProps === 'boolean' ? collapsedFromProps : collapsedLocal\n\n const toggleCollapsible = React.useCallback(() => {\n if (typeof onToggle === 'function') {\n void onToggle(!isCollapsed)\n }\n setCollapsedLocal(!isCollapsed)\n }, [onToggle, isCollapsed])\n\n return (\n <div\n className={[\n baseClass,\n className,\n dragHandleProps && `${baseClass}--has-drag-handle`,\n isCollapsed && `${baseClass}--collapsed`,\n isWithinCollapsible && `${baseClass}--nested`,\n hoveringToggle && `${baseClass}--hovered`,\n `${baseClass}--style-${collapsibleStyle}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <CollapsibleProvider isCollapsed={isCollapsed} toggle={toggleCollapsible}>\n <div\n className={`${baseClass}__toggle-wrap`}\n onMouseEnter={() => setHoveringToggle(true)}\n onMouseLeave={() => setHoveringToggle(false)}\n >\n <button\n className={[\n `${baseClass}__toggle`,\n `${baseClass}__toggle--${isCollapsed ? 'collapsed' : 'open'}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={toggleCollapsible}\n type=\"button\"\n >\n <span>{t('fields:toggleBlock')}</span>\n </button>\n {dragHandleProps && (\n <div\n className={`${baseClass}__drag`}\n {...dragHandleProps.attributes}\n {...dragHandleProps.listeners}\n >\n <DragHandleIcon />\n </div>\n )}\n {header ? (\n <div\n className={[\n `${baseClass}__header-wrap`,\n dragHandleProps && `${baseClass}__header-wrap--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {header}\n </div>\n ) : null}\n <div className={`${baseClass}__actions-wrap`}>\n {actions ? <div className={`${baseClass}__actions`}>{actions}</div> : null}\n <div className={`${baseClass}__indicator`}>\n <ChevronIcon direction={!isCollapsed ? 'up' : undefined} />\n </div>\n </div>\n </div>\n <AnimateHeight height={isCollapsed ? 0 : 'auto'}>\n <div className={`${baseClass}__content`}>{children}</div>\n </AnimateHeight>\n </CollapsibleProvider>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -33,7 +33,7 @@ export const ColumnSelector = t0 => {
|
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
35
|
let t1;
|
|
36
|
-
if ($[0] !==
|
|
36
|
+
if ($[0] !== collectionSlug || $[1] !== columns || $[2] !== editDepth || $[3] !== moveColumn || $[4] !== toggleColumn || $[5] !== uuid) {
|
|
37
37
|
const filteredColumns = filterColumnFields(columns);
|
|
38
38
|
let t2;
|
|
39
39
|
if ($[7] !== moveColumn) {
|
|
@@ -53,7 +53,7 @@ export const ColumnSelector = t0 => {
|
|
|
53
53
|
t2 = $[8];
|
|
54
54
|
}
|
|
55
55
|
let t3;
|
|
56
|
-
if ($[9] !==
|
|
56
|
+
if ($[9] !== collectionSlug || $[10] !== editDepth || $[11] !== toggleColumn || $[12] !== uuid) {
|
|
57
57
|
t3 = (col_0, i) => {
|
|
58
58
|
if (!col_0) {
|
|
59
59
|
return null;
|
|
@@ -82,9 +82,9 @@ export const ColumnSelector = t0 => {
|
|
|
82
82
|
})
|
|
83
83
|
}, `${collectionSlug}-${field && "name" in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ""}${uuid}`);
|
|
84
84
|
};
|
|
85
|
-
$[9] =
|
|
86
|
-
$[10] =
|
|
87
|
-
$[11] =
|
|
85
|
+
$[9] = collectionSlug;
|
|
86
|
+
$[10] = editDepth;
|
|
87
|
+
$[11] = toggleColumn;
|
|
88
88
|
$[12] = uuid;
|
|
89
89
|
$[13] = t3;
|
|
90
90
|
} else {
|
|
@@ -96,11 +96,11 @@ export const ColumnSelector = t0 => {
|
|
|
96
96
|
onDragEnd: t2,
|
|
97
97
|
children: filteredColumns.map(t3)
|
|
98
98
|
});
|
|
99
|
-
$[0] =
|
|
100
|
-
$[1] =
|
|
101
|
-
$[2] =
|
|
102
|
-
$[3] =
|
|
103
|
-
$[4] =
|
|
99
|
+
$[0] = collectionSlug;
|
|
100
|
+
$[1] = columns;
|
|
101
|
+
$[2] = editDepth;
|
|
102
|
+
$[3] = moveColumn;
|
|
103
|
+
$[4] = toggleColumn;
|
|
104
104
|
$[5] = uuid;
|
|
105
105
|
$[6] = t1;
|
|
106
106
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useId","FieldLabel","PlusIcon","XIcon","useEditDepth","DraggableSortable","Pill","useTableColumns","baseClass","filterColumnFields","columns","filter","field","admin","disableListColumn","ColumnSelector","t0","$","collectionSlug","moveColumn","toggleColumn","uuid","editDepth","t1","filteredColumns","t2","t3","moveFromIndex","moveToIndex","fromIndex","toIndex","col_0","i","col","accessor","active","CustomLabel","undefined","_jsx","alignIcon","className","Boolean","join","draggable","icon","id","onClick","children","label","unstyled","name","ids","map","_temp","onDragEnd"],"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport React, { useId } from 'react'\n\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport './index.scss'\n\nconst baseClass = 'column-selector'\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nconst filterColumnFields = (columns: Column[]): Column[] => {\n return columns.filter((c) => {\n return !c?.field?.admin?.disableListColumn\n })\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n\n if (!columns) {\n return null\n }\n\n const filteredColumns = filterColumnFields(columns)\n\n return (\n <DraggableSortable\n className={baseClass}\n ids={filteredColumns.map((col) => col?.accessor)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n void moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n }}\n >\n {filteredColumns.map((col, i) => {\n if (!col) {\n return null\n }\n\n const { accessor, active, field } = col\n\n if (\n col.accessor === '_select' ||\n !field ||\n col.CustomLabel === null ||\n (col.CustomLabel === undefined && !('label' in field))\n ) {\n return null\n }\n\n return (\n <Pill\n alignIcon=\"left\"\n aria-checked={active}\n className={[`${baseClass}__column`, active && `${baseClass}__column--active`]\n .filter(Boolean)\n .join(' ')}\n draggable\n icon={active ? <XIcon /> : <PlusIcon />}\n id={accessor}\n key={`${collectionSlug}-${field && 'name' in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ''}${uuid}`}\n onClick={() => {\n void toggleColumn(accessor)\n }}\n >\n {col.CustomLabel ?? <FieldLabel label={'label' in field && field.label} unstyled />}\n </Pill>\n )\n })}\n </DraggableSortable>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,KAAK,QAAQ;AAI7B,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,QAAQ;AACzB,SAASC,KAAK,QAAQ;AACtB,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,IAAI,QAAQ;AACrB,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAMlB,MAAMC,kBAAA,GAAsBC,OAAA;EAC1B,OAAOA,OAAA,CAAQC,MAAM,CAAEd,CAAA;IACrB,OAAO,CAACA,CAAA,EAAGe,KAAA,EAAOC,KAAA,EAAOC,iBAAA;EAC3B;AACF;AAEA,OAAO,MAAMC,cAAA,GAAkCC,EAAA;EAAA,MAAAC,CAAA,GAAAnB,EAAA;EAAC;IAAAoB;EAAA,IAAAF,EAAkB;EAChE;IAAAN,OAAA;IAAAS,UAAA;IAAAC;EAAA,IAA8Cb,eAAA;EAE9C,MAAAc,IAAA,GAAarB,KAAA;EACb,MAAAsB,SAAA,GAAkBlB,YAAA;EAAA,KAEbM,OAAA;IAAA;EAAA;EAAA,IAAAa,EAAA;EAAA,IAAAN,CAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useId","FieldLabel","PlusIcon","XIcon","useEditDepth","DraggableSortable","Pill","useTableColumns","baseClass","filterColumnFields","columns","filter","field","admin","disableListColumn","ColumnSelector","t0","$","collectionSlug","moveColumn","toggleColumn","uuid","editDepth","t1","filteredColumns","t2","t3","moveFromIndex","moveToIndex","fromIndex","toIndex","col_0","i","col","accessor","active","CustomLabel","undefined","_jsx","alignIcon","className","Boolean","join","draggable","icon","id","onClick","children","label","unstyled","name","ids","map","_temp","onDragEnd"],"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport React, { useId } from 'react'\n\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport './index.scss'\n\nconst baseClass = 'column-selector'\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nconst filterColumnFields = (columns: Column[]): Column[] => {\n return columns.filter((c) => {\n return !c?.field?.admin?.disableListColumn\n })\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n\n if (!columns) {\n return null\n }\n\n const filteredColumns = filterColumnFields(columns)\n\n return (\n <DraggableSortable\n className={baseClass}\n ids={filteredColumns.map((col) => col?.accessor)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n void moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n }}\n >\n {filteredColumns.map((col, i) => {\n if (!col) {\n return null\n }\n\n const { accessor, active, field } = col\n\n if (\n col.accessor === '_select' ||\n !field ||\n col.CustomLabel === null ||\n (col.CustomLabel === undefined && !('label' in field))\n ) {\n return null\n }\n\n return (\n <Pill\n alignIcon=\"left\"\n aria-checked={active}\n className={[`${baseClass}__column`, active && `${baseClass}__column--active`]\n .filter(Boolean)\n .join(' ')}\n draggable\n icon={active ? <XIcon /> : <PlusIcon />}\n id={accessor}\n key={`${collectionSlug}-${field && 'name' in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ''}${uuid}`}\n onClick={() => {\n void toggleColumn(accessor)\n }}\n >\n {col.CustomLabel ?? <FieldLabel label={'label' in field && field.label} unstyled />}\n </Pill>\n )\n })}\n </DraggableSortable>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAKvC,OAAO,gBAAgB,CAAA;AACvB,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuH/B,CAAA;AAGD,eAAe,UAAU,CAAA"}
|
|
@@ -8,9 +8,9 @@ const ReactDatePicker = ReactDatePickerDefaultImport.default || ReactDatePickerD
|
|
|
8
8
|
import { CalendarIcon } from '../../icons/Calendar/index.js';
|
|
9
9
|
import { XIcon } from '../../icons/X/index.js';
|
|
10
10
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
11
|
-
import { getFormattedLocale } from './getFormattedLocale.js';
|
|
12
11
|
import './library.scss';
|
|
13
12
|
import './index.scss';
|
|
13
|
+
import { getFormattedLocale } from './getFormattedLocale.js';
|
|
14
14
|
const baseClass = 'date-time-picker';
|
|
15
15
|
const DatePicker = props => {
|
|
16
16
|
const $ = _c(11);
|
|
@@ -60,7 +60,7 @@ const DatePicker = props => {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
let t4;
|
|
63
|
-
if ($[0] !==
|
|
63
|
+
if ($[0] !== onChangeFromProps || $[1] !== pickerAppearance) {
|
|
64
64
|
t4 = incomingDate => {
|
|
65
65
|
const newDate = incomingDate;
|
|
66
66
|
if (newDate instanceof Date && ["dayOnly", "default", "monthOnly"].includes(pickerAppearance)) {
|
|
@@ -71,8 +71,8 @@ const DatePicker = props => {
|
|
|
71
71
|
onChangeFromProps(newDate);
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
|
-
$[0] =
|
|
75
|
-
$[1] =
|
|
74
|
+
$[0] = onChangeFromProps;
|
|
75
|
+
$[1] = pickerAppearance;
|
|
76
76
|
$[2] = t4;
|
|
77
77
|
} else {
|
|
78
78
|
t4 = $[2];
|