@payloadcms/ui 3.0.0-alpha.49 → 3.0.0-alpha.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +2 -43
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
- package/dist/elements/ColumnSelector/index.js +2 -5
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -2
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +13 -4
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +31 -112
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +0 -2
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +8 -2
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +4 -0
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +3 -25
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.d.ts.map +1 -1
- package/dist/elements/FieldSelect/index.js +39 -12
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/index.js +2 -1
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts +0 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +7 -6
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +5 -9
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/Nav/index.client.d.ts +3 -0
- package/dist/elements/Nav/index.client.d.ts.map +1 -0
- package/dist/elements/Nav/index.client.js +77 -0
- package/dist/elements/Nav/index.client.js.map +1 -0
- package/dist/elements/Nav/index.d.ts +3 -7
- package/dist/elements/Nav/index.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +4 -66
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/elements/PerPage/index.d.ts +1 -0
- package/dist/elements/PerPage/index.d.ts.map +1 -1
- package/dist/elements/PerPage/index.js +6 -4
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.d.ts +4 -6
- package/dist/elements/PreviewButton/index.d.ts.map +1 -1
- package/dist/elements/PreviewButton/index.js +11 -65
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.d.ts +9 -0
- package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -0
- package/dist/elements/PreviewButton/usePreviewURL.js +57 -0
- package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -0
- package/dist/elements/Publish/index.d.ts +4 -2
- package/dist/elements/Publish/index.d.ts.map +1 -1
- package/dist/elements/Publish/index.js +15 -25
- package/dist/elements/Publish/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js +2 -1
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/ValueContainer/index.scss +4 -0
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +4 -1
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +2 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/Save/index.d.ts +4 -2
- package/dist/elements/Save/index.d.ts.map +1 -1
- package/dist/elements/Save/index.js +7 -14
- package/dist/elements/Save/index.js.map +1 -1
- package/dist/elements/SaveDraft/index.d.ts +1 -2
- package/dist/elements/SaveDraft/index.d.ts.map +1 -1
- package/dist/elements/SaveDraft/index.js +33 -42
- package/dist/elements/SaveDraft/index.js.map +1 -1
- package/dist/elements/SortColumn/index.d.ts +3 -1
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +5 -6
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts +3 -3
- package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts +4 -4
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts +2 -5
- package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js +4 -3
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +4 -4
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts +3 -3
- package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -4
- package/dist/elements/Table/DefaultCell/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +4 -2
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/TableCellProvider/index.d.ts +11 -11
- package/dist/elements/Table/TableCellProvider/index.d.ts.map +1 -1
- package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
- package/dist/elements/Table/index.d.ts +8 -4
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +1 -0
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/TableColumns/{buildColumns.d.ts → buildColumnState.d.ts} +8 -6
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
- package/dist/elements/TableColumns/{buildColumns.js → buildColumnState.js} +37 -13
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
- package/dist/elements/TableColumns/filterFields.d.ts +3 -0
- package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
- package/dist/elements/TableColumns/filterFields.js +27 -0
- package/dist/elements/TableColumns/filterFields.js.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.d.ts +5 -0
- package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.js +48 -0
- package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
- package/dist/elements/TableColumns/index.d.ts +2 -2
- package/dist/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/index.js +11 -7
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts +6 -0
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +32 -16
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.d.ts +1 -1
- package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +2 -6
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/Tooltip/index.scss +4 -4
- package/dist/elements/Translation/index.d.ts.map +1 -1
- package/dist/elements/Translation/index.js +12 -9
- package/dist/elements/Translation/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -7
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts +21 -4
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +45 -61
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.scss +6 -0
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +134 -55
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +3 -0
- package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/reduceFieldMap.js +36 -0
- package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -0
- package/dist/elements/withMergedProps/index.js +1 -1
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.d.ts +2 -0
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +3 -3
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +23 -8
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts +1 -0
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +2 -3
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts +0 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +17 -5
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.d.ts +2 -1
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js +3 -1
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/fields/Checkbox/index.js +6 -2
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.d.ts.map +1 -1
- package/dist/fields/Code/index.js +8 -3
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts +2 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +4 -3
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/DateTime/index.d.ts.map +1 -1
- package/dist/fields/DateTime/index.js +7 -2
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.d.ts.map +1 -1
- package/dist/fields/Email/index.js +7 -2
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/Group/index.d.ts +0 -1
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js +9 -8
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/HiddenInput/index.d.ts +1 -0
- package/dist/fields/HiddenInput/index.d.ts.map +1 -1
- package/dist/fields/HiddenInput/index.js +4 -2
- package/dist/fields/HiddenInput/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +8 -4
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Number/index.d.ts.map +1 -1
- package/dist/fields/Number/index.js +7 -2
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts +0 -1
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +5 -2
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Point/index.d.ts.map +1 -1
- package/dist/fields/Point/index.js +15 -10
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.d.ts.map +1 -1
- package/dist/fields/RadioGroup/index.js +7 -2
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +45 -14
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/types.d.ts +3 -1
- package/dist/fields/Relationship/types.d.ts.map +1 -1
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/RichText/index.d.ts +2 -0
- package/dist/fields/RichText/index.d.ts.map +1 -1
- package/dist/fields/RichText/index.js.map +1 -1
- package/dist/fields/Row/index.d.ts.map +1 -1
- package/dist/fields/Row/index.js +2 -1
- package/dist/fields/Row/index.js.map +1 -1
- package/dist/fields/Select/index.d.ts +0 -1
- package/dist/fields/Select/index.d.ts.map +1 -1
- package/dist/fields/Select/index.js +8 -3
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts +0 -1
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +2 -2
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +4 -1
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.d.ts.map +1 -1
- package/dist/fields/Text/index.js +3 -1
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Textarea/Input.d.ts.map +1 -1
- package/dist/fields/Textarea/Input.js +4 -1
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.d.ts.map +1 -1
- package/dist/fields/Textarea/index.js +3 -1
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +10 -8
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +6 -2
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/shared/index.d.ts +1 -2
- package/dist/fields/shared/index.d.ts.map +1 -1
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/forms/FieldDescription/index.d.ts +1 -2
- package/dist/forms/FieldDescription/index.d.ts.map +1 -1
- package/dist/forms/FieldDescription/index.js.map +1 -1
- package/dist/forms/FieldError/index.js +1 -1
- package/dist/forms/FieldError/index.js.map +1 -1
- package/dist/forms/FieldLabel/index.d.ts.map +1 -1
- package/dist/forms/FieldLabel/index.js +4 -4
- package/dist/forms/FieldLabel/index.js.map +1 -1
- package/dist/forms/FieldLabel/index.scss +1 -1
- package/dist/forms/FieldPropsProvider/index.d.ts +5 -0
- package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
- package/dist/forms/FieldPropsProvider/index.js +5 -1
- package/dist/forms/FieldPropsProvider/index.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +6 -8
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +37 -20
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/initContextState.d.ts.map +1 -1
- package/dist/forms/Form/initContextState.js +1 -0
- package/dist/forms/Form/initContextState.js.map +1 -1
- package/dist/forms/Form/mergeErrorPaths.d.ts +5 -0
- package/dist/forms/Form/mergeErrorPaths.d.ts.map +1 -0
- package/dist/forms/Form/mergeErrorPaths.js +29 -0
- package/dist/forms/Form/mergeErrorPaths.js.map +1 -0
- package/dist/forms/Form/mergeServerFormState.d.ts +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +36 -19
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/types.d.ts +8 -2
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.d.ts +1 -0
- package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +12 -4
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/index.d.ts.map +1 -1
- package/dist/forms/RenderFields/index.js +3 -3
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RenderFields/types.d.ts +1 -0
- package/dist/forms/RenderFields/types.d.ts.map +1 -1
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +4 -3
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +67 -42
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +11 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js +13 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +11 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js +16 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +12 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +122 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -0
- package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
- package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/index.js +10 -2
- package/dist/forms/buildStateFromSchema/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -2
- package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/iterateFields.js +4 -3
- package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +32 -12
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/useField/types.d.ts +1 -0
- package/dist/forms/useField/types.d.ts.map +1 -1
- package/dist/forms/useField/types.js.map +1 -1
- package/dist/forms/withCondition/WatchCondition.d.ts +3 -0
- package/dist/forms/withCondition/WatchCondition.d.ts.map +1 -1
- package/dist/forms/withCondition/WatchCondition.js +10 -2
- package/dist/forms/withCondition/WatchCondition.js.map +1 -1
- package/dist/forms/withCondition/index.js +4 -2
- package/dist/forms/withCondition/index.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js +1 -1
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/hooks/useUseAsTitle.d.ts +3 -2
- package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
- package/dist/hooks/useUseAsTitle.js +5 -6
- package/dist/hooks/useUseAsTitle.js.map +1 -1
- package/dist/providers/ClientFunction/index.d.ts.map +1 -1
- package/dist/providers/ClientFunction/index.js +27 -5
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/{mapActions.d.ts → actions.d.ts} +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/{mapActions.js → actions.js} +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +13 -0
- package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/collections.js +74 -0
- package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/{mapFields.d.ts → fields.d.ts} +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/{mapFields.js → fields.js} +43 -23
- package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +12 -0
- package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/globals.js +49 -0
- package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +2 -2
- package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/index.js +16 -83
- package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +8 -3
- package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +120 -96
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +12 -13
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/EntityVisibility/index.d.ts +16 -0
- package/dist/providers/EntityVisibility/index.d.ts.map +1 -0
- package/dist/providers/EntityVisibility/index.js +25 -0
- package/dist/providers/EntityVisibility/index.js.map +1 -0
- package/dist/providers/ListInfo/index.d.ts +0 -1
- package/dist/providers/ListInfo/index.d.ts.map +1 -1
- package/dist/providers/ListInfo/index.js +2 -7
- package/dist/providers/ListInfo/index.js.map +1 -1
- package/dist/templates/Default/index.d.ts +2 -7
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +10 -12
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/buildComponentMap.d.ts +1 -1
- package/dist/utilities/buildComponentMap.d.ts.map +1 -1
- package/dist/utilities/buildComponentMap.js +1 -1
- package/dist/utilities/buildComponentMap.js.map +1 -1
- package/dist/utilities/flattenFieldMap.d.ts +10 -0
- package/dist/utilities/flattenFieldMap.d.ts.map +1 -0
- package/dist/utilities/flattenFieldMap.js +33 -0
- package/dist/utilities/flattenFieldMap.js.map +1 -0
- package/dist/utilities/getFormState.d.ts +2 -0
- package/dist/utilities/getFormState.d.ts.map +1 -1
- package/dist/utilities/getFormState.js +8 -3
- package/dist/utilities/getFormState.js.map +1 -1
- package/package.json +10 -4
- package/dist/elements/TableColumns/buildColumns.d.ts.map +0 -1
- package/dist/elements/TableColumns/buildColumns.js.map +0 -1
- package/dist/elements/WhereBuilder/reducer.d.ts +0 -5
- package/dist/elements/WhereBuilder/reducer.d.ts.map +0 -1
- package/dist/elements/WhereBuilder/reducer.js +0 -78
- package/dist/elements/WhereBuilder/reducer.js.map +0 -1
- package/dist/forms/FieldDescription/types.d.ts +0 -8
- package/dist/forms/FieldDescription/types.d.ts.map +0 -1
- package/dist/forms/FieldDescription/types.js +0 -3
- package/dist/forms/FieldDescription/types.js.map +0 -1
- package/dist/hooks/useAdminThumbnail.d.ts +0 -3
- package/dist/hooks/useAdminThumbnail.d.ts.map +0 -1
- package/dist/hooks/useAdminThumbnail.js +0 -8
- package/dist/hooks/useAdminThumbnail.js.map +0 -1
- package/dist/hooks/useThumbnail.d.ts +0 -3
- package/dist/hooks/useThumbnail.d.ts.map +0 -1
- package/dist/hooks/useThumbnail.js +0 -45
- package/dist/hooks/useThumbnail.js.map +0 -1
- package/dist/providers/ComponentMap/buildComponentMap/mapActions.d.ts.map +0 -1
- package/dist/providers/ComponentMap/buildComponentMap/mapActions.js.map +0 -1
- package/dist/providers/ComponentMap/buildComponentMap/mapFields.d.ts.map +0 -1
- package/dist/providers/ComponentMap/buildComponentMap/mapFields.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CellComponentProps } from 'payload/types';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { ColumnPreferences } from '../../providers/ListInfo/index.js';
|
|
4
4
|
import type { Column } from '../Table/index.js';
|
|
@@ -19,7 +19,7 @@ export type ListPreferences = {
|
|
|
19
19
|
columns: ColumnPreferences;
|
|
20
20
|
};
|
|
21
21
|
type Props = {
|
|
22
|
-
cellProps?: Partial<
|
|
22
|
+
cellProps?: Partial<CellComponentProps>[];
|
|
23
23
|
children: React.ReactNode;
|
|
24
24
|
collectionSlug: string;
|
|
25
25
|
enableRowSelections?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,KAQN,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAUhD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClE,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAA;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmKhD,CAAA"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import React, { createContext, useCallback, useContext, useEffect, useReducer, useRef } from 'react';
|
|
2
|
+
import React, { createContext, useCallback, useContext, useEffect, useReducer, useRef, useState } from 'react';
|
|
3
3
|
import { useComponentMap } from '../../providers/ComponentMap/index.js';
|
|
4
4
|
import { useConfig } from '../../providers/Config/index.js';
|
|
5
5
|
import { usePreferences } from '../../providers/Preferences/index.js';
|
|
6
|
-
import {
|
|
6
|
+
import { buildColumnState } from './buildColumnState.js';
|
|
7
7
|
import { columnReducer } from './columnReducer.js';
|
|
8
|
+
import { filterFields } from './filterFields.js';
|
|
9
|
+
import { getInitialColumns } from './getInitialColumns.js';
|
|
8
10
|
export const TableColumnContext = /*#__PURE__*/ createContext({});
|
|
9
11
|
export const useTableColumns = ()=>useContext(TableColumnContext);
|
|
10
12
|
export const TableColumnsProvider = ({ cellProps, children, collectionSlug, enableRowSelections = false, listPreferences, preferenceKey })=>{
|
|
@@ -16,11 +18,12 @@ export const TableColumnsProvider = ({ cellProps, children, collectionSlug, enab
|
|
|
16
18
|
const prevCollection = useRef(collectionSlug);
|
|
17
19
|
const hasInitialized = useRef(false);
|
|
18
20
|
const { getPreference, setPreference } = usePreferences();
|
|
21
|
+
const [initialColumns] = useState(()=>getInitialColumns(filterFields(fieldMap), useAsTitle, defaultColumns));
|
|
19
22
|
const [tableColumns, dispatchTableColumns] = useReducer(columnReducer, {}, ()=>{
|
|
20
|
-
return
|
|
23
|
+
return buildColumnState({
|
|
21
24
|
cellProps,
|
|
22
25
|
columnPreferences: listPreferences?.columns,
|
|
23
|
-
|
|
26
|
+
columns: initialColumns,
|
|
24
27
|
enableRowSelections,
|
|
25
28
|
fieldMap,
|
|
26
29
|
useAsTitle
|
|
@@ -39,10 +42,10 @@ export const TableColumnsProvider = ({ cellProps, children, collectionSlug, enab
|
|
|
39
42
|
dispatchTableColumns({
|
|
40
43
|
type: 'set',
|
|
41
44
|
payload: {
|
|
42
|
-
columns:
|
|
45
|
+
columns: buildColumnState({
|
|
43
46
|
cellProps,
|
|
44
47
|
columnPreferences: currentPreferences?.columns,
|
|
45
|
-
|
|
48
|
+
columns: initialColumns,
|
|
46
49
|
enableRowSelections: true,
|
|
47
50
|
fieldMap,
|
|
48
51
|
useAsTitle
|
|
@@ -61,7 +64,8 @@ export const TableColumnsProvider = ({ cellProps, children, collectionSlug, enab
|
|
|
61
64
|
cellProps,
|
|
62
65
|
defaultColumns,
|
|
63
66
|
useAsTitle,
|
|
64
|
-
listPreferences
|
|
67
|
+
listPreferences,
|
|
68
|
+
initialColumns
|
|
65
69
|
]);
|
|
66
70
|
// /////////////////////////////////////
|
|
67
71
|
// Set preferences on column change
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload/types'\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload/types'\nimport type { CellComponentProps } from 'payload/types'\n\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n useState,\n} from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\nimport type { Action } from './columnReducer.js'\n\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { buildColumnState } from './buildColumnState.js'\nimport { columnReducer } from './columnReducer.js'\nimport { filterFields } from './filterFields.js'\nimport { getInitialColumns } from './getInitialColumns.js'\n\nexport interface ITableColumns {\n columns: Column[]\n dispatchTableColumns: React.Dispatch<Action>\n moveColumn: (args: { fromIndex: number; toIndex: number }) => void\n setActiveColumns: (columns: string[]) => void\n toggleColumn: (column: string) => void\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n cellProps?: Partial<CellComponentProps>[]\n children: React.ReactNode\n collectionSlug: string\n enableRowSelections?: boolean\n listPreferences?: ListPreferences\n preferenceKey: string\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n cellProps,\n children,\n collectionSlug,\n enableRowSelections = false,\n listPreferences,\n preferenceKey,\n}) => {\n const config = useConfig()\n\n const { componentMap } = useComponentMap()\n\n const { fieldMap } = componentMap.collections[collectionSlug]\n\n const collectionConfig = config.collections.find(\n (collectionConfig) => collectionConfig.slug === collectionSlug,\n )\n\n const {\n admin: { defaultColumns, useAsTitle },\n } = collectionConfig\n\n const prevCollection = useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const hasInitialized = useRef(false)\n const { getPreference, setPreference } = usePreferences()\n\n const [initialColumns] = useState<ColumnPreferences>(() =>\n getInitialColumns(filterFields(fieldMap), useAsTitle, defaultColumns),\n )\n\n const [tableColumns, dispatchTableColumns] = useReducer(columnReducer, {}, () => {\n return buildColumnState({\n cellProps,\n columnPreferences: listPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fieldMap,\n useAsTitle,\n })\n })\n\n // /////////////////////////////////////\n // Get preferences on collection change\n // /////////////////////////////////////\n\n useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n dispatchTableColumns({\n type: 'set',\n payload: {\n columns: buildColumnState({\n cellProps,\n columnPreferences: currentPreferences?.columns,\n columns: initialColumns,\n enableRowSelections: true,\n fieldMap,\n useAsTitle,\n }),\n },\n })\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fieldMap,\n cellProps,\n defaultColumns,\n useAsTitle,\n listPreferences,\n initialColumns,\n ])\n\n // /////////////////////////////////////\n // Set preferences on column change\n // /////////////////////////////////////\n\n useEffect(() => {\n if (!hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n const columns = tableColumns.map((c) => ({\n accessor: c?.accessor,\n active: c?.active,\n }))\n\n void setPreference(preferenceKey, { columns }, true)\n }, [tableColumns, preferenceKey, setPreference])\n\n const setActiveColumns = useCallback(\n (columns: string[]) => {\n // dispatchTableColumns({\n // type: 'set',\n // payload: {\n // // onSelect,\n // cellProps,\n // collection: { ...collectionConfig, fields: formatFields(collectionConfig) },\n // columns: columns.map((column) => ({\n // accessor: column,\n // active: true,\n // })),\n // i18n,\n // },\n // })\n },\n [collectionConfig, cellProps],\n )\n\n const moveColumn = useCallback(\n (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n\n dispatchTableColumns({\n type: 'move',\n payload: {\n fromIndex,\n toIndex,\n },\n })\n },\n [dispatchTableColumns],\n )\n\n const toggleColumn = useCallback(\n (column: string) => {\n dispatchTableColumns({\n type: 'toggle',\n payload: {\n column,\n },\n })\n },\n [dispatchTableColumns],\n )\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n dispatchTableColumns,\n moveColumn,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"names":["React","createContext","useCallback","useContext","useEffect","useReducer","useRef","useState","useComponentMap","useConfig","usePreferences","buildColumnState","columnReducer","filterFields","getInitialColumns","TableColumnContext","useTableColumns","TableColumnsProvider","cellProps","children","collectionSlug","enableRowSelections","listPreferences","preferenceKey","config","componentMap","fieldMap","collections","collectionConfig","find","slug","admin","defaultColumns","useAsTitle","prevCollection","hasInitialized","getPreference","setPreference","initialColumns","tableColumns","dispatchTableColumns","columnPreferences","columns","sync","collectionHasChanged","current","currentPreferences","type","payload","map","c","accessor","active","setActiveColumns","moveColumn","args","fromIndex","toIndex","toggleColumn","column","Provider","value"],"mappings":"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"}
|
|
@@ -10,5 +10,11 @@ export type ThumbnailProps = {
|
|
|
10
10
|
size?: 'expand' | 'large' | 'medium' | 'small';
|
|
11
11
|
uploadConfig?: SanitizedCollectionConfig['upload'];
|
|
12
12
|
};
|
|
13
|
+
export declare const useThumbnailContext: () => {
|
|
14
|
+
className: string;
|
|
15
|
+
filename: string;
|
|
16
|
+
size: string;
|
|
17
|
+
src: string;
|
|
18
|
+
};
|
|
13
19
|
export declare const Thumbnail: React.FC<ThumbnailProps>;
|
|
14
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Thumbnail/index.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Thumbnail/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAK9D,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC9C,YAAY,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CACnD,CAAA;AASD,eAAO,MAAM,mBAAmB;;;;;CAA2C,CAAA;AAE3E,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA6B9C,CAAA"}
|
|
@@ -1,31 +1,47 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import React
|
|
3
|
-
import { File } from '../../graphics/File/index.js';
|
|
4
|
-
import { useThumbnail } from '../../hooks/useThumbnail.js';
|
|
2
|
+
import React from 'react';
|
|
5
3
|
const baseClass = 'thumbnail';
|
|
4
|
+
import { File } from '../../graphics/File/index.js';
|
|
5
|
+
import { ShimmerEffect } from '../ShimmerEffect/index.js';
|
|
6
|
+
const ThumbnailContext = /*#__PURE__*/ React.createContext({
|
|
7
|
+
className: '',
|
|
8
|
+
filename: '',
|
|
9
|
+
size: 'medium',
|
|
10
|
+
src: ''
|
|
11
|
+
});
|
|
12
|
+
export const useThumbnailContext = ()=>React.useContext(ThumbnailContext);
|
|
6
13
|
export const Thumbnail = (props)=>{
|
|
7
|
-
const { className = '',
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const classes = [
|
|
14
|
+
const { className = '', doc: { filename } = {}, fileSrc, size } = props;
|
|
15
|
+
const [fileExists, setFileExists] = React.useState(undefined);
|
|
16
|
+
const classNames = [
|
|
11
17
|
baseClass,
|
|
12
18
|
`${baseClass}--size-${size || 'medium'}`,
|
|
13
19
|
className
|
|
14
20
|
].join(' ');
|
|
15
|
-
useEffect(()=>{
|
|
16
|
-
if (
|
|
17
|
-
|
|
21
|
+
React.useEffect(()=>{
|
|
22
|
+
if (!fileSrc) {
|
|
23
|
+
setFileExists(false);
|
|
24
|
+
return;
|
|
18
25
|
}
|
|
26
|
+
const img = new Image();
|
|
27
|
+
img.src = fileSrc;
|
|
28
|
+
img.onload = ()=>{
|
|
29
|
+
setFileExists(true);
|
|
30
|
+
};
|
|
31
|
+
img.onerror = ()=>{
|
|
32
|
+
setFileExists(false);
|
|
33
|
+
};
|
|
19
34
|
}, [
|
|
20
|
-
|
|
21
|
-
imageCacheTag
|
|
35
|
+
fileSrc
|
|
22
36
|
]);
|
|
23
37
|
return /*#__PURE__*/ React.createElement("div", {
|
|
24
|
-
className:
|
|
25
|
-
},
|
|
38
|
+
className: classNames
|
|
39
|
+
}, fileExists === undefined && /*#__PURE__*/ React.createElement(ShimmerEffect, {
|
|
40
|
+
height: "100%"
|
|
41
|
+
}), fileExists && /*#__PURE__*/ React.createElement("img", {
|
|
26
42
|
alt: filename,
|
|
27
|
-
src:
|
|
28
|
-
}),
|
|
43
|
+
src: fileSrc
|
|
44
|
+
}), fileExists === false && /*#__PURE__*/ React.createElement(File, null));
|
|
29
45
|
};
|
|
30
46
|
|
|
31
47
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'thumbnail'\n\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { File } from '../../graphics/File/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nexport type ThumbnailProps = {\n className?: string\n collectionSlug?: string\n doc?: Record<string, unknown>\n fileSrc?: string\n imageCacheTag?: string\n size?: 'expand' | 'large' | 'medium' | 'small'\n uploadConfig?: SanitizedCollectionConfig['upload']\n}\n\nconst ThumbnailContext = React.createContext({\n className: '',\n filename: '',\n size: 'medium',\n src: '',\n})\n\nexport const useThumbnailContext = () => React.useContext(ThumbnailContext)\n\nexport const Thumbnail: React.FC<ThumbnailProps> = (props) => {\n const { className = '', doc: { filename } = {}, fileSrc, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={filename as string} src={fileSrc} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n"],"names":["React","baseClass","File","ShimmerEffect","ThumbnailContext","createContext","className","filename","size","src","useThumbnailContext","useContext","Thumbnail","props","doc","fileSrc","fileExists","setFileExists","useState","undefined","classNames","join","useEffect","img","Image","onload","onerror","div","height","alt"],"mappings":"AAAA;AACA,OAAOA,WAAW,QAAO;AAIzB,MAAMC,YAAY;AAIlB,SAASC,IAAI,QAAQ,+BAA8B;AACnD,SAASC,aAAa,QAAQ,4BAA2B;AAYzD,MAAMC,iCAAmBJ,MAAMK,aAAa,CAAC;IAC3CC,WAAW;IACXC,UAAU;IACVC,MAAM;IACNC,KAAK;AACP;AAEA,OAAO,MAAMC,sBAAsB,IAAMV,MAAMW,UAAU,CAACP,kBAAiB;AAE3E,OAAO,MAAMQ,YAAsC,CAACC;IAClD,MAAM,EAAEP,YAAY,EAAE,EAAEQ,KAAK,EAAEP,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAEQ,OAAO,EAAEP,IAAI,EAAE,GAAGK;IAClE,MAAM,CAACG,YAAYC,cAAc,GAAGjB,MAAMkB,QAAQ,CAACC;IAEnD,MAAMC,aAAa;QAACnB;QAAW,CAAC,EAAEA,UAAU,OAAO,EAAEO,QAAQ,SAAS,CAAC;QAAEF;KAAU,CAACe,IAAI,CAAC;IAEzFrB,MAAMsB,SAAS,CAAC;QACd,IAAI,CAACP,SAAS;YACZE,cAAc;YACd;QACF;QAEA,MAAMM,MAAM,IAAIC;QAChBD,IAAId,GAAG,GAAGM;QACVQ,IAAIE,MAAM,GAAG;YACXR,cAAc;QAChB;QACAM,IAAIG,OAAO,GAAG;YACZT,cAAc;QAChB;IACF,GAAG;QAACF;KAAQ;IAEZ,qBACE,oBAACY;QAAIrB,WAAWc;OACbJ,eAAeG,2BAAa,oBAAChB;QAAcyB,QAAO;QAClDZ,4BAAc,oBAACO;QAAIM,KAAKtB;QAAoBE,KAAKM;QACjDC,eAAe,uBAAS,oBAACd;AAGhC,EAAC"}
|
|
@@ -11,7 +11,7 @@ export type ThumbnailCardProps = {
|
|
|
11
11
|
label?: string;
|
|
12
12
|
onClick?: () => void;
|
|
13
13
|
onKeyDown?: () => void;
|
|
14
|
-
thumbnail
|
|
14
|
+
thumbnail: React.ReactNode;
|
|
15
15
|
};
|
|
16
16
|
export declare const ThumbnailCard: React.FC<ThumbnailCardProps>;
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ThumbnailCard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1E,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ThumbnailCard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1E,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,GAAG,CAAC,EAAE,UAAU,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAA;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0CtD,CAAA"}
|
|
@@ -2,12 +2,11 @@ import React from 'react';
|
|
|
2
2
|
import { useConfig } from '../../providers/Config/index.js';
|
|
3
3
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
4
4
|
import { formatDocTitle } from '../../utilities/formatDocTitle.js';
|
|
5
|
-
import { Thumbnail } from '../Thumbnail/index.js';
|
|
6
5
|
const baseClass = 'thumbnail-card';
|
|
7
6
|
export const ThumbnailCard = (props)=>{
|
|
8
7
|
const { alignLabel, className, collection, doc, label: labelFromProps, onClick, thumbnail } = props;
|
|
9
8
|
const config = useConfig();
|
|
10
|
-
const { i18n
|
|
9
|
+
const { i18n } = useTranslation();
|
|
11
10
|
const classes = [
|
|
12
11
|
baseClass,
|
|
13
12
|
className,
|
|
@@ -31,10 +30,7 @@ export const ThumbnailCard = (props)=>{
|
|
|
31
30
|
type: "button"
|
|
32
31
|
}, /*#__PURE__*/ React.createElement("div", {
|
|
33
32
|
className: `${baseClass}__thumbnail`
|
|
34
|
-
}, thumbnail
|
|
35
|
-
doc: doc,
|
|
36
|
-
size: "expand"
|
|
37
|
-
})), /*#__PURE__*/ React.createElement("div", {
|
|
33
|
+
}, thumbnail), /*#__PURE__*/ React.createElement("div", {
|
|
38
34
|
className: `${baseClass}__label`
|
|
39
35
|
}, title));
|
|
40
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/ThumbnailCard/index.tsx"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from 'payload/types'\n\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/ThumbnailCard/index.tsx"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from 'payload/types'\n\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport './index.scss'\n\nexport type ThumbnailCardProps = {\n alignLabel?: 'center' | 'left'\n className?: string\n collection?: SanitizedCollectionConfig\n doc?: TypeWithID & { filename?: string }\n label?: string\n onClick?: () => void\n onKeyDown?: () => void\n thumbnail: React.ReactNode\n}\n\nconst baseClass = 'thumbnail-card'\n\nexport const ThumbnailCard: React.FC<ThumbnailCardProps> = (props) => {\n const {\n alignLabel,\n className,\n collection,\n doc,\n label: labelFromProps,\n onClick,\n thumbnail,\n } = props\n\n const config = useConfig()\n\n const { i18n } = useTranslation()\n\n const classes = [\n baseClass,\n className,\n typeof onClick === 'function' && `${baseClass}--has-on-click`,\n alignLabel && `${baseClass}--align-label-${alignLabel}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let title = labelFromProps\n\n if (!title) {\n title = formatDocTitle({\n collectionConfig: collection,\n data: doc,\n dateFormat: config.admin.dateFormat,\n fallback: doc?.filename,\n i18n,\n })\n }\n\n return (\n <button className={classes} onClick={onClick} title={title} type=\"button\">\n <div className={`${baseClass}__thumbnail`}>{thumbnail}</div>\n <div className={`${baseClass}__label`}>{title}</div>\n </button>\n )\n}\n"],"names":["React","useConfig","useTranslation","formatDocTitle","baseClass","ThumbnailCard","props","alignLabel","className","collection","doc","label","labelFromProps","onClick","thumbnail","config","i18n","classes","filter","Boolean","join","title","collectionConfig","data","dateFormat","admin","fallback","filename","button","type","div"],"mappings":"AAEA,OAAOA,WAAW,QAAO;AAEzB,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,oCAAmC;AAclE,MAAMC,YAAY;AAElB,OAAO,MAAMC,gBAA8C,CAACC;IAC1D,MAAM,EACJC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,GAAG,EACHC,OAAOC,cAAc,EACrBC,OAAO,EACPC,SAAS,EACV,GAAGR;IAEJ,MAAMS,SAASd;IAEf,MAAM,EAAEe,IAAI,EAAE,GAAGd;IAEjB,MAAMe,UAAU;QACdb;QACAI;QACA,OAAOK,YAAY,cAAc,CAAC,EAAET,UAAU,cAAc,CAAC;QAC7DG,cAAc,CAAC,EAAEH,UAAU,cAAc,EAAEG,WAAW,CAAC;KACxD,CACEW,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIC,QAAQT;IAEZ,IAAI,CAACS,OAAO;QACVA,QAAQlB,eAAe;YACrBmB,kBAAkBb;YAClBc,MAAMb;YACNc,YAAYT,OAAOU,KAAK,CAACD,UAAU;YACnCE,UAAUhB,KAAKiB;YACfX;QACF;IACF;IAEA,qBACE,oBAACY;QAAOpB,WAAWS;QAASJ,SAASA;QAASQ,OAAOA;QAAOQ,MAAK;qBAC/D,oBAACC;QAAItB,WAAW,CAAC,EAAEJ,UAAU,WAAW,CAAC;OAAGU,0BAC5C,oBAACgB;QAAItB,WAAW,CAAC,EAAEJ,UAAU,OAAO,CAAC;OAAGiB;AAG9C,EAAC"}
|
|
@@ -85,15 +85,15 @@
|
|
|
85
85
|
|
|
86
86
|
html[data-theme='light'] {
|
|
87
87
|
.tooltip {
|
|
88
|
-
background-color: var(--theme-
|
|
89
|
-
color: var(--theme-
|
|
88
|
+
background-color: var(--theme-elevation-100);
|
|
89
|
+
color: var(--theme-elevation-1000);
|
|
90
90
|
|
|
91
91
|
&--position-top:after {
|
|
92
|
-
border-top-color: var(--theme-
|
|
92
|
+
border-top-color: var(--theme-elevation-100);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
&--position-bottom:after {
|
|
96
|
-
border-bottom-color: var(--theme-
|
|
96
|
+
border-bottom-color: var(--theme-elevation-100);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Translation/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Translation/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAkC9B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC,CAAA;IAClE,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,EAAE,SAAS,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAQlD,CAAA"}
|
|
@@ -3,15 +3,18 @@ const RecursiveTranslation = ({ elements, translationString })=>{
|
|
|
3
3
|
const regex = /(<[^>]+>.*?<\/[^>]+>)/g;
|
|
4
4
|
const sections = translationString.split(regex);
|
|
5
5
|
return /*#__PURE__*/ React.createElement("span", null, sections.map((section, index)=>{
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
6
|
+
if (elements && section.startsWith('<') && section.endsWith('>')) {
|
|
7
|
+
const elementKey = section[1];
|
|
8
|
+
const Element = elements[elementKey];
|
|
9
|
+
if (Element) {
|
|
10
|
+
const regex = new RegExp(`<${elementKey}>(.*?)<\/${elementKey}>`, 'g');
|
|
11
|
+
const children = section.replace(regex, (_, group)=>group);
|
|
12
|
+
return /*#__PURE__*/ React.createElement(Element, {
|
|
13
|
+
key: index
|
|
14
|
+
}, /*#__PURE__*/ React.createElement(RecursiveTranslation, {
|
|
15
|
+
translationString: children
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
15
18
|
}
|
|
16
19
|
return section;
|
|
17
20
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Translation/index.tsx"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport * as React from 'react'\n\nconst RecursiveTranslation: React.FC<{\n elements?: Record<string, React.FC<{ children: React.ReactNode }>>\n translationString: string\n}> = ({ elements, translationString }) => {\n const regex = /(<[^>]+>.*?<\\/[^>]+>)/g\n const sections = translationString.split(regex)\n\n return (\n <span>\n {sections.map((section, index) => {\n const Element = elements
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Translation/index.tsx"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport * as React from 'react'\n\nconst RecursiveTranslation: React.FC<{\n elements?: Record<string, React.FC<{ children: React.ReactNode }>>\n translationString: string\n}> = ({ elements, translationString }) => {\n const regex = /(<[^>]+>.*?<\\/[^>]+>)/g\n const sections = translationString.split(regex)\n\n return (\n <span>\n {sections.map((section, index) => {\n if (elements && section.startsWith('<') && section.endsWith('>')) {\n const elementKey = section[1]\n const Element = elements[elementKey]\n\n if (Element) {\n const regex = new RegExp(`<${elementKey}>(.*?)<\\/${elementKey}>`, 'g')\n const children = section.replace(regex, (_, group) => group)\n\n return (\n <Element key={index}>\n <RecursiveTranslation translationString={children} />\n </Element>\n )\n }\n }\n\n return section\n })}\n </span>\n )\n}\n\nexport type TranslationProps = {\n elements?: Record<string, React.FC<{ children: React.ReactNode }>>\n i18nKey: string\n t: TFunction\n variables?: Record<string, unknown>\n}\n\nexport const Translation: React.FC<TranslationProps> = ({ elements, i18nKey, t, variables }) => {\n const stringWithVariables = t(i18nKey, variables || {})\n\n if (!elements) {\n return stringWithVariables\n }\n\n return <RecursiveTranslation elements={elements} translationString={stringWithVariables} />\n}\n"],"names":["React","RecursiveTranslation","elements","translationString","regex","sections","split","span","map","section","index","startsWith","endsWith","elementKey","Element","RegExp","children","replace","_","group","key","Translation","i18nKey","t","variables","stringWithVariables"],"mappings":"AAEA,YAAYA,WAAW,QAAO;AAE9B,MAAMC,uBAGD,CAAC,EAAEC,QAAQ,EAAEC,iBAAiB,EAAE;IACnC,MAAMC,QAAQ;IACd,MAAMC,WAAWF,kBAAkBG,KAAK,CAACF;IAEzC,qBACE,oBAACG,cACEF,SAASG,GAAG,CAAC,CAACC,SAASC;QACtB,IAAIR,YAAYO,QAAQE,UAAU,CAAC,QAAQF,QAAQG,QAAQ,CAAC,MAAM;YAChE,MAAMC,aAAaJ,OAAO,CAAC,EAAE;YAC7B,MAAMK,UAAUZ,QAAQ,CAACW,WAAW;YAEpC,IAAIC,SAAS;gBACX,MAAMV,QAAQ,IAAIW,OAAO,CAAC,CAAC,EAAEF,WAAW,SAAS,EAAEA,WAAW,CAAC,CAAC,EAAE;gBAClE,MAAMG,WAAWP,QAAQQ,OAAO,CAACb,OAAO,CAACc,GAAGC,QAAUA;gBAEtD,qBACE,oBAACL;oBAAQM,KAAKV;iCACZ,oBAACT;oBAAqBE,mBAAmBa;;YAG/C;QACF;QAEA,OAAOP;IACT;AAGN;AASA,OAAO,MAAMY,cAA0C,CAAC,EAAEnB,QAAQ,EAAEoB,OAAO,EAAEC,CAAC,EAAEC,SAAS,EAAE;IACzF,MAAMC,sBAAsBF,EAAED,SAASE,aAAa,CAAC;IAErD,IAAI,CAACtB,UAAU;QACb,OAAOuB;IACT;IAEA,qBAAO,oBAACxB;QAAqBC,UAAUA;QAAUC,mBAAmBsB;;AACtE,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAG3E,OAAO,KAAK,EAAc,KAAK,EAAqB,MAAM,YAAY,CAAA;AAMtE,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAG3E,OAAO,KAAK,EAAc,KAAK,EAAqB,MAAM,YAAY,CAAA;AAMtE,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoS7C,CAAA"}
|
|
@@ -143,7 +143,7 @@ export const RelationshipField = (props)=>{
|
|
|
143
143
|
search
|
|
144
144
|
]);
|
|
145
145
|
const addOptionByID = useCallback(async (id, relation)=>{
|
|
146
|
-
if (!errorLoading && id !== 'null') {
|
|
146
|
+
if (!errorLoading && id !== 'null' && id && relation) {
|
|
147
147
|
const response = await fetch(`${serverURL}${api}/${relation}/${id}?depth=0`, {
|
|
148
148
|
credentials: 'include',
|
|
149
149
|
headers: {
|
|
@@ -243,23 +243,27 @@ export const RelationshipField = (props)=>{
|
|
|
243
243
|
isMulti: hasMany,
|
|
244
244
|
isSortable: isSortable,
|
|
245
245
|
onChange: (selected)=>{
|
|
246
|
+
if (!selected) {
|
|
247
|
+
onChange(null);
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
246
250
|
if (hasMany) {
|
|
247
251
|
onChange(selected ? selected.map((option)=>{
|
|
248
252
|
if (hasMultipleRelations) {
|
|
249
253
|
return {
|
|
250
|
-
relationTo: option
|
|
251
|
-
value: option
|
|
254
|
+
relationTo: option?.relationTo,
|
|
255
|
+
value: option?.value
|
|
252
256
|
};
|
|
253
257
|
}
|
|
254
|
-
return option
|
|
258
|
+
return option?.value;
|
|
255
259
|
}) : null);
|
|
256
260
|
} else if (hasMultipleRelations) {
|
|
257
261
|
onChange({
|
|
258
|
-
relationTo: selected
|
|
259
|
-
value: selected
|
|
262
|
+
relationTo: selected?.relationTo,
|
|
263
|
+
value: selected?.value
|
|
260
264
|
});
|
|
261
265
|
} else {
|
|
262
|
-
onChange(selected
|
|
266
|
+
onChange(selected?.value);
|
|
263
267
|
}
|
|
264
268
|
},
|
|
265
269
|
onInputChange: handleInputChange,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-floating-promises */\nimport type { PaginatedDocs } from 'payload/database'\n\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { GetResults, Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipField: React.FC<Props> = (props) => {\n const { admin: { isSortable } = {}, disabled, hasMany, onChange, relationTo, value } = props\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [lastFullyLoadedRelation, setLastFullyLoadedRelation] = useState(-1)\n const [lastLoadedPage, setLastLoadedPage] = useState(1)\n const [search, setSearch] = useState('')\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const debouncedSearch = useDebounce(search, 300)\n const { i18n, t } = useTranslation()\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [collections, hasMultipleRelations, i18n],\n )\n\n const getResults = useCallback<GetResults>(\n async ({\n lastFullyLoadedRelation: lastFullyLoadedRelationArg,\n lastLoadedPage: lastLoadedPageArg,\n search: searchArg,\n // eslint-disable-next-line @typescript-eslint/require-await\n }) => {\n let lastLoadedPageToUse = typeof lastLoadedPageArg !== 'undefined' ? lastLoadedPageArg : 1\n const lastFullyLoadedRelationToUse =\n typeof lastFullyLoadedRelationArg !== 'undefined' ? lastFullyLoadedRelationArg : -1\n\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const relationsToFetch =\n lastFullyLoadedRelationToUse === -1\n ? relations\n : relations.slice(lastFullyLoadedRelationToUse + 1)\n\n let resultsFetched = 0\n\n if (!errorLoading) {\n relationsToFetch.reduce(async (priorRelation, relation) => {\n await priorRelation\n\n if (resultsFetched < 10) {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n const searchParam = searchArg ? `&where[${fieldToSearch}][like]=${searchArg}` : ''\n\n const response = await fetch(\n `${serverURL}${api}/${relation}?limit=${maxResultsPerRequest}&page=${lastLoadedPageToUse}&depth=0${searchParam}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n resultsFetched += data.docs.length\n addOptions(data, relation)\n setLastLoadedPage(data.page)\n\n if (!data.nextPage) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n\n // If there are more relations to search, need to reset lastLoadedPage to 1\n // both locally within function and state\n if (relations.indexOf(relation) + 1 < relations.length) {\n lastLoadedPageToUse = 1\n }\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n }\n }, Promise.resolve())\n }\n },\n [i18n, relationTo, errorLoading, collections, serverURL, api, addOptions, t],\n )\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (hasMany) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value === val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value === val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value === valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value === value)\n }\n\n return undefined\n }, [hasMany, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (newSearch) => {\n if (search !== newSearch) {\n setSearch(newSearch)\n }\n },\n [search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null') {\n const response = await fetch(`${serverURL}${api}/${relation}/${id}?depth=0`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, serverURL, t],\n )\n\n // ///////////////////////////\n // Get results when search input changes\n // ///////////////////////////\n\n useEffect(() => {\n dispatchOptions({\n type: 'CLEAR',\n i18n,\n required: true,\n })\n\n setHasLoadedFirstOptions(true)\n setLastLoadedPage(1)\n setLastFullyLoadedRelation(-1)\n getResults({ search: debouncedSearch })\n }, [getResults, debouncedSearch, relationTo, i18n])\n\n // ///////////////////////////\n // Format options once first options have been retrieved\n // ///////////////////////////\n\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (hasMany) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n addOptionByID(value[i].value, value[i].relationTo)\n } else {\n addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n hasMany,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {!errorLoading && (\n <ReactSelect\n disabled={disabled}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={(selected) => {\n if (hasMany) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option.relationTo,\n value: option.value,\n }\n }\n\n return option.value\n })\n : null,\n )\n } else if (hasMultipleRelations) {\n onChange({\n relationTo: selected.relationTo,\n value: selected.value,\n })\n } else {\n onChange(selected.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={() => {\n getResults({ lastFullyLoadedRelation, lastLoadedPage: lastLoadedPage + 1 })\n }}\n options={options}\n placeholder={t('general:selectValue')}\n value={valueToRender}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"names":["React","useCallback","useEffect","useReducer","useState","useDebounce","useConfig","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipField","props","admin","isSortable","disabled","hasMany","onChange","relationTo","value","collections","routes","api","serverURL","hasMultipleRelations","Array","isArray","options","dispatchOptions","lastFullyLoadedRelation","setLastFullyLoadedRelation","lastLoadedPage","setLastLoadedPage","search","setSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","debouncedSearch","i18n","t","addOptions","data","relation","collection","find","coll","slug","type","getResults","lastFullyLoadedRelationArg","lastLoadedPageArg","searchArg","lastLoadedPageToUse","lastFullyLoadedRelationToUse","relations","relationsToFetch","slice","resultsFetched","reduce","priorRelation","fieldToSearch","useAsTitle","searchParam","response","fetch","credentials","headers","language","ok","json","docs","length","page","nextPage","indexOf","Promise","resolve","findOptionsByValue","map","val","matchedOption","forEach","opt","some","subOpt","undefined","valueWithRelation","handleInputChange","newSearch","addOptionByID","id","console","error","required","matchedOptions","option","i","classes","filter","Boolean","join","valueToRender","div","className","isMulti","selected","onInputChange","onMenuScrollToBottom","placeholder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-floating-promises */\nimport type { PaginatedDocs } from 'payload/database'\n\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { GetResults, Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipField: React.FC<Props> = (props) => {\n const { admin: { isSortable } = {}, disabled, hasMany, onChange, relationTo, value } = props\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [lastFullyLoadedRelation, setLastFullyLoadedRelation] = useState(-1)\n const [lastLoadedPage, setLastLoadedPage] = useState(1)\n const [search, setSearch] = useState('')\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const debouncedSearch = useDebounce(search, 300)\n const { i18n, t } = useTranslation()\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [collections, hasMultipleRelations, i18n],\n )\n\n const getResults = useCallback<GetResults>(\n async ({\n lastFullyLoadedRelation: lastFullyLoadedRelationArg,\n lastLoadedPage: lastLoadedPageArg,\n search: searchArg,\n // eslint-disable-next-line @typescript-eslint/require-await\n }) => {\n let lastLoadedPageToUse = typeof lastLoadedPageArg !== 'undefined' ? lastLoadedPageArg : 1\n const lastFullyLoadedRelationToUse =\n typeof lastFullyLoadedRelationArg !== 'undefined' ? lastFullyLoadedRelationArg : -1\n\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const relationsToFetch =\n lastFullyLoadedRelationToUse === -1\n ? relations\n : relations.slice(lastFullyLoadedRelationToUse + 1)\n\n let resultsFetched = 0\n\n if (!errorLoading) {\n relationsToFetch.reduce(async (priorRelation, relation) => {\n await priorRelation\n\n if (resultsFetched < 10) {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n const searchParam = searchArg ? `&where[${fieldToSearch}][like]=${searchArg}` : ''\n\n const response = await fetch(\n `${serverURL}${api}/${relation}?limit=${maxResultsPerRequest}&page=${lastLoadedPageToUse}&depth=0${searchParam}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n resultsFetched += data.docs.length\n addOptions(data, relation)\n setLastLoadedPage(data.page)\n\n if (!data.nextPage) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n\n // If there are more relations to search, need to reset lastLoadedPage to 1\n // both locally within function and state\n if (relations.indexOf(relation) + 1 < relations.length) {\n lastLoadedPageToUse = 1\n }\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n }\n }, Promise.resolve())\n }\n },\n [i18n, relationTo, errorLoading, collections, serverURL, api, addOptions, t],\n )\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (hasMany) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value === val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value === val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value === valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value === value)\n }\n\n return undefined\n }, [hasMany, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (newSearch) => {\n if (search !== newSearch) {\n setSearch(newSearch)\n }\n },\n [search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(`${serverURL}${api}/${relation}/${id}?depth=0`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, serverURL, t],\n )\n\n // ///////////////////////////\n // Get results when search input changes\n // ///////////////////////////\n\n useEffect(() => {\n dispatchOptions({\n type: 'CLEAR',\n i18n,\n required: true,\n })\n\n setHasLoadedFirstOptions(true)\n setLastLoadedPage(1)\n setLastFullyLoadedRelation(-1)\n getResults({ search: debouncedSearch })\n }, [getResults, debouncedSearch, relationTo, i18n])\n\n // ///////////////////////////\n // Format options once first options have been retrieved\n // ///////////////////////////\n\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (hasMany) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n addOptionByID(value[i].value, value[i].relationTo)\n } else {\n addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n hasMany,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {!errorLoading && (\n <ReactSelect\n disabled={disabled}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n if (hasMany) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option?.relationTo,\n value: option?.value,\n }\n }\n\n return option?.value\n })\n : null,\n )\n } else if (hasMultipleRelations) {\n onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={() => {\n getResults({ lastFullyLoadedRelation, lastLoadedPage: lastLoadedPage + 1 })\n }}\n options={options}\n placeholder={t('general:selectValue')}\n value={valueToRender}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"names":["React","useCallback","useEffect","useReducer","useState","useDebounce","useConfig","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipField","props","admin","isSortable","disabled","hasMany","onChange","relationTo","value","collections","routes","api","serverURL","hasMultipleRelations","Array","isArray","options","dispatchOptions","lastFullyLoadedRelation","setLastFullyLoadedRelation","lastLoadedPage","setLastLoadedPage","search","setSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","debouncedSearch","i18n","t","addOptions","data","relation","collection","find","coll","slug","type","getResults","lastFullyLoadedRelationArg","lastLoadedPageArg","searchArg","lastLoadedPageToUse","lastFullyLoadedRelationToUse","relations","relationsToFetch","slice","resultsFetched","reduce","priorRelation","fieldToSearch","useAsTitle","searchParam","response","fetch","credentials","headers","language","ok","json","docs","length","page","nextPage","indexOf","Promise","resolve","findOptionsByValue","map","val","matchedOption","forEach","opt","some","subOpt","undefined","valueWithRelation","handleInputChange","newSearch","addOptionByID","id","console","error","required","matchedOptions","option","i","classes","filter","Boolean","join","valueToRender","div","className","isMulti","selected","onInputChange","onMenuScrollToBottom","placeholder"],"mappings":"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"}
|
|
@@ -1,12 +1,29 @@
|
|
|
1
|
-
import type { Where } from 'payload/types';
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import type {
|
|
2
|
+
import type { FieldCondition } from '../types.js';
|
|
4
3
|
export type Props = {
|
|
4
|
+
addCondition: ({ andIndex, fieldName, orIndex, relation, }: {
|
|
5
|
+
andIndex: number;
|
|
6
|
+
fieldName: string;
|
|
7
|
+
orIndex: number;
|
|
8
|
+
relation: 'and' | 'or';
|
|
9
|
+
}) => void;
|
|
5
10
|
andIndex: number;
|
|
6
|
-
|
|
11
|
+
fieldName: string;
|
|
7
12
|
fields: FieldCondition[];
|
|
13
|
+
initialValue: string;
|
|
14
|
+
operator: string;
|
|
8
15
|
orIndex: number;
|
|
9
|
-
|
|
16
|
+
removeCondition: ({ andIndex, orIndex }: {
|
|
17
|
+
andIndex: number;
|
|
18
|
+
orIndex: number;
|
|
19
|
+
}) => void;
|
|
20
|
+
updateCondition: ({ andIndex, fieldName, operator, orIndex, value, }: {
|
|
21
|
+
andIndex: number;
|
|
22
|
+
fieldName: string;
|
|
23
|
+
operator: string;
|
|
24
|
+
orIndex: number;
|
|
25
|
+
value: string;
|
|
26
|
+
}) => void;
|
|
10
27
|
};
|
|
11
28
|
import './index.scss';
|
|
12
29
|
export declare const Condition: React.FC<Props>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,KAAK,GAAG;IAClB,YAAY,EAAE,CAAC,EACb,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAA;KACvB,KAAK,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACvF,eAAe,EAAE,CAAC,EAChB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,KAAK,GACN,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;CACX,CAAA;AAaD,OAAO,cAAc,CAAA;AAarB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgJrC,CAAA"}
|