@payloadcms/ui 3.0.0-beta.95 → 3.0.0-beta.97
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 +1 -1
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AppHeader/index.js +5 -5
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +6 -2
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Banner/index.d.ts.map +1 -1
- package/dist/elements/Banner/index.js +6 -2
- package/dist/elements/Banner/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.scss +4 -4
- package/dist/elements/BulkUpload/AddFilesView/index.js +1 -0
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.scss +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +8 -4
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.scss +8 -10
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +3 -1
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +1 -1
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +39 -31
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.d.ts +2 -2
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/Card/index.d.ts +1 -1
- package/dist/elements/Card/index.d.ts.map +1 -1
- package/dist/elements/Card/index.js +2 -2
- package/dist/elements/Card/index.js.map +1 -1
- package/dist/elements/CodeEditor/index.js +1 -1
- package/dist/elements/CodeEditor/index.js.map +1 -1
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
- package/dist/elements/ColumnSelector/index.js +2 -2
- 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.map +1 -1
- package/dist/elements/DatePicker/index.js +1 -1
- package/dist/elements/DatePicker/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js +1 -1
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +3 -3
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +1 -1
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/index.js +1 -1
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/Drawer/index.d.ts.map +1 -1
- package/dist/elements/Drawer/index.js +1 -1
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/Drawer/types.d.ts +1 -1
- package/dist/elements/Drawer/types.d.ts.map +1 -1
- package/dist/elements/Drawer/types.js.map +1 -1
- package/dist/elements/Dropzone/index.scss +1 -1
- package/dist/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/elements/EditUpload/index.js +23 -11
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/ErrorPill/index.d.ts.map +1 -1
- package/dist/elements/ErrorPill/index.js +3 -1
- package/dist/elements/ErrorPill/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.d.ts.map +1 -1
- package/dist/elements/FieldSelect/index.js +3 -1
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +41 -41
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/index.js +1 -1
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListDrawer/index.scss +1 -1
- package/dist/elements/Localizer/index.d.ts.map +1 -1
- package/dist/elements/Localizer/index.js +1 -1
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Logout/index.js +1 -1
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/Pagination/index.d.ts.map +1 -1
- package/dist/elements/Pagination/index.js +20 -10
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/PerPage/index.d.ts.map +1 -1
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/Pill/index.d.ts.map +1 -1
- package/dist/elements/Pill/index.js +11 -5
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js +3 -1
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +4 -2
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.js +18 -6
- package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
- package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
- package/dist/elements/PreviewSizes/index.js +15 -5
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +6 -4
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/DropdownIndicator/index.js +3 -1
- package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +5 -3
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/SaveButton/index.d.ts.map +1 -1
- package/dist/elements/SaveButton/index.js +5 -3
- package/dist/elements/SaveButton/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
- package/dist/elements/SaveDraftButton/index.js +12 -6
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.d.ts.map +1 -1
- package/dist/elements/SearchFilter/index.js +3 -1
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.d.ts +4 -4
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +20 -34
- 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.map +1 -1
- package/dist/elements/StepNav/index.d.ts +1 -1
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +2 -2
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.scss +5 -5
- package/dist/elements/Table/DefaultCell/fields/index.d.ts +1 -1
- package/dist/elements/Table/DefaultCell/fields/index.js +1 -1
- package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.d.ts +1 -1
- package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/Table/index.d.ts +2 -2
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +21 -16
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js +16 -12
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/index.js +11 -33
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts +1 -1
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +1 -1
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/Tooltip/index.d.ts.map +1 -1
- 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 +1 -1
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +37 -32
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/index.scss +27 -1
- package/dist/elements/ViewDescription/index.d.ts +1 -1
- package/dist/elements/ViewDescription/index.d.ts.map +1 -1
- package/dist/elements/ViewDescription/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/reduceClientFields.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/reduceClientFields.js +3 -1
- package/dist/elements/WhereBuilder/reduceClientFields.js.map +1 -1
- package/dist/elements/WhereBuilder/types.d.ts +1 -1
- package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/elements/WindowInfo/index.d.ts +2 -2
- package/dist/elements/WindowInfo/index.d.ts.map +1 -1
- package/dist/elements/WindowInfo/index.js +2 -2
- package/dist/elements/WindowInfo/index.js.map +1 -1
- package/dist/elements/WithServerSideProps/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-P66JEENA.js → CodeEditor-CHKRX3U2.js} +4 -4
- package/dist/exports/client/{CodeEditor-P66JEENA.js.map → CodeEditor-CHKRX3U2.js.map} +4 -4
- package/dist/exports/client/{DatePicker-E6IJFDN2.js → DatePicker-OLRZVTAD.js} +2 -2
- package/dist/exports/client/{chunk-XKP472RX.js → chunk-BGA6EPOL.js} +1 -1
- package/dist/exports/client/{chunk-XKP472RX.js.map → chunk-BGA6EPOL.js.map} +2 -2
- package/dist/exports/client/{chunk-OBXEO4WP.js → chunk-JINNHJP7.js} +1 -1
- package/dist/exports/client/{chunk-OBXEO4WP.js.map → chunk-JINNHJP7.js.map} +2 -2
- package/dist/exports/client/index.d.ts +2 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +19 -19
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +2 -2
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/fields/Array/ArrayRow.d.ts +1 -1
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +6 -6
- 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 +2 -2
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +4 -4
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js +3 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/RowActions.d.ts +1 -1
- package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
- package/dist/fields/Blocks/RowActions.js +1 -1
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/index.js +1 -1
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.d.ts +1 -1
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js +2 -2
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.d.ts +1 -1
- package/dist/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/fields/Checkbox/index.js +2 -2
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.js +1 -1
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +1 -1
- 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 +1 -1
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.js +1 -1
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/Group/index.js +1 -1
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +17 -9
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Number/index.js +1 -1
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.js +3 -3
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Password/input.js +7 -7
- package/dist/fields/Password/input.js.map +1 -1
- package/dist/fields/Password/types.d.ts +3 -3
- package/dist/fields/Password/types.d.ts.map +1 -1
- package/dist/fields/Password/types.js.map +1 -1
- package/dist/fields/Point/index.js +1 -1
- 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 +2 -2
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/createRelationMap.d.ts +1 -1
- package/dist/fields/Relationship/createRelationMap.d.ts.map +1 -1
- package/dist/fields/Relationship/createRelationMap.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +10 -4
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/types.d.ts +1 -1
- package/dist/fields/Relationship/types.d.ts.map +1 -1
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/Select/Input.d.ts +3 -3
- package/dist/fields/Select/Input.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +7 -7
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.d.ts.map +1 -1
- package/dist/fields/Select/index.js +11 -9
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +1 -1
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/Input.js +7 -7
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.d.ts +1 -1
- package/dist/fields/Text/index.d.ts.map +1 -1
- package/dist/fields/Text/index.js +4 -4
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Text/types.d.ts +3 -3
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Textarea/Input.js +7 -7
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.d.ts +2 -2
- package/dist/fields/Textarea/index.d.ts.map +1 -1
- package/dist/fields/Textarea/index.js +4 -4
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Textarea/types.d.ts +3 -3
- package/dist/fields/Textarea/types.d.ts.map +1 -1
- package/dist/fields/Textarea/types.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.scss +0 -1
- package/dist/fields/Upload/Input.d.ts +3 -3
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +578 -271
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +13 -8
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.scss +6 -3
- package/dist/fields/Upload/UploadCard/index.scss +3 -3
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +35 -31
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/Upload/index.scss +8 -6
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +6 -2
- 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 +20 -8
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +3 -1
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/rowHelpers.d.ts.map +1 -1
- package/dist/forms/Form/rowHelpers.js +9 -3
- package/dist/forms/Form/rowHelpers.js.map +1 -1
- package/dist/forms/Form/rows.d.ts.map +1 -1
- package/dist/forms/Form/rows.js +3 -1
- package/dist/forms/Form/rows.js.map +1 -1
- package/dist/forms/Form/types.d.ts +1 -1
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/NullifyField/index.d.ts.map +1 -1
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +4 -2
- 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 +1 -1
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RowLabel/index.js +1 -1
- package/dist/forms/RowLabel/index.js.map +1 -1
- package/dist/forms/RowLabel/types.d.ts +1 -1
- package/dist/forms/RowLabel/types.d.ts.map +1 -1
- package/dist/forms/RowLabel/types.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +6 -2
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
- package/dist/graphics/Account/index.d.ts.map +1 -1
- package/dist/graphics/Account/index.js +1 -1
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/hooks/useHotkey.d.ts.map +1 -1
- package/dist/hooks/useHotkey.js.map +1 -1
- package/dist/hooks/useIntersect.d.ts.map +1 -1
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/providers/Auth/index.d.ts +1 -1
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +6 -2
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Config/RenderComponent.d.ts +1 -1
- package/dist/providers/Config/RenderComponent.d.ts.map +1 -1
- package/dist/providers/Config/RenderComponent.js +2 -2
- package/dist/providers/Config/RenderComponent.js.map +1 -1
- package/dist/providers/Config/createClientConfig/collections.d.ts +6 -6
- package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/collections.js +9 -7
- package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
- package/dist/providers/Config/createClientConfig/getComponent.d.ts +1 -1
- package/dist/providers/Config/createClientConfig/getComponent.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/getComponent.js +2 -2
- package/dist/providers/Config/createClientConfig/getComponent.js.map +1 -1
- package/dist/providers/Config/createClientConfig/getCreateMappedComponent.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/getCreateMappedComponent.js +3 -1
- package/dist/providers/Config/createClientConfig/getCreateMappedComponent.js.map +1 -1
- package/dist/providers/Config/createClientConfig/globals.d.ts +4 -4
- package/dist/providers/Config/createClientConfig/globals.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/globals.js +3 -3
- package/dist/providers/Config/createClientConfig/globals.js.map +1 -1
- package/dist/providers/Config/createClientConfig/index.d.ts +3 -3
- package/dist/providers/Config/createClientConfig/index.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/index.js +5 -5
- package/dist/providers/Config/createClientConfig/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +12 -4
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +2 -2
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/ListInfo/index.d.ts +2 -2
- package/dist/providers/ListInfo/index.d.ts.map +1 -1
- package/dist/providers/ListInfo/index.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts +6 -6
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +6 -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.map +1 -1
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js +3 -1
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts +1 -1
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/WindowInfo/index.d.ts +1 -1
- package/dist/providers/WindowInfo/index.d.ts.map +1 -1
- package/dist/providers/WindowInfo/index.js +1 -1
- package/dist/providers/WindowInfo/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +6 -2
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/reduceFieldsToValuesWithValidation.d.ts.map +1 -1
- package/dist/utilities/reduceFieldsToValuesWithValidation.js +6 -2
- package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
- package/package.json +8 -8
- /package/dist/exports/client/{DatePicker-E6IJFDN2.js.map → DatePicker-OLRZVTAD.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderField.d.ts","sourceRoot":"","sources":["../../../src/forms/RenderFields/RenderField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE5D,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC7B,KAAK,EAAE,WAAW,CAAA;QAClB,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAA;KACtC,CAAA;CACF,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"RenderField.d.ts","sourceRoot":"","sources":["../../../src/forms/RenderFields/RenderField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE5D,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC7B,KAAK,EAAE,WAAW,CAAA;QAClB,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAA;KACtC,CAAA;CACF,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsFvC,CAAA"}
|
|
@@ -34,7 +34,9 @@ export const RenderField = ({
|
|
|
34
34
|
// `admin.readOnly` displays the value but prevents the field from being edited
|
|
35
35
|
fieldComponentProps.readOnly = fieldComponentProps?.field?.admin?.readOnly;
|
|
36
36
|
// if parent field is `readOnly: true`, but this field is `readOnly: false`, the field should still be editable
|
|
37
|
-
if (readOnlyFromContext && fieldComponentProps.readOnly !== false)
|
|
37
|
+
if (readOnlyFromContext && fieldComponentProps.readOnly !== false) {
|
|
38
|
+
fieldComponentProps.readOnly = true;
|
|
39
|
+
}
|
|
38
40
|
// if the user does not have access control to begin with, force it to be read-only
|
|
39
41
|
if (permissions?.[operation]?.permission === false) {
|
|
40
42
|
fieldComponentProps.readOnly = true;
|
|
@@ -52,12 +54,12 @@ export const RenderField = ({
|
|
|
52
54
|
});
|
|
53
55
|
} else {
|
|
54
56
|
RenderedField = /*#__PURE__*/_jsx(RenderComponent, {
|
|
55
|
-
Component: fieldComponents?.[fieldComponentProps?.field?.type],
|
|
56
57
|
clientProps: {
|
|
57
58
|
field: fieldComponentProps.field,
|
|
58
59
|
forceRender: fieldComponentProps.forceRender,
|
|
59
60
|
readOnly: fieldComponentProps.readOnly
|
|
60
61
|
},
|
|
62
|
+
Component: fieldComponents?.[fieldComponentProps?.field?.type],
|
|
61
63
|
mappedComponent: fieldComponentProps?.field?.admin?.components?.Field
|
|
62
64
|
});
|
|
63
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderField.js","names":["React","HiddenField","RenderComponent","useFieldComponents","useOperation","FieldPropsProvider","useFieldProps","RenderField","name","fieldComponentProps","indexPath","path","pathFromProps","permissions","schemaPath","schemaPathFromProps","siblingPermissions","fieldComponents","operation","readOnly","readOnlyFromContext","filter","Boolean","join","read","permission","field","admin","disabled","RenderedField","components","Field","hidden","_jsx","forceRender","
|
|
1
|
+
{"version":3,"file":"RenderField.js","names":["React","HiddenField","RenderComponent","useFieldComponents","useOperation","FieldPropsProvider","useFieldProps","RenderField","name","fieldComponentProps","indexPath","path","pathFromProps","permissions","schemaPath","schemaPathFromProps","siblingPermissions","fieldComponents","operation","readOnly","readOnlyFromContext","filter","Boolean","join","read","permission","field","admin","disabled","RenderedField","components","Field","hidden","_jsx","forceRender","clientProps","Component","type","mappedComponent","custom"],"sources":["../../../src/forms/RenderFields/RenderField.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientField, FieldPermissions } from 'payload'\n\nimport React from 'react'\n\nimport { HiddenField } from '../../fields/Hidden/index.js'\nimport { RenderComponent } from '../../providers/Config/RenderComponent.js'\nimport { useFieldComponents } from '../../providers/FieldComponents/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { FieldPropsProvider, useFieldProps } from '../FieldPropsProvider/index.js'\n\ntype Props = {\n readonly fieldComponentProps?: {\n field: ClientField\n forceRender?: boolean\n readOnly?: boolean\n }\n readonly indexPath?: string\n readonly isHidden?: boolean\n readonly name?: string\n readonly path: string\n readonly permissions?: FieldPermissions\n readonly schemaPath: string\n readonly siblingPermissions: {\n [fieldName: string]: FieldPermissions\n }\n}\n\nexport const RenderField: React.FC<Props> = ({\n name,\n fieldComponentProps,\n indexPath,\n path: pathFromProps,\n permissions,\n schemaPath: schemaPathFromProps,\n siblingPermissions,\n}) => {\n const fieldComponents = useFieldComponents()\n const operation = useOperation()\n const { readOnly: readOnlyFromContext } = useFieldProps()\n\n if (!fieldComponents) {\n return null\n }\n\n const path = [pathFromProps, name].filter(Boolean).join('.')\n const schemaPath = [schemaPathFromProps, name].filter(Boolean).join('.')\n\n // if the user cannot read the field, then filter it out\n // this is different from `admin.readOnly` which is executed based on `operation`\n if (permissions?.read?.permission === false || fieldComponentProps?.field?.admin?.disabled) {\n return null\n }\n\n // `admin.readOnly` displays the value but prevents the field from being edited\n fieldComponentProps.readOnly = fieldComponentProps?.field?.admin?.readOnly\n\n // if parent field is `readOnly: true`, but this field is `readOnly: false`, the field should still be editable\n if (readOnlyFromContext && fieldComponentProps.readOnly !== false) {\n fieldComponentProps.readOnly = true\n }\n\n // if the user does not have access control to begin with, force it to be read-only\n if (permissions?.[operation]?.permission === false) {\n fieldComponentProps.readOnly = true\n }\n\n let RenderedField: React.ReactElement\n\n if (fieldComponentProps?.field?.admin?.components?.Field === null) {\n return null\n }\n\n // hide from admin if field is `admin.hidden: true`\n if (\n 'admin' in fieldComponentProps.field &&\n 'hidden' in fieldComponentProps.field.admin &&\n fieldComponentProps.field.admin.hidden\n ) {\n RenderedField = (\n <HiddenField\n field={fieldComponentProps.field}\n forceRender={fieldComponentProps.forceRender}\n readOnly={fieldComponentProps.readOnly}\n />\n )\n } else {\n RenderedField = (\n <RenderComponent\n clientProps={{\n field: fieldComponentProps.field,\n forceRender: fieldComponentProps.forceRender,\n readOnly: fieldComponentProps.readOnly,\n }}\n Component={fieldComponents?.[fieldComponentProps?.field?.type]}\n mappedComponent={fieldComponentProps?.field?.admin?.components?.Field}\n />\n )\n }\n\n return (\n <FieldPropsProvider\n custom={fieldComponentProps?.field?.admin?.custom}\n indexPath={indexPath}\n path={path}\n permissions={permissions}\n readOnly={fieldComponentProps.readOnly}\n schemaPath={schemaPath}\n siblingPermissions={siblingPermissions}\n type={fieldComponentProps?.field?.type}\n >\n {RenderedField}\n </FieldPropsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/RenderFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/RenderFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,cAAc,CAAA;AAKrB,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqExC,CAAA"}
|
|
@@ -5,8 +5,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { useIntersect } from '../../hooks/useIntersect.js';
|
|
7
7
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
8
|
-
import { RenderField } from './RenderField.js';
|
|
9
8
|
import './index.scss';
|
|
9
|
+
import { RenderField } from './RenderField.js';
|
|
10
10
|
const baseClass = 'render-fields';
|
|
11
11
|
export const RenderFields = props => {
|
|
12
12
|
const $ = _c(21);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useIntersect","useTranslation","RenderField","baseClass","RenderFields","props","$","className","fields","forceRender","indexPath","margins","path","permissions","schemaPath","i18n","hasRendered","setHasRendered","useState","Boolean","t0","Symbol","for","rootMargin","intersectionRef","entry","isIntersecting","isAboveViewport","boundingClientRect","top","shouldRender","t1","t2","useEffect","Array","isArray","length","console","error","t3","t4","t5","filter","t6","join","t7","map","field","fieldIndex","forceRenderChildren","name","undefined","_jsx","fieldComponentProps","siblingPermissions","t8","ref","children"],"sources":["../../../src/forms/RenderFields/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RenderField } from './RenderField.js'\
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useIntersect","useTranslation","RenderField","baseClass","RenderFields","props","$","className","fields","forceRender","indexPath","margins","path","permissions","schemaPath","i18n","hasRendered","setHasRendered","useState","Boolean","t0","Symbol","for","rootMargin","intersectionRef","entry","isIntersecting","isAboveViewport","boundingClientRect","top","shouldRender","t1","t2","useEffect","Array","isArray","length","console","error","t3","t4","t5","filter","t6","join","t7","map","field","fieldIndex","forceRenderChildren","name","undefined","_jsx","fieldComponentProps","siblingPermissions","t8","ref","children"],"sources":["../../../src/forms/RenderFields/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { RenderField } from './RenderField.js'\n\nconst baseClass = 'render-fields'\n\nexport { Props }\n\nexport const RenderFields: React.FC<Props> = (props) => {\n const { className, fields, forceRender, indexPath, margins, path, permissions, schemaPath } =\n props\n\n const { i18n } = useTranslation()\n const [hasRendered, setHasRendered] = React.useState(Boolean(forceRender))\n const [intersectionRef, entry] = useIntersect(\n {\n rootMargin: '1000px',\n },\n Boolean(forceRender),\n )\n\n const isIntersecting = Boolean(entry?.isIntersecting)\n const isAboveViewport = entry?.boundingClientRect?.top < 0\n const shouldRender = forceRender || isIntersecting || isAboveViewport\n\n React.useEffect(() => {\n if (shouldRender && !hasRendered) {\n setHasRendered(true)\n }\n }, [shouldRender, hasRendered])\n\n if (!fields || (Array.isArray(fields) && fields.length === 0)) {\n return null\n }\n\n if (!i18n) {\n console.error('Need to implement i18n when calling RenderFields') // eslint-disable-line no-console\n }\n\n if (fields) {\n return (\n <div\n className={[\n baseClass,\n className,\n margins && `${baseClass}--margins-${margins}`,\n margins === false && `${baseClass}--margins-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={intersectionRef}\n >\n {hasRendered &&\n fields?.map((field, fieldIndex) => {\n const forceRenderChildren =\n (typeof forceRender === 'number' && fieldIndex <= forceRender) || true\n\n const name = 'name' in field ? field.name : undefined\n\n return (\n <RenderField\n fieldComponentProps={{ field, forceRender: forceRenderChildren }}\n indexPath={indexPath !== undefined ? `${indexPath}.${fieldIndex}` : `${fieldIndex}`}\n key={fieldIndex}\n name={name}\n path={path}\n permissions={permissions?.[name]}\n schemaPath={schemaPath}\n siblingPermissions={permissions}\n />\n )\n })}\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,10 +8,10 @@ import { RowLabelProvider } from '../RowLabel/Context/index.js';
|
|
|
8
8
|
const baseClass = 'row-label';
|
|
9
9
|
export const RowLabel = props => {
|
|
10
10
|
const {
|
|
11
|
-
RowLabel: RowLabelComponent,
|
|
12
11
|
className,
|
|
13
12
|
i18n,
|
|
14
13
|
path,
|
|
14
|
+
RowLabel: RowLabelComponent,
|
|
15
15
|
rowLabel,
|
|
16
16
|
rowNumber
|
|
17
17
|
} = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","React","RenderComponent","RowLabelProvider","baseClass","RowLabel","props","
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","React","RenderComponent","RowLabelProvider","baseClass","RowLabel","props","className","i18n","path","RowLabelComponent","rowLabel","rowNumber","_jsx","clientProps","label","mappedComponent","filter","Boolean","join","style","pointerEvents"],"sources":["../../../src/forms/RowLabel/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { RowLabelProps } from './types.js'\nexport type { RowLabelProps }\n\nimport { RenderComponent } from '../../providers/Config/RenderComponent.js'\nimport { RowLabelProvider } from '../RowLabel/Context/index.js'\n\nconst baseClass = 'row-label'\n\nexport const RowLabel: React.FC<RowLabelProps> = (props) => {\n const { className, i18n, path, RowLabel: RowLabelComponent, rowLabel, rowNumber } = props\n\n if (RowLabelComponent) {\n return (\n <RowLabelProvider path={path} rowNumber={rowNumber}>\n <RenderComponent clientProps={{ label: rowLabel }} mappedComponent={RowLabelComponent} />\n </RowLabelProvider>\n )\n }\n\n const label = rowLabel\n ? typeof rowLabel === 'object'\n ? getTranslation(rowLabel, i18n)\n : typeof rowLabel === 'string'\n ? rowLabel\n : ''\n : ''\n\n return (\n <span\n className={[baseClass, className].filter(Boolean).join(' ')}\n style={{\n pointerEvents: 'none',\n }}\n >\n {label}\n </span>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAKlB,SAASC,eAAe,QAAQ;AAChC,SAASC,gBAAgB,QAAQ;AAEjC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAAqCC,KAAA;EAChD,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,IAAI;IAAEJ,QAAA,EAAUK,iBAAiB;IAAEC,QAAQ;IAAEC;EAAS,CAAE,GAAGN,KAAA;EAEpF,IAAII,iBAAA,EAAmB;IACrB,oBACEG,IAAA,CAACV,gBAAA;MAAiBM,IAAA,EAAMA,IAAA;MAAMG,SAAA,EAAWA,SAAA;gBACvC,aAAAC,IAAA,CAACX,eAAA;QAAgBY,WAAA,EAAa;UAAEC,KAAA,EAAOJ;QAAS;QAAGK,eAAA,EAAiBN;;;EAG1E;EAEA,MAAMK,KAAA,GAAQJ,QAAA,GACV,OAAOA,QAAA,KAAa,WAClBX,cAAA,CAAeW,QAAA,EAAUH,IAAA,IACzB,OAAOG,QAAA,KAAa,WAClBA,QAAA,GACA,KACJ;EAEJ,oBACEE,IAAA,CAAC;IACCN,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACU,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;IACvDC,KAAA,EAAO;MACLC,aAAA,EAAe;IACjB;cAECN;;AAGP","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { I18nClient } from '@payloadcms/translations';
|
|
2
2
|
import type { MappedComponent, StaticLabel } from 'payload';
|
|
3
3
|
export type RowLabelProps = {
|
|
4
|
-
readonly RowLabel?: MappedComponent;
|
|
5
4
|
readonly className?: string;
|
|
6
5
|
readonly i18n: I18nClient;
|
|
7
6
|
readonly path: string;
|
|
7
|
+
readonly RowLabel?: MappedComponent;
|
|
8
8
|
readonly rowLabel?: StaticLabel;
|
|
9
9
|
readonly rowNumber?: number;
|
|
10
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/RowLabel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/RowLabel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/RowLabel/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { MappedComponent, StaticLabel } from 'payload'\n\nexport type RowLabelProps = {\n readonly
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/RowLabel/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { MappedComponent, StaticLabel } from 'payload'\n\nexport type RowLabelProps = {\n readonly className?: string\n readonly i18n: I18nClient\n readonly path: string\n readonly RowLabel?: MappedComponent\n readonly rowLabel?: StaticLabel\n readonly rowNumber?: number\n}\n"],"mappings":"AAGA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/forms/buildStateFromSchema/calculateDefaultValues/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAO5D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,WAAW,EAAE,IAAI,CAAA;IACjB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAGD,eAAO,MAAM,mBAAmB,GAAU,CAAC,mDAOxC,IAAI,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/forms/buildStateFromSchema/calculateDefaultValues/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAO5D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,WAAW,EAAE,IAAI,CAAA;IACjB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAGD,eAAO,MAAM,mBAAmB,GAAU,CAAC,mDAOxC,IAAI,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,IAAI,CA+IxB,CAAA"}
|
|
@@ -24,7 +24,9 @@ export const defaultValuePromise = async ({
|
|
|
24
24
|
switch (field.type) {
|
|
25
25
|
case 'group':
|
|
26
26
|
{
|
|
27
|
-
if (typeof siblingData[field.name] !== 'object')
|
|
27
|
+
if (typeof siblingData[field.name] !== 'object') {
|
|
28
|
+
siblingData[field.name] = {};
|
|
29
|
+
}
|
|
28
30
|
const groupData = siblingData[field.name];
|
|
29
31
|
await iterateFields({
|
|
30
32
|
id,
|
|
@@ -96,7 +98,9 @@ export const defaultValuePromise = async ({
|
|
|
96
98
|
{
|
|
97
99
|
let tabSiblingData;
|
|
98
100
|
if (tabHasName(field)) {
|
|
99
|
-
if (typeof siblingData[field.name] !== 'object')
|
|
101
|
+
if (typeof siblingData[field.name] !== 'object') {
|
|
102
|
+
siblingData[field.name] = {};
|
|
103
|
+
}
|
|
100
104
|
tabSiblingData = siblingData[field.name];
|
|
101
105
|
} else {
|
|
102
106
|
tabSiblingData = siblingData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","names":["getDefaultValue","fieldAffectsData","tabHasName","iterateFields","defaultValuePromise","id","data","field","locale","siblingData","user","name","defaultValue","value","type","groupData","fields","rows","Array","isArray","promises","forEach","row","push","Promise","all","blockTypeToMatch","blockType","block","blocks","find","slug","tabSiblingData","tabs","map","tab"],"sources":["../../../../src/forms/buildStateFromSchema/calculateDefaultValues/promise.ts"],"sourcesContent":["import type { Data, Field, TabAsField, User } from 'payload'\n\nimport { getDefaultValue } from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nimport { iterateFields } from './iterateFields.js'\n\ntype Args<T> = {\n data: T\n field: Field | TabAsField\n id?: number | string\n locale: string | undefined\n siblingData: Data\n user: User\n}\n\n// TODO: Make this works for rich text subfields\nexport const defaultValuePromise = async <T>({\n id,\n data,\n field,\n locale,\n siblingData,\n user,\n}: Args<T>): Promise<void> => {\n if (fieldAffectsData(field)) {\n if (\n typeof siblingData[field.name] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n siblingData[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale,\n user,\n value: siblingData[field.name],\n })\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n siblingData: groupData,\n user,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row) => {\n promises.push(\n iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n siblingData: row,\n user,\n }),\n )\n })\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row) => {\n const blockTypeToMatch = row.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n row.blockType = blockTypeToMatch\n\n promises.push(\n iterateFields({\n id,\n data,\n fields: block.fields,\n locale,\n siblingData: row,\n user,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n siblingData,\n user,\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n } else {\n tabSiblingData = siblingData\n }\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n siblingData: tabSiblingData,\n user,\n })\n\n break\n }\n\n case 'tabs': {\n await iterateFields({\n id,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n locale,\n siblingData,\n user,\n })\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"mappings":"AAEA,SAASA,eAAe,QAAQ;AAChC,SAASC,gBAAgB,EAAEC,UAAU,QAAQ;AAE7C,SAASC,aAAa,QAAQ;AAW9B;AACA,OAAO,MAAMC,mBAAA,GAAsB,MAAAA,CAAU;EAC3CC,EAAE;EACFC,IAAI;EACJC,KAAK;EACLC,MAAM;EACNC,WAAW;EACXC;AAAI,CACI;EACR,IAAIT,gBAAA,CAAiBM,KAAA,GAAQ;IAC3B,IACE,OAAOE,WAAW,CAACF,KAAA,CAAMI,IAAI,CAAC,KAAK,eACnC,OAAOJ,KAAA,CAAMK,YAAY,KAAK,aAC9B;MACAH,WAAW,CAACF,KAAA,CAAMI,IAAI,CAAC,GAAG,MAAMX,eAAA,CAAgB;QAC9CY,YAAA,EAAcL,KAAA,CAAMK,YAAY;QAChCJ,MAAA;QACAE,IAAA;QACAG,KAAA,EAAOJ,WAAW,CAACF,KAAA,CAAMI,IAAI;MAC/B;IACF;EACF;EAEA;EACA,QAAQJ,KAAA,CAAMO,IAAI;IAChB,KAAK;MAAS;QACZ,IAAI,OAAOL,WAAW,CAACF,KAAA,CAAMI,IAAI,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"promise.js","names":["getDefaultValue","fieldAffectsData","tabHasName","iterateFields","defaultValuePromise","id","data","field","locale","siblingData","user","name","defaultValue","value","type","groupData","fields","rows","Array","isArray","promises","forEach","row","push","Promise","all","blockTypeToMatch","blockType","block","blocks","find","slug","tabSiblingData","tabs","map","tab"],"sources":["../../../../src/forms/buildStateFromSchema/calculateDefaultValues/promise.ts"],"sourcesContent":["import type { Data, Field, TabAsField, User } from 'payload'\n\nimport { getDefaultValue } from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nimport { iterateFields } from './iterateFields.js'\n\ntype Args<T> = {\n data: T\n field: Field | TabAsField\n id?: number | string\n locale: string | undefined\n siblingData: Data\n user: User\n}\n\n// TODO: Make this works for rich text subfields\nexport const defaultValuePromise = async <T>({\n id,\n data,\n field,\n locale,\n siblingData,\n user,\n}: Args<T>): Promise<void> => {\n if (fieldAffectsData(field)) {\n if (\n typeof siblingData[field.name] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n siblingData[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale,\n user,\n value: siblingData[field.name],\n })\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n siblingData: groupData,\n user,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row) => {\n promises.push(\n iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n siblingData: row,\n user,\n }),\n )\n })\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row) => {\n const blockTypeToMatch = row.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n row.blockType = blockTypeToMatch\n\n promises.push(\n iterateFields({\n id,\n data,\n fields: block.fields,\n locale,\n siblingData: row,\n user,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n siblingData,\n user,\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n } else {\n tabSiblingData = siblingData\n }\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n siblingData: tabSiblingData,\n user,\n })\n\n break\n }\n\n case 'tabs': {\n await iterateFields({\n id,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n locale,\n siblingData,\n user,\n })\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Account/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Account/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,eAAO,MAAM,OAAO,yBAiCnB,CAAA"}
|
|
@@ -5,8 +5,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
5
5
|
import { usePathname } from 'next/navigation.js';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
8
|
-
import { RenderComponent } from '../../providers/Config/RenderComponent.js';
|
|
9
8
|
import { useConfig } from '../../providers/Config/index.js';
|
|
9
|
+
import { RenderComponent } from '../../providers/Config/RenderComponent.js';
|
|
10
10
|
import { formatAdminURL } from '../../utilities/formatAdminURL.js';
|
|
11
11
|
import { DefaultAccountIcon } from './Default/index.js';
|
|
12
12
|
import { GravatarAccountIcon } from './Gravatar/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","usePathname","React","useAuth","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","usePathname","React","useAuth","useConfig","RenderComponent","formatAdminURL","DefaultAccountIcon","GravatarAccountIcon","Account","$","config","t0","admin","t1","routes","t2","avatar","components","t3","t4","Avatar","CustomAvatar","account","accountRoute","adminRoute","user","pathname","isOnAccountPage","path","t5","_jsx","clientProps","active","mappedComponent","email","Symbol","for"],"sources":["../../../src/graphics/Account/index.tsx"],"sourcesContent":["'use client'\nimport { usePathname } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { RenderComponent } from '../../providers/Config/RenderComponent.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { DefaultAccountIcon } from './Default/index.js'\nimport { GravatarAccountIcon } from './Gravatar/index.js'\n\nexport const Account = () => {\n const {\n config: {\n admin: {\n avatar,\n components: { Avatar: CustomAvatar },\n routes: { account: accountRoute },\n },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { user } = useAuth()\n const pathname = usePathname()\n const isOnAccountPage = pathname === formatAdminURL({ adminRoute, path: accountRoute })\n\n if (CustomAvatar) {\n return (\n <RenderComponent\n clientProps={{\n active: isOnAccountPage,\n }}\n mappedComponent={CustomAvatar}\n />\n )\n }\n\n if (!user?.email || avatar === 'default') {\n return <DefaultAccountIcon active={isOnAccountPage} />\n }\n if (avatar === 'gravatar') {\n return <GravatarAccountIcon />\n }\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,WAAW,QAAQ;AAC5B,OAAOC,KAAA,MAAW;AAElB,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,mBAAmB,QAAQ;AAEpC,OAAO,MAAMC,OAAA,GAAUA,CAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EACrB;IAAAW,MAAA,EAAAC;EAAA,IASIR,SAAA;EARM;IAAAS,KAAA,EAAAC,EAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAJ,EAOP;EANQ;IAAAK,MAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAJ,MAAA,EAAAK;EAAA,IAAAN,EAIN;EAFa;IAAAO,MAAA,EAAAC;EAAA,IAAAH,EAAwB;EAC5B;IAAAI,OAAA,EAAAC;EAAA,IAAAJ,EAAyB;EAE3B;IAAAP,KAAA,EAAAY;EAAA,IAAAT,EAAqB;EAIjC;IAAAU;EAAA,IAAiBvB,OAAA;EACjB,MAAAwB,QAAA,GAAiB1B,WAAA;EACjB,MAAA2B,eAAA,GAAwBD,QAAA,KAAarB,cAAA;IAAAmB,UAAA;IAAAI,IAAA,EAAmCL;EAAA,CAAa;EAAA,IAEjFF,YAAA;IAAA,IAAAQ,EAAA;IAAA,IAAApB,CAAA,QAAAkB,eAAA,IAAAlB,CAAA,QAAAY,YAAA;MAEAQ,EAAA,GAAAC,IAAA,CAAA1B,eAAA;QAAA2B,WAAA;UAAAC,MAAA,EAEYL;QAAA;QAAAM,eAAA,EAEOZ;MAAA,C;;;;;;;WAJnBQ,E;;MASA,CAACJ,IAAA,EAAAS,KAAA,IAAelB,MAAA,KAAW;IAAA,IAAAa,EAAA;IAAA,IAAApB,CAAA,QAAAkB,eAAA;MACtBE,EAAA,GAAAC,IAAA,CAAAxB,kBAAA;QAAA0B,MAAA,EAA4BL;MAAA,C;;;;;;WAA5BE,E;;MAELb,MAAA,KAAW;IAAA,IAAAa,EAAA;IAAA,IAAApB,CAAA,QAAA0B,MAAA,CAAAC,GAAA;MACNP,EAAA,GAAAC,IAAA,CAAAvB,mBAAA,IAAC;MAAAE,CAAA,MAAAoB,EAAA;IAAA;MAAAA,EAAA,GAAApB,CAAA;IAAA;IAAA,OAADoB,EAAC;EAAA;AAAA,CAEZ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHotkey.d.ts","sourceRoot":"","sources":["../../src/hooks/useHotkey.ts"],"names":[],"mappings":"AA6DA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,YACX;IACP,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,QACK,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,KAC/B,
|
|
1
|
+
{"version":3,"file":"useHotkey.d.ts","sourceRoot":"","sources":["../../src/hooks/useHotkey.ts"],"names":[],"mappings":"AA6DA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,YACX;IACP,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,QACK,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,KAC/B,IAmEF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHotkey.js","names":["c","_c","useModal","setsAreEqual","useCallback","useEffect","pressedKeys","Map","map","altleft","altright","controlleft","controlright","ctrlleft","ctrlright","escape","metaleft","metaright","osleft","osright","shiftleft","shiftright","stripKey","key","toLowerCase","trim","replace","pushToKeys","code","forEach","time","pressedKey","delete","set","Date","now","removeFromKeys","clear","useHotkey","options","func","$","cmdCtrlKey","editDepth","keyCodes","modalState","t0","event","e","detail","undefined","hasCmd","window","navigator","userAgent","includes","pressedWithoutModifier","keys","filter","key_0","Set","has","ctrlKey","maxEditDepth","Object","key_1","isOpen","length","keydown","keyup","_temp","t1","t2","document","addEventListener","removeEventListener","e_0"],"sources":["../../src/hooks/useHotkey.ts"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { setsAreEqual } from 'payload/shared'\nimport { useCallback, useEffect } from 'react'\n\n// Required to be outside of hook, else debounce would be necessary\n// and then one could not prevent the default behaviour.\n\n// It maps the pressed keys with the time they were pressed, in order to implement a maximum time\n// for the user to press the next key in the sequence\n\n// This is necessary to prevent a bug where the keyup event, which unsets the key as pressed\n// is not fired when the window is not focused.\n// When the user then comes back to the window, the key is still registered as pressed, even though it's not.\nconst pressedKeys = new Map<string, number>([])\n\nconst map = {\n altleft: 'alt',\n altright: 'alt',\n controlleft: 'ctrl',\n controlright: 'ctrl',\n ctrlleft: 'ctrl',\n ctrlright: 'ctrl',\n escape: 'esc',\n metaleft: 'meta',\n metaright: 'meta',\n osleft: 'meta',\n osright: 'meta',\n shiftleft: 'shift',\n shiftright: 'shift',\n}\n\nconst stripKey = (key: string) => {\n return (map[key.toLowerCase()] || key).trim().toLowerCase().replace('key', '')\n}\n\nconst pushToKeys = (code: string) => {\n const key = stripKey(code)\n\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.forEach(\n (time, pressedKey) => pressedKey !== 'meta' && pressedKeys.delete(pressedKey),\n )\n }\n\n pressedKeys.set(key, Date.now())\n}\n\nconst removeFromKeys = (code: string) => {\n const key = stripKey(code)\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.clear()\n }\n pressedKeys.delete(key)\n}\n\n/**\n * Hook function to work with hotkeys.\n * @param param0.keyCode {string[]} The keys to listen for (`Event.code` without `'Key'` and lowercased)\n * @param param0.cmdCtrlKey {boolean} Whether Ctrl on windows or Cmd on mac must be pressed\n * @param param0.editDepth {boolean} This ensures that the hotkey is only triggered for the most top-level drawer in case there are nested drawers\n * @param func The callback function\n */\nexport const useHotkey = (\n options: {\n cmdCtrlKey: boolean\n editDepth: number\n keyCodes: string[]\n },\n func: (e: KeyboardEvent) => void,\n): void => {\n const { cmdCtrlKey, editDepth, keyCodes } = options\n\n const { modalState } = useModal()\n\n const keydown = useCallback(\n (event: CustomEvent | KeyboardEvent) => {\n const e: KeyboardEvent = event.detail?.key ? event.detail : event\n if (e.key === undefined) {\n // Autofill events, or other synthetic events, can be ignored\n return\n }\n\n // Filter out pressed keys which have been pressed > 3 seconds ago\n pressedKeys.forEach((time, key) => {\n if (Date.now() - time > 3000) {\n pressedKeys.delete(key)\n }\n })\n\n if (e.code) pushToKeys(e.code)\n\n // Check for Mac and iPad\n const hasCmd = window.navigator.userAgent.includes('Mac OS X')\n const pressedWithoutModifier = [...pressedKeys.keys()].filter(\n (key) => !['alt', 'ctrl', 'meta', 'shift'].includes(key),\n )\n\n // Check whether arrays contain the same values (regardless of number of occurrences)\n if (\n setsAreEqual(new Set(pressedWithoutModifier), new Set(keyCodes)) &&\n (!cmdCtrlKey || (hasCmd && pressedKeys.has('meta')) || (!hasCmd && e.ctrlKey))\n ) {\n // get the maximum edit depth by counting the number of open drawers. modalState is and object which contains the state of all drawers.\n const maxEditDepth =\n Object.keys(modalState).filter((key) => modalState[key]?.isOpen)?.length + 1 || 1\n\n if (maxEditDepth !== editDepth) {\n // We only want to execute the hotkey from the most top-level drawer / edit depth.\n return\n }\n // execute the function associated with the maximum edit depth\n func(e)\n }\n },\n [keyCodes, cmdCtrlKey, editDepth, modalState, func],\n )\n\n const keyup = useCallback((e: KeyboardEvent) => {\n if (e.code) removeFromKeys(e.code)\n }, [])\n\n useEffect(() => {\n document.addEventListener('keydown', keydown, false)\n document.addEventListener('bypassKeyDown', keydown, false) // this is called if the keydown event's propagation is stopped by react-select\n document.addEventListener('keyup', keyup, false)\n\n return () => {\n document.removeEventListener('keydown', keydown)\n document.removeEventListener('bypassKeyDown', keydown)\n document.removeEventListener('keyup', keyup)\n }\n }, [keydown, keyup])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAEA,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,SAASC,WAAW,EAAEC,SAAS,QAAQ;AAEvC;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA,MAAMC,WAAA,GAAc,IAAIC,GAAA,CAAoB,EAAE;AAE9C,MAAMC,GAAA,GAAM;EACVC,OAAA,EAAS;EACTC,QAAA,EAAU;EACVC,WAAA,EAAa;EACbC,YAAA,EAAc;EACdC,QAAA,EAAU;EACVC,SAAA,EAAW;EACXC,MAAA,EAAQ;EACRC,QAAA,EAAU;EACVC,SAAA,EAAW;EACXC,MAAA,EAAQ;EACRC,OAAA,EAAS;EACTC,SAAA,EAAW;EACXC,UAAA,EAAY;AACd;AAEA,MAAMC,QAAA,GAAYC,GAAA;EAChB,OAAO,CAACf,GAAG,CAACe,GAAA,CAAIC,WAAW,GAAG,IAAID,GAAE,EAAGE,IAAI,GAAGD,WAAW,GAAGE,OAAO,CAAC,OAAO;AAC7E;AAEA,MAAMC,UAAA,GAAcC,IAAA;EAClB,MAAML,GAAA,GAAMD,QAAA,CAASM,IAAA;EAErB;EACA;EACA,IAAIL,GAAA,KAAQ,QAAQ;IAClBjB,WAAA,CAAYuB,OAAO,CACjB,CAACC,IAAA,EAAMC,UAAA,KAAeA,UAAA,KAAe,UAAUzB,WAAA,CAAY0B,MAAM,CAACD,UAAA;EAEtE;EAEAzB,WAAA,CAAY2B,GAAG,CAACV,GAAA,EAAKW,IAAA,CAAKC,GAAG;AAC/B;AAEA,MAAMC,cAAA,GAAkBR,IAAA;EACtB,MAAML,GAAA,GAAMD,QAAA,CAASM,IAAA;EACrB;EACA;EACA,IAAIL,GAAA,KAAQ,QAAQ;IAClBjB,WAAA,CAAY+B,KAAK;EACnB;EACA/B,WAAA,CAAY0B,MAAM,CAACT,GAAA;AACrB;AAEA;;;;;;;AAOA,OAAO,MAAMe,SAAA,GAAYA,CAAAC,OAAA,EAAAC,IAAA;EAAA,MAAAC,CAAA,GAAAxC,EAAA;EAQvB;IAAAyC,UAAA;IAAAC,SAAA;IAAAC;EAAA,IAA4CL,OAAA;EAE5C;IAAAM;EAAA,IAAuB3C,QAAA;EAAA,IAAA4C,EAAA;EAAA,IAAAL,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAD,IAAA;IAGrBM,EAAA,GAAAC,KAAA;MACE,MAAAC,CAAA,GAAyBD,KAAA,CAAAE,MAAA,EAAA1B,GAAA,GAAoBwB,KAAA,CAAAE,MAAA,GAAeF,KAAA;MAAA,IACxDC,CAAA,CAAAzB,GAAA,KAAA2B,SAAU;QAAA;MAAA;MAMd5C,WAAA,CAAAuB,OAAA,EAAAC,IAAA,EAAAP,GAAA;QAAA,IACMW,IAAA,CAAAC,GAAA,CAAQ,IAAKL,IAAA,OAAO;UACtBxB,WAAA,CAAA0B,MAAA,CAAmBT,GAAA;QAAA;MAAA,CAEvB;MAAA,IAEIyB,CAAA,CAAApB,IAAA;
|
|
1
|
+
{"version":3,"file":"useHotkey.js","names":["c","_c","useModal","setsAreEqual","useCallback","useEffect","pressedKeys","Map","map","altleft","altright","controlleft","controlright","ctrlleft","ctrlright","escape","metaleft","metaright","osleft","osright","shiftleft","shiftright","stripKey","key","toLowerCase","trim","replace","pushToKeys","code","forEach","time","pressedKey","delete","set","Date","now","removeFromKeys","clear","useHotkey","options","func","$","cmdCtrlKey","editDepth","keyCodes","modalState","t0","event","e","detail","undefined","hasCmd","window","navigator","userAgent","includes","pressedWithoutModifier","keys","filter","key_0","Set","has","ctrlKey","maxEditDepth","Object","key_1","isOpen","length","keydown","keyup","_temp","t1","t2","document","addEventListener","removeEventListener","e_0"],"sources":["../../src/hooks/useHotkey.ts"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { setsAreEqual } from 'payload/shared'\nimport { useCallback, useEffect } from 'react'\n\n// Required to be outside of hook, else debounce would be necessary\n// and then one could not prevent the default behaviour.\n\n// It maps the pressed keys with the time they were pressed, in order to implement a maximum time\n// for the user to press the next key in the sequence\n\n// This is necessary to prevent a bug where the keyup event, which unsets the key as pressed\n// is not fired when the window is not focused.\n// When the user then comes back to the window, the key is still registered as pressed, even though it's not.\nconst pressedKeys = new Map<string, number>([])\n\nconst map = {\n altleft: 'alt',\n altright: 'alt',\n controlleft: 'ctrl',\n controlright: 'ctrl',\n ctrlleft: 'ctrl',\n ctrlright: 'ctrl',\n escape: 'esc',\n metaleft: 'meta',\n metaright: 'meta',\n osleft: 'meta',\n osright: 'meta',\n shiftleft: 'shift',\n shiftright: 'shift',\n}\n\nconst stripKey = (key: string) => {\n return (map[key.toLowerCase()] || key).trim().toLowerCase().replace('key', '')\n}\n\nconst pushToKeys = (code: string) => {\n const key = stripKey(code)\n\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.forEach(\n (time, pressedKey) => pressedKey !== 'meta' && pressedKeys.delete(pressedKey),\n )\n }\n\n pressedKeys.set(key, Date.now())\n}\n\nconst removeFromKeys = (code: string) => {\n const key = stripKey(code)\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.clear()\n }\n pressedKeys.delete(key)\n}\n\n/**\n * Hook function to work with hotkeys.\n * @param param0.keyCode {string[]} The keys to listen for (`Event.code` without `'Key'` and lowercased)\n * @param param0.cmdCtrlKey {boolean} Whether Ctrl on windows or Cmd on mac must be pressed\n * @param param0.editDepth {boolean} This ensures that the hotkey is only triggered for the most top-level drawer in case there are nested drawers\n * @param func The callback function\n */\nexport const useHotkey = (\n options: {\n cmdCtrlKey: boolean\n editDepth: number\n keyCodes: string[]\n },\n func: (e: KeyboardEvent) => void,\n): void => {\n const { cmdCtrlKey, editDepth, keyCodes } = options\n\n const { modalState } = useModal()\n\n const keydown = useCallback(\n (event: CustomEvent | KeyboardEvent) => {\n const e: KeyboardEvent = event.detail?.key ? event.detail : event\n if (e.key === undefined) {\n // Autofill events, or other synthetic events, can be ignored\n return\n }\n\n // Filter out pressed keys which have been pressed > 3 seconds ago\n pressedKeys.forEach((time, key) => {\n if (Date.now() - time > 3000) {\n pressedKeys.delete(key)\n }\n })\n\n if (e.code) {\n pushToKeys(e.code)\n }\n\n // Check for Mac and iPad\n const hasCmd = window.navigator.userAgent.includes('Mac OS X')\n const pressedWithoutModifier = [...pressedKeys.keys()].filter(\n (key) => !['alt', 'ctrl', 'meta', 'shift'].includes(key),\n )\n\n // Check whether arrays contain the same values (regardless of number of occurrences)\n if (\n setsAreEqual(new Set(pressedWithoutModifier), new Set(keyCodes)) &&\n (!cmdCtrlKey || (hasCmd && pressedKeys.has('meta')) || (!hasCmd && e.ctrlKey))\n ) {\n // get the maximum edit depth by counting the number of open drawers. modalState is and object which contains the state of all drawers.\n const maxEditDepth =\n Object.keys(modalState).filter((key) => modalState[key]?.isOpen)?.length + 1 || 1\n\n if (maxEditDepth !== editDepth) {\n // We only want to execute the hotkey from the most top-level drawer / edit depth.\n return\n }\n // execute the function associated with the maximum edit depth\n func(e)\n }\n },\n [keyCodes, cmdCtrlKey, editDepth, modalState, func],\n )\n\n const keyup = useCallback((e: KeyboardEvent) => {\n if (e.code) {\n removeFromKeys(e.code)\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('keydown', keydown, false)\n document.addEventListener('bypassKeyDown', keydown, false) // this is called if the keydown event's propagation is stopped by react-select\n document.addEventListener('keyup', keyup, false)\n\n return () => {\n document.removeEventListener('keydown', keydown)\n document.removeEventListener('bypassKeyDown', keydown)\n document.removeEventListener('keyup', keyup)\n }\n }, [keydown, keyup])\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIntersect.d.ts","sourceRoot":"","sources":["../../src/hooks/useIntersect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;IACpC,KAAK,EAAE,yBAAyB;IAChC,IAAI,EAAE,WAAW;CAClB,CAAA;AAED,eAAO,MAAM,YAAY;;;;aAEb,OAAO,KAChB,
|
|
1
|
+
{"version":3,"file":"useIntersect.d.ts","sourceRoot":"","sources":["../../src/hooks/useIntersect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;IACpC,KAAK,EAAE,yBAAyB;IAChC,IAAI,EAAE,WAAW;CAClB,CAAA;AAED,eAAO,MAAM,YAAY;;;;aAEb,OAAO,KAChB,SA6BF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","t1","undefined","root","t2","rootMargin","t3","threshold","t4","entry","updateEntry","node","setNode","t5","window","IntersectionObserver","t6","ent","observer","t7","current","currentObserver","disconnect","observe","t8"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) currentObserver.observe(node)\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAQ5C,OAAO,MAAMC,YAAA,GAAeA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAF,EAAA;IAC1BG,EAAA,GAAAH,EAAuD,KAAAI,SAAA,QAAvDJ,EAAuD;IAAAE,CAAA,MAAAF,EAAA;IAAAE,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAvD;IAAAG,IAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC;EAAA,IAAAP,EAAuD;EAArD,MAAAE,IAAA,GAAAC,EAAW,KAAAF,SAAA,UAAXE,EAAW;EAAE,MAAAC,UAAA,GAAAC,EAAkB,KAAAJ,SAAA,GAAL,KAAK,GAAlBI,EAAkB;EAAE,MAAAC,SAAA,GAAAC,EAAa,KAAAN,SAAA,OAAbM,EAAa;EAGhD,OAAAC,KAAA,EAAAC,WAAA,IAA6Bd,QAAA;EAC7B,OAAAe,IAAA,EAAAC,OAAA,IAAwBhB,QAAA,KAAS;EAAA,IAAAiB,EAAA;EAAA,IAAAb,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAK,UAAA,IAAAL,CAAA,QAAAO,SAAA;IAG/BM,EAAA,UAAAC,MAAA,KAAkB,eAAe,0BAAAA,MAA0B,KAAWf,OAAA,OAAAe,MAAA,CAAAC,oBAAA,CAAAC,EAAA;MACjC,OAAAC,GAAA,IAAAD,EAAK;MAAA,OAAKN,WAAA,CAAYO,GAAA;IAAA;MAAAd,IAAA;MAAAE,UAAA;MAAAE;IAAA,SAKvD;IAAAP,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAPN,MAAAkB,QAAA,GAAiBvB,MAAA,CACfkB,EAMI;EAAA,IAAAG,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAnB,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAW,IAAA;IAGIK,EAAA,GAAAA,CAAA;MAAA,IACJjB,OAAA;QAAA;MAAA;MAGJ;QAAAqB,OAAA,EAAAC;MAAA,IAAqCH,QAAA;MACrCG,eAAA,CAAAC,UAAA,CAA0B;MAAA,IAEtBX,IAAA;
|
|
1
|
+
{"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","t1","undefined","root","t2","rootMargin","t3","threshold","t4","entry","updateEntry","node","setNode","t5","window","IntersectionObserver","t6","ent","observer","t7","current","currentObserver","disconnect","observe","t8"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) {\n currentObserver.observe(node)\n }\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAQ5C,OAAO,MAAMC,YAAA,GAAeA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAF,EAAA;IAC1BG,EAAA,GAAAH,EAAuD,KAAAI,SAAA,QAAvDJ,EAAuD;IAAAE,CAAA,MAAAF,EAAA;IAAAE,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAvD;IAAAG,IAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC;EAAA,IAAAP,EAAuD;EAArD,MAAAE,IAAA,GAAAC,EAAW,KAAAF,SAAA,UAAXE,EAAW;EAAE,MAAAC,UAAA,GAAAC,EAAkB,KAAAJ,SAAA,GAAL,KAAK,GAAlBI,EAAkB;EAAE,MAAAC,SAAA,GAAAC,EAAa,KAAAN,SAAA,OAAbM,EAAa;EAGhD,OAAAC,KAAA,EAAAC,WAAA,IAA6Bd,QAAA;EAC7B,OAAAe,IAAA,EAAAC,OAAA,IAAwBhB,QAAA,KAAS;EAAA,IAAAiB,EAAA;EAAA,IAAAb,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAK,UAAA,IAAAL,CAAA,QAAAO,SAAA;IAG/BM,EAAA,UAAAC,MAAA,KAAkB,eAAe,0BAAAA,MAA0B,KAAWf,OAAA,OAAAe,MAAA,CAAAC,oBAAA,CAAAC,EAAA;MACjC,OAAAC,GAAA,IAAAD,EAAK;MAAA,OAAKN,WAAA,CAAYO,GAAA;IAAA;MAAAd,IAAA;MAAAE,UAAA;MAAAE;IAAA,SAKvD;IAAAP,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAPN,MAAAkB,QAAA,GAAiBvB,MAAA,CACfkB,EAMI;EAAA,IAAAG,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAnB,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAW,IAAA;IAGIK,EAAA,GAAAA,CAAA;MAAA,IACJjB,OAAA;QAAA;MAAA;MAGJ;QAAAqB,OAAA,EAAAC;MAAA,IAAqCH,QAAA;MACrCG,eAAA,CAAAC,UAAA,CAA0B;MAAA,IAEtBX,IAAA;QACFU,eAAA,CAAAE,OAAA,CAAwBZ,IAAA;MAAA;MAAA,aAGbU,eAAA,CAAAC,UAAA,CAA0B;IAAA;IACtCH,EAAA,IAACR,IAAA,EAAMZ,OAAA;IAAQC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAW,IAAA;IAAAX,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,OAAAmB,EAAA;EAAA;IAAAH,EAAA,GAAAhB,CAAA;IAAAmB,EAAA,GAAAnB,CAAA;EAAA;EAZlBN,SAAA,CAAUsB,EAYV,EAAGG,EAAe;EAAA,IAAAK,EAAA;EAAA,IAAAxB,CAAA,SAAAS,KAAA,IAAAT,CAAA,SAAAW,IAAA;IAEXa,EAAA,IAACZ,OAAA,EAASH,KAAA,EAAOE,IAAA;IAAKX,CAAA,OAAAS,KAAA;IAAAT,CAAA,OAAAW,IAAA;IAAAX,CAAA,OAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAAA,OAAtBwB,EAAsB;AAAA,CAC/B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAA;AAKzE,OAAO,KAAsE,MAAM,OAAO,CAAA;AAU1F,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,UAAU,IAAI;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,cAAc,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAClD,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,SAAS,CAAA;AAKzE,OAAO,KAAsE,MAAM,OAAO,CAAA;AAU1F,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,UAAU,IAAI;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,cAAc,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAClD,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,CAAA;CAChB,CAAA;AAMD,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CACzB,CAAA;AACD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,EAAE,kBAAkB,EAC/B,IAAI,EAAE,WAAW,GAClB,EAAE,KAAK,qBAoSP;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,oBAAmB,WAAW,CAAC,CAAC,CAA0C,CAAA"}
|
|
@@ -213,7 +213,9 @@ export function AuthProvider({
|
|
|
213
213
|
}, Math.max(Math.min((remainingTime_0 - 60) * 1000, maxTimeoutTime)));
|
|
214
214
|
}
|
|
215
215
|
return () => {
|
|
216
|
-
if (reminder)
|
|
216
|
+
if (reminder) {
|
|
217
|
+
clearTimeout(reminder);
|
|
218
|
+
}
|
|
217
219
|
};
|
|
218
220
|
}, [tokenExpiration, openModal]);
|
|
219
221
|
useEffect(() => {
|
|
@@ -228,7 +230,9 @@ export function AuthProvider({
|
|
|
228
230
|
}, Math.max(Math.min(remainingTime_1 * 1000, maxTimeoutTime), 0));
|
|
229
231
|
}
|
|
230
232
|
return () => {
|
|
231
|
-
if (forceLogOut)
|
|
233
|
+
if (forceLogOut) {
|
|
234
|
+
clearTimeout(forceLogOut);
|
|
235
|
+
}
|
|
232
236
|
};
|
|
233
237
|
}, [tokenExpiration, closeAllModals, i18n, redirectToInactivityRoute, revokeTokenAndExpire]);
|
|
234
238
|
return /*#__PURE__*/_jsx(Context.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","formatAdminURL","useConfig","Context","maxTimeoutTime","AuthProvider","children","permissions","initialPermissions","user","initialUser","setUser","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","config","admin","routes","inactivity","logoutInactivityRoute","userSlug","adminRoute","api","apiRoute","serverURL","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","path","revokeTokenAndExpire","undefined","setTokenAndExpiration","json","token","refreshedToken","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","refresh","request","post","headers","language","status","e","error","message","refreshCookieAsync","skipSetUser","logOut","refreshPermissions","locale","params","stringify","addQueryPrefix","get","Error","fetchFullUser","reminder","max","min","clearTimeout","forceLogOut","_jsx","Provider","value","useAuth"],"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, MeOperationResult, Permissions } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { useConfig } from '../Config/index.js'\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<void>\n logOut: () => Promise<void>\n permissions?: Permissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: Permissions) => void\n setUser: (user: T) => void\n strategy?: string\n token?: string\n tokenExpiration?: number\n user?: T | null\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\ntype Props = {\n children: React.ReactNode\n permissions?: Permissions\n user?: ClientUser | null\n}\nexport function AuthProvider({\n children,\n permissions: initialPermissions,\n user: initialUser,\n}: Props) {\n const [user, setUser] = useState<ClientUser | null>(initialUser)\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { inactivity: logoutInactivityRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<Permissions>(initialPermissions)\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(adminRoute)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(\n formatAdminURL({\n adminRoute,\n path: `${logoutInactivityRoute}${redirectParam}`,\n }),\n )\n } else {\n router.replace(\n formatAdminURL({\n adminRoute,\n path: logoutInactivityRoute,\n }),\n )\n }\n closeAllModals()\n }, [router, adminRoute, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n }, [])\n\n const setTokenAndExpiration = useCallback(\n (json) => {\n const token = json?.token || json?.refreshedToken\n if (token && json?.exp) {\n setTokenInMemory(token)\n setTokenExpiration(json.exp)\n } else {\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n setTimeout(() => {\n async function refresh() {\n try {\n const request = await requests.post(\n `${serverURL}${apiRoute}/${userSlug}/refresh-token`,\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (request.status === 200) {\n const json = await request.json()\n setUser(json.user)\n\n setTokenAndExpiration(json)\n } else {\n setUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }\n\n void refresh()\n }, 1000)\n }\n },\n [\n tokenExpiration,\n serverURL,\n apiRoute,\n userSlug,\n i18n,\n redirectToInactivityRoute,\n setTokenAndExpiration,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${apiRoute}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setUser(json.user)\n setTokenAndExpiration(json)\n }\n return json.user\n }\n\n setUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [serverURL, apiRoute, userSlug, i18n, redirectToInactivityRoute, setTokenAndExpiration],\n )\n\n const logOut = useCallback(async () => {\n setUser(null)\n revokeTokenAndExpire()\n try {\n await requests.post(`${serverURL}${apiRoute}/${userSlug}/logout`)\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n }\n }, [serverURL, apiRoute, userSlug, revokeTokenAndExpire])\n\n const refreshPermissions = useCallback(\n async ({ locale }: { locale?: string } = {}) => {\n const params = qs.stringify(\n {\n locale,\n },\n {\n addQueryPrefix: true,\n },\n )\n\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/access${params}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: Permissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n },\n [serverURL, apiRoute, i18n],\n )\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/${userSlug}/me`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: MeOperationResult = await request.json()\n\n if (json?.user) {\n setUser(json.user)\n\n if (json?.token) {\n setTokenAndExpiration(json)\n }\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n }, [serverURL, apiRoute, userSlug, i18n.language, setTokenAndExpiration, revokeTokenAndExpire])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n // When initialUser changes, reset in state\n useEffect(() => {\n setUser(initialUser)\n }, [initialUser])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n reminder = setTimeout(\n () => {\n openModal(stayLoggedInModalSlug)\n },\n Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime)),\n )\n }\n\n return () => {\n if (reminder) clearTimeout(reminder)\n }\n }, [tokenExpiration, openModal])\n\n useEffect(() => {\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n forceLogOut = setTimeout(\n () => {\n setUser(null)\n revokeTokenAndExpire()\n redirectToInactivityRoute()\n },\n Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0),\n )\n }\n\n return () => {\n if (forceLogOut) clearTimeout(forceLogOut)\n }\n }, [tokenExpiration, closeAllModals, i18n, redirectToInactivityRoute, revokeTokenAndExpire])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","formatAdminURL","useConfig","Context","maxTimeoutTime","AuthProvider","children","permissions","initialPermissions","user","initialUser","setUser","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","config","admin","routes","inactivity","logoutInactivityRoute","userSlug","adminRoute","api","apiRoute","serverURL","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","path","revokeTokenAndExpire","undefined","setTokenAndExpiration","json","token","refreshedToken","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","refresh","request","post","headers","language","status","e","error","message","refreshCookieAsync","skipSetUser","logOut","refreshPermissions","locale","params","stringify","addQueryPrefix","get","Error","fetchFullUser","reminder","max","min","clearTimeout","forceLogOut","_jsx","Provider","value","useAuth"],"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, MeOperationResult, Permissions } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { useConfig } from '../Config/index.js'\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<void>\n logOut: () => Promise<void>\n permissions?: Permissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: Permissions) => void\n setUser: (user: T) => void\n strategy?: string\n token?: string\n tokenExpiration?: number\n user?: null | T\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\ntype Props = {\n children: React.ReactNode\n permissions?: Permissions\n user?: ClientUser | null\n}\nexport function AuthProvider({\n children,\n permissions: initialPermissions,\n user: initialUser,\n}: Props) {\n const [user, setUser] = useState<ClientUser | null>(initialUser)\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { inactivity: logoutInactivityRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<Permissions>(initialPermissions)\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(adminRoute)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(\n formatAdminURL({\n adminRoute,\n path: `${logoutInactivityRoute}${redirectParam}`,\n }),\n )\n } else {\n router.replace(\n formatAdminURL({\n adminRoute,\n path: logoutInactivityRoute,\n }),\n )\n }\n closeAllModals()\n }, [router, adminRoute, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n }, [])\n\n const setTokenAndExpiration = useCallback(\n (json) => {\n const token = json?.token || json?.refreshedToken\n if (token && json?.exp) {\n setTokenInMemory(token)\n setTokenExpiration(json.exp)\n } else {\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n setTimeout(() => {\n async function refresh() {\n try {\n const request = await requests.post(\n `${serverURL}${apiRoute}/${userSlug}/refresh-token`,\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (request.status === 200) {\n const json = await request.json()\n setUser(json.user)\n\n setTokenAndExpiration(json)\n } else {\n setUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }\n\n void refresh()\n }, 1000)\n }\n },\n [\n tokenExpiration,\n serverURL,\n apiRoute,\n userSlug,\n i18n,\n redirectToInactivityRoute,\n setTokenAndExpiration,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${apiRoute}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setUser(json.user)\n setTokenAndExpiration(json)\n }\n return json.user\n }\n\n setUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [serverURL, apiRoute, userSlug, i18n, redirectToInactivityRoute, setTokenAndExpiration],\n )\n\n const logOut = useCallback(async () => {\n setUser(null)\n revokeTokenAndExpire()\n try {\n await requests.post(`${serverURL}${apiRoute}/${userSlug}/logout`)\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n }\n }, [serverURL, apiRoute, userSlug, revokeTokenAndExpire])\n\n const refreshPermissions = useCallback(\n async ({ locale }: { locale?: string } = {}) => {\n const params = qs.stringify(\n {\n locale,\n },\n {\n addQueryPrefix: true,\n },\n )\n\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/access${params}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: Permissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n },\n [serverURL, apiRoute, i18n],\n )\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/${userSlug}/me`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: MeOperationResult = await request.json()\n\n if (json?.user) {\n setUser(json.user)\n\n if (json?.token) {\n setTokenAndExpiration(json)\n }\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n }, [serverURL, apiRoute, userSlug, i18n.language, setTokenAndExpiration, revokeTokenAndExpire])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n // When initialUser changes, reset in state\n useEffect(() => {\n setUser(initialUser)\n }, [initialUser])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n reminder = setTimeout(\n () => {\n openModal(stayLoggedInModalSlug)\n },\n Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime)),\n )\n }\n\n return () => {\n if (reminder) {\n clearTimeout(reminder)\n }\n }\n }, [tokenExpiration, openModal])\n\n useEffect(() => {\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n forceLogOut = setTimeout(\n () => {\n setUser(null)\n revokeTokenAndExpire()\n redirectToInactivityRoute()\n },\n Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0),\n )\n }\n\n return () => {\n if (forceLogOut) {\n clearTimeout(forceLogOut)\n }\n }\n }, [tokenExpiration, closeAllModals, i18n, redirectToInactivityRoute, revokeTokenAndExpire])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,8 +4,8 @@ import React from 'react';
|
|
|
4
4
|
* Can be used to render both MappedComponents and React Components.
|
|
5
5
|
*/
|
|
6
6
|
export declare const RenderComponent: React.FC<{
|
|
7
|
-
readonly Component?: React.ComponentType | React.ComponentType[];
|
|
8
7
|
readonly clientProps?: object;
|
|
8
|
+
readonly Component?: React.ComponentType | React.ComponentType[];
|
|
9
9
|
readonly mappedComponent?: MappedComponent | MappedComponent[];
|
|
10
10
|
readonly serverProps?: object;
|
|
11
11
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderComponent.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/RenderComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,EAAE,CAAA;IAChE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"RenderComponent.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/RenderComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,EAAE,CAAA;IAChE,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,CAAA;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B,CA0EA,CAAA"}
|
|
@@ -5,16 +5,16 @@ import React from 'react';
|
|
|
5
5
|
* Can be used to render both MappedComponents and React Components.
|
|
6
6
|
*/
|
|
7
7
|
export const RenderComponent = ({
|
|
8
|
-
Component,
|
|
9
8
|
clientProps = {},
|
|
9
|
+
Component,
|
|
10
10
|
mappedComponent,
|
|
11
11
|
serverProps
|
|
12
12
|
}) => {
|
|
13
13
|
if (!mappedComponent && Component) {
|
|
14
14
|
if (Array.isArray(Component)) {
|
|
15
15
|
return Component.map((c, index) => /*#__PURE__*/_jsx(RenderComponent, {
|
|
16
|
-
Component: c,
|
|
17
16
|
clientProps: clientProps,
|
|
17
|
+
Component: c,
|
|
18
18
|
serverProps: serverProps
|
|
19
19
|
}, index));
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderComponent.js","names":["isReactServerComponentOrFunction","React","RenderComponent","
|
|
1
|
+
{"version":3,"file":"RenderComponent.js","names":["isReactServerComponentOrFunction","React","RenderComponent","clientProps","Component","mappedComponent","serverProps","Array","isArray","map","c","index","_jsx","type","RenderedComponent","props"],"sources":["../../../src/providers/Config/RenderComponent.tsx"],"sourcesContent":["import type { MappedComponent } from 'payload'\n\nimport { isReactServerComponentOrFunction } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Can be used to render both MappedComponents and React Components.\n */\nexport const RenderComponent: React.FC<{\n readonly clientProps?: object\n readonly Component?: React.ComponentType | React.ComponentType[]\n readonly mappedComponent?: MappedComponent | MappedComponent[]\n readonly serverProps?: object\n}> = ({ clientProps = {}, Component, mappedComponent, serverProps }) => {\n if (!mappedComponent && Component) {\n if (Array.isArray(Component)) {\n return Component.map((c, index) => (\n <RenderComponent\n clientProps={clientProps}\n Component={c}\n key={index}\n serverProps={serverProps}\n />\n ))\n }\n\n const mappedComponent: MappedComponent = isReactServerComponentOrFunction(Component)\n ? {\n type: 'server',\n Component,\n RenderedComponent: null,\n }\n : {\n type: 'client',\n Component,\n }\n\n return (\n <RenderComponent\n clientProps={clientProps}\n mappedComponent={mappedComponent}\n serverProps={serverProps}\n />\n )\n }\n if (!mappedComponent) {\n return null\n }\n\n if (Array.isArray(mappedComponent)) {\n return mappedComponent.map((c, index) => (\n <RenderComponent\n clientProps={clientProps}\n key={index}\n mappedComponent={c}\n serverProps={serverProps}\n />\n ))\n }\n\n if (mappedComponent.type === 'empty') {\n return null\n }\n\n if (mappedComponent.RenderedComponent) {\n return mappedComponent.RenderedComponent\n }\n\n if (!mappedComponent.Component) {\n return null\n }\n\n if (mappedComponent.type === 'server') {\n if (mappedComponent.props) {\n return (\n <mappedComponent.Component {...mappedComponent.props} {...serverProps} {...clientProps} />\n )\n }\n\n return <mappedComponent.Component {...serverProps} {...clientProps} />\n }\n\n if (mappedComponent.props) {\n return <mappedComponent.Component {...mappedComponent.props} {...clientProps} />\n }\n\n return <mappedComponent.Component {...clientProps} />\n}\n"],"mappings":";AAEA,SAASA,gCAAgC,QAAQ;AACjD,OAAOC,KAAA,MAAW;AAElB;;;AAGA,OAAO,MAAMC,eAAA,GAKRA,CAAC;EAAEC,WAAA,GAAc,CAAC,CAAC;EAAEC,SAAS;EAAEC,eAAe;EAAEC;AAAW,CAAE;EACjE,IAAI,CAACD,eAAA,IAAmBD,SAAA,EAAW;IACjC,IAAIG,KAAA,CAAMC,OAAO,CAACJ,SAAA,GAAY;MAC5B,OAAOA,SAAA,CAAUK,GAAG,CAAC,CAACC,CAAA,EAAGC,KAAA,kBACvBC,IAAA,CAACV,eAAA;QACCC,WAAA,EAAaA,WAAA;QACbC,SAAA,EAAWM,CAAA;QAEXJ,WAAA,EAAaA;SADRK,KAAA;IAIX;IAEA,MAAMN,eAAA,GAAmCL,gCAAA,CAAiCI,SAAA,IACtE;MACES,IAAA,EAAM;MACNT,SAAA;MACAU,iBAAA,EAAmB;IACrB,IACA;MACED,IAAA,EAAM;MACNT;IACF;IAEJ,oBACEQ,IAAA,CAACV,eAAA;MACCC,WAAA,EAAaA,WAAA;MACbE,eAAA,EAAiBA,eAAA;MACjBC,WAAA,EAAaA;;EAGnB;EACA,IAAI,CAACD,eAAA,EAAiB;IACpB,OAAO;EACT;EAEA,IAAIE,KAAA,CAAMC,OAAO,CAACH,eAAA,GAAkB;IAClC,OAAOA,eAAA,CAAgBI,GAAG,CAAC,CAACC,CAAA,EAAGC,KAAA,kBAC7BC,IAAA,CAACV,eAAA;MACCC,WAAA,EAAaA,WAAA;MAEbE,eAAA,EAAiBK,CAAA;MACjBJ,WAAA,EAAaA;OAFRK,KAAA;EAKX;EAEA,IAAIN,eAAA,CAAgBQ,IAAI,KAAK,SAAS;IACpC,OAAO;EACT;EAEA,IAAIR,eAAA,CAAgBS,iBAAiB,EAAE;IACrC,OAAOT,eAAA,CAAgBS,iBAAiB;EAC1C;EAEA,IAAI,CAACT,eAAA,CAAgBD,SAAS,EAAE;IAC9B,OAAO;EACT;EAEA,IAAIC,eAAA,CAAgBQ,IAAI,KAAK,UAAU;IACrC,IAAIR,eAAA,CAAgBU,KAAK,EAAE;MACzB,oBACEH,IAAA,CAACP,eAAA,CAAgBD,SAAS;QAAE,GAAGC,eAAA,CAAgBU,KAAK;QAAG,GAAGT,WAAW;QAAG,GAAGH;;IAE/E;IAEA,oBAAOS,IAAA,CAACP,eAAA,CAAgBD,SAAS;MAAE,GAAGE,WAAW;MAAG,GAAGH;;EACzD;EAEA,IAAIE,eAAA,CAAgBU,KAAK,EAAE;IACzB,oBAAOH,IAAA,CAACP,eAAA,CAAgBD,SAAS;MAAE,GAAGC,eAAA,CAAgBU,KAAK;MAAG,GAAGZ;;EACnE;EAEA,oBAAOS,IAAA,CAACP,eAAA,CAAgBD,SAAS;IAAE,GAAGD;;AACxC","ignoreList":[]}
|