@payloadcms/ui 3.0.0-alpha.60 → 3.0.0-alpha.61
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/@types/assets.d.js.map +1 -1
- package/dist/assets/index.js.map +1 -1
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/Autosave/index.js +4 -1
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Banner/index.js.map +1 -1
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/Card/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/CodeEditor/index.js.map +1 -1
- package/dist/elements/CodeEditor/types.js.map +1 -1
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/Collapsible/provider.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +4 -4
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/getFormattedLocale.d.ts +2 -0
- package/dist/elements/DatePicker/getFormattedLocale.d.ts.map +1 -0
- package/dist/elements/DatePicker/getFormattedLocale.js +12 -0
- package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -0
- package/dist/elements/DatePicker/index.js.map +1 -1
- package/dist/elements/DatePicker/types.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +20 -4
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/getCustomViews.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/getViewConfig.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/types.js.map +1 -1
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/Drawer/types.js.map +1 -1
- package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
- package/dist/elements/Dropzone/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/ErrorPill/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/Gutter/index.js.map +1 -1
- package/dist/elements/Hamburger/index.js.map +1 -1
- package/dist/elements/HydrateClientUser/index.js.map +1 -1
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/reducer.js.map +1 -1
- package/dist/elements/LoadingOverlay/types.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/Modal/index.js.map +1 -1
- package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
- package/dist/elements/Nav/NavToggler/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
- package/dist/elements/Pagination/Page/index.js.map +1 -1
- package/dist/elements/Pagination/Separator/index.js.map +1 -1
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/types.js.map +1 -1
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/Publish/index.js.map +1 -1
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/Control/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
- package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RenderCustomComponent/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/Save/index.js.map +1 -1
- package/dist/elements/SaveDraft/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/SelectAll/index.js.map +1 -1
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/SortComplex/index.js.map +1 -1
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StepNav/SetStepNav.js.map +1 -1
- package/dist/elements/StepNav/index.d.ts +2 -1
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +5 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/reducer.js.map +1 -1
- package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/TableColumns/columnReducer.js.map +1 -1
- package/dist/elements/TableColumns/filterFields.js.map +1 -1
- package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Translation/index.js.map +1 -1
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/ViewDescription/index.js.map +1 -1
- package/dist/elements/ViewDescription/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/types.js.map +1 -1
- package/dist/elements/WhereBuilder/field-types.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
- package/dist/elements/WhereBuilder/transformWhereQuery.js.map +1 -1
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
- package/dist/elements/WindowInfo/index.js.map +1 -1
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/exports/elements.js.map +1 -1
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Checkbox/types.js.map +1 -1
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Group/provider.js.map +1 -1
- package/dist/fields/HiddenInput/index.js.map +1 -1
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/AddNew/index.js.map +1 -1
- package/dist/fields/Relationship/AddNew/types.js.map +1 -1
- package/dist/fields/Relationship/AddNew/useRelatedCollections.js.map +1 -1
- package/dist/fields/Relationship/createRelationMap.js.map +1 -1
- package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/optionsReducer.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/RichText/index.js.map +1 -1
- package/dist/fields/Row/index.js.map +1 -1
- package/dist/fields/Row/provider.js.map +1 -1
- package/dist/fields/Row/types.js.map +1 -1
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Tabs/provider.js.map +1 -1
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Textarea/types.js.map +1 -1
- package/dist/fields/UI/index.js.map +1 -1
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/Upload/types.js.map +1 -1
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/forms/FieldDescription/index.js.map +1 -1
- package/dist/forms/FieldError/index.js.map +1 -1
- package/dist/forms/FieldLabel/index.js.map +1 -1
- package/dist/forms/FieldPropsProvider/index.js.map +1 -1
- package/dist/forms/Form/context.js.map +1 -1
- package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
- package/dist/forms/Form/errorMessages.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +53 -0
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/getDataByPath.js.map +1 -1
- package/dist/forms/Form/getSiblingData.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +3 -8
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/initContextState.js.map +1 -1
- package/dist/forms/Form/mergeErrorPaths.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/rows.js.map +1 -1
- package/dist/forms/Form/types.d.ts +8 -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.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/RowLabel/Context/index.js.map +1 -1
- package/dist/forms/RowLabel/index.js.map +1 -1
- package/dist/forms/RowLabel/types.js.map +1 -1
- package/dist/forms/Submit/index.js.map +1 -1
- package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
- package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js.map +1 -1
- package/dist/forms/WatchChildErrors/getNestedFieldState.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
- package/dist/forms/buildStateFromSchema/buildStateFromSchema.spec.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
- package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.js.map +1 -1
- package/dist/forms/buildStateFromSchema/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/useField/types.js.map +1 -1
- package/dist/forms/withCondition/WatchCondition.js.map +1 -1
- package/dist/forms/withCondition/index.js.map +1 -1
- package/dist/graphics/Account/Default/index.js.map +1 -1
- package/dist/graphics/Account/Gravatar/index.js.map +1 -1
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
- package/dist/graphics/ExternalLink/index.js.map +1 -1
- package/dist/graphics/File/index.js.map +1 -1
- package/dist/graphics/Icon/index.js.map +1 -1
- package/dist/graphics/Logo/index.js.map +1 -1
- package/dist/graphics/Search/index.js.map +1 -1
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/hooks/useDelay.js.map +1 -1
- package/dist/hooks/useDelayedRender.js.map +1 -1
- package/dist/hooks/useHotkey.js.map +1 -1
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/hooks/useResize.js.map +1 -1
- package/dist/hooks/useThrottledEffect.js.map +1 -1
- package/dist/hooks/useUseAsTitle.js.map +1 -1
- package/dist/icons/Calendar/index.js.map +1 -1
- package/dist/icons/Check/index.js.map +1 -1
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/CloseMenu/index.js.map +1 -1
- package/dist/icons/CodeBlock/index.js.map +1 -1
- package/dist/icons/Copy/index.js.map +1 -1
- package/dist/icons/DragHandle/index.js.map +1 -1
- package/dist/icons/Edit/index.js.map +1 -1
- package/dist/icons/Line/index.js.map +1 -1
- package/dist/icons/Link/index.js.map +1 -1
- package/dist/icons/LogOut/index.js.map +1 -1
- package/dist/icons/Menu/index.js.map +1 -1
- package/dist/icons/MinimizeMaximize/index.js.map +1 -1
- package/dist/icons/More/index.js.map +1 -1
- package/dist/icons/Plus/index.js.map +1 -1
- package/dist/icons/Search/index.js.map +1 -1
- package/dist/icons/Swap/index.js.map +1 -1
- package/dist/icons/X/index.js.map +1 -1
- package/dist/providers/Actions/SetViewActions/index.js.map +1 -1
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +3 -1
- package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/collections.js +2 -1
- package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +2 -0
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.js +30 -7
- package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +3 -1
- package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/globals.js +2 -1
- package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +2 -0
- package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/index.js +3 -1
- package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
- package/dist/providers/ComponentMap/index.js.map +1 -1
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentEvents/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/EditDepth/index.js.map +1 -1
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/FieldComponents/index.js.map +1 -1
- package/dist/providers/FormQueryParams/index.js.map +1 -1
- package/dist/providers/FormQueryParams/types.js.map +1 -1
- package/dist/providers/ListInfo/index.js.map +1 -1
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Operation/index.js.map +1 -1
- package/dist/providers/Params/index.js.map +1 -1
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts +4 -3
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +3 -2
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/SearchParams/index.js.map +1 -1
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/Translation/index.d.ts +4 -3
- package/dist/providers/Translation/index.d.ts.map +1 -1
- package/dist/providers/Translation/index.js +20 -6
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/templates/Default/NavHamburger/index.js.map +1 -1
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/templates/Minimal/index.js.map +1 -1
- package/dist/utilities/api.js.map +1 -1
- package/dist/utilities/arraysHaveSameStrings.js.map +1 -1
- package/dist/utilities/buildComponentMap.js.map +1 -1
- package/dist/utilities/canUseDOM.js.map +1 -1
- package/dist/utilities/dateLocales.js.map +1 -1
- package/dist/utilities/findLocaleFromCode.js.map +1 -1
- package/dist/utilities/flattenFieldMap.js.map +1 -1
- package/dist/utilities/formatDate.d.ts +13 -2
- package/dist/utilities/formatDate.d.ts.map +1 -1
- package/dist/utilities/formatDate.js +4 -7
- package/dist/utilities/formatDate.js.map +1 -1
- package/dist/utilities/formatDocTitle.js +5 -1
- package/dist/utilities/formatDocTitle.js.map +1 -1
- package/dist/utilities/formatFields.js.map +1 -1
- package/dist/utilities/generateFieldID.js.map +1 -1
- package/dist/utilities/getFormState.js.map +1 -1
- package/dist/utilities/getOffsetTop.js.map +1 -1
- package/dist/utilities/getRequestLanguage.js.map +1 -1
- package/dist/utilities/getSupportedMonacoLocale.js.map +1 -1
- package/dist/utilities/groupNavItems.js.map +1 -1
- package/dist/utilities/reduceFieldsToValues.js.map +1 -1
- package/dist/utilities/scrollToID.js.map +1 -1
- package/dist/utilities/setsAreEqual.js.map +1 -1
- package/package.json +4 -4
- package/dist/utilities/getDateLocale.d.ts +0 -7
- package/dist/utilities/getDateLocale.d.ts.map +0 -1
- package/dist/utilities/getDateLocale.js +0 -16
- package/dist/utilities/getDateLocale.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/optionsReducer.ts"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\n\nimport type { Action, Option } from './types.js'\n\nconst reduceToIDs = (options) =>\n options.reduce((ids, option) => {\n if (option.options) {\n return [...ids, ...reduceToIDs(option.options)]\n }\n\n return [...ids, option.id]\n }, [])\n\nconst optionsReducer = (state: Option[], action: Action): Option[] => {\n switch (action.type) {\n case 'CLEAR': {\n return action.required ? [] : [{ label: action.i18n.t('general:none'), value: 'null' }]\n }\n\n case 'ADD': {\n const { collection, data, hasMultipleRelations, i18n, relation } = action\n\n const labelKey = collection.admin.useAsTitle || 'id'\n\n const loadedIDs = reduceToIDs(state)\n\n if (!hasMultipleRelations) {\n return [\n ...state,\n ...data.docs.reduce((docs, doc) => {\n if (loadedIDs.indexOf(doc.id) === -1) {\n loadedIDs.push(doc.id)\n return [\n ...docs,\n {\n label: doc[labelKey],\n value: doc.id,\n },\n ]\n }\n return docs\n }, []),\n ]\n }\n\n const newOptions = [...state]\n const optionsToAddTo = newOptions.find(\n (optionGroup) => optionGroup.label === getTranslation(collection.labels.plural, i18n),\n )\n\n const newSubOptions = data.docs.reduce((docs, doc) => {\n if (loadedIDs.indexOf(doc.id) === -1) {\n loadedIDs.push(doc.id)\n\n return [\n ...docs,\n {\n label: doc[labelKey],\n relationTo: relation,\n value: doc.id,\n },\n ]\n }\n\n return docs\n }, [])\n\n if (optionsToAddTo) {\n optionsToAddTo.options = [...optionsToAddTo.options, ...newSubOptions]\n } else {\n newOptions.push({\n label: getTranslation(collection.labels.plural, i18n),\n options: newSubOptions,\n value: undefined,\n })\n }\n\n return newOptions\n }\n\n default: {\n return state\n }\n }\n}\n\nexport default optionsReducer\n"],"names":["getTranslation","reduceToIDs","options","reduce","ids","option","id","optionsReducer","state","action","type","required","label","i18n","t","value","collection","data","hasMultipleRelations","relation","labelKey","admin","useAsTitle","loadedIDs","docs","doc","indexOf","push","newOptions","optionsToAddTo","find","optionGroup","labels","plural","newSubOptions","relationTo","undefined"],"mappings":"AAAA,SAASA,cAAc,QAAQ,2BAA0B;AAIzD,MAAMC,cAAc,CAACC,UACnBA,QAAQC,MAAM,CAAC,CAACC,KAAKC;QACnB,IAAIA,OAAOH,OAAO,EAAE;YAClB,OAAO;mBAAIE;mBAAQH,YAAYI,OAAOH,OAAO;aAAE;QACjD;QAEA,OAAO;eAAIE;YAAKC,OAAOC,EAAE;SAAC;IAC5B,GAAG,EAAE;AAEP,MAAMC,iBAAiB,CAACC,OAAiBC;IACvC,OAAQA,OAAOC,IAAI;QACjB,KAAK;YAAS;gBACZ,OAAOD,OAAOE,QAAQ,GAAG,EAAE,GAAG;oBAAC;wBAAEC,OAAOH,OAAOI,IAAI,CAACC,CAAC,CAAC;wBAAiBC,OAAO;oBAAO;iBAAE;YACzF;QAEA,KAAK;YAAO;gBACV,MAAM,EAAEC,UAAU,EAAEC,IAAI,EAAEC,oBAAoB,EAAEL,IAAI,EAAEM,QAAQ,EAAE,GAAGV;gBAEnE,MAAMW,WAAWJ,WAAWK,KAAK,CAACC,UAAU,IAAI;gBAEhD,MAAMC,YAAYtB,YAAYO;gBAE9B,IAAI,CAACU,sBAAsB;oBACzB,OAAO;2BACFV;2BACAS,KAAKO,IAAI,CAACrB,MAAM,CAAC,CAACqB,MAAMC;4BACzB,IAAIF,UAAUG,OAAO,CAACD,IAAInB,EAAE,MAAM,CAAC,GAAG;gCACpCiB,UAAUI,IAAI,CAACF,IAAInB,EAAE;gCACrB,OAAO;uCACFkB;oCACH;wCACEZ,OAAOa,GAAG,CAACL,SAAS;wCACpBL,OAAOU,IAAInB,EAAE;oCACf;iCACD;4BACH;4BACA,OAAOkB;wBACT,GAAG,EAAE;qBACN;gBACH;gBAEA,MAAMI,aAAa;uBAAIpB;iBAAM;gBAC7B,MAAMqB,iBAAiBD,WAAWE,IAAI,CACpC,CAACC,cAAgBA,YAAYnB,KAAK,KAAKZ,eAAegB,WAAWgB,MAAM,CAACC,MAAM,EAAEpB;gBAGlF,MAAMqB,gBAAgBjB,KAAKO,IAAI,CAACrB,MAAM,CAAC,CAACqB,MAAMC;oBAC5C,IAAIF,UAAUG,OAAO,CAACD,IAAInB,EAAE,MAAM,CAAC,GAAG;wBACpCiB,UAAUI,IAAI,CAACF,IAAInB,EAAE;wBAErB,OAAO;+BACFkB;4BACH;gCACEZ,OAAOa,GAAG,CAACL,SAAS;gCACpBe,YAAYhB;gCACZJ,OAAOU,IAAInB,EAAE;4BACf;yBACD;oBACH;oBAEA,OAAOkB;gBACT,GAAG,EAAE;gBAEL,IAAIK,gBAAgB;oBAClBA,eAAe3B,OAAO,GAAG;2BAAI2B,eAAe3B,OAAO;2BAAKgC;qBAAc;gBACxE,OAAO;oBACLN,WAAWD,IAAI,CAAC;wBACdf,OAAOZ,eAAegB,WAAWgB,MAAM,CAACC,MAAM,EAAEpB;wBAChDX,SAASgC;wBACTnB,OAAOqB;oBACT;gBACF;gBAEA,OAAOR;YACT;QAEA;YAAS;gBACP,OAAOpB;YACT;IACF;AACF;AAEA,eAAeD,eAAc"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/optionsReducer.ts"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\n\nimport type { Action, Option } from './types.js'\n\nconst reduceToIDs = (options) =>\n options.reduce((ids, option) => {\n if (option.options) {\n return [...ids, ...reduceToIDs(option.options)]\n }\n\n return [...ids, option.id]\n }, [])\n\nconst optionsReducer = (state: Option[], action: Action): Option[] => {\n switch (action.type) {\n case 'CLEAR': {\n return action.required ? [] : [{ label: action.i18n.t('general:none'), value: 'null' }]\n }\n\n case 'ADD': {\n const { collection, data, hasMultipleRelations, i18n, relation } = action\n\n const labelKey = collection.admin.useAsTitle || 'id'\n\n const loadedIDs = reduceToIDs(state)\n\n if (!hasMultipleRelations) {\n return [\n ...state,\n ...data.docs.reduce((docs, doc) => {\n if (loadedIDs.indexOf(doc.id) === -1) {\n loadedIDs.push(doc.id)\n return [\n ...docs,\n {\n label: doc[labelKey],\n value: doc.id,\n },\n ]\n }\n return docs\n }, []),\n ]\n }\n\n const newOptions = [...state]\n const optionsToAddTo = newOptions.find(\n (optionGroup) => optionGroup.label === getTranslation(collection.labels.plural, i18n),\n )\n\n const newSubOptions = data.docs.reduce((docs, doc) => {\n if (loadedIDs.indexOf(doc.id) === -1) {\n loadedIDs.push(doc.id)\n\n return [\n ...docs,\n {\n label: doc[labelKey],\n relationTo: relation,\n value: doc.id,\n },\n ]\n }\n\n return docs\n }, [])\n\n if (optionsToAddTo) {\n optionsToAddTo.options = [...optionsToAddTo.options, ...newSubOptions]\n } else {\n newOptions.push({\n label: getTranslation(collection.labels.plural, i18n),\n options: newSubOptions,\n value: undefined,\n })\n }\n\n return newOptions\n }\n\n default: {\n return state\n }\n }\n}\n\nexport default optionsReducer\n"],"names":["getTranslation","reduceToIDs","options","reduce","ids","option","id","optionsReducer","state","action","type","required","label","i18n","t","value","collection","data","hasMultipleRelations","relation","labelKey","admin","useAsTitle","loadedIDs","docs","doc","indexOf","push","newOptions","optionsToAddTo","find","optionGroup","labels","plural","newSubOptions","relationTo","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,cAAc,QAAQ,2BAA0B;AAIzD,MAAMC,cAAc,CAACC,UACnBA,QAAQC,MAAM,CAAC,CAACC,KAAKC;QACnB,IAAIA,OAAOH,OAAO,EAAE;YAClB,OAAO;mBAAIE;mBAAQH,YAAYI,OAAOH,OAAO;aAAE;QACjD;QAEA,OAAO;eAAIE;YAAKC,OAAOC,EAAE;SAAC;IAC5B,GAAG,EAAE;AAEP,MAAMC,iBAAiB,CAACC,OAAiBC;IACvC,OAAQA,OAAOC,IAAI;QACjB,KAAK;YAAS;gBACZ,OAAOD,OAAOE,QAAQ,GAAG,EAAE,GAAG;oBAAC;wBAAEC,OAAOH,OAAOI,IAAI,CAACC,CAAC,CAAC;wBAAiBC,OAAO;oBAAO;iBAAE;YACzF;QAEA,KAAK;YAAO;gBACV,MAAM,EAAEC,UAAU,EAAEC,IAAI,EAAEC,oBAAoB,EAAEL,IAAI,EAAEM,QAAQ,EAAE,GAAGV;gBAEnE,MAAMW,WAAWJ,WAAWK,KAAK,CAACC,UAAU,IAAI;gBAEhD,MAAMC,YAAYtB,YAAYO;gBAE9B,IAAI,CAACU,sBAAsB;oBACzB,OAAO;2BACFV;2BACAS,KAAKO,IAAI,CAACrB,MAAM,CAAC,CAACqB,MAAMC;4BACzB,IAAIF,UAAUG,OAAO,CAACD,IAAInB,EAAE,MAAM,CAAC,GAAG;gCACpCiB,UAAUI,IAAI,CAACF,IAAInB,EAAE;gCACrB,OAAO;uCACFkB;oCACH;wCACEZ,OAAOa,GAAG,CAACL,SAAS;wCACpBL,OAAOU,IAAInB,EAAE;oCACf;iCACD;4BACH;4BACA,OAAOkB;wBACT,GAAG,EAAE;qBACN;gBACH;gBAEA,MAAMI,aAAa;uBAAIpB;iBAAM;gBAC7B,MAAMqB,iBAAiBD,WAAWE,IAAI,CACpC,CAACC,cAAgBA,YAAYnB,KAAK,KAAKZ,eAAegB,WAAWgB,MAAM,CAACC,MAAM,EAAEpB;gBAGlF,MAAMqB,gBAAgBjB,KAAKO,IAAI,CAACrB,MAAM,CAAC,CAACqB,MAAMC;oBAC5C,IAAIF,UAAUG,OAAO,CAACD,IAAInB,EAAE,MAAM,CAAC,GAAG;wBACpCiB,UAAUI,IAAI,CAACF,IAAInB,EAAE;wBAErB,OAAO;+BACFkB;4BACH;gCACEZ,OAAOa,GAAG,CAACL,SAAS;gCACpBe,YAAYhB;gCACZJ,OAAOU,IAAInB,EAAE;4BACf;yBACD;oBACH;oBAEA,OAAOkB;gBACT,GAAG,EAAE;gBAEL,IAAIK,gBAAgB;oBAClBA,eAAe3B,OAAO,GAAG;2BAAI2B,eAAe3B,OAAO;2BAAKgC;qBAAc;gBACxE,OAAO;oBACLN,WAAWD,IAAI,CAAC;wBACdf,OAAOZ,eAAegB,WAAWgB,MAAM,CAACC,MAAM,EAAEpB;wBAChDX,SAASgC;wBACTnB,OAAOqB;oBACT;gBACF;gBAEA,OAAOR;YACT;QAEA;YAAS;gBACP,OAAOpB;YACT;IACF;AACF;AAEA,eAAeD,eAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/types.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { PaginatedDocs } from 'payload/database'\nimport type { ClientCollectionConfig, RelationshipField } from 'payload/types'\n\nexport type Props = {\n disabled?: boolean\n onChange: (val: unknown) => void\n value: unknown\n} & RelationshipField\n\nexport type Option = {\n label: string\n options?: Option[]\n relationTo?: string\n value: string\n}\n\ntype CLEAR = {\n i18n: I18n\n required: boolean\n type: 'CLEAR'\n}\n\ntype ADD = {\n collection: ClientCollectionConfig\n data: PaginatedDocs<any>\n hasMultipleRelations: boolean\n i18n: I18n\n relation: string\n type: 'ADD'\n}\n\nexport type Action = ADD | CLEAR\n\nexport type ValueWithRelation = {\n relationTo: string\n value: string\n}\n\nexport type GetResults = (args: {\n lastFullyLoadedRelation?: number\n lastLoadedPage?: number\n search?: string\n}) => Promise<void>\n"],"names":[],"mappings":"AAuCA,WAImB"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/types.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { PaginatedDocs } from 'payload/database'\nimport type { ClientCollectionConfig, RelationshipField } from 'payload/types'\n\nexport type Props = {\n disabled?: boolean\n onChange: (val: unknown) => void\n value: unknown\n} & RelationshipField\n\nexport type Option = {\n label: string\n options?: Option[]\n relationTo?: string\n value: string\n}\n\ntype CLEAR = {\n i18n: I18n\n required: boolean\n type: 'CLEAR'\n}\n\ntype ADD = {\n collection: ClientCollectionConfig\n data: PaginatedDocs<any>\n hasMultipleRelations: boolean\n i18n: I18n\n relation: string\n type: 'ADD'\n}\n\nexport type Action = ADD | CLEAR\n\nexport type ValueWithRelation = {\n relationTo: string\n value: string\n}\n\nexport type GetResults = (args: {\n lastFullyLoadedRelation?: number\n lastLoadedPage?: number\n search?: string\n}) => Promise<void>\n"],"names":[],"rangeMappings":"","mappings":"AAuCA,WAImB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"sourcesContent":["import type { Option, OptionObject } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\n\nconst formatOptions = (options: Option[]): OptionObject[] =>\n options.map((option) => {\n if (typeof option === 'object' && (option.value || option.value === '')) {\n return option\n }\n\n return {\n label: option,\n value: option,\n } as OptionObject\n })\n\nexport const Select: React.FC<Props> = ({\n disabled,\n onChange,\n operator,\n options: optionsFromProps,\n value,\n}) => {\n const { i18n } = useTranslation()\n const [options, setOptions] = React.useState(formatOptions(optionsFromProps))\n\n const isMulti = ['in', 'not_in'].includes(operator)\n let valueToRender\n\n if (isMulti && Array.isArray(value)) {\n valueToRender = value.map((val) => {\n const matchingOption = options.find((option) => option.value === val)\n return {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : val,\n value: matchingOption?.value ?? val,\n }\n })\n } else if (value) {\n const matchingOption = options.find((option) => option.value === value)\n valueToRender = {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : value,\n value: matchingOption?.value ?? value,\n }\n }\n\n const onSelect = React.useCallback(\n (selectedOption) => {\n let newValue\n if (!selectedOption) {\n newValue = null\n } else if (isMulti) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = []\n }\n } else {\n newValue = selectedOption.value\n }\n\n onChange(newValue)\n },\n [isMulti, onChange],\n )\n\n React.useEffect(() => {\n setOptions(formatOptions(optionsFromProps))\n }, [optionsFromProps])\n\n React.useEffect(() => {\n if (!isMulti && Array.isArray(value)) {\n onChange(value[0])\n }\n }, [isMulti, onChange, value])\n\n return (\n <ReactSelect\n disabled={disabled}\n isMulti={isMulti}\n onChange={onSelect}\n options={options.map((option) => ({ ...option, label: getTranslation(option.label, i18n) }))}\n value={valueToRender}\n />\n )\n}\n"],"names":["getTranslation","React","useTranslation","ReactSelect","formatOptions","options","map","option","value","label","Select","disabled","onChange","operator","optionsFromProps","i18n","setOptions","useState","isMulti","includes","valueToRender","Array","isArray","val","matchingOption","find","onSelect","useCallback","selectedOption","newValue","useEffect"],"mappings":"AAEA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,WAAW,QAAQ,gCAA+B;AAE3D,MAAMC,gBAAgB,CAACC,UACrBA,QAAQC,GAAG,CAAC,CAACC;QACX,IAAI,OAAOA,WAAW,YAAaA,CAAAA,OAAOC,KAAK,IAAID,OAAOC,KAAK,KAAK,EAAC,GAAI;YACvE,OAAOD;QACT;QAEA,OAAO;YACLE,OAAOF;YACPC,OAAOD;QACT;IACF;AAEF,OAAO,MAAMG,SAA0B,CAAC,EACtCC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRR,SAASS,gBAAgB,EACzBN,KAAK,EACN;IACC,MAAM,EAAEO,IAAI,EAAE,GAAGb;IACjB,MAAM,CAACG,SAASW,WAAW,GAAGf,MAAMgB,QAAQ,CAACb,cAAcU;IAE3D,MAAMI,UAAU;QAAC;QAAM;KAAS,CAACC,QAAQ,CAACN;IAC1C,IAAIO;IAEJ,IAAIF,WAAWG,MAAMC,OAAO,CAACd,QAAQ;QACnCY,gBAAgBZ,MAAMF,GAAG,CAAC,CAACiB;YACzB,MAAMC,iBAAiBnB,QAAQoB,IAAI,CAAC,CAAClB,SAAWA,OAAOC,KAAK,KAAKe;YACjE,OAAO;gBACLd,OAAOe,iBAAiBxB,eAAewB,eAAef,KAAK,EAAEM,QAAQQ;gBACrEf,OAAOgB,gBAAgBhB,SAASe;YAClC;QACF;IACF,OAAO,IAAIf,OAAO;QAChB,MAAMgB,iBAAiBnB,QAAQoB,IAAI,CAAC,CAAClB,SAAWA,OAAOC,KAAK,KAAKA;QACjEY,gBAAgB;YACdX,OAAOe,iBAAiBxB,eAAewB,eAAef,KAAK,EAAEM,QAAQP;YACrEA,OAAOgB,gBAAgBhB,SAASA;QAClC;IACF;IAEA,MAAMkB,WAAWzB,MAAM0B,WAAW,CAChC,CAACC;QACC,IAAIC;QACJ,IAAI,CAACD,gBAAgB;YACnBC,WAAW;QACb,OAAO,IAAIX,SAAS;YAClB,IAAIG,MAAMC,OAAO,CAACM,iBAAiB;gBACjCC,WAAWD,eAAetB,GAAG,CAAC,CAACC,SAAWA,OAAOC,KAAK;YACxD,OAAO;gBACLqB,WAAW,EAAE;YACf;QACF,OAAO;YACLA,WAAWD,eAAepB,KAAK;QACjC;QAEAI,SAASiB;IACX,GACA;QAACX;QAASN;KAAS;IAGrBX,MAAM6B,SAAS,CAAC;QACdd,WAAWZ,cAAcU;IAC3B,GAAG;QAACA;KAAiB;IAErBb,MAAM6B,SAAS,CAAC;QACd,IAAI,CAACZ,WAAWG,MAAMC,OAAO,CAACd,QAAQ;YACpCI,SAASJ,KAAK,CAAC,EAAE;QACnB;IACF,GAAG;QAACU;QAASN;QAAUJ;KAAM;IAE7B,qBACE,oBAACL;QACCQ,UAAUA;QACVO,SAASA;QACTN,UAAUc;QACVrB,SAASA,QAAQC,GAAG,CAAC,CAACC,SAAY,CAAA;gBAAE,GAAGA,MAAM;gBAAEE,OAAOT,eAAeO,OAAOE,KAAK,EAAEM;YAAM,CAAA;QACzFP,OAAOY;;AAGb,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"sourcesContent":["import type { Option, OptionObject } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\n\nconst formatOptions = (options: Option[]): OptionObject[] =>\n options.map((option) => {\n if (typeof option === 'object' && (option.value || option.value === '')) {\n return option\n }\n\n return {\n label: option,\n value: option,\n } as OptionObject\n })\n\nexport const Select: React.FC<Props> = ({\n disabled,\n onChange,\n operator,\n options: optionsFromProps,\n value,\n}) => {\n const { i18n } = useTranslation()\n const [options, setOptions] = React.useState(formatOptions(optionsFromProps))\n\n const isMulti = ['in', 'not_in'].includes(operator)\n let valueToRender\n\n if (isMulti && Array.isArray(value)) {\n valueToRender = value.map((val) => {\n const matchingOption = options.find((option) => option.value === val)\n return {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : val,\n value: matchingOption?.value ?? val,\n }\n })\n } else if (value) {\n const matchingOption = options.find((option) => option.value === value)\n valueToRender = {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : value,\n value: matchingOption?.value ?? value,\n }\n }\n\n const onSelect = React.useCallback(\n (selectedOption) => {\n let newValue\n if (!selectedOption) {\n newValue = null\n } else if (isMulti) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = []\n }\n } else {\n newValue = selectedOption.value\n }\n\n onChange(newValue)\n },\n [isMulti, onChange],\n )\n\n React.useEffect(() => {\n setOptions(formatOptions(optionsFromProps))\n }, [optionsFromProps])\n\n React.useEffect(() => {\n if (!isMulti && Array.isArray(value)) {\n onChange(value[0])\n }\n }, [isMulti, onChange, value])\n\n return (\n <ReactSelect\n disabled={disabled}\n isMulti={isMulti}\n onChange={onSelect}\n options={options.map((option) => ({ ...option, label: getTranslation(option.label, i18n) }))}\n value={valueToRender}\n />\n )\n}\n"],"names":["getTranslation","React","useTranslation","ReactSelect","formatOptions","options","map","option","value","label","Select","disabled","onChange","operator","optionsFromProps","i18n","setOptions","useState","isMulti","includes","valueToRender","Array","isArray","val","matchingOption","find","onSelect","useCallback","selectedOption","newValue","useEffect"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,WAAW,QAAQ,gCAA+B;AAE3D,MAAMC,gBAAgB,CAACC,UACrBA,QAAQC,GAAG,CAAC,CAACC;QACX,IAAI,OAAOA,WAAW,YAAaA,CAAAA,OAAOC,KAAK,IAAID,OAAOC,KAAK,KAAK,EAAC,GAAI;YACvE,OAAOD;QACT;QAEA,OAAO;YACLE,OAAOF;YACPC,OAAOD;QACT;IACF;AAEF,OAAO,MAAMG,SAA0B,CAAC,EACtCC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRR,SAASS,gBAAgB,EACzBN,KAAK,EACN;IACC,MAAM,EAAEO,IAAI,EAAE,GAAGb;IACjB,MAAM,CAACG,SAASW,WAAW,GAAGf,MAAMgB,QAAQ,CAACb,cAAcU;IAE3D,MAAMI,UAAU;QAAC;QAAM;KAAS,CAACC,QAAQ,CAACN;IAC1C,IAAIO;IAEJ,IAAIF,WAAWG,MAAMC,OAAO,CAACd,QAAQ;QACnCY,gBAAgBZ,MAAMF,GAAG,CAAC,CAACiB;YACzB,MAAMC,iBAAiBnB,QAAQoB,IAAI,CAAC,CAAClB,SAAWA,OAAOC,KAAK,KAAKe;YACjE,OAAO;gBACLd,OAAOe,iBAAiBxB,eAAewB,eAAef,KAAK,EAAEM,QAAQQ;gBACrEf,OAAOgB,gBAAgBhB,SAASe;YAClC;QACF;IACF,OAAO,IAAIf,OAAO;QAChB,MAAMgB,iBAAiBnB,QAAQoB,IAAI,CAAC,CAAClB,SAAWA,OAAOC,KAAK,KAAKA;QACjEY,gBAAgB;YACdX,OAAOe,iBAAiBxB,eAAewB,eAAef,KAAK,EAAEM,QAAQP;YACrEA,OAAOgB,gBAAgBhB,SAASA;QAClC;IACF;IAEA,MAAMkB,WAAWzB,MAAM0B,WAAW,CAChC,CAACC;QACC,IAAIC;QACJ,IAAI,CAACD,gBAAgB;YACnBC,WAAW;QACb,OAAO,IAAIX,SAAS;YAClB,IAAIG,MAAMC,OAAO,CAACM,iBAAiB;gBACjCC,WAAWD,eAAetB,GAAG,CAAC,CAACC,SAAWA,OAAOC,KAAK;YACxD,OAAO;gBACLqB,WAAW,EAAE;YACf;QACF,OAAO;YACLA,WAAWD,eAAepB,KAAK;QACjC;QAEAI,SAASiB;IACX,GACA;QAACX;QAASN;KAAS;IAGrBX,MAAM6B,SAAS,CAAC;QACdd,WAAWZ,cAAcU;IAC3B,GAAG;QAACA;KAAiB;IAErBb,MAAM6B,SAAS,CAAC;QACd,IAAI,CAACZ,WAAWG,MAAMC,OAAO,CAACd,QAAQ;YACpCI,SAASJ,KAAK,CAAC,EAAE;QACnB;IACF,GAAG;QAACU;QAASN;QAAUJ;KAAM;IAE7B,qBACE,oBAACL;QACCQ,UAAUA;QACVO,SAASA;QACTN,UAAUc;QACVrB,SAASA,QAAQC,GAAG,CAAC,CAACC,SAAY,CAAA;gBAAE,GAAGA,MAAM;gBAAEE,OAAOT,eAAeO,OAAOE,KAAK,EAAEM;YAAM,CAAA;QACzFP,OAAOY;;AAGb,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/types.ts"],"sourcesContent":["import type { Operator, Option } from 'payload/types'\n\nexport type Props = {\n disabled?: boolean\n onChange: (val: string) => void\n operator: Operator\n options: Option[]\n value: string\n}\n"],"names":[],"mappings":"AAEA,WAMC"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/types.ts"],"sourcesContent":["import type { Operator, Option } from 'payload/types'\n\nexport type Props = {\n disabled?: boolean\n onChange: (val: string) => void\n operator: Operator\n options: Option[]\n value: string\n}\n"],"names":[],"rangeMappings":"","mappings":"AAEA,WAMC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Text/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'condition-value-text'\n\nconst Text: React.FC<Props> = ({ disabled, onChange, value }) => {\n const { t } = useTranslation()\n return (\n <input\n className={baseClass}\n disabled={disabled}\n onChange={(e) => onChange(e.target.value)}\n placeholder={t('general:enterAValue')}\n type=\"text\"\n value={value || ''}\n />\n )\n}\n\nexport default Text\n"],"names":["React","useTranslation","baseClass","Text","disabled","onChange","value","t","input","className","e","target","placeholder","type"],"mappings":"AAAA,OAAOA,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,6CAA4C;AAG3E,MAAMC,YAAY;AAElB,MAAMC,OAAwB,CAAC,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAE;IAC1D,MAAM,EAAEC,CAAC,EAAE,GAAGN;IACd,qBACE,oBAACO;QACCC,WAAWP;QACXE,UAAUA;QACVC,UAAU,CAACK,IAAML,SAASK,EAAEC,MAAM,CAACL,KAAK;QACxCM,aAAaL,EAAE;QACfM,MAAK;QACLP,OAAOA,SAAS;;AAGtB;AAEA,eAAeH,KAAI"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Text/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'condition-value-text'\n\nconst Text: React.FC<Props> = ({ disabled, onChange, value }) => {\n const { t } = useTranslation()\n return (\n <input\n className={baseClass}\n disabled={disabled}\n onChange={(e) => onChange(e.target.value)}\n placeholder={t('general:enterAValue')}\n type=\"text\"\n value={value || ''}\n />\n )\n}\n\nexport default Text\n"],"names":["React","useTranslation","baseClass","Text","disabled","onChange","value","t","input","className","e","target","placeholder","type"],"rangeMappings":";;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,6CAA4C;AAG3E,MAAMC,YAAY;AAElB,MAAMC,OAAwB,CAAC,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAE;IAC1D,MAAM,EAAEC,CAAC,EAAE,GAAGN;IACd,qBACE,oBAACO;QACCC,WAAWP;QACXE,UAAUA;QACVC,UAAU,CAACK,IAAML,SAASK,EAAEC,MAAM,CAACL,KAAK;QACxCM,aAAaL,EAAE;QACfM,MAAK;QACLP,OAAOA,SAAS;;AAGtB;AAEA,eAAeH,KAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Text/types.ts"],"sourcesContent":["export type Props = {\n disabled?: boolean\n onChange: (val: string) => void\n value: string\n}\n"],"names":[],"mappings":"AAAA,WAIC"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Text/types.ts"],"sourcesContent":["export type Props = {\n disabled?: boolean\n onChange: (val: string) => void\n value: string\n}\n"],"names":[],"rangeMappings":"","mappings":"AAAA,WAIC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\n\nimport type { FieldCondition } from '../types.js'\n\nexport type Props = {\n addCondition: ({\n andIndex,\n fieldName,\n orIndex,\n relation,\n }: {\n andIndex: number\n fieldName: string\n orIndex: number\n relation: 'and' | 'or'\n }) => void\n andIndex: number\n fieldName: string\n fields: FieldCondition[]\n initialValue: string\n operator: string\n orIndex: number\n removeCondition: ({ andIndex, orIndex }: { andIndex: number; orIndex: number }) => void\n updateCondition: ({\n andIndex,\n fieldName,\n operator,\n orIndex,\n value,\n }: {\n andIndex: number\n fieldName: string\n operator: string\n orIndex: number\n value: string\n }) => void\n}\n\nimport type { RelationshipFieldProps } from '@payloadcms/ui/fields/Relationship'\n\nimport { RenderCustomComponent } from '../../../elements/RenderCustomComponent/index.js'\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { DateField } from './Date/index.js'\nimport { NumberField } from './Number/index.js'\nimport { RelationshipField } from './Relationship/index.js'\nimport { Select } from './Select/index.js'\nimport Text from './Text/index.js'\nimport './index.scss'\n\ntype ComponentType = 'Date' | 'Number' | 'Relationship' | 'Select' | 'Text'\nconst valueFields: Record<ComponentType, React.FC> = {\n Date: DateField,\n Number: NumberField,\n Relationship: RelationshipField,\n Select,\n Text,\n}\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n addCondition,\n andIndex,\n fieldName,\n fields,\n initialValue,\n operator,\n orIndex,\n removeCondition,\n updateCondition,\n } = props\n const [internalField, setInternalField] = useState<FieldCondition>(() =>\n fields.find((field) => fieldName === field.value),\n )\n const [internalOperatorOption, setInternalOperatorOption] = useState(operator)\n const [internalQueryValue, setInternalQueryValue] = useState<string>(initialValue)\n\n const debouncedValue = useDebounce(internalQueryValue, 300)\n\n useEffect(() => {\n // This is to trigger changes when the debounced value changes\n if (\n internalField.value &&\n internalOperatorOption &&\n ![null, undefined].includes(debouncedValue)\n ) {\n updateCondition({\n andIndex,\n fieldName: internalField.value,\n operator: internalOperatorOption,\n orIndex,\n value: debouncedValue,\n })\n }\n }, [\n debouncedValue,\n andIndex,\n internalField?.value,\n internalOperatorOption,\n orIndex,\n updateCondition,\n operator,\n ])\n\n const booleanSelect =\n ['exists'].includes(internalOperatorOption) || internalField?.props?.type === 'checkbox'\n const ValueComponent = booleanSelect\n ? Select\n : valueFields[internalField?.component] || valueFields.Text\n\n let valueOptions\n if (booleanSelect) {\n valueOptions = ['true', 'false']\n } else if (internalField?.props && 'options' in internalField.props) {\n valueOptions = internalField.props.options\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n isClearable={false}\n onChange={(field) => {\n setInternalField(fields.find((f) => f.value === field.value))\n setInternalOperatorOption(undefined)\n setInternalQueryValue(undefined)\n }}\n options={fields}\n value={fields.find((field) => internalField.value === field.value) || fields[0]}\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n disabled={!internalField.value}\n isClearable={false}\n onChange={(operator) => {\n setInternalOperatorOption(operator.value)\n }}\n options={internalField?.operators}\n value={\n internalField?.operators.find(\n (operator) => internalOperatorOption === operator.value,\n ) || null\n }\n />\n </div>\n <div className={`${baseClass}__value`}>\n <RenderCustomComponent\n CustomComponent={internalField?.props?.admin?.components?.Filter}\n DefaultComponent={ValueComponent}\n componentProps={{\n ...internalField?.props,\n disabled: !internalOperatorOption,\n onChange: setInternalQueryValue,\n operator: internalOperatorOption,\n options: valueOptions,\n relationTo:\n internalField?.props?.type === 'relationship' &&\n 'cellProps' in internalField.props &&\n typeof internalField.props.cellProps === 'object' &&\n 'relationTo' in internalField.props.cellProps\n ? internalField.props.cellProps?.relationTo\n : undefined,\n value: internalQueryValue ?? '',\n }}\n />\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n round\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-add`}\n icon=\"plus\"\n iconStyle=\"with-border\"\n onClick={() =>\n addCondition({\n andIndex,\n fieldName,\n orIndex,\n relation: 'and',\n })\n }\n round\n />\n </div>\n </div>\n </div>\n )\n}\n"],"names":["React","useEffect","useState","RenderCustomComponent","useDebounce","Button","ReactSelect","DateField","NumberField","RelationshipField","Select","Text","valueFields","Date","Number","Relationship","baseClass","Condition","props","addCondition","andIndex","fieldName","fields","initialValue","operator","orIndex","removeCondition","updateCondition","internalField","setInternalField","find","field","value","internalOperatorOption","setInternalOperatorOption","internalQueryValue","setInternalQueryValue","debouncedValue","undefined","includes","booleanSelect","type","ValueComponent","component","valueOptions","options","div","className","isClearable","onChange","f","disabled","operators","CustomComponent","admin","components","Filter","DefaultComponent","componentProps","relationTo","cellProps","buttonStyle","icon","iconStyle","onClick","round","relation"],"mappings":"AAAA,OAAOA,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAwClD,SAASC,qBAAqB,QAAQ,mDAAkD;AACxF,SAASC,WAAW,QAAQ,gCAA+B;AAC3D,SAASC,MAAM,QAAQ,wBAAuB;AAC9C,SAASC,WAAW,QAAQ,6BAA4B;AACxD,SAASC,SAAS,QAAQ,kBAAiB;AAC3C,SAASC,WAAW,QAAQ,oBAAmB;AAC/C,SAASC,iBAAiB,QAAQ,0BAAyB;AAC3D,SAASC,MAAM,QAAQ,oBAAmB;AAC1C,OAAOC,UAAU,kBAAiB;AAIlC,MAAMC,cAA+C;IACnDC,MAAMN;IACNO,QAAQN;IACRO,cAAcN;IACdC;IACAC;AACF;AAEA,MAAMK,YAAY;AAElB,OAAO,MAAMC,YAA6B,CAACC;IACzC,MAAM,EACJC,YAAY,EACZC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,YAAY,EACZC,QAAQ,EACRC,OAAO,EACPC,eAAe,EACfC,eAAe,EAChB,GAAGT;IACJ,MAAM,CAACU,eAAeC,iBAAiB,GAAG3B,SAAyB,IACjEoB,OAAOQ,IAAI,CAAC,CAACC,QAAUV,cAAcU,MAAMC,KAAK;IAElD,MAAM,CAACC,wBAAwBC,0BAA0B,GAAGhC,SAASsB;IACrE,MAAM,CAACW,oBAAoBC,sBAAsB,GAAGlC,SAAiBqB;IAErE,MAAMc,iBAAiBjC,YAAY+B,oBAAoB;IAEvDlC,UAAU;QACR,8DAA8D;QAC9D,IACE2B,cAAcI,KAAK,IACnBC,0BACA,CAAC;YAAC;YAAMK;SAAU,CAACC,QAAQ,CAACF,iBAC5B;YACAV,gBAAgB;gBACdP;gBACAC,WAAWO,cAAcI,KAAK;gBAC9BR,UAAUS;gBACVR;gBACAO,OAAOK;YACT;QACF;IACF,GAAG;QACDA;QACAjB;QACAQ,eAAeI;QACfC;QACAR;QACAE;QACAH;KACD;IAED,MAAMgB,gBACJ;QAAC;KAAS,CAACD,QAAQ,CAACN,2BAA2BL,eAAeV,OAAOuB,SAAS;IAChF,MAAMC,iBAAiBF,gBACnB9B,SACAE,WAAW,CAACgB,eAAee,UAAU,IAAI/B,YAAYD,IAAI;IAE7D,IAAIiC;IACJ,IAAIJ,eAAe;QACjBI,eAAe;YAAC;YAAQ;SAAQ;IAClC,OAAO,IAAIhB,eAAeV,SAAS,aAAaU,cAAcV,KAAK,EAAE;QACnE0B,eAAehB,cAAcV,KAAK,CAAC2B,OAAO;IAC5C;IAEA,qBACE,oBAACC;QAAIC,WAAW/B;qBACd,oBAAC8B;QAAIC,WAAW,CAAC,EAAE/B,UAAU,MAAM,CAAC;qBAClC,oBAAC8B;QAAIC,WAAW,CAAC,EAAE/B,UAAU,QAAQ,CAAC;qBACpC,oBAAC8B;QAAIC,WAAW,CAAC,EAAE/B,UAAU,OAAO,CAAC;qBACnC,oBAACV;QACC0C,aAAa;QACbC,UAAU,CAAClB;YACTF,iBAAiBP,OAAOQ,IAAI,CAAC,CAACoB,IAAMA,EAAElB,KAAK,KAAKD,MAAMC,KAAK;YAC3DE,0BAA0BI;YAC1BF,sBAAsBE;QACxB;QACAO,SAASvB;QACTU,OAAOV,OAAOQ,IAAI,CAAC,CAACC,QAAUH,cAAcI,KAAK,KAAKD,MAAMC,KAAK,KAAKV,MAAM,CAAC,EAAE;uBAGnF,oBAACwB;QAAIC,WAAW,CAAC,EAAE/B,UAAU,UAAU,CAAC;qBACtC,oBAACV;QACC6C,UAAU,CAACvB,cAAcI,KAAK;QAC9BgB,aAAa;QACbC,UAAU,CAACzB;YACTU,0BAA0BV,SAASQ,KAAK;QAC1C;QACAa,SAASjB,eAAewB;QACxBpB,OACEJ,eAAewB,UAAUtB,KACvB,CAACN,WAAaS,2BAA2BT,SAASQ,KAAK,KACpD;uBAIX,oBAACc;QAAIC,WAAW,CAAC,EAAE/B,UAAU,OAAO,CAAC;qBACnC,oBAACb;QACCkD,iBAAiBzB,eAAeV,OAAOoC,OAAOC,YAAYC;QAC1DC,kBAAkBf;QAClBgB,gBAAgB;YACd,GAAG9B,eAAeV,KAAK;YACvBiC,UAAU,CAAClB;YACXgB,UAAUb;YACVZ,UAAUS;YACVY,SAASD;YACTe,YACE/B,eAAeV,OAAOuB,SAAS,kBAC/B,eAAeb,cAAcV,KAAK,IAClC,OAAOU,cAAcV,KAAK,CAAC0C,SAAS,KAAK,YACzC,gBAAgBhC,cAAcV,KAAK,CAAC0C,SAAS,GACzChC,cAAcV,KAAK,CAAC0C,SAAS,EAAED,aAC/BrB;YACNN,OAAOG,sBAAsB;QAC/B;wBAIN,oBAACW;QAAIC,WAAW,CAAC,EAAE/B,UAAU,SAAS,CAAC;qBACrC,oBAACX;QACCwD,aAAY;QACZd,WAAW,CAAC,EAAE/B,UAAU,gBAAgB,CAAC;QACzC8C,MAAK;QACLC,WAAU;QACVC,SAAS,IACPtC,gBAAgB;gBACdN;gBACAK;YACF;QAEFwC,OAAAA;sBAEF,oBAAC5D;QACCwD,aAAY;QACZd,WAAW,CAAC,EAAE/B,UAAU,aAAa,CAAC;QACtC8C,MAAK;QACLC,WAAU;QACVC,SAAS,IACP7C,aAAa;gBACXC;gBACAC;gBACAI;gBACAyC,UAAU;YACZ;QAEFD,OAAAA;;AAMZ,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\n\nimport type { FieldCondition } from '../types.js'\n\nexport type Props = {\n addCondition: ({\n andIndex,\n fieldName,\n orIndex,\n relation,\n }: {\n andIndex: number\n fieldName: string\n orIndex: number\n relation: 'and' | 'or'\n }) => void\n andIndex: number\n fieldName: string\n fields: FieldCondition[]\n initialValue: string\n operator: string\n orIndex: number\n removeCondition: ({ andIndex, orIndex }: { andIndex: number; orIndex: number }) => void\n updateCondition: ({\n andIndex,\n fieldName,\n operator,\n orIndex,\n value,\n }: {\n andIndex: number\n fieldName: string\n operator: string\n orIndex: number\n value: string\n }) => void\n}\n\nimport type { RelationshipFieldProps } from '@payloadcms/ui/fields/Relationship'\n\nimport { RenderCustomComponent } from '../../../elements/RenderCustomComponent/index.js'\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { DateField } from './Date/index.js'\nimport { NumberField } from './Number/index.js'\nimport { RelationshipField } from './Relationship/index.js'\nimport { Select } from './Select/index.js'\nimport Text from './Text/index.js'\nimport './index.scss'\n\ntype ComponentType = 'Date' | 'Number' | 'Relationship' | 'Select' | 'Text'\nconst valueFields: Record<ComponentType, React.FC> = {\n Date: DateField,\n Number: NumberField,\n Relationship: RelationshipField,\n Select,\n Text,\n}\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n addCondition,\n andIndex,\n fieldName,\n fields,\n initialValue,\n operator,\n orIndex,\n removeCondition,\n updateCondition,\n } = props\n const [internalField, setInternalField] = useState<FieldCondition>(() =>\n fields.find((field) => fieldName === field.value),\n )\n const [internalOperatorOption, setInternalOperatorOption] = useState(operator)\n const [internalQueryValue, setInternalQueryValue] = useState<string>(initialValue)\n\n const debouncedValue = useDebounce(internalQueryValue, 300)\n\n useEffect(() => {\n // This is to trigger changes when the debounced value changes\n if (\n internalField.value &&\n internalOperatorOption &&\n ![null, undefined].includes(debouncedValue)\n ) {\n updateCondition({\n andIndex,\n fieldName: internalField.value,\n operator: internalOperatorOption,\n orIndex,\n value: debouncedValue,\n })\n }\n }, [\n debouncedValue,\n andIndex,\n internalField?.value,\n internalOperatorOption,\n orIndex,\n updateCondition,\n operator,\n ])\n\n const booleanSelect =\n ['exists'].includes(internalOperatorOption) || internalField?.props?.type === 'checkbox'\n const ValueComponent = booleanSelect\n ? Select\n : valueFields[internalField?.component] || valueFields.Text\n\n let valueOptions\n if (booleanSelect) {\n valueOptions = ['true', 'false']\n } else if (internalField?.props && 'options' in internalField.props) {\n valueOptions = internalField.props.options\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n isClearable={false}\n onChange={(field) => {\n setInternalField(fields.find((f) => f.value === field.value))\n setInternalOperatorOption(undefined)\n setInternalQueryValue(undefined)\n }}\n options={fields}\n value={fields.find((field) => internalField.value === field.value) || fields[0]}\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n disabled={!internalField.value}\n isClearable={false}\n onChange={(operator) => {\n setInternalOperatorOption(operator.value)\n }}\n options={internalField?.operators}\n value={\n internalField?.operators.find(\n (operator) => internalOperatorOption === operator.value,\n ) || null\n }\n />\n </div>\n <div className={`${baseClass}__value`}>\n <RenderCustomComponent\n CustomComponent={internalField?.props?.admin?.components?.Filter}\n DefaultComponent={ValueComponent}\n componentProps={{\n ...internalField?.props,\n disabled: !internalOperatorOption,\n onChange: setInternalQueryValue,\n operator: internalOperatorOption,\n options: valueOptions,\n relationTo:\n internalField?.props?.type === 'relationship' &&\n 'cellProps' in internalField.props &&\n typeof internalField.props.cellProps === 'object' &&\n 'relationTo' in internalField.props.cellProps\n ? internalField.props.cellProps?.relationTo\n : undefined,\n value: internalQueryValue ?? '',\n }}\n />\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n round\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-add`}\n icon=\"plus\"\n iconStyle=\"with-border\"\n onClick={() =>\n addCondition({\n andIndex,\n fieldName,\n orIndex,\n relation: 'and',\n })\n }\n round\n />\n </div>\n </div>\n </div>\n )\n}\n"],"names":["React","useEffect","useState","RenderCustomComponent","useDebounce","Button","ReactSelect","DateField","NumberField","RelationshipField","Select","Text","valueFields","Date","Number","Relationship","baseClass","Condition","props","addCondition","andIndex","fieldName","fields","initialValue","operator","orIndex","removeCondition","updateCondition","internalField","setInternalField","find","field","value","internalOperatorOption","setInternalOperatorOption","internalQueryValue","setInternalQueryValue","debouncedValue","undefined","includes","booleanSelect","type","ValueComponent","component","valueOptions","options","div","className","isClearable","onChange","f","disabled","operators","CustomComponent","admin","components","Filter","DefaultComponent","componentProps","relationTo","cellProps","buttonStyle","icon","iconStyle","onClick","round","relation"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/elements/WhereBuilder/Condition/types.ts"],"sourcesContent":["import type { Where } from 'payload/types'\n\nimport type { Action, FieldCondition } from '../types.js'\n\nexport type Props = {\n andIndex: number\n dispatch: (action: Action) => void\n fields: FieldCondition[]\n orIndex: number\n value: Where\n}\n"],"names":[],"mappings":"AAIA,WAMC"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/elements/WhereBuilder/Condition/types.ts"],"sourcesContent":["import type { Where } from 'payload/types'\n\nimport type { Action, FieldCondition } from '../types.js'\n\nexport type Props = {\n andIndex: number\n dispatch: (action: Action) => void\n fields: FieldCondition[]\n orIndex: number\n value: Where\n}\n"],"names":[],"rangeMappings":"","mappings":"AAIA,WAMC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"sourcesContent":["const boolean = [\n {\n label: 'equals',\n value: 'equals',\n },\n {\n label: 'isNotEqualTo',\n value: 'not_equals',\n },\n]\n\nconst base = [\n ...boolean,\n {\n label: 'isIn',\n value: 'in',\n },\n {\n label: 'isNotIn',\n value: 'not_in',\n },\n {\n label: 'exists',\n value: 'exists',\n },\n]\n\nconst numeric = [\n ...base,\n {\n label: 'isGreaterThan',\n value: 'greater_than',\n },\n {\n label: 'isLessThan',\n value: 'less_than',\n },\n {\n label: 'isLessThanOrEqualTo',\n value: 'less_than_equal',\n },\n {\n label: 'isGreaterThanOrEqualTo',\n value: 'greater_than_equal',\n },\n]\n\nconst geo = [\n ...boolean,\n {\n label: 'exists',\n value: 'exists',\n },\n {\n label: 'near',\n value: 'near',\n },\n]\n\nconst within = {\n label: 'within',\n value: 'within',\n}\n\nconst intersects = {\n label: 'intersects',\n value: 'intersects',\n}\n\nconst like = {\n label: 'isLike',\n value: 'like',\n}\n\nconst contains = {\n label: 'contains',\n value: 'contains',\n}\n\nconst fieldTypeConditions = {\n checkbox: {\n component: 'Text',\n operators: boolean,\n },\n code: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n date: {\n component: 'Date',\n operators: [...base, ...numeric],\n },\n email: {\n component: 'Text',\n operators: [...base, contains],\n },\n json: {\n component: 'Text',\n operators: [...base, like, contains, within, intersects],\n },\n number: {\n component: 'Number',\n operators: [...base, ...numeric],\n },\n point: {\n component: 'Point',\n operators: [...geo, within, intersects],\n },\n radio: {\n component: 'Select',\n operators: [...base],\n },\n relationship: {\n component: 'Relationship',\n operators: [...base],\n },\n richText: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n select: {\n component: 'Select',\n operators: [...base],\n },\n text: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n textarea: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n upload: {\n component: 'Text',\n operators: [...base],\n },\n}\n\nexport default fieldTypeConditions\n"],"names":["boolean","label","value","base","numeric","geo","within","intersects","like","contains","fieldTypeConditions","checkbox","component","operators","code","date","email","json","number","point","radio","relationship","richText","select","text","textarea","upload"],"mappings":"AAAA,MAAMA,UAAU;IACd;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMC,OAAO;OACRH;IACH;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAME,UAAU;OACXD;IACH;QACEF,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMG,MAAM;OACPL;IACH;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMI,SAAS;IACbL,OAAO;IACPC,OAAO;AACT;AAEA,MAAMK,aAAa;IACjBN,OAAO;IACPC,OAAO;AACT;AAEA,MAAMM,OAAO;IACXP,OAAO;IACPC,OAAO;AACT;AAEA,MAAMO,WAAW;IACfR,OAAO;IACPC,OAAO;AACT;AAEA,MAAMQ,sBAAsB;IAC1BC,UAAU;QACRC,WAAW;QACXC,WAAWb;IACb;IACAc,MAAM;QACJF,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAM,MAAM;QACJH,WAAW;QACXC,WAAW;eAAIV;eAASC;SAAQ;IAClC;IACAY,OAAO;QACLJ,WAAW;QACXC,WAAW;eAAIV;YAAMM;SAAS;IAChC;IACAQ,MAAM;QACJL,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;YAAUH;YAAQC;SAAW;IAC1D;IACAW,QAAQ;QACNN,WAAW;QACXC,WAAW;eAAIV;eAASC;SAAQ;IAClC;IACAe,OAAO;QACLP,WAAW;QACXC,WAAW;eAAIR;YAAKC;YAAQC;SAAW;IACzC;IACAa,OAAO;QACLR,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAkB,cAAc;QACZT,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAmB,UAAU;QACRV,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAc,QAAQ;QACNX,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAqB,MAAM;QACJZ,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAgB,UAAU;QACRb,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAiB,QAAQ;QACNd,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;AACF;AAEA,eAAeO,oBAAmB"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"sourcesContent":["const boolean = [\n {\n label: 'equals',\n value: 'equals',\n },\n {\n label: 'isNotEqualTo',\n value: 'not_equals',\n },\n]\n\nconst base = [\n ...boolean,\n {\n label: 'isIn',\n value: 'in',\n },\n {\n label: 'isNotIn',\n value: 'not_in',\n },\n {\n label: 'exists',\n value: 'exists',\n },\n]\n\nconst numeric = [\n ...base,\n {\n label: 'isGreaterThan',\n value: 'greater_than',\n },\n {\n label: 'isLessThan',\n value: 'less_than',\n },\n {\n label: 'isLessThanOrEqualTo',\n value: 'less_than_equal',\n },\n {\n label: 'isGreaterThanOrEqualTo',\n value: 'greater_than_equal',\n },\n]\n\nconst geo = [\n ...boolean,\n {\n label: 'exists',\n value: 'exists',\n },\n {\n label: 'near',\n value: 'near',\n },\n]\n\nconst within = {\n label: 'within',\n value: 'within',\n}\n\nconst intersects = {\n label: 'intersects',\n value: 'intersects',\n}\n\nconst like = {\n label: 'isLike',\n value: 'like',\n}\n\nconst contains = {\n label: 'contains',\n value: 'contains',\n}\n\nconst fieldTypeConditions = {\n checkbox: {\n component: 'Text',\n operators: boolean,\n },\n code: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n date: {\n component: 'Date',\n operators: [...base, ...numeric],\n },\n email: {\n component: 'Text',\n operators: [...base, contains],\n },\n json: {\n component: 'Text',\n operators: [...base, like, contains, within, intersects],\n },\n number: {\n component: 'Number',\n operators: [...base, ...numeric],\n },\n point: {\n component: 'Point',\n operators: [...geo, within, intersects],\n },\n radio: {\n component: 'Select',\n operators: [...base],\n },\n relationship: {\n component: 'Relationship',\n operators: [...base],\n },\n richText: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n select: {\n component: 'Select',\n operators: [...base],\n },\n text: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n textarea: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n upload: {\n component: 'Text',\n operators: [...base],\n },\n}\n\nexport default fieldTypeConditions\n"],"names":["boolean","label","value","base","numeric","geo","within","intersects","like","contains","fieldTypeConditions","checkbox","component","operators","code","date","email","json","number","point","radio","relationship","richText","select","text","textarea","upload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,MAAMA,UAAU;IACd;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMC,OAAO;OACRH;IACH;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAME,UAAU;OACXD;IACH;QACEF,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMG,MAAM;OACPL;IACH;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMI,SAAS;IACbL,OAAO;IACPC,OAAO;AACT;AAEA,MAAMK,aAAa;IACjBN,OAAO;IACPC,OAAO;AACT;AAEA,MAAMM,OAAO;IACXP,OAAO;IACPC,OAAO;AACT;AAEA,MAAMO,WAAW;IACfR,OAAO;IACPC,OAAO;AACT;AAEA,MAAMQ,sBAAsB;IAC1BC,UAAU;QACRC,WAAW;QACXC,WAAWb;IACb;IACAc,MAAM;QACJF,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAM,MAAM;QACJH,WAAW;QACXC,WAAW;eAAIV;eAASC;SAAQ;IAClC;IACAY,OAAO;QACLJ,WAAW;QACXC,WAAW;eAAIV;YAAMM;SAAS;IAChC;IACAQ,MAAM;QACJL,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;YAAUH;YAAQC;SAAW;IAC1D;IACAW,QAAQ;QACNN,WAAW;QACXC,WAAW;eAAIV;eAASC;SAAQ;IAClC;IACAe,OAAO;QACLP,WAAW;QACXC,WAAW;eAAIR;YAAKC;YAAQC;SAAW;IACzC;IACAa,OAAO;QACLR,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAkB,cAAc;QACZT,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAmB,UAAU;QACRV,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAc,QAAQ;QACNX,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAqB,MAAM;QACJZ,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAgB,UAAU;QACRb,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAiB,QAAQ;QACNd,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;AACF;AAEA,eAAeO,oBAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/WhereBuilder/index.tsx"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useState } from 'react'\n\nimport type { WhereBuilderProps } from './types.js'\n\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport { Condition } from './Condition/index.js'\nimport './index.scss'\nimport { reduceFieldMap } from './reduceFieldMap.js'\nimport { transformWhereQuery } from './transformWhereQuery.js'\nimport validateWhereQuery from './validateWhereQuery.js'\n\nconst baseClass = 'where-builder'\n\nexport { WhereBuilderProps }\n\n/**\n * The WhereBuilder component is used to render the filter controls for a collection's list view.\n * It is part of the {@link ListControls} component which is used to render the controls (search, filter, where).\n */\nexport const WhereBuilder: React.FC<WhereBuilderProps> = (props) => {\n const { collectionPluralLabel } = props\n const { i18n, t } = useTranslation()\n const { columns } = useTableColumns()\n\n const [reducedFields, setReducedColumns] = useState(() => reduceFieldMap(columns, i18n))\n\n useEffect(() => {\n setReducedColumns(reduceFieldMap(columns, i18n))\n }, [columns, i18n])\n\n const { searchParams } = useSearchParams()\n const { handleWhereChange } = useListQuery()\n const [shouldUpdateQuery, setShouldUpdateQuery] = React.useState(false)\n\n // This handles initializing the where conditions from the search query (URL). That way, if you pass in\n // query params to the URL, the where conditions will be initialized from those and displayed in the UI.\n // Example: /admin/collections/posts?where[or][0][and][0][text][equals]=example%20post\n /*\n stored conditions look like this:\n [\n _or_ & _and_ queries have the same shape:\n {\n and: [{\n category: {\n equals: 'category-a'\n }\n }]\n },\n\n {\n and:[{\n category: {\n equals: 'category-b'\n },\n text: {\n not_equals: 'oranges'\n },\n }]\n }\n ]\n */\n\n const [conditions, setConditions] = React.useState(() => {\n const whereFromSearch = searchParams.where\n if (whereFromSearch) {\n if (validateWhereQuery(whereFromSearch)) {\n return whereFromSearch.or\n }\n\n // Transform the where query to be in the right format. This will transform something simple like [text][equals]=example%20post to the right format\n const transformedWhere = transformWhereQuery(whereFromSearch)\n\n if (validateWhereQuery(transformedWhere)) {\n return transformedWhere.or\n }\n\n console.warn(`Invalid where query in URL: ${JSON.stringify(whereFromSearch)}`)\n }\n\n return []\n })\n\n const addCondition = React.useCallback(({ andIndex, fieldName, orIndex, relation }) => {\n setConditions((prevConditions) => {\n const newConditions = [...prevConditions]\n if (relation === 'and') {\n newConditions[orIndex].and.splice(andIndex, 0, { [fieldName]: {} })\n } else {\n newConditions.push({\n and: [\n {\n [fieldName]: {},\n },\n ],\n })\n }\n\n return newConditions\n })\n }, [])\n\n const updateCondition = React.useCallback(\n ({ andIndex, fieldName: fieldNameArg, operator: operatorArg, orIndex, value: valueArg }) => {\n setConditions((prevConditions) => {\n const newConditions = [...prevConditions]\n if (typeof newConditions[orIndex].and[andIndex] === 'object') {\n const fieldName = fieldNameArg\n const operator = operatorArg\n const value = valueArg ?? (operator ? newConditions[orIndex].and[andIndex][operator] : '')\n\n if (fieldName && operator && ![null, undefined].includes(value)) {\n newConditions[orIndex].and[andIndex] = {\n [fieldName]: operator ? { [operator]: value } : {},\n }\n setShouldUpdateQuery(true)\n }\n }\n\n return newConditions\n })\n },\n [],\n )\n\n const removeCondition = React.useCallback(({ andIndex, orIndex }) => {\n setConditions((prevConditions) => {\n const newConditions = [...prevConditions]\n newConditions[orIndex].and.splice(andIndex, 1)\n\n if (newConditions[orIndex].and.length === 0) {\n newConditions.splice(orIndex, 1)\n }\n\n return newConditions\n })\n setShouldUpdateQuery(true)\n }, [])\n\n React.useEffect(() => {\n if (shouldUpdateQuery) {\n handleWhereChange({ or: conditions })\n setShouldUpdateQuery(false)\n }\n }, [conditions, handleWhereChange, shouldUpdateQuery])\n\n return (\n <div className={baseClass}>\n {conditions.length > 0 && (\n <React.Fragment>\n <div className={`${baseClass}__label`}>\n {t('general:filterWhere', { label: getTranslation(collectionPluralLabel, i18n) })}\n </div>\n <ul className={`${baseClass}__or-filters`}>\n {conditions.map((or, orIndex) => (\n <li key={orIndex}>\n {orIndex !== 0 && <div className={`${baseClass}__label`}>{t('general:or')}</div>}\n <ul className={`${baseClass}__and-filters`}>\n {Array.isArray(or?.and) &&\n or.and.map((_, andIndex) => {\n const initialFieldName = Object.keys(conditions[orIndex].and[andIndex])[0]\n const initialOperator =\n Object.keys(\n conditions[orIndex].and[andIndex]?.[initialFieldName] || {},\n )?.[0] || undefined\n const initialValue =\n conditions[orIndex].and[andIndex]?.[initialFieldName]?.[initialOperator] ||\n ''\n\n return (\n <li key={andIndex}>\n {andIndex !== 0 && (\n <div className={`${baseClass}__label`}>{t('general:and')}</div>\n )}\n <Condition\n addCondition={addCondition}\n andIndex={andIndex}\n fieldName={initialFieldName}\n fields={reducedFields}\n initialValue={initialValue}\n key={andIndex}\n operator={initialOperator}\n orIndex={orIndex}\n removeCondition={removeCondition}\n updateCondition={updateCondition}\n />\n </li>\n )\n })}\n </ul>\n </li>\n ))}\n </ul>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-or`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n addCondition({\n andIndex: 0,\n fieldName: reducedFields[0].value,\n orIndex: conditions.length,\n relation: 'or',\n })\n }}\n >\n {t('general:or')}\n </Button>\n </React.Fragment>\n )}\n {conditions.length === 0 && (\n <div className={`${baseClass}__no-filters`}>\n <div className={`${baseClass}__label`}>{t('general:noFiltersSet')}</div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-first-filter`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n if (reducedFields.length > 0) {\n addCondition({\n andIndex: 0,\n fieldName: reducedFields[0].value,\n orIndex: conditions.length,\n relation: 'or',\n })\n }\n }}\n >\n {t('general:addFilter')}\n </Button>\n </div>\n )}\n </div>\n )\n}\n"],"names":["getTranslation","React","useEffect","useState","useListQuery","useSearchParams","useTranslation","Button","useTableColumns","Condition","reduceFieldMap","transformWhereQuery","validateWhereQuery","baseClass","WhereBuilder","props","collectionPluralLabel","i18n","t","columns","reducedFields","setReducedColumns","searchParams","handleWhereChange","shouldUpdateQuery","setShouldUpdateQuery","conditions","setConditions","whereFromSearch","where","or","transformedWhere","console","warn","JSON","stringify","addCondition","useCallback","andIndex","fieldName","orIndex","relation","prevConditions","newConditions","and","splice","push","updateCondition","fieldNameArg","operator","operatorArg","value","valueArg","undefined","includes","removeCondition","length","div","className","Fragment","label","ul","map","li","key","Array","isArray","_","initialFieldName","Object","keys","initialOperator","initialValue","fields","buttonStyle","icon","iconPosition","iconStyle","onClick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/WhereBuilder/index.tsx"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useState } from 'react'\n\nimport type { WhereBuilderProps } from './types.js'\n\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport { Condition } from './Condition/index.js'\nimport './index.scss'\nimport { reduceFieldMap } from './reduceFieldMap.js'\nimport { transformWhereQuery } from './transformWhereQuery.js'\nimport validateWhereQuery from './validateWhereQuery.js'\n\nconst baseClass = 'where-builder'\n\nexport { WhereBuilderProps }\n\n/**\n * The WhereBuilder component is used to render the filter controls for a collection's list view.\n * It is part of the {@link ListControls} component which is used to render the controls (search, filter, where).\n */\nexport const WhereBuilder: React.FC<WhereBuilderProps> = (props) => {\n const { collectionPluralLabel } = props\n const { i18n, t } = useTranslation()\n const { columns } = useTableColumns()\n\n const [reducedFields, setReducedColumns] = useState(() => reduceFieldMap(columns, i18n))\n\n useEffect(() => {\n setReducedColumns(reduceFieldMap(columns, i18n))\n }, [columns, i18n])\n\n const { searchParams } = useSearchParams()\n const { handleWhereChange } = useListQuery()\n const [shouldUpdateQuery, setShouldUpdateQuery] = React.useState(false)\n\n // This handles initializing the where conditions from the search query (URL). That way, if you pass in\n // query params to the URL, the where conditions will be initialized from those and displayed in the UI.\n // Example: /admin/collections/posts?where[or][0][and][0][text][equals]=example%20post\n /*\n stored conditions look like this:\n [\n _or_ & _and_ queries have the same shape:\n {\n and: [{\n category: {\n equals: 'category-a'\n }\n }]\n },\n\n {\n and:[{\n category: {\n equals: 'category-b'\n },\n text: {\n not_equals: 'oranges'\n },\n }]\n }\n ]\n */\n\n const [conditions, setConditions] = React.useState(() => {\n const whereFromSearch = searchParams.where\n if (whereFromSearch) {\n if (validateWhereQuery(whereFromSearch)) {\n return whereFromSearch.or\n }\n\n // Transform the where query to be in the right format. This will transform something simple like [text][equals]=example%20post to the right format\n const transformedWhere = transformWhereQuery(whereFromSearch)\n\n if (validateWhereQuery(transformedWhere)) {\n return transformedWhere.or\n }\n\n console.warn(`Invalid where query in URL: ${JSON.stringify(whereFromSearch)}`)\n }\n\n return []\n })\n\n const addCondition = React.useCallback(({ andIndex, fieldName, orIndex, relation }) => {\n setConditions((prevConditions) => {\n const newConditions = [...prevConditions]\n if (relation === 'and') {\n newConditions[orIndex].and.splice(andIndex, 0, { [fieldName]: {} })\n } else {\n newConditions.push({\n and: [\n {\n [fieldName]: {},\n },\n ],\n })\n }\n\n return newConditions\n })\n }, [])\n\n const updateCondition = React.useCallback(\n ({ andIndex, fieldName: fieldNameArg, operator: operatorArg, orIndex, value: valueArg }) => {\n setConditions((prevConditions) => {\n const newConditions = [...prevConditions]\n if (typeof newConditions[orIndex].and[andIndex] === 'object') {\n const fieldName = fieldNameArg\n const operator = operatorArg\n const value = valueArg ?? (operator ? newConditions[orIndex].and[andIndex][operator] : '')\n\n if (fieldName && operator && ![null, undefined].includes(value)) {\n newConditions[orIndex].and[andIndex] = {\n [fieldName]: operator ? { [operator]: value } : {},\n }\n setShouldUpdateQuery(true)\n }\n }\n\n return newConditions\n })\n },\n [],\n )\n\n const removeCondition = React.useCallback(({ andIndex, orIndex }) => {\n setConditions((prevConditions) => {\n const newConditions = [...prevConditions]\n newConditions[orIndex].and.splice(andIndex, 1)\n\n if (newConditions[orIndex].and.length === 0) {\n newConditions.splice(orIndex, 1)\n }\n\n return newConditions\n })\n setShouldUpdateQuery(true)\n }, [])\n\n React.useEffect(() => {\n if (shouldUpdateQuery) {\n handleWhereChange({ or: conditions })\n setShouldUpdateQuery(false)\n }\n }, [conditions, handleWhereChange, shouldUpdateQuery])\n\n return (\n <div className={baseClass}>\n {conditions.length > 0 && (\n <React.Fragment>\n <div className={`${baseClass}__label`}>\n {t('general:filterWhere', { label: getTranslation(collectionPluralLabel, i18n) })}\n </div>\n <ul className={`${baseClass}__or-filters`}>\n {conditions.map((or, orIndex) => (\n <li key={orIndex}>\n {orIndex !== 0 && <div className={`${baseClass}__label`}>{t('general:or')}</div>}\n <ul className={`${baseClass}__and-filters`}>\n {Array.isArray(or?.and) &&\n or.and.map((_, andIndex) => {\n const initialFieldName = Object.keys(conditions[orIndex].and[andIndex])[0]\n const initialOperator =\n Object.keys(\n conditions[orIndex].and[andIndex]?.[initialFieldName] || {},\n )?.[0] || undefined\n const initialValue =\n conditions[orIndex].and[andIndex]?.[initialFieldName]?.[initialOperator] ||\n ''\n\n return (\n <li key={andIndex}>\n {andIndex !== 0 && (\n <div className={`${baseClass}__label`}>{t('general:and')}</div>\n )}\n <Condition\n addCondition={addCondition}\n andIndex={andIndex}\n fieldName={initialFieldName}\n fields={reducedFields}\n initialValue={initialValue}\n key={andIndex}\n operator={initialOperator}\n orIndex={orIndex}\n removeCondition={removeCondition}\n updateCondition={updateCondition}\n />\n </li>\n )\n })}\n </ul>\n </li>\n ))}\n </ul>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-or`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n addCondition({\n andIndex: 0,\n fieldName: reducedFields[0].value,\n orIndex: conditions.length,\n relation: 'or',\n })\n }}\n >\n {t('general:or')}\n </Button>\n </React.Fragment>\n )}\n {conditions.length === 0 && (\n <div className={`${baseClass}__no-filters`}>\n <div className={`${baseClass}__label`}>{t('general:noFiltersSet')}</div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-first-filter`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n if (reducedFields.length > 0) {\n addCondition({\n andIndex: 0,\n fieldName: reducedFields[0].value,\n orIndex: conditions.length,\n relation: 'or',\n })\n }\n }}\n >\n {t('general:addFilter')}\n </Button>\n </div>\n )}\n </div>\n )\n}\n"],"names":["getTranslation","React","useEffect","useState","useListQuery","useSearchParams","useTranslation","Button","useTableColumns","Condition","reduceFieldMap","transformWhereQuery","validateWhereQuery","baseClass","WhereBuilder","props","collectionPluralLabel","i18n","t","columns","reducedFields","setReducedColumns","searchParams","handleWhereChange","shouldUpdateQuery","setShouldUpdateQuery","conditions","setConditions","whereFromSearch","where","or","transformedWhere","console","warn","JSON","stringify","addCondition","useCallback","andIndex","fieldName","orIndex","relation","prevConditions","newConditions","and","splice","push","updateCondition","fieldNameArg","operator","operatorArg","value","valueArg","undefined","includes","removeCondition","length","div","className","Fragment","label","ul","map","li","key","Array","isArray","_","initialFieldName","Object","keys","initialOperator","initialValue","fields","buttonStyle","icon","iconPosition","iconStyle","onClick"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/WhereBuilder/reduceFieldMap.tsx"],"sourcesContent":["import type { Column } from '../Table/index.js'\n\nimport fieldTypes from './field-types.js'\n\nexport const reduceFieldMap = (fieldMap: Column[], i18n) =>\n fieldMap.reduce((reduced, field) => {\n if (typeof fieldTypes[field.type] === 'object') {\n const operatorKeys = new Set()\n\n const operators = fieldTypes[field.type].operators.reduce((acc, operator) => {\n if (!operatorKeys.has(operator.value)) {\n operatorKeys.add(operator.value)\n return [\n ...acc,\n {\n ...operator,\n label: i18n.t(`operators:${operator.label}`),\n },\n ]\n }\n return acc\n }, [])\n\n const formattedField = {\n label: field.Label,\n value: field.name,\n ...fieldTypes[field.type],\n operators,\n props: {\n ...field,\n ...(field?.cellProps || {}),\n },\n }\n\n return [...reduced, formattedField]\n }\n\n return reduced\n }, [])\n"],"names":["fieldTypes","reduceFieldMap","fieldMap","i18n","reduce","reduced","field","type","operatorKeys","Set","operators","acc","operator","has","value","add","label","t","formattedField","Label","name","props","cellProps"],"mappings":"AAEA,OAAOA,gBAAgB,mBAAkB;AAEzC,OAAO,MAAMC,iBAAiB,CAACC,UAAoBC,OACjDD,SAASE,MAAM,CAAC,CAACC,SAASC;QACxB,IAAI,OAAON,UAAU,CAACM,MAAMC,IAAI,CAAC,KAAK,UAAU;YAC9C,MAAMC,eAAe,IAAIC;YAEzB,MAAMC,YAAYV,UAAU,CAACM,MAAMC,IAAI,CAAC,CAACG,SAAS,CAACN,MAAM,CAAC,CAACO,KAAKC;gBAC9D,IAAI,CAACJ,aAAaK,GAAG,CAACD,SAASE,KAAK,GAAG;oBACrCN,aAAaO,GAAG,CAACH,SAASE,KAAK;oBAC/B,OAAO;2BACFH;wBACH;4BACE,GAAGC,QAAQ;4BACXI,OAAOb,KAAKc,CAAC,CAAC,CAAC,UAAU,EAAEL,SAASI,KAAK,CAAC,CAAC;wBAC7C;qBACD;gBACH;gBACA,OAAOL;YACT,GAAG,EAAE;YAEL,MAAMO,iBAAiB;gBACrBF,OAAOV,MAAMa,KAAK;gBAClBL,OAAOR,MAAMc,IAAI;gBACjB,GAAGpB,UAAU,CAACM,MAAMC,IAAI,CAAC;gBACzBG;gBACAW,OAAO;oBACL,GAAGf,KAAK;oBACR,GAAIA,OAAOgB,aAAa,CAAC,CAAC;gBAC5B;YACF;YAEA,OAAO;mBAAIjB;gBAASa;aAAe;QACrC;QAEA,OAAOb;IACT,GAAG,EAAE,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/WhereBuilder/reduceFieldMap.tsx"],"sourcesContent":["import type { Column } from '../Table/index.js'\n\nimport fieldTypes from './field-types.js'\n\nexport const reduceFieldMap = (fieldMap: Column[], i18n) =>\n fieldMap.reduce((reduced, field) => {\n if (typeof fieldTypes[field.type] === 'object') {\n const operatorKeys = new Set()\n\n const operators = fieldTypes[field.type].operators.reduce((acc, operator) => {\n if (!operatorKeys.has(operator.value)) {\n operatorKeys.add(operator.value)\n return [\n ...acc,\n {\n ...operator,\n label: i18n.t(`operators:${operator.label}`),\n },\n ]\n }\n return acc\n }, [])\n\n const formattedField = {\n label: field.Label,\n value: field.name,\n ...fieldTypes[field.type],\n operators,\n props: {\n ...field,\n ...(field?.cellProps || {}),\n },\n }\n\n return [...reduced, formattedField]\n }\n\n return reduced\n }, [])\n"],"names":["fieldTypes","reduceFieldMap","fieldMap","i18n","reduce","reduced","field","type","operatorKeys","Set","operators","acc","operator","has","value","add","label","t","formattedField","Label","name","props","cellProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,gBAAgB,mBAAkB;AAEzC,OAAO,MAAMC,iBAAiB,CAACC,UAAoBC,OACjDD,SAASE,MAAM,CAAC,CAACC,SAASC;QACxB,IAAI,OAAON,UAAU,CAACM,MAAMC,IAAI,CAAC,KAAK,UAAU;YAC9C,MAAMC,eAAe,IAAIC;YAEzB,MAAMC,YAAYV,UAAU,CAACM,MAAMC,IAAI,CAAC,CAACG,SAAS,CAACN,MAAM,CAAC,CAACO,KAAKC;gBAC9D,IAAI,CAACJ,aAAaK,GAAG,CAACD,SAASE,KAAK,GAAG;oBACrCN,aAAaO,GAAG,CAACH,SAASE,KAAK;oBAC/B,OAAO;2BACFH;wBACH;4BACE,GAAGC,QAAQ;4BACXI,OAAOb,KAAKc,CAAC,CAAC,CAAC,UAAU,EAAEL,SAASI,KAAK,CAAC,CAAC;wBAC7C;qBACD;gBACH;gBACA,OAAOL;YACT,GAAG,EAAE;YAEL,MAAMO,iBAAiB;gBACrBF,OAAOV,MAAMa,KAAK;gBAClBL,OAAOR,MAAMc,IAAI;gBACjB,GAAGpB,UAAU,CAACM,MAAMC,IAAI,CAAC;gBACzBG;gBACAW,OAAO;oBACL,GAAGf,KAAK;oBACR,GAAIA,OAAOgB,aAAa,CAAC,CAAC;gBAC5B;YACF;YAEA,OAAO;mBAAIjB;gBAASa;aAAe;QACrC;QAEA,OAAOb;IACT,GAAG,EAAE,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/WhereBuilder/transformWhereQuery.ts"],"sourcesContent":["import type { Where } from 'payload/types'\n\n/**\n * Something like [or][0][and][0][text][equals]=example%20post will work and pass through the validateWhereQuery check.\n * However, something like [text][equals]=example%20post will not work and will fail the validateWhereQuery check,\n * even though it is a valid Where query. This needs to be transformed here.\n */\nexport const transformWhereQuery = (whereQuery): Where => {\n if (!whereQuery) {\n return {}\n }\n // Check if 'whereQuery' has 'or' field but no 'and'. This is the case for \"correct\" queries\n if (whereQuery.or && !whereQuery.and) {\n return {\n or: whereQuery.or.map((query) => {\n // ...but if the or query does not have an and, we need to add it\n if (!query.and) {\n return {\n and: [query],\n }\n }\n return query\n }),\n }\n }\n\n // Check if 'whereQuery' has 'and' field but no 'or'.\n if (whereQuery.and && !whereQuery.or) {\n return {\n or: [\n {\n and: whereQuery.and,\n },\n ],\n }\n }\n\n // Check if 'whereQuery' has neither 'or' nor 'and'.\n if (!whereQuery.or && !whereQuery.and) {\n return {\n or: [\n {\n and: [whereQuery], // top-level siblings are considered 'and'\n },\n ],\n }\n }\n\n // If 'whereQuery' has 'or' and 'and', just return it as it is.\n return whereQuery\n}\n"],"names":["transformWhereQuery","whereQuery","or","and","map","query"],"mappings":"AAEA;;;;CAIC,GACD,OAAO,MAAMA,sBAAsB,CAACC;IAClC,IAAI,CAACA,YAAY;QACf,OAAO,CAAC;IACV;IACA,4FAA4F;IAC5F,IAAIA,WAAWC,EAAE,IAAI,CAACD,WAAWE,GAAG,EAAE;QACpC,OAAO;YACLD,IAAID,WAAWC,EAAE,CAACE,GAAG,CAAC,CAACC;gBACrB,iEAAiE;gBACjE,IAAI,CAACA,MAAMF,GAAG,EAAE;oBACd,OAAO;wBACLA,KAAK;4BAACE;yBAAM;oBACd;gBACF;gBACA,OAAOA;YACT;QACF;IACF;IAEA,qDAAqD;IACrD,IAAIJ,WAAWE,GAAG,IAAI,CAACF,WAAWC,EAAE,EAAE;QACpC,OAAO;YACLA,IAAI;gBACF;oBACEC,KAAKF,WAAWE,GAAG;gBACrB;aACD;QACH;IACF;IAEA,oDAAoD;IACpD,IAAI,CAACF,WAAWC,EAAE,IAAI,CAACD,WAAWE,GAAG,EAAE;QACrC,OAAO;YACLD,IAAI;gBACF;oBACEC,KAAK;wBAACF;qBAAW;gBACnB;aACD;QACH;IACF;IAEA,+DAA+D;IAC/D,OAAOA;AACT,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/WhereBuilder/transformWhereQuery.ts"],"sourcesContent":["import type { Where } from 'payload/types'\n\n/**\n * Something like [or][0][and][0][text][equals]=example%20post will work and pass through the validateWhereQuery check.\n * However, something like [text][equals]=example%20post will not work and will fail the validateWhereQuery check,\n * even though it is a valid Where query. This needs to be transformed here.\n */\nexport const transformWhereQuery = (whereQuery): Where => {\n if (!whereQuery) {\n return {}\n }\n // Check if 'whereQuery' has 'or' field but no 'and'. This is the case for \"correct\" queries\n if (whereQuery.or && !whereQuery.and) {\n return {\n or: whereQuery.or.map((query) => {\n // ...but if the or query does not have an and, we need to add it\n if (!query.and) {\n return {\n and: [query],\n }\n }\n return query\n }),\n }\n }\n\n // Check if 'whereQuery' has 'and' field but no 'or'.\n if (whereQuery.and && !whereQuery.or) {\n return {\n or: [\n {\n and: whereQuery.and,\n },\n ],\n }\n }\n\n // Check if 'whereQuery' has neither 'or' nor 'and'.\n if (!whereQuery.or && !whereQuery.and) {\n return {\n or: [\n {\n and: [whereQuery], // top-level siblings are considered 'and'\n },\n ],\n }\n }\n\n // If 'whereQuery' has 'or' and 'and', just return it as it is.\n return whereQuery\n}\n"],"names":["transformWhereQuery","whereQuery","or","and","map","query"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA;;;;CAIC,GACD,OAAO,MAAMA,sBAAsB,CAACC;IAClC,IAAI,CAACA,YAAY;QACf,OAAO,CAAC;IACV;IACA,4FAA4F;IAC5F,IAAIA,WAAWC,EAAE,IAAI,CAACD,WAAWE,GAAG,EAAE;QACpC,OAAO;YACLD,IAAID,WAAWC,EAAE,CAACE,GAAG,CAAC,CAACC;gBACrB,iEAAiE;gBACjE,IAAI,CAACA,MAAMF,GAAG,EAAE;oBACd,OAAO;wBACLA,KAAK;4BAACE;yBAAM;oBACd;gBACF;gBACA,OAAOA;YACT;QACF;IACF;IAEA,qDAAqD;IACrD,IAAIJ,WAAWE,GAAG,IAAI,CAACF,WAAWC,EAAE,EAAE;QACpC,OAAO;YACLA,IAAI;gBACF;oBACEC,KAAKF,WAAWE,GAAG;gBACrB;aACD;QACH;IACF;IAEA,oDAAoD;IACpD,IAAI,CAACF,WAAWC,EAAE,IAAI,CAACD,WAAWE,GAAG,EAAE;QACrC,OAAO;YACLD,IAAI;gBACF;oBACEC,KAAK;wBAACF;qBAAW;gBACnB;aACD;QACH;IACF;IAEA,+DAA+D;IAC/D,OAAOA;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/WhereBuilder/types.ts"],"sourcesContent":["import type { Field, Operator, SanitizedCollectionConfig, Where } from 'payload/types'\n\nexport type WhereBuilderProps = {\n collectionPluralLabel: SanitizedCollectionConfig['labels']['plural']\n collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nexport type FieldCondition = {\n component?: string\n label: string\n operators: {\n label: string\n value: Operator\n }[]\n props: Field\n value: string\n}\n\nexport type Relation = 'and' | 'or'\n\nexport type ADD = {\n andIndex?: number\n field: string\n orIndex?: number\n relation?: Relation\n type: 'add'\n}\n\nexport type REMOVE = {\n andIndex: number\n orIndex: number\n type: 'remove'\n}\n\nexport type UPDATE = {\n andIndex: number\n field?: string\n operator?: string\n orIndex: number\n type: 'update'\n value?: unknown\n}\n\nexport type Action = ADD | REMOVE | UPDATE\n\nexport type State = {\n or: Where[]\n}\n"],"names":[],"mappings":"AA6CA,WAEC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/WhereBuilder/types.ts"],"sourcesContent":["import type { Field, Operator, SanitizedCollectionConfig, Where } from 'payload/types'\n\nexport type WhereBuilderProps = {\n collectionPluralLabel: SanitizedCollectionConfig['labels']['plural']\n collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nexport type FieldCondition = {\n component?: string\n label: string\n operators: {\n label: string\n value: Operator\n }[]\n props: Field\n value: string\n}\n\nexport type Relation = 'and' | 'or'\n\nexport type ADD = {\n andIndex?: number\n field: string\n orIndex?: number\n relation?: Relation\n type: 'add'\n}\n\nexport type REMOVE = {\n andIndex: number\n orIndex: number\n type: 'remove'\n}\n\nexport type UPDATE = {\n andIndex: number\n field?: string\n operator?: string\n orIndex: number\n type: 'update'\n value?: unknown\n}\n\nexport type Action = ADD | REMOVE | UPDATE\n\nexport type State = {\n or: Where[]\n}\n"],"names":[],"rangeMappings":"","mappings":"AA6CA,WAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"sourcesContent":["import type { Operator, Where } from 'payload/types'\n\nimport { validOperators } from 'payload/types'\n\nconst validateWhereQuery = (whereQuery): whereQuery is Where => {\n if (\n whereQuery?.or?.length > 0 &&\n whereQuery?.or?.[0]?.and &&\n whereQuery?.or?.[0]?.and?.length > 0\n ) {\n // At this point we know that the whereQuery has 'or' and 'and' fields,\n // now let's check the structure and content of these fields.\n\n const isValid = whereQuery.or.every((orQuery) => {\n if (orQuery.and && Array.isArray(orQuery.and)) {\n return orQuery.and.every((andQuery) => {\n if (typeof andQuery !== 'object') {\n return false\n }\n const andKeys = Object.keys(andQuery)\n // If there are no keys, it's not a valid WhereField.\n if (andKeys.length === 0) {\n return false\n }\n // eslint-disable-next-line no-restricted-syntax\n for (const key of andKeys) {\n const operator = Object.keys(andQuery[key])[0]\n // Check if the key is a valid Operator.\n if (!operator || !validOperators.includes(operator as Operator)) {\n return false\n }\n }\n return true\n })\n }\n return false\n })\n\n return isValid\n }\n\n return false\n}\n\nexport default validateWhereQuery\n"],"names":["validOperators","validateWhereQuery","whereQuery","or","length","and","isValid","every","orQuery","Array","isArray","andQuery","andKeys","Object","keys","key","operator","includes"],"mappings":"AAEA,SAASA,cAAc,QAAQ,gBAAe;AAE9C,MAAMC,qBAAqB,CAACC;IAC1B,IACEA,YAAYC,IAAIC,SAAS,KACzBF,YAAYC,IAAI,CAAC,EAAE,EAAEE,OACrBH,YAAYC,IAAI,CAAC,EAAE,EAAEE,KAAKD,SAAS,GACnC;QACA,uEAAuE;QACvE,6DAA6D;QAE7D,MAAME,UAAUJ,WAAWC,EAAE,CAACI,KAAK,CAAC,CAACC;YACnC,IAAIA,QAAQH,GAAG,IAAII,MAAMC,OAAO,CAACF,QAAQH,GAAG,GAAG;gBAC7C,OAAOG,QAAQH,GAAG,CAACE,KAAK,CAAC,CAACI;oBACxB,IAAI,OAAOA,aAAa,UAAU;wBAChC,OAAO;oBACT;oBACA,MAAMC,UAAUC,OAAOC,IAAI,CAACH;oBAC5B,qDAAqD;oBACrD,IAAIC,QAAQR,MAAM,KAAK,GAAG;wBACxB,OAAO;oBACT;oBACA,gDAAgD;oBAChD,KAAK,MAAMW,OAAOH,QAAS;wBACzB,MAAMI,WAAWH,OAAOC,IAAI,CAACH,QAAQ,CAACI,IAAI,CAAC,CAAC,EAAE;wBAC9C,wCAAwC;wBACxC,IAAI,CAACC,YAAY,CAAChB,eAAeiB,QAAQ,CAACD,WAAuB;4BAC/D,OAAO;wBACT;oBACF;oBACA,OAAO;gBACT;YACF;YACA,OAAO;QACT;QAEA,OAAOV;IACT;IAEA,OAAO;AACT;AAEA,eAAeL,mBAAkB"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"sourcesContent":["import type { Operator, Where } from 'payload/types'\n\nimport { validOperators } from 'payload/types'\n\nconst validateWhereQuery = (whereQuery): whereQuery is Where => {\n if (\n whereQuery?.or?.length > 0 &&\n whereQuery?.or?.[0]?.and &&\n whereQuery?.or?.[0]?.and?.length > 0\n ) {\n // At this point we know that the whereQuery has 'or' and 'and' fields,\n // now let's check the structure and content of these fields.\n\n const isValid = whereQuery.or.every((orQuery) => {\n if (orQuery.and && Array.isArray(orQuery.and)) {\n return orQuery.and.every((andQuery) => {\n if (typeof andQuery !== 'object') {\n return false\n }\n const andKeys = Object.keys(andQuery)\n // If there are no keys, it's not a valid WhereField.\n if (andKeys.length === 0) {\n return false\n }\n // eslint-disable-next-line no-restricted-syntax\n for (const key of andKeys) {\n const operator = Object.keys(andQuery[key])[0]\n // Check if the key is a valid Operator.\n if (!operator || !validOperators.includes(operator as Operator)) {\n return false\n }\n }\n return true\n })\n }\n return false\n })\n\n return isValid\n }\n\n return false\n}\n\nexport default validateWhereQuery\n"],"names":["validOperators","validateWhereQuery","whereQuery","or","length","and","isValid","every","orQuery","Array","isArray","andQuery","andKeys","Object","keys","key","operator","includes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,cAAc,QAAQ,gBAAe;AAE9C,MAAMC,qBAAqB,CAACC;IAC1B,IACEA,YAAYC,IAAIC,SAAS,KACzBF,YAAYC,IAAI,CAAC,EAAE,EAAEE,OACrBH,YAAYC,IAAI,CAAC,EAAE,EAAEE,KAAKD,SAAS,GACnC;QACA,uEAAuE;QACvE,6DAA6D;QAE7D,MAAME,UAAUJ,WAAWC,EAAE,CAACI,KAAK,CAAC,CAACC;YACnC,IAAIA,QAAQH,GAAG,IAAII,MAAMC,OAAO,CAACF,QAAQH,GAAG,GAAG;gBAC7C,OAAOG,QAAQH,GAAG,CAACE,KAAK,CAAC,CAACI;oBACxB,IAAI,OAAOA,aAAa,UAAU;wBAChC,OAAO;oBACT;oBACA,MAAMC,UAAUC,OAAOC,IAAI,CAACH;oBAC5B,qDAAqD;oBACrD,IAAIC,QAAQR,MAAM,KAAK,GAAG;wBACxB,OAAO;oBACT;oBACA,gDAAgD;oBAChD,KAAK,MAAMW,OAAOH,QAAS;wBACzB,MAAMI,WAAWH,OAAOC,IAAI,CAACH,QAAQ,CAACI,IAAI,CAAC,CAAC,EAAE;wBAC9C,wCAAwC;wBACxC,IAAI,CAACC,YAAY,CAAChB,eAAeiB,QAAQ,CAACD,WAAuB;4BAC/D,OAAO;wBACT;oBACF;oBACA,OAAO;gBACT;YACF;YACA,OAAO;QACT;QAEA,OAAOV;IACT;IAEA,OAAO;AACT;AAEA,eAAeL,mBAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/WindowInfo/index.tsx"],"sourcesContent":["import * as facelessUIImport from '@faceless-ui/window-info'\nconst { WindowInfoProvider } =\n facelessUIImport && 'WindowInfoProvider' in facelessUIImport\n ? facelessUIImport\n : { WindowInfoProvider: undefined }\nconst { useWindowInfo } =\n facelessUIImport && 'useWindowInfo' in facelessUIImport\n ? facelessUIImport\n : { useWindowInfo: undefined }\nexport { WindowInfoProvider, useWindowInfo }\n"],"names":["facelessUIImport","WindowInfoProvider","undefined","useWindowInfo"],"mappings":"AAAA,YAAYA,sBAAsB,2BAA0B;AAC5D,MAAM,EAAEC,kBAAkB,EAAE,GAC1BD,oBAAoB,wBAAwBA,mBACxCA,mBACA;IAAEC,oBAAoBC;AAAU;AACtC,MAAM,EAAEC,aAAa,EAAE,GACrBH,oBAAoB,mBAAmBA,mBACnCA,mBACA;IAAEG,eAAeD;AAAU;AACjC,SAASD,kBAAkB,EAAEE,aAAa,GAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/WindowInfo/index.tsx"],"sourcesContent":["import * as facelessUIImport from '@faceless-ui/window-info'\nconst { WindowInfoProvider } =\n facelessUIImport && 'WindowInfoProvider' in facelessUIImport\n ? facelessUIImport\n : { WindowInfoProvider: undefined }\nconst { useWindowInfo } =\n facelessUIImport && 'useWindowInfo' in facelessUIImport\n ? facelessUIImport\n : { useWindowInfo: undefined }\nexport { WindowInfoProvider, useWindowInfo }\n"],"names":["facelessUIImport","WindowInfoProvider","undefined","useWindowInfo"],"rangeMappings":";;;;;;;","mappings":"AAAA,YAAYA,sBAAsB,2BAA0B;AAC5D,MAAM,EAAEC,kBAAkB,EAAE,GAC1BD,oBAAoB,wBAAwBA,mBACxCA,mBACA;IAAEC,oBAAoBC;AAAU;AACtC,MAAM,EAAEC,aAAa,EAAE,GACrBH,oBAAoB,mBAAmBA,mBACnCA,mBACA;IAAEG,eAAeD;AAAU;AACjC,SAASD,kBAAkB,EAAEE,aAAa,GAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/withMergedProps/index.tsx"],"sourcesContent":["import { deepMerge } from 'payload/utilities'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent = getMergedPropsComponent({\n * Component: OriginalComponent,\n * toMergeIntoProps: { someExtraValue: 5 }\n * });\n * // Using <PredefinedComponent customProp=\"value\" /> will result in\n * // <OriginalComponent customProp=\"value\" someExtraValue={5} />\n *\n * @returns A higher-order component with combined properties.\n */\nexport function withMergedProps<ToMergeIntoProps, CompleteReturnProps>({\n Component,\n toMergeIntoProps,\n}: {\n Component: React.FC<CompleteReturnProps>\n toMergeIntoProps: ToMergeIntoProps\n}): React.FC<CompleteReturnProps> {\n // A wrapper around the args.Component to inject the args.toMergeArgs as props, which are merged with the passed props\n const MergedPropsComponent: React.FC<CompleteReturnProps> = (passedProps) => {\n const mergedProps = deepMerge(passedProps, toMergeIntoProps)\n return <Component {...mergedProps} />\n }\n\n return MergedPropsComponent\n}\n"],"names":["deepMerge","React","withMergedProps","Component","toMergeIntoProps","MergedPropsComponent","passedProps","mergedProps"],"mappings":"AAAA,SAASA,SAAS,QAAQ,oBAAmB;AAC7C,OAAOC,WAAW,QAAO;AAEzB;;;;;;;;;;;;;;;;;CAiBC,GACD,OAAO,SAASC,gBAAuD,EACrEC,SAAS,EACTC,gBAAgB,EAIjB;IACC,sHAAsH;IACtH,MAAMC,uBAAsD,CAACC;QAC3D,MAAMC,cAAcP,UAAUM,aAAaF;QAC3C,qBAAO,oBAACD,WAAcI;IACxB;IAEA,OAAOF;AACT"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/withMergedProps/index.tsx"],"sourcesContent":["import { deepMerge } from 'payload/utilities'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent = getMergedPropsComponent({\n * Component: OriginalComponent,\n * toMergeIntoProps: { someExtraValue: 5 }\n * });\n * // Using <PredefinedComponent customProp=\"value\" /> will result in\n * // <OriginalComponent customProp=\"value\" someExtraValue={5} />\n *\n * @returns A higher-order component with combined properties.\n */\nexport function withMergedProps<ToMergeIntoProps, CompleteReturnProps>({\n Component,\n toMergeIntoProps,\n}: {\n Component: React.FC<CompleteReturnProps>\n toMergeIntoProps: ToMergeIntoProps\n}): React.FC<CompleteReturnProps> {\n // A wrapper around the args.Component to inject the args.toMergeArgs as props, which are merged with the passed props\n const MergedPropsComponent: React.FC<CompleteReturnProps> = (passedProps) => {\n const mergedProps = deepMerge(passedProps, toMergeIntoProps)\n return <Component {...mergedProps} />\n }\n\n return MergedPropsComponent\n}\n"],"names":["deepMerge","React","withMergedProps","Component","toMergeIntoProps","MergedPropsComponent","passedProps","mergedProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,SAAS,QAAQ,oBAAmB;AAC7C,OAAOC,WAAW,QAAO;AAEzB;;;;;;;;;;;;;;;;;CAiBC,GACD,OAAO,SAASC,gBAAuD,EACrEC,SAAS,EACTC,gBAAgB,EAIjB;IACC,sHAAsH;IACtH,MAAMC,uBAAsD,CAACC;QAC3D,MAAMC,cAAcP,UAAUM,aAAaF;QAC3C,qBAAO,oBAACD,WAAcI;IACxB;IAEA,OAAOF;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/elements.ts"],"sourcesContent":["export { Button } from '../elements/Button/index.js'\nexport { Card } from '../elements/Card/index.js'\nexport { Collapsible } from '../elements/Collapsible/index.js'\nexport { CopyToClipboard } from '../elements/CopyToClipboard/index.js'\nexport { DeleteMany } from '../elements/DeleteMany/index.js'\nexport { DocumentControls } from '../elements/DocumentControls/index.js'\nexport { useDocumentDrawer } from '../elements/DocumentDrawer/index.js'\nexport { DocumentFields } from '../elements/DocumentFields/index.js'\nexport { DocumentHeader } from '../elements/DocumentHeader/index.js'\nexport { Drawer, DrawerToggler, formatDrawerSlug } from '../elements/Drawer/index.js'\nexport { useDrawerSlug } from '../elements/Drawer/useDrawerSlug.js'\nexport { EditMany } from '../elements/EditMany/index.js'\nexport { ErrorPill } from '../elements/ErrorPill/index.js'\nexport { GenerateConfirmation } from '../elements/GenerateConfirmation/index.js'\nexport { Gutter } from '../elements/Gutter/index.js'\nexport { HydrateClientUser } from '../elements/HydrateClientUser/index.js'\nexport { ListControls } from '../elements/ListControls/index.js'\nexport { useListDrawer } from '../elements/ListDrawer/index.js'\nexport { ListSelection } from '../elements/ListSelection/index.js'\nexport { LoadingOverlayToggle } from '../elements/Loading/index.js'\nexport { FormLoadingOverlayToggle } from '../elements/Loading/index.js'\nexport { LoadingOverlay } from '../elements/Loading/index.js'\nexport { Pagination } from '../elements/Pagination/index.js'\nexport { PerPage } from '../elements/PerPage/index.js'\nexport { Pill } from '../elements/Pill/index.js'\nexport * as PopupList from '../elements/Popup/PopupButtonList/index.js'\nexport { Popup } from '../elements/Popup/index.js'\nexport { PublishMany } from '../elements/PublishMany/index.js'\nexport { ReactSelect } from '../elements/ReactSelect/index.js'\nexport type { Option } from '../elements/ReactSelect/types.js'\nexport { RenderCustomComponent } from '../elements/RenderCustomComponent/index.js'\nexport { ShimmerEffect } from '../elements/ShimmerEffect/index.js'\nexport { StaggeredShimmers } from '../elements/ShimmerEffect/index.js'\nexport { SortColumn } from '../elements/SortColumn/index.js'\nexport { SetStepNav } from '../elements/StepNav/SetStepNav.js'\nexport { useStepNav } from '../elements/StepNav/index.js'\nexport type { StepNavItem } from '../elements/StepNav/index.js'\nexport { RelationshipProvider } from '../elements/Table/RelationshipProvider/index.js'\nexport { TableCellProvider, useTableCell } from '../elements/Table/TableCellProvider/index.js'\nexport { Table } from '../elements/Table/index.js'\nexport type { Column } from '../elements/Table/index.js'\nexport { TableColumnsProvider } from '../elements/TableColumns/index.js'\nexport { Thumbnail } from '../elements/Thumbnail/index.js'\nexport { Tooltip } from '../elements/Tooltip/index.js'\n// export { useThumbnail } from '../elements/Upload/index.js'\nexport { Translation } from '../elements/Translation/index.js'\nexport { UnpublishMany } from '../elements/UnpublishMany/index.js'\nexport { Upload } from '../elements/Upload/index.js'\nexport { BlocksDrawer } from '../fields/Blocks/BlocksDrawer/index.js'\nimport * as facelessUIImport from '@faceless-ui/modal'\nconst { Modal } =\n facelessUIImport && 'Modal' in facelessUIImport ? facelessUIImport : { Modal: undefined }\nexport { Modal }\nexport { SetViewActions } from '../providers/Actions/SetViewActions/index.js'\n"],"names":["Button","Card","Collapsible","CopyToClipboard","DeleteMany","DocumentControls","useDocumentDrawer","DocumentFields","DocumentHeader","Drawer","DrawerToggler","formatDrawerSlug","useDrawerSlug","EditMany","ErrorPill","GenerateConfirmation","Gutter","HydrateClientUser","ListControls","useListDrawer","ListSelection","LoadingOverlayToggle","FormLoadingOverlayToggle","LoadingOverlay","Pagination","PerPage","Pill","PopupList","Popup","PublishMany","ReactSelect","RenderCustomComponent","ShimmerEffect","StaggeredShimmers","SortColumn","SetStepNav","useStepNav","RelationshipProvider","TableCellProvider","useTableCell","Table","TableColumnsProvider","Thumbnail","Tooltip","Translation","UnpublishMany","Upload","BlocksDrawer","facelessUIImport","Modal","undefined","SetViewActions"],"mappings":"AAAA,SAASA,MAAM,QAAQ,8BAA6B;AACpD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,eAAe,QAAQ,uCAAsC;AACtE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,iBAAiB,QAAQ,sCAAqC;AACvE,SAASC,cAAc,QAAQ,sCAAqC;AACpE,SAASC,cAAc,QAAQ,sCAAqC;AACpE,SAASC,MAAM,EAAEC,aAAa,EAAEC,gBAAgB,QAAQ,8BAA6B;AACrF,SAASC,aAAa,QAAQ,sCAAqC;AACnE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,SAAS,QAAQ,iCAAgC;AAC1D,SAASC,oBAAoB,QAAQ,4CAA2C;AAChF,SAASC,MAAM,QAAQ,8BAA6B;AACpD,SAASC,iBAAiB,QAAQ,yCAAwC;AAC1E,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,aAAa,QAAQ,kCAAiC;AAC/D,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,oBAAoB,QAAQ,+BAA8B;AACnE,SAASC,wBAAwB,QAAQ,+BAA8B;AACvE,SAASC,cAAc,QAAQ,+BAA8B;AAC7D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,OAAO,QAAQ,+BAA8B;AACtD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,OAAO,KAAKC,SAAS,MAAM,6CAA4C;AACvE,SAASC,KAAK,QAAQ,6BAA4B;AAClD,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,WAAW,QAAQ,mCAAkC;AAE9D,SAASC,qBAAqB,QAAQ,6CAA4C;AAClF,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,iBAAiB,QAAQ,qCAAoC;AACtE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,oCAAmC;AAC9D,SAASC,UAAU,QAAQ,+BAA8B;AAEzD,SAASC,oBAAoB,QAAQ,kDAAiD;AACtF,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,+CAA8C;AAC9F,SAASC,KAAK,QAAQ,6BAA4B;AAElD,SAASC,oBAAoB,QAAQ,oCAAmC;AACxE,SAASC,SAAS,QAAQ,iCAAgC;AAC1D,SAASC,OAAO,QAAQ,+BAA8B;AACtD,6DAA6D;AAC7D,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,MAAM,QAAQ,8BAA6B;AACpD,SAASC,YAAY,QAAQ,yCAAwC;AACrE,YAAYC,sBAAsB,qBAAoB;AACtD,MAAM,EAAEC,KAAK,EAAE,GACbD,oBAAoB,WAAWA,mBAAmBA,mBAAmB;IAAEC,OAAOC;AAAU;AAC1F,SAASD,KAAK,GAAE;AAChB,SAASE,cAAc,QAAQ,+CAA8C"}
|
|
1
|
+
{"version":3,"sources":["../../src/exports/elements.ts"],"sourcesContent":["export { Button } from '../elements/Button/index.js'\nexport { Card } from '../elements/Card/index.js'\nexport { Collapsible } from '../elements/Collapsible/index.js'\nexport { CopyToClipboard } from '../elements/CopyToClipboard/index.js'\nexport { DeleteMany } from '../elements/DeleteMany/index.js'\nexport { DocumentControls } from '../elements/DocumentControls/index.js'\nexport { useDocumentDrawer } from '../elements/DocumentDrawer/index.js'\nexport { DocumentFields } from '../elements/DocumentFields/index.js'\nexport { DocumentHeader } from '../elements/DocumentHeader/index.js'\nexport { Drawer, DrawerToggler, formatDrawerSlug } from '../elements/Drawer/index.js'\nexport { useDrawerSlug } from '../elements/Drawer/useDrawerSlug.js'\nexport { EditMany } from '../elements/EditMany/index.js'\nexport { ErrorPill } from '../elements/ErrorPill/index.js'\nexport { GenerateConfirmation } from '../elements/GenerateConfirmation/index.js'\nexport { Gutter } from '../elements/Gutter/index.js'\nexport { HydrateClientUser } from '../elements/HydrateClientUser/index.js'\nexport { ListControls } from '../elements/ListControls/index.js'\nexport { useListDrawer } from '../elements/ListDrawer/index.js'\nexport { ListSelection } from '../elements/ListSelection/index.js'\nexport { LoadingOverlayToggle } from '../elements/Loading/index.js'\nexport { FormLoadingOverlayToggle } from '../elements/Loading/index.js'\nexport { LoadingOverlay } from '../elements/Loading/index.js'\nexport { Pagination } from '../elements/Pagination/index.js'\nexport { PerPage } from '../elements/PerPage/index.js'\nexport { Pill } from '../elements/Pill/index.js'\nexport * as PopupList from '../elements/Popup/PopupButtonList/index.js'\nexport { Popup } from '../elements/Popup/index.js'\nexport { PublishMany } from '../elements/PublishMany/index.js'\nexport { ReactSelect } from '../elements/ReactSelect/index.js'\nexport type { Option } from '../elements/ReactSelect/types.js'\nexport { RenderCustomComponent } from '../elements/RenderCustomComponent/index.js'\nexport { ShimmerEffect } from '../elements/ShimmerEffect/index.js'\nexport { StaggeredShimmers } from '../elements/ShimmerEffect/index.js'\nexport { SortColumn } from '../elements/SortColumn/index.js'\nexport { SetStepNav } from '../elements/StepNav/SetStepNav.js'\nexport { useStepNav } from '../elements/StepNav/index.js'\nexport type { StepNavItem } from '../elements/StepNav/index.js'\nexport { RelationshipProvider } from '../elements/Table/RelationshipProvider/index.js'\nexport { TableCellProvider, useTableCell } from '../elements/Table/TableCellProvider/index.js'\nexport { Table } from '../elements/Table/index.js'\nexport type { Column } from '../elements/Table/index.js'\nexport { TableColumnsProvider } from '../elements/TableColumns/index.js'\nexport { Thumbnail } from '../elements/Thumbnail/index.js'\nexport { Tooltip } from '../elements/Tooltip/index.js'\n// export { useThumbnail } from '../elements/Upload/index.js'\nexport { Translation } from '../elements/Translation/index.js'\nexport { UnpublishMany } from '../elements/UnpublishMany/index.js'\nexport { Upload } from '../elements/Upload/index.js'\nexport { BlocksDrawer } from '../fields/Blocks/BlocksDrawer/index.js'\nimport * as facelessUIImport from '@faceless-ui/modal'\nconst { Modal } =\n facelessUIImport && 'Modal' in facelessUIImport ? facelessUIImport : { Modal: undefined }\nexport { Modal }\nexport { SetViewActions } from '../providers/Actions/SetViewActions/index.js'\n"],"names":["Button","Card","Collapsible","CopyToClipboard","DeleteMany","DocumentControls","useDocumentDrawer","DocumentFields","DocumentHeader","Drawer","DrawerToggler","formatDrawerSlug","useDrawerSlug","EditMany","ErrorPill","GenerateConfirmation","Gutter","HydrateClientUser","ListControls","useListDrawer","ListSelection","LoadingOverlayToggle","FormLoadingOverlayToggle","LoadingOverlay","Pagination","PerPage","Pill","PopupList","Popup","PublishMany","ReactSelect","RenderCustomComponent","ShimmerEffect","StaggeredShimmers","SortColumn","SetStepNav","useStepNav","RelationshipProvider","TableCellProvider","useTableCell","Table","TableColumnsProvider","Thumbnail","Tooltip","Translation","UnpublishMany","Upload","BlocksDrawer","facelessUIImport","Modal","undefined","SetViewActions"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,MAAM,QAAQ,8BAA6B;AACpD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,eAAe,QAAQ,uCAAsC;AACtE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,iBAAiB,QAAQ,sCAAqC;AACvE,SAASC,cAAc,QAAQ,sCAAqC;AACpE,SAASC,cAAc,QAAQ,sCAAqC;AACpE,SAASC,MAAM,EAAEC,aAAa,EAAEC,gBAAgB,QAAQ,8BAA6B;AACrF,SAASC,aAAa,QAAQ,sCAAqC;AACnE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,SAAS,QAAQ,iCAAgC;AAC1D,SAASC,oBAAoB,QAAQ,4CAA2C;AAChF,SAASC,MAAM,QAAQ,8BAA6B;AACpD,SAASC,iBAAiB,QAAQ,yCAAwC;AAC1E,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,aAAa,QAAQ,kCAAiC;AAC/D,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,oBAAoB,QAAQ,+BAA8B;AACnE,SAASC,wBAAwB,QAAQ,+BAA8B;AACvE,SAASC,cAAc,QAAQ,+BAA8B;AAC7D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,OAAO,QAAQ,+BAA8B;AACtD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,OAAO,KAAKC,SAAS,MAAM,6CAA4C;AACvE,SAASC,KAAK,QAAQ,6BAA4B;AAClD,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,WAAW,QAAQ,mCAAkC;AAE9D,SAASC,qBAAqB,QAAQ,6CAA4C;AAClF,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,iBAAiB,QAAQ,qCAAoC;AACtE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,oCAAmC;AAC9D,SAASC,UAAU,QAAQ,+BAA8B;AAEzD,SAASC,oBAAoB,QAAQ,kDAAiD;AACtF,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,+CAA8C;AAC9F,SAASC,KAAK,QAAQ,6BAA4B;AAElD,SAASC,oBAAoB,QAAQ,oCAAmC;AACxE,SAASC,SAAS,QAAQ,iCAAgC;AAC1D,SAASC,OAAO,QAAQ,+BAA8B;AACtD,6DAA6D;AAC7D,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,MAAM,QAAQ,8BAA6B;AACpD,SAASC,YAAY,QAAQ,yCAAwC;AACrE,YAAYC,sBAAsB,qBAAoB;AACtD,MAAM,EAAEC,KAAK,EAAE,GACbD,oBAAoB,WAAWA,mBAAmBA,mBAAmB;IAAEC,OAAOC;AAAU;AAC1F,SAASD,KAAK,GAAE;AAChB,SAASE,cAAc,QAAQ,+CAA8C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Array/ArrayRow.tsx"],"sourcesContent":["import type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\ntype ArrayRowProps = UseDraggableSortableReturn & {\n CustomRowLabel?: React.ReactNode\n addRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fieldMap: FieldMap\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: ArrayField['labels']\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (rowID: string, collapsed: boolean) => void\n}\n\nexport const ArrayRow: React.FC<ArrayRowProps> = ({\n CustomRowLabel,\n addRow,\n attributes,\n duplicateRow,\n errorCount,\n fieldMap,\n forceRender = false,\n hasMaxRows,\n indexPath,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fallbackLabel = `${getTranslation(labels.singular, i18n)} ${String(rowIndex + 1).padStart(\n 2,\n '0',\n )}`\n\n const fieldHasErrors = errorCount > 0 && hasSubmitted\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${row.id}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <ArrayAction\n addRow={addRow}\n duplicateRow={duplicateRow}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__row-header`}>\n <RowLabel\n RowLabelComponent={CustomRowLabel}\n i18n={i18n}\n path={path}\n rowLabel={fallbackLabel}\n rowNumber={rowIndex + 1}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n isCollapsed={row.collapsed}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={fieldMap}\n forceRender={forceRender}\n indexPath={indexPath}\n margins=\"small\"\n path={path}\n permissions={permissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","ArrayAction","Collapsible","ErrorPill","useFormSubmitted","RenderFields","RowLabel","useTranslation","baseClass","ArrayRow","CustomRowLabel","addRow","attributes","duplicateRow","errorCount","fieldMap","forceRender","hasMaxRows","indexPath","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fallbackLabel","singular","String","padStart","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","index","undefined","className","collapsibleStyle","dragHandleProps","header","RowLabelComponent","rowLabel","rowNumber","count","withMessage","isCollapsed","collapsed","onToggle","margins","fields"],"mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAKzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,SAAS,QAAQ,oCAAmC;AAC7D,SAASC,gBAAgB,QAAQ,8BAA6B;AAC9D,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,MAAMC,YAAY;AAwBlB,OAAO,MAAMC,WAAoC,CAAC,EAChDC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,YAAY,EACZC,UAAU,EACVC,QAAQ,EACRC,cAAc,KAAK,EACnBC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,OAAO,EACPC,MAAMC,UAAU,EAChBC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,GAAG,EACHC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACV;IACC,MAAMX,OAAO,CAAC,EAAEC,WAAW,CAAC,EAAEM,SAAS,CAAC;IACxC,MAAM,EAAEK,IAAI,EAAE,GAAG3B;IACjB,MAAM4B,eAAe/B;IAErB,MAAMgC,gBAAgB,CAAC,EAAErC,eAAeoB,OAAOkB,QAAQ,EAAEH,MAAM,CAAC,EAAEI,OAAOT,WAAW,GAAGU,QAAQ,CAC7F,GACA,KACA,CAAC;IAEH,MAAMC,iBAAiB1B,aAAa,KAAKqB;IAEzC,MAAMM,aAAa;QACjB,CAAC,EAAEjC,UAAU,KAAK,CAAC;QACnBgC,iBAAiB,CAAC,EAAEhC,UAAU,iBAAiB,CAAC,GAAG,CAAC,EAAEA,UAAU,gBAAgB,CAAC;KAClF,CACEkC,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACC;QACCC,IAAI,CAAC,EAAEvB,WAAWwB,KAAK,CAAC,KAAKH,IAAI,CAAC,KAAK,KAAK,EAAEf,SAAS,CAAC;QACxDmB,KAAK,CAAC,EAAEzB,WAAW,KAAK,EAAEI,IAAImB,EAAE,CAAC,CAAC;QAClCG,KAAKjB;QACLkB,OAAO;YACLjB;QACF;qBAEA,oBAAC/B;QACCiD,SACE,CAAC1B,yBACC,oBAACxB;YACCU,QAAQA;YACRE,cAAcA;YACdI,YAAYA;YACZmC,OAAOvB;YACPR,SAASA;YACTK,WAAWA;YACXE,UAAUA;aAEVyB;QAENC,WAAWb;QACXc,kBAAkBf,iBAAiB,UAAU;QAC7CgB,iBAAiB;YACfV,IAAInB,IAAImB,EAAE;YACVlC;YACAQ;QACF;QACAqC,sBACE,oBAACZ;YAAIS,WAAW,CAAC,EAAE9C,UAAU,YAAY,CAAC;yBACxC,oBAACF;YACCoD,mBAAmBhD;YACnBwB,MAAMA;YACNZ,MAAMA;YACNqC,UAAUvB;YACVwB,WAAW/B,WAAW;YAEvBW,gCAAkB,oBAACrC;YAAU0D,OAAO/C;YAAYoB,MAAMA;YAAM4B,aAAAA;;QAGjEC,aAAapC,IAAIqC,SAAS;QAC1BC,UAAU,CAACD,YAAcjC,YAAYJ,IAAImB,EAAE,EAAEkB;qBAE7C,oBAAC3D;QACCiD,WAAW,CAAC,EAAE9C,UAAU,QAAQ,CAAC;QACjCO,UAAUA;QACVC,aAAaA;QACbE,WAAWA;QACXgD,SAAQ;QACR5C,MAAMA;QACNE,aAAaA,aAAa2C;QAC1B1C,UAAUA;QACVK,YAAYA;;AAKtB,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Array/ArrayRow.tsx"],"sourcesContent":["import type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\ntype ArrayRowProps = UseDraggableSortableReturn & {\n CustomRowLabel?: React.ReactNode\n addRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fieldMap: FieldMap\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: ArrayField['labels']\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (rowID: string, collapsed: boolean) => void\n}\n\nexport const ArrayRow: React.FC<ArrayRowProps> = ({\n CustomRowLabel,\n addRow,\n attributes,\n duplicateRow,\n errorCount,\n fieldMap,\n forceRender = false,\n hasMaxRows,\n indexPath,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fallbackLabel = `${getTranslation(labels.singular, i18n)} ${String(rowIndex + 1).padStart(\n 2,\n '0',\n )}`\n\n const fieldHasErrors = errorCount > 0 && hasSubmitted\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${row.id}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <ArrayAction\n addRow={addRow}\n duplicateRow={duplicateRow}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__row-header`}>\n <RowLabel\n RowLabelComponent={CustomRowLabel}\n i18n={i18n}\n path={path}\n rowLabel={fallbackLabel}\n rowNumber={rowIndex + 1}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n isCollapsed={row.collapsed}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={fieldMap}\n forceRender={forceRender}\n indexPath={indexPath}\n margins=\"small\"\n path={path}\n permissions={permissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","ArrayAction","Collapsible","ErrorPill","useFormSubmitted","RenderFields","RowLabel","useTranslation","baseClass","ArrayRow","CustomRowLabel","addRow","attributes","duplicateRow","errorCount","fieldMap","forceRender","hasMaxRows","indexPath","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fallbackLabel","singular","String","padStart","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","index","undefined","className","collapsibleStyle","dragHandleProps","header","RowLabelComponent","rowLabel","rowNumber","count","withMessage","isCollapsed","collapsed","onToggle","margins","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAKzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,SAAS,QAAQ,oCAAmC;AAC7D,SAASC,gBAAgB,QAAQ,8BAA6B;AAC9D,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,MAAMC,YAAY;AAwBlB,OAAO,MAAMC,WAAoC,CAAC,EAChDC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,YAAY,EACZC,UAAU,EACVC,QAAQ,EACRC,cAAc,KAAK,EACnBC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,OAAO,EACPC,MAAMC,UAAU,EAChBC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,GAAG,EACHC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACV;IACC,MAAMX,OAAO,CAAC,EAAEC,WAAW,CAAC,EAAEM,SAAS,CAAC;IACxC,MAAM,EAAEK,IAAI,EAAE,GAAG3B;IACjB,MAAM4B,eAAe/B;IAErB,MAAMgC,gBAAgB,CAAC,EAAErC,eAAeoB,OAAOkB,QAAQ,EAAEH,MAAM,CAAC,EAAEI,OAAOT,WAAW,GAAGU,QAAQ,CAC7F,GACA,KACA,CAAC;IAEH,MAAMC,iBAAiB1B,aAAa,KAAKqB;IAEzC,MAAMM,aAAa;QACjB,CAAC,EAAEjC,UAAU,KAAK,CAAC;QACnBgC,iBAAiB,CAAC,EAAEhC,UAAU,iBAAiB,CAAC,GAAG,CAAC,EAAEA,UAAU,gBAAgB,CAAC;KAClF,CACEkC,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACC;QACCC,IAAI,CAAC,EAAEvB,WAAWwB,KAAK,CAAC,KAAKH,IAAI,CAAC,KAAK,KAAK,EAAEf,SAAS,CAAC;QACxDmB,KAAK,CAAC,EAAEzB,WAAW,KAAK,EAAEI,IAAImB,EAAE,CAAC,CAAC;QAClCG,KAAKjB;QACLkB,OAAO;YACLjB;QACF;qBAEA,oBAAC/B;QACCiD,SACE,CAAC1B,yBACC,oBAACxB;YACCU,QAAQA;YACRE,cAAcA;YACdI,YAAYA;YACZmC,OAAOvB;YACPR,SAASA;YACTK,WAAWA;YACXE,UAAUA;aAEVyB;QAENC,WAAWb;QACXc,kBAAkBf,iBAAiB,UAAU;QAC7CgB,iBAAiB;YACfV,IAAInB,IAAImB,EAAE;YACVlC;YACAQ;QACF;QACAqC,sBACE,oBAACZ;YAAIS,WAAW,CAAC,EAAE9C,UAAU,YAAY,CAAC;yBACxC,oBAACF;YACCoD,mBAAmBhD;YACnBwB,MAAMA;YACNZ,MAAMA;YACNqC,UAAUvB;YACVwB,WAAW/B,WAAW;YAEvBW,gCAAkB,oBAACrC;YAAU0D,OAAO/C;YAAYoB,MAAMA;YAAM4B,aAAAA;;QAGjEC,aAAapC,IAAIqC,SAAS;QAC1BC,UAAU,CAACD,YAAcjC,YAAYJ,IAAImB,EAAE,EAAEkB;qBAE7C,oBAAC3D;QACCiD,WAAW,CAAC,EAAE9C,UAAU,QAAQ,CAAC;QACjCO,UAAUA;QACVC,aAAaA;QACbE,WAAWA;QACXgD,SAAQ;QACR5C,MAAMA;QACNE,aAAaA,aAAa2C;QAC1B1C,UAAUA;QACVK,YAAYA;;AAKtB,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { FieldBase } from 'payload/types'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n label?: FieldBase['label']\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const _ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n label,\n labelProps,\n localized,\n maxRows,\n minRows,\n path: pathFromProps,\n permissions,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps) => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = readOnly && rows.length === 0\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n >\n {showError && (\n <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}.`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(_ArrayField)\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","_ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","label","labelProps","localized","maxRows","minRows","path","pathFromProps","permissions","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","undefined","singular","memoizedValidate","value","options","pathFromContext","errorPaths","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { FieldBase } from 'payload/types'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n label?: FieldBase['label']\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const _ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n label,\n labelProps,\n localized,\n maxRows,\n minRows,\n path: pathFromProps,\n permissions,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps) => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = readOnly && rows.length === 0\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n >\n {showError && (\n <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}.`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(_ArrayField)\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","_ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","label","labelProps","localized","maxRows","minRows","path","pathFromProps","permissions","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","undefined","singular","memoizedValidate","value","options","pathFromContext","errorPaths","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { Labels, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlockFieldProps = UseDraggableSortableReturn & {\n addRow: (rowIndex: number, blockType: string) => void\n block: ReducedBlock\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n}\n\nexport const BlockRow: React.FC<BlockFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n forceRender,\n hasMaxRows,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blockType={row.blockType}\n blocks={blocks}\n duplicateRow={duplicateRow}\n fieldMap={block.fieldMap}\n hasMaxRows={hasMaxRows}\n labels={labels}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__block-header`}>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={block.fieldMap}\n forceRender={forceRender}\n margins=\"small\"\n path={path}\n permissions={permissions?.blocks?.[block.slug]?.fields}\n readOnly={readOnly}\n schemaPath={`${schemaPath}.${block.slug}`}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","Collapsible","ErrorPill","Pill","useFormSubmitted","RenderFields","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","addRow","attributes","block","blocks","duplicateRow","errorCount","forceRender","hasMaxRows","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","blockType","fieldMap","undefined","className","collapsibleStyle","dragHandleProps","header","span","String","padStart","pillStyle","singular","count","withMessage","isCollapsed","collapsed","onToggle","margins","slug","fields"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { Labels, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlockFieldProps = UseDraggableSortableReturn & {\n addRow: (rowIndex: number, blockType: string) => void\n block: ReducedBlock\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n}\n\nexport const BlockRow: React.FC<BlockFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n forceRender,\n hasMaxRows,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blockType={row.blockType}\n blocks={blocks}\n duplicateRow={duplicateRow}\n fieldMap={block.fieldMap}\n hasMaxRows={hasMaxRows}\n labels={labels}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__block-header`}>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={block.fieldMap}\n forceRender={forceRender}\n margins=\"small\"\n path={path}\n permissions={permissions?.blocks?.[block.slug]?.fields}\n readOnly={readOnly}\n schemaPath={`${schemaPath}.${block.slug}`}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","Collapsible","ErrorPill","Pill","useFormSubmitted","RenderFields","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","addRow","attributes","block","blocks","duplicateRow","errorCount","forceRender","hasMaxRows","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","blockType","fieldMap","undefined","className","collapsibleStyle","dragHandleProps","header","span","String","padStart","pillStyle","singular","count","withMessage","isCollapsed","collapsed","onToggle","margins","slug","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/fields/Blocks/BlocksDrawer/BlockSearch/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport { Search } from '../../../../graphics/Search/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'block-search'\n\nexport const BlockSearch: React.FC<{ setSearchTerm: (term: string) => void }> = (props) => {\n const { setSearchTerm } = props\n const { t } = useTranslation()\n\n const handleChange = (e) => {\n setSearchTerm(e.target.value)\n }\n\n return (\n <div className={baseClass}>\n <input\n className={`${baseClass}__input`}\n onChange={handleChange}\n placeholder={t('fields:searchForBlock')}\n />\n <Search />\n </div>\n )\n}\n"],"names":["React","Search","useTranslation","baseClass","BlockSearch","props","setSearchTerm","t","handleChange","e","target","value","div","className","input","onChange","placeholder"],"mappings":"AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,MAAM,QAAQ,uCAAsC;AAC7D,SAASC,cAAc,QAAQ,6CAA4C;AAG3E,MAAMC,YAAY;AAElB,OAAO,MAAMC,cAAmE,CAACC;IAC/E,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,CAAC,EAAE,GAAGL;IAEd,MAAMM,eAAe,CAACC;QACpBH,cAAcG,EAAEC,MAAM,CAACC,KAAK;IAC9B;IAEA,qBACE,oBAACC;QAAIC,WAAWV;qBACd,oBAACW;QACCD,WAAW,CAAC,EAAEV,UAAU,OAAO,CAAC;QAChCY,UAAUP;QACVQ,aAAaT,EAAE;sBAEjB,oBAACN;AAGP,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/fields/Blocks/BlocksDrawer/BlockSearch/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport { Search } from '../../../../graphics/Search/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'block-search'\n\nexport const BlockSearch: React.FC<{ setSearchTerm: (term: string) => void }> = (props) => {\n const { setSearchTerm } = props\n const { t } = useTranslation()\n\n const handleChange = (e) => {\n setSearchTerm(e.target.value)\n }\n\n return (\n <div className={baseClass}>\n <input\n className={`${baseClass}__input`}\n onChange={handleChange}\n placeholder={t('fields:searchForBlock')}\n />\n <Search />\n </div>\n )\n}\n"],"names":["React","Search","useTranslation","baseClass","BlockSearch","props","setSearchTerm","t","handleChange","e","target","value","div","className","input","onChange","placeholder"],"rangeMappings":";;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,MAAM,QAAQ,uCAAsC;AAC7D,SAASC,cAAc,QAAQ,6CAA4C;AAG3E,MAAMC,YAAY;AAElB,OAAO,MAAMC,cAAmE,CAACC;IAC/E,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,CAAC,EAAE,GAAGL;IAEd,MAAMM,eAAe,CAACC;QACpBH,cAAcG,EAAEC,MAAM,CAACC,KAAK;IAC9B;IAEA,qBACE,oBAACC;QAAIC,WAAWV;qBACd,oBAACW;QACCD,WAAW,CAAC,EAAEV,UAAU,OAAO,CAAC;QAChCY,UAAUP;QACVQ,aAAaT,EAAE;sBAEjB,oBAACN;AAGP,EAAC"}
|