@payloadcms/ui 3.73.0-internal.783bc97 → 3.73.0-internal.dd5902a
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/DraggableSortable/index.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/index.js +15 -12
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/Link/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -2
- package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
- package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
- package/dist/elements/Table/OrderableTable.js +5 -1
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +10 -1
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-QOURTFMT.js → CodeEditor-6KT2JS6X.js} +2 -2
- package/dist/exports/client/{DatePicker-KIFZZD6G.js → DatePicker-TDXLCEZV.js} +2 -2
- package/dist/exports/client/chunk-TBYRZYQJ.js +27 -0
- package/dist/exports/client/chunk-TBYRZYQJ.js.map +7 -0
- package/dist/exports/client/chunk-UN66UDCU.js +29 -0
- package/dist/exports/client/{chunk-SXTBYES4.js.map → chunk-UN66UDCU.js.map} +4 -4
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js +1 -1
- package/dist/exports/shared/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +6 -0
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/hooks/useEffectEvent.d.ts +14 -1
- package/dist/hooks/useEffectEvent.d.ts.map +1 -1
- package/dist/hooks/useEffectEvent.js +12 -34
- package/dist/hooks/useEffectEvent.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +28 -26
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/LivePreview/index.d.ts.map +1 -1
- package/dist/providers/LivePreview/index.js +4 -1
- package/dist/providers/LivePreview/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/upsertPreferences.d.ts.map +1 -1
- package/dist/utilities/upsertPreferences.js +2 -1
- package/dist/utilities/upsertPreferences.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +17 -0
- package/dist/views/Edit/index.js.map +1 -1
- package/package.json +8 -8
- package/dist/exports/client/chunk-53XJ3K67.js +0 -27
- package/dist/exports/client/chunk-53XJ3K67.js.map +0 -7
- package/dist/exports/client/chunk-SXTBYES4.js +0 -29
- /package/dist/exports/client/{CodeEditor-QOURTFMT.js.map → CodeEditor-6KT2JS6X.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-KIFZZD6G.js.map → DatePicker-TDXLCEZV.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DraggableSortable/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DraggableSortable/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6E7C,CAAA"}
|
|
@@ -6,7 +6,7 @@ import { closestCenter, DndContext, KeyboardSensor, PointerSensor, useDroppable,
|
|
|
6
6
|
import { SortableContext, sortableKeyboardCoordinates } from '@dnd-kit/sortable';
|
|
7
7
|
import React, { useCallback, useId } from 'react';
|
|
8
8
|
export const DraggableSortable = props => {
|
|
9
|
-
const $ = _c(
|
|
9
|
+
const $ = _c(19);
|
|
10
10
|
const {
|
|
11
11
|
children,
|
|
12
12
|
className,
|
|
@@ -14,13 +14,14 @@ export const DraggableSortable = props => {
|
|
|
14
14
|
onDragEnd,
|
|
15
15
|
onDragStart
|
|
16
16
|
} = props;
|
|
17
|
-
const
|
|
17
|
+
const dndContextID = useId();
|
|
18
|
+
const sortableContextID = useId();
|
|
18
19
|
let t0;
|
|
19
|
-
if ($[0] !==
|
|
20
|
+
if ($[0] !== dndContextID) {
|
|
20
21
|
t0 = {
|
|
21
|
-
id
|
|
22
|
+
id: dndContextID
|
|
22
23
|
};
|
|
23
|
-
$[0] =
|
|
24
|
+
$[0] = dndContextID;
|
|
24
25
|
$[1] = t0;
|
|
25
26
|
} else {
|
|
26
27
|
t0 = $[1];
|
|
@@ -98,14 +99,15 @@ export const DraggableSortable = props => {
|
|
|
98
99
|
}
|
|
99
100
|
const handleDragStart = t4;
|
|
100
101
|
let t5;
|
|
101
|
-
if ($[9] !== children || $[10] !== className || $[11] !==
|
|
102
|
+
if ($[9] !== children || $[10] !== className || $[11] !== dndContextID || $[12] !== handleDragEnd || $[13] !== handleDragStart || $[14] !== ids || $[15] !== sensors || $[16] !== setNodeRef || $[17] !== sortableContextID) {
|
|
102
103
|
t5 = _jsx(DndContext, {
|
|
103
104
|
collisionDetection: closestCenter,
|
|
104
|
-
id,
|
|
105
|
+
id: dndContextID,
|
|
105
106
|
onDragEnd: handleDragEnd,
|
|
106
107
|
onDragStart: handleDragStart,
|
|
107
108
|
sensors,
|
|
108
109
|
children: _jsx(SortableContext, {
|
|
110
|
+
id: sortableContextID,
|
|
109
111
|
items: ids,
|
|
110
112
|
children: _jsx("div", {
|
|
111
113
|
className,
|
|
@@ -116,15 +118,16 @@ export const DraggableSortable = props => {
|
|
|
116
118
|
});
|
|
117
119
|
$[9] = children;
|
|
118
120
|
$[10] = className;
|
|
119
|
-
$[11] =
|
|
120
|
-
$[12] =
|
|
121
|
-
$[13] =
|
|
121
|
+
$[11] = dndContextID;
|
|
122
|
+
$[12] = handleDragEnd;
|
|
123
|
+
$[13] = handleDragStart;
|
|
122
124
|
$[14] = ids;
|
|
123
125
|
$[15] = sensors;
|
|
124
126
|
$[16] = setNodeRef;
|
|
125
|
-
$[17] =
|
|
127
|
+
$[17] = sortableContextID;
|
|
128
|
+
$[18] = t5;
|
|
126
129
|
} else {
|
|
127
|
-
t5 = $[
|
|
130
|
+
t5 = $[18];
|
|
128
131
|
}
|
|
129
132
|
return t5;
|
|
130
133
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","closestCenter","DndContext","KeyboardSensor","PointerSensor","useDroppable","useSensor","useSensors","SortableContext","sortableKeyboardCoordinates","React","useCallback","useId","DraggableSortable","props","$","children","className","ids","onDragEnd","onDragStart","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","closestCenter","DndContext","KeyboardSensor","PointerSensor","useDroppable","useSensor","useSensors","SortableContext","sortableKeyboardCoordinates","React","useCallback","useId","DraggableSortable","props","$","children","className","ids","onDragEnd","onDragStart","dndContextID","sortableContextID","t0","id","setNodeRef","t1","Symbol","for","activationConstraint","distance","t2","coordinateGetter","sensors","t3","event","active","over","activatorEvent","stopPropagation","moveFromIndex","findIndex","_id","moveToIndex","_id_0","handleDragEnd","t4","event_0","active_0","handleDragStart","t5","_jsx","collisionDetection","items","ref"],"sources":["../../../src/elements/DraggableSortable/index.tsx"],"sourcesContent":["'use client'\nimport type { DragEndEvent, DragStartEvent } from '@dnd-kit/core'\n\nimport {\n closestCenter,\n DndContext,\n KeyboardSensor,\n PointerSensor,\n useDroppable,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport { SortableContext, sortableKeyboardCoordinates } from '@dnd-kit/sortable'\nimport React, { useCallback, useId } from 'react'\n\nimport type { Props } from './types.js'\n\nexport { Props }\n\nexport const DraggableSortable: React.FC<Props> = (props) => {\n const { children, className, ids, onDragEnd, onDragStart } = props\n\n const dndContextID = useId()\n const sortableContextID = useId()\n\n const { setNodeRef } = useDroppable({\n id: dndContextID,\n })\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event\n\n event.activatorEvent.stopPropagation()\n\n if (!active || !over) {\n return\n }\n\n if (typeof onDragEnd === 'function') {\n onDragEnd({\n event,\n moveFromIndex: ids.findIndex((_id) => _id === active.id),\n moveToIndex: ids.findIndex((_id) => _id === over.id),\n })\n }\n },\n [onDragEnd, ids],\n )\n\n const handleDragStart = useCallback(\n (event: DragStartEvent) => {\n const { active } = event\n\n if (!active) {\n return\n }\n\n if (typeof onDragStart === 'function') {\n onDragStart({ id: active.id, event })\n }\n },\n [onDragStart],\n )\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={dndContextID}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n sensors={sensors}\n >\n <SortableContext\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={sortableContextID}\n items={ids}\n >\n <div className={className} ref={setNodeRef}>\n {children}\n </div>\n </SortableContext>\n </DndContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Link/index.tsx"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,cAAc,CAAA;AAEzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,QAAA,MAAM,QAAQ;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Link/index.tsx"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,cAAc,CAAA;AAEzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,QAAA,MAAM,QAAQ;eA4E+nF,MAAO,SAAS;2CA5EvkF,CAAA;AAgBtF,KAAK,KAAK,GAAG;IACX;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAElC,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkDhC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA;AASzE,OAAO,KAAyC,MAAM,OAAO,CAAA;AAc7D,OAAO,cAAc,CAAA;AAQrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,YAAY,EAAE,WAAW,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sBAAsB,EAAE,6BAA6B,CAAA;CACtD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA;AASzE,OAAO,KAAyC,MAAM,OAAO,CAAA;AAc7D,OAAO,cAAc,CAAA;AAQrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,YAAY,EAAE,WAAW,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sBAAsB,EAAE,6BAA6B,CAAA;CACtD,CA6SA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","useCallback","useMemo","toast","PlusIcon","useConfig","useListQuery","useTranslation","ConfirmationModal","useDocumentDrawer","useListDrawer","ListSelectionButton","Pill","Translation","QueryPresetToggler","confirmDeletePresetModalSlug","queryPresetsSlug","baseClass","QueryPresetBar","activePreset","collectionSlug","queryPresetPermissions","modified","query","refineListData","setModified","setQueryModified","i18n","t","openModal","config","routes","api","apiRoute","serverURL","getEntityConfig","presetConfig","PresetDocumentDrawer","openDrawer","openDocumentDrawer","id","CreateNewPresetDrawer","closeDrawer","closeCreateNewDrawer","openCreateNewDrawer","filterOptions","isTemp","not_equals","relatedCollection","equals","ListDrawer","closeListDrawer","openListDrawer","collectionSlugs","selectedCollection","handlePresetChange","preset","columns","undefined","groupBy","where","resetQueryPreset","handleDeletePreset","fetch","path","method","then","res","json","status","success","label","labels","singular","title","errors","forEach","error","message","_err","saveCurrentChanges","body","JSON","stringify","credentials","headers","hasModifiedPreset","_jsxs","className","_jsx","openPresetListDrawer","resetPreset","icon","onClick","size","type","update","isShared","delete","initialData","onSave","doc","redirectAfterCreate","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onConfirm","onDelete","onDuplicate","allowCreate","disableQueryPresets","onSelect"],"sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"sourcesContent":["import type { QueryPreset, SanitizedCollectionPermission } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatAdminURL,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { useListDrawer } from '../../ListDrawer/index.js'\nimport { ListSelectionButton } from '../../ListSelection/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { QueryPresetToggler } from '../QueryPresetToggler/index.js'\nimport './index.scss'\n\nconst confirmDeletePresetModalSlug = 'confirm-delete-preset'\n\nconst queryPresetsSlug = 'payload-query-presets'\n\nconst baseClass = 'query-preset-bar'\n\nexport const QueryPresetBar: React.FC<{\n activePreset: QueryPreset\n collectionSlug?: string\n queryPresetPermissions: SanitizedCollectionPermission\n}> = ({ activePreset, collectionSlug, queryPresetPermissions }) => {\n const { modified, query, refineListData, setModified: setQueryModified } = useListQuery()\n\n const { i18n, t } = useTranslation()\n const { openModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const presetConfig = getEntityConfig({ collectionSlug: queryPresetsSlug })\n\n const [PresetDocumentDrawer, , { openDrawer: openDocumentDrawer }] = useDocumentDrawer({\n id: activePreset?.id,\n collectionSlug: queryPresetsSlug,\n })\n\n const [\n CreateNewPresetDrawer,\n ,\n { closeDrawer: closeCreateNewDrawer, openDrawer: openCreateNewDrawer },\n ] = useDocumentDrawer({\n collectionSlug: queryPresetsSlug,\n })\n\n const filterOptions = useMemo(\n () => ({\n 'payload-query-presets': {\n isTemp: {\n not_equals: true,\n },\n relatedCollection: {\n equals: collectionSlug,\n },\n },\n }),\n [collectionSlug],\n )\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: [queryPresetsSlug],\n filterOptions,\n selectedCollection: queryPresetsSlug,\n })\n\n const handlePresetChange = useCallback(\n async (preset: QueryPreset) => {\n await refineListData(\n {\n columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,\n groupBy: preset.groupBy || '',\n preset: preset.id,\n where: preset.where,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const resetQueryPreset = useCallback(async () => {\n await refineListData(\n {\n columns: [],\n groupBy: '',\n preset: '',\n where: {},\n },\n false,\n )\n }, [refineListData])\n\n const handleDeletePreset = useCallback(async () => {\n try {\n await fetch(\n formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n }),\n {\n method: 'DELETE',\n },\n ).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleDeleted', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n title: activePreset.title,\n }),\n )\n\n await resetQueryPreset()\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n })\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }, [apiRoute, activePreset?.id, activePreset?.title, t, presetConfig, i18n, resetQueryPreset])\n\n const saveCurrentChanges = useCallback(async () => {\n try {\n await fetch(\n formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n }),\n {\n body: JSON.stringify({\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n where: query.where,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n },\n ).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:updatedLabelSuccessfully', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n }),\n )\n\n setQueryModified(false)\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:unknown'))\n }\n }\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n })\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n }, [\n apiRoute,\n activePreset?.id,\n query.columns,\n query.groupBy,\n query.where,\n t,\n presetConfig?.labels?.singular,\n i18n,\n setQueryModified,\n ])\n\n const hasModifiedPreset = activePreset && modified\n\n return (\n <Fragment>\n <div className={baseClass}>\n <div className={`${baseClass}__menu`}>\n <QueryPresetToggler\n activePreset={activePreset}\n openPresetListDrawer={openListDrawer}\n resetPreset={resetQueryPreset}\n />\n <Pill\n aria-label={t('general:newLabel', { label: presetConfig?.labels?.singular })}\n className={`${baseClass}__create-new-preset`}\n icon={<PlusIcon />}\n id=\"create-new-preset\"\n onClick={() => {\n openCreateNewDrawer()\n }}\n size=\"small\"\n />\n </div>\n <div className={`${baseClass}__menu-items`}>\n {hasModifiedPreset && (\n <ListSelectionButton\n id=\"reset-preset\"\n key=\"reset\"\n onClick={async () => {\n await refineListData(\n {\n columns: transformColumnsToSearchParams(activePreset.columns),\n groupBy: activePreset.groupBy || '',\n where: activePreset.where,\n },\n false,\n )\n }}\n type=\"button\"\n >\n {t('general:reset')}\n </ListSelectionButton>\n )}\n {hasModifiedPreset && queryPresetPermissions.update && (\n <ListSelectionButton\n id=\"save-preset\"\n key=\"save\"\n onClick={async () => {\n await saveCurrentChanges()\n }}\n type=\"button\"\n >\n {activePreset?.isShared ? t('general:updateForEveryone') : t('fields:saveChanges')}\n </ListSelectionButton>\n )}\n {activePreset && queryPresetPermissions?.delete && (\n <Fragment>\n <ListSelectionButton\n id=\"delete-preset\"\n onClick={() => openModal(confirmDeletePresetModalSlug)}\n type=\"button\"\n >\n {t('general:deleteLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n <ListSelectionButton\n id=\"edit-preset\"\n onClick={() => {\n openDocumentDrawer()\n }}\n type=\"button\"\n >\n {t('general:editLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n </Fragment>\n )}\n </div>\n </div>\n <CreateNewPresetDrawer\n initialData={{\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n relatedCollection: collectionSlug,\n where: query.where,\n }}\n onSave={async ({ doc }) => {\n closeCreateNewDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n redirectAfterCreate={false}\n />\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: presetConfig?.labels?.singular,\n title: activePreset?.title,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeletePresetModalSlug}\n onConfirm={handleDeletePreset}\n />\n <PresetDocumentDrawer\n onDelete={() => {\n // setSelectedPreset(undefined)\n }}\n onDuplicate={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n onSave={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n <ListDrawer\n allowCreate={false}\n disableQueryPresets\n onSelect={async ({ doc }) => {\n closeListDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","useCallback","useMemo","toast","PlusIcon","useConfig","useListQuery","useTranslation","ConfirmationModal","useDocumentDrawer","useListDrawer","ListSelectionButton","Pill","Translation","QueryPresetToggler","confirmDeletePresetModalSlug","queryPresetsSlug","baseClass","QueryPresetBar","activePreset","collectionSlug","queryPresetPermissions","modified","query","refineListData","setModified","setQueryModified","i18n","t","openModal","config","routes","api","apiRoute","getEntityConfig","presetConfig","PresetDocumentDrawer","openDrawer","openDocumentDrawer","id","CreateNewPresetDrawer","closeDrawer","closeCreateNewDrawer","openCreateNewDrawer","filterOptions","isTemp","not_equals","relatedCollection","equals","ListDrawer","closeListDrawer","openListDrawer","collectionSlugs","selectedCollection","handlePresetChange","preset","columns","undefined","groupBy","where","resetQueryPreset","handleDeletePreset","fetch","path","method","then","res","json","status","success","label","labels","singular","title","errors","forEach","error","message","_err","saveCurrentChanges","body","JSON","stringify","credentials","headers","hasModifiedPreset","_jsxs","className","_jsx","openPresetListDrawer","resetPreset","icon","onClick","size","type","update","isShared","delete","initialData","onSave","doc","redirectAfterCreate","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onConfirm","onDelete","onDuplicate","allowCreate","disableQueryPresets","onSelect"],"sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"sourcesContent":["import type { QueryPreset, SanitizedCollectionPermission } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatAdminURL,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { useListDrawer } from '../../ListDrawer/index.js'\nimport { ListSelectionButton } from '../../ListSelection/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { QueryPresetToggler } from '../QueryPresetToggler/index.js'\nimport './index.scss'\n\nconst confirmDeletePresetModalSlug = 'confirm-delete-preset'\n\nconst queryPresetsSlug = 'payload-query-presets'\n\nconst baseClass = 'query-preset-bar'\n\nexport const QueryPresetBar: React.FC<{\n activePreset: QueryPreset\n collectionSlug?: string\n queryPresetPermissions: SanitizedCollectionPermission\n}> = ({ activePreset, collectionSlug, queryPresetPermissions }) => {\n const { modified, query, refineListData, setModified: setQueryModified } = useListQuery()\n\n const { i18n, t } = useTranslation()\n const { openModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const presetConfig = getEntityConfig({ collectionSlug: queryPresetsSlug })\n\n const [PresetDocumentDrawer, , { openDrawer: openDocumentDrawer }] = useDocumentDrawer({\n id: activePreset?.id,\n collectionSlug: queryPresetsSlug,\n })\n\n const [\n CreateNewPresetDrawer,\n ,\n { closeDrawer: closeCreateNewDrawer, openDrawer: openCreateNewDrawer },\n ] = useDocumentDrawer({\n collectionSlug: queryPresetsSlug,\n })\n\n const filterOptions = useMemo(\n () => ({\n 'payload-query-presets': {\n isTemp: {\n not_equals: true,\n },\n relatedCollection: {\n equals: collectionSlug,\n },\n },\n }),\n [collectionSlug],\n )\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: [queryPresetsSlug],\n filterOptions,\n selectedCollection: queryPresetsSlug,\n })\n\n const handlePresetChange = useCallback(\n async (preset: QueryPreset) => {\n await refineListData(\n {\n columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,\n groupBy: preset.groupBy || '',\n preset: preset.id,\n where: preset.where,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const resetQueryPreset = useCallback(async () => {\n await refineListData(\n {\n columns: [],\n groupBy: '',\n preset: '',\n where: {},\n },\n false,\n )\n }, [refineListData])\n\n const handleDeletePreset = useCallback(async () => {\n try {\n await fetch(\n formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n }),\n {\n method: 'DELETE',\n },\n ).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleDeleted', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n title: activePreset.title,\n }),\n )\n\n await resetQueryPreset()\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n })\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }, [apiRoute, activePreset?.id, activePreset?.title, t, presetConfig, i18n, resetQueryPreset])\n\n const saveCurrentChanges = useCallback(async () => {\n try {\n await fetch(\n formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n }),\n {\n body: JSON.stringify({\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n where: query.where,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n },\n ).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:updatedLabelSuccessfully', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n }),\n )\n\n setQueryModified(false)\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:unknown'))\n }\n }\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n })\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n }, [\n apiRoute,\n activePreset?.id,\n query.columns,\n query.groupBy,\n query.where,\n t,\n presetConfig?.labels?.singular,\n i18n,\n setQueryModified,\n ])\n\n const hasModifiedPreset = activePreset && modified\n\n return (\n <Fragment>\n <div className={baseClass}>\n <div className={`${baseClass}__menu`}>\n <QueryPresetToggler\n activePreset={activePreset}\n openPresetListDrawer={openListDrawer}\n resetPreset={resetQueryPreset}\n />\n <Pill\n aria-label={t('general:newLabel', { label: presetConfig?.labels?.singular })}\n className={`${baseClass}__create-new-preset`}\n icon={<PlusIcon />}\n id=\"create-new-preset\"\n onClick={() => {\n openCreateNewDrawer()\n }}\n size=\"small\"\n />\n </div>\n <div className={`${baseClass}__menu-items`}>\n {hasModifiedPreset && (\n <ListSelectionButton\n id=\"reset-preset\"\n key=\"reset\"\n onClick={async () => {\n await refineListData(\n {\n columns: transformColumnsToSearchParams(activePreset.columns),\n groupBy: activePreset.groupBy || '',\n where: activePreset.where,\n },\n false,\n )\n }}\n type=\"button\"\n >\n {t('general:reset')}\n </ListSelectionButton>\n )}\n {hasModifiedPreset && queryPresetPermissions.update && (\n <ListSelectionButton\n id=\"save-preset\"\n key=\"save\"\n onClick={async () => {\n await saveCurrentChanges()\n }}\n type=\"button\"\n >\n {activePreset?.isShared ? t('general:updateForEveryone') : t('fields:saveChanges')}\n </ListSelectionButton>\n )}\n {activePreset && queryPresetPermissions?.delete && (\n <Fragment>\n <ListSelectionButton\n id=\"delete-preset\"\n onClick={() => openModal(confirmDeletePresetModalSlug)}\n type=\"button\"\n >\n {t('general:deleteLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n <ListSelectionButton\n id=\"edit-preset\"\n onClick={() => {\n openDocumentDrawer()\n }}\n type=\"button\"\n >\n {t('general:editLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n </Fragment>\n )}\n </div>\n </div>\n <CreateNewPresetDrawer\n initialData={{\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n relatedCollection: collectionSlug,\n where: query.where,\n }}\n onSave={async ({ doc }) => {\n closeCreateNewDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n redirectAfterCreate={false}\n />\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: presetConfig?.labels?.singular,\n title: activePreset?.title,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeletePresetModalSlug}\n onConfirm={handleDeletePreset}\n />\n <PresetDocumentDrawer\n onDelete={() => {\n // setSelectedPreset(undefined)\n }}\n onDuplicate={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n onSave={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n <ListDrawer\n allowCreate={false}\n disableQueryPresets\n onSelect={async ({ doc }) => {\n closeListDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderableTable.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/OrderableTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAyB,MAAM,SAAS,CAAA;AAEpF,OAAO,cAAc,CAAA;AAIrB,OAAO,KAA8B,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"OrderableTable.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/OrderableTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAyB,MAAM,SAAS,CAAA;AAEpF,OAAO,cAAc,CAAA;AAIrB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAalD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmM1C,CAAA"}
|
|
@@ -8,6 +8,7 @@ import React, { useEffect, useState } from 'react';
|
|
|
8
8
|
import { toast } from 'sonner';
|
|
9
9
|
import { useConfig } from '../../providers/Config/index.js';
|
|
10
10
|
import { useListQuery } from '../../providers/ListQuery/index.js';
|
|
11
|
+
import { useLocale } from '../../providers/Locale/index.js';
|
|
11
12
|
import { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js';
|
|
12
13
|
import { DraggableSortable } from '../DraggableSortable/index.js';
|
|
13
14
|
import { OrderableRow } from './OrderableRow.js';
|
|
@@ -28,6 +29,9 @@ export const OrderableTable = ({
|
|
|
28
29
|
orderableFieldName,
|
|
29
30
|
query
|
|
30
31
|
} = useListQuery();
|
|
32
|
+
const {
|
|
33
|
+
code: localeCode
|
|
34
|
+
} = useLocale();
|
|
31
35
|
// Use the data from ListQueryProvider if available, otherwise use the props
|
|
32
36
|
const serverData = listQueryData?.docs || initialData;
|
|
33
37
|
// Local state to track the current order of rows
|
|
@@ -91,7 +95,7 @@ export const OrderableTable = ({
|
|
|
91
95
|
};
|
|
92
96
|
const response = await fetch(formatAdminURL({
|
|
93
97
|
apiRoute: config.routes.api,
|
|
94
|
-
path:
|
|
98
|
+
path: `/reorder?locale=${localeCode}`
|
|
95
99
|
}), {
|
|
96
100
|
body: JSON.stringify(jsonBody),
|
|
97
101
|
credentials: 'include',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderableTable.js","names":["DragOverlay","formatAdminURL","React","useEffect","useState","toast","useConfig","useListQuery","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","OrderableTable","appearance","BeforeTable","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","serverData","docs","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","sort","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","apiRoute","routes","api","path","body","JSON","stringify","credentials","headers","method","status","Error","ok","json","err","error","message","handleDragStart","rowIds","row","_jsxs","className","Boolean","join","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.scss'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly BeforeTable?: React.ReactNode\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly heading?: React.ReactNode\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n BeforeTable,\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {\n toast.warning('To reorder the rows you must first sort them by the \"Order\" column')\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: '/reorder',\n }),\n {\n body: JSON.stringify(jsonBody),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n )\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n\n if (response.status === 200 && (await response.json())['message'] === 'initial migration') {\n throw new Error(\n 'You have enabled \"orderable\" on a collection with existing documents' +\n 'and this is the first time you have sorted documents. We have run an automatic migration ' +\n 'to add an initial order to the documents. Please refresh the page and try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem id={rowIds[rowIndex]} key={rowIds[rowIndex]}>\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OrderableTable.js","names":["DragOverlay","formatAdminURL","React","useEffect","useState","toast","useConfig","useListQuery","useLocale","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","OrderableTable","appearance","BeforeTable","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","code","localeCode","serverData","docs","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","sort","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","apiRoute","routes","api","path","body","JSON","stringify","credentials","headers","method","status","Error","ok","json","err","error","message","handleDragStart","rowIds","row","_jsxs","className","Boolean","join","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.scss'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly BeforeTable?: React.ReactNode\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly heading?: React.ReactNode\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n BeforeTable,\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n const { code: localeCode } = useLocale()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {\n toast.warning('To reorder the rows you must first sort them by the \"Order\" column')\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/reorder?locale=${localeCode}`,\n }),\n {\n body: JSON.stringify(jsonBody),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n )\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n\n if (response.status === 200 && (await response.json())['message'] === 'initial migration') {\n throw new Error(\n 'You have enabled \"orderable\" on a collection with existing documents' +\n 'and this is the first time you have sorted documents. We have run an automatic migration ' +\n 'to add an initial order to the documents. Please refresh the page and try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem id={rowIds[rowIndex]} key={rowIds[rowIndex]}>\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAkD,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnG,OAAO,cAAc,CAAA;AAKrB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqNpD,CAAA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
|
+
import { dequal } from 'dequal/lite';
|
|
5
6
|
import { transformWhereQuery, validateWhereQuery } from 'payload/shared';
|
|
6
7
|
import React, { useMemo } from 'react';
|
|
7
8
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
@@ -10,8 +11,8 @@ import { useTranslation } from '../../providers/Translation/index.js';
|
|
|
10
11
|
import { reduceFieldsToOptions } from '../../utilities/reduceFieldsToOptions.js';
|
|
11
12
|
import { Button } from '../Button/index.js';
|
|
12
13
|
import { Condition } from './Condition/index.js';
|
|
13
|
-
import { fieldTypeConditions, getValidFieldOperators } from './field-types.js';
|
|
14
14
|
import './index.scss';
|
|
15
|
+
import { fieldTypeConditions, getValidFieldOperators } from './field-types.js';
|
|
15
16
|
const baseClass = 'where-builder';
|
|
16
17
|
/**
|
|
17
18
|
* The WhereBuilder component is used to render the filter controls for a collection's list view.
|
|
@@ -99,11 +100,19 @@ export const WhereBuilder = props => {
|
|
|
99
100
|
field: field_0.field,
|
|
100
101
|
operator: incomingOperator
|
|
101
102
|
});
|
|
103
|
+
// Skip if nothing changed
|
|
104
|
+
const existingValue = existingCondition[String(field_0.value)]?.[validOperator];
|
|
105
|
+
if (typeof existingValue !== 'undefined' && existingValue === value) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
102
108
|
const newRowCondition = {
|
|
103
109
|
[String(field_0.value)]: {
|
|
104
110
|
[validOperator]: value
|
|
105
111
|
}
|
|
106
112
|
};
|
|
113
|
+
if (dequal(existingCondition, newRowCondition)) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
107
116
|
const newConditions_0 = [...conditions];
|
|
108
117
|
newConditions_0[orIndex_0].and[andIndex_0] = newRowCondition;
|
|
109
118
|
await handleWhereChange({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","transformWhereQuery","validateWhereQuery","React","useMemo","useAuth","useListQuery","useTranslation","reduceFieldsToOptions","Button","Condition","fieldTypeConditions","getValidFieldOperators","baseClass","WhereBuilder","props","collectionPluralLabel","collectionSlug","fields","renderedFilters","resolvedFilterOptions","i18n","t","permissions","fieldPermissions","collections","reducedFields","handleWhereChange","query","conditions","whereFromSearch","where","or","transformedWhere","console","warn","JSON","stringify","addCondition","useCallback","andIndex","field","orIndex","relation","newConditions","defaultOperator","type","operators","value","and","splice","String","undefined","push","updateCondition","operator","incomingOperator","existingCondition","validOperator","newRowCondition","removeCondition","length","_jsxs","className","Fragment","_jsx","label","map","compoundOrKey","Array","isArray","_","condition","fieldPath","Object","keys","filterOptions","get","RenderedFilter","buttonStyle","icon","iconPosition","iconStyle","onClick","find","admin","disableListFilter"],"sources":["../../../src/elements/WhereBuilder/index.tsx"],"sourcesContent":["'use client'\nimport type { Operator } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { transformWhereQuery, validateWhereQuery } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport type { AddCondition, RemoveCondition, UpdateCondition, WhereBuilderProps } from './types.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { reduceFieldsToOptions } from '../../utilities/reduceFieldsToOptions.js'\nimport { Button } from '../Button/index.js'\nimport { Condition } from './Condition/index.js'\nimport { fieldTypeConditions, getValidFieldOperators } from './field-types.js'\nimport './index.scss'\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, collectionSlug, fields, renderedFilters, resolvedFilterOptions } =\n props\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n\n const fieldPermissions = permissions?.collections?.[collectionSlug]?.fields\n\n const reducedFields = useMemo(\n () =>\n reduceFieldsToOptions({\n fieldPermissions,\n fields,\n i18n,\n }),\n [fieldPermissions, fields, i18n],\n )\n\n const { handleWhereChange, query } = useListQuery()\n\n const conditions = useMemo(() => {\n const whereFromSearch = query.where\n\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)}`) // eslint-disable-line no-console\n }\n\n return []\n }, [query.where])\n\n const addCondition: AddCondition = React.useCallback(\n async ({ andIndex, field, orIndex, relation }) => {\n const newConditions = [...conditions]\n\n const defaultOperator = fieldTypeConditions[field.field.type].operators[0].value\n\n if (relation === 'and') {\n newConditions[orIndex].and.splice(andIndex, 0, {\n [String(field.value)]: {\n [defaultOperator]: undefined,\n },\n })\n } else {\n newConditions.push({\n and: [\n {\n [String(field.value)]: {\n [defaultOperator]: undefined,\n },\n },\n ],\n })\n }\n\n await handleWhereChange({ or: newConditions })\n },\n [conditions, handleWhereChange],\n )\n\n const updateCondition: UpdateCondition = React.useCallback(\n async ({ andIndex, field, operator: incomingOperator, orIndex, value }) => {\n const existingCondition = conditions[orIndex].and[andIndex]\n\n if (typeof existingCondition === 'object' && field.value) {\n const { validOperator } = getValidFieldOperators({\n field: field.field,\n operator: incomingOperator,\n })\n const newRowCondition = {\n [String(field.value)]: { [validOperator]: value },\n }\n\n const newConditions = [...conditions]\n newConditions[orIndex].and[andIndex] = newRowCondition\n await handleWhereChange({ or: newConditions })\n }\n },\n [conditions, handleWhereChange],\n )\n\n const removeCondition: RemoveCondition = React.useCallback(\n async ({ andIndex, orIndex }) => {\n const newConditions = [...conditions]\n newConditions[orIndex].and.splice(andIndex, 1)\n\n if (newConditions[orIndex].and.length === 0) {\n newConditions.splice(orIndex, 1)\n }\n\n await handleWhereChange({ or: newConditions })\n },\n [conditions, handleWhereChange],\n )\n\n return (\n <div className={baseClass}>\n {conditions.length > 0 && (\n <React.Fragment>\n <p className={`${baseClass}__label`}>\n {t('general:filterWhere', { label: getTranslation(collectionPluralLabel, i18n) })}\n </p>\n <ul className={`${baseClass}__or-filters`}>\n {conditions.map((or, orIndex) => {\n const compoundOrKey = `${orIndex}_${Array.isArray(or?.and) ? or.and.length : ''}`\n\n return (\n <li key={compoundOrKey}>\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 condition = conditions[orIndex].and[andIndex]\n const fieldPath = Object.keys(condition)[0]\n\n const operator =\n (Object.keys(condition?.[fieldPath] || {})?.[0] as Operator) || undefined\n\n const value = condition?.[fieldPath]?.[operator] || undefined\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 fieldPath={fieldPath}\n filterOptions={resolvedFilterOptions?.get(fieldPath)}\n operator={operator}\n orIndex={orIndex}\n reducedFields={reducedFields}\n removeCondition={removeCondition}\n RenderedFilter={renderedFilters?.get(fieldPath)}\n updateCondition={updateCondition}\n value={value}\n />\n </li>\n )\n })}\n </ul>\n </li>\n )\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={async () => {\n await addCondition({\n andIndex: 0,\n field: reducedFields.find((field) => !field.field.admin?.disableListFilter),\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={async () => {\n if (reducedFields.length > 0) {\n await addCondition({\n andIndex: 0,\n field: reducedFields.find((field) => !field.field.admin?.disableListFilter),\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","dequal","transformWhereQuery","validateWhereQuery","React","useMemo","useAuth","useListQuery","useTranslation","reduceFieldsToOptions","Button","Condition","fieldTypeConditions","getValidFieldOperators","baseClass","WhereBuilder","props","collectionPluralLabel","collectionSlug","fields","renderedFilters","resolvedFilterOptions","i18n","t","permissions","fieldPermissions","collections","reducedFields","handleWhereChange","query","conditions","whereFromSearch","where","or","transformedWhere","console","warn","JSON","stringify","addCondition","useCallback","andIndex","field","orIndex","relation","newConditions","defaultOperator","type","operators","value","and","splice","String","undefined","push","updateCondition","operator","incomingOperator","existingCondition","validOperator","existingValue","newRowCondition","removeCondition","length","_jsxs","className","Fragment","_jsx","label","map","compoundOrKey","Array","isArray","_","condition","fieldPath","Object","keys","filterOptions","get","RenderedFilter","buttonStyle","icon","iconPosition","iconStyle","onClick","find","admin","disableListFilter"],"sources":["../../../src/elements/WhereBuilder/index.tsx"],"sourcesContent":["'use client'\nimport type { Operator } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { dequal } from 'dequal/lite'\nimport { transformWhereQuery, validateWhereQuery } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport type { AddCondition, RemoveCondition, UpdateCondition, WhereBuilderProps } from './types.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { reduceFieldsToOptions } from '../../utilities/reduceFieldsToOptions.js'\nimport { Button } from '../Button/index.js'\nimport { Condition } from './Condition/index.js'\nimport './index.scss'\nimport { fieldTypeConditions, getValidFieldOperators } from './field-types.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, collectionSlug, fields, renderedFilters, resolvedFilterOptions } =\n props\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n\n const fieldPermissions = permissions?.collections?.[collectionSlug]?.fields\n\n const reducedFields = useMemo(\n () =>\n reduceFieldsToOptions({\n fieldPermissions,\n fields,\n i18n,\n }),\n [fieldPermissions, fields, i18n],\n )\n\n const { handleWhereChange, query } = useListQuery()\n\n const conditions = useMemo(() => {\n const whereFromSearch = query.where\n\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)}`) // eslint-disable-line no-console\n }\n\n return []\n }, [query.where])\n\n const addCondition: AddCondition = React.useCallback(\n async ({ andIndex, field, orIndex, relation }) => {\n const newConditions = [...conditions]\n\n const defaultOperator = fieldTypeConditions[field.field.type].operators[0].value\n\n if (relation === 'and') {\n newConditions[orIndex].and.splice(andIndex, 0, {\n [String(field.value)]: {\n [defaultOperator]: undefined,\n },\n })\n } else {\n newConditions.push({\n and: [\n {\n [String(field.value)]: {\n [defaultOperator]: undefined,\n },\n },\n ],\n })\n }\n\n await handleWhereChange({ or: newConditions })\n },\n [conditions, handleWhereChange],\n )\n\n const updateCondition: UpdateCondition = React.useCallback(\n async ({ andIndex, field, operator: incomingOperator, orIndex, value }) => {\n const existingCondition = conditions[orIndex].and[andIndex]\n\n if (typeof existingCondition === 'object' && field.value) {\n const { validOperator } = getValidFieldOperators({\n field: field.field,\n operator: incomingOperator,\n })\n\n // Skip if nothing changed\n const existingValue = existingCondition[String(field.value)]?.[validOperator]\n if (typeof existingValue !== 'undefined' && existingValue === value) {\n return\n }\n\n const newRowCondition = {\n [String(field.value)]: { [validOperator]: value },\n }\n\n if (dequal(existingCondition, newRowCondition)) {\n return\n }\n\n const newConditions = [...conditions]\n newConditions[orIndex].and[andIndex] = newRowCondition\n\n await handleWhereChange({ or: newConditions })\n }\n },\n [conditions, handleWhereChange],\n )\n\n const removeCondition: RemoveCondition = React.useCallback(\n async ({ andIndex, orIndex }) => {\n const newConditions = [...conditions]\n newConditions[orIndex].and.splice(andIndex, 1)\n\n if (newConditions[orIndex].and.length === 0) {\n newConditions.splice(orIndex, 1)\n }\n\n await handleWhereChange({ or: newConditions })\n },\n [conditions, handleWhereChange],\n )\n\n return (\n <div className={baseClass}>\n {conditions.length > 0 && (\n <React.Fragment>\n <p className={`${baseClass}__label`}>\n {t('general:filterWhere', { label: getTranslation(collectionPluralLabel, i18n) })}\n </p>\n <ul className={`${baseClass}__or-filters`}>\n {conditions.map((or, orIndex) => {\n const compoundOrKey = `${orIndex}_${Array.isArray(or?.and) ? or.and.length : ''}`\n\n return (\n <li key={compoundOrKey}>\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 condition = conditions[orIndex].and[andIndex]\n const fieldPath = Object.keys(condition)[0]\n\n const operator =\n (Object.keys(condition?.[fieldPath] || {})?.[0] as Operator) || undefined\n\n const value = condition?.[fieldPath]?.[operator] || undefined\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 fieldPath={fieldPath}\n filterOptions={resolvedFilterOptions?.get(fieldPath)}\n operator={operator}\n orIndex={orIndex}\n reducedFields={reducedFields}\n removeCondition={removeCondition}\n RenderedFilter={renderedFilters?.get(fieldPath)}\n updateCondition={updateCondition}\n value={value}\n />\n </li>\n )\n })}\n </ul>\n </li>\n )\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={async () => {\n await addCondition({\n andIndex: 0,\n field: reducedFields.find((field) => !field.field.admin?.disableListFilter),\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={async () => {\n if (reducedFields.length > 0) {\n await addCondition({\n andIndex: 0,\n field: reducedFields.find((field) => !field.field.admin?.disableListFilter),\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,5 +10,5 @@ function require(m) {
|
|
|
10
10
|
}
|
|
11
11
|
// Workaround end
|
|
12
12
|
|
|
13
|
-
import{l as a}from"./chunk-
|
|
14
|
-
//# sourceMappingURL=CodeEditor-
|
|
13
|
+
import{l as a}from"./chunk-TBYRZYQJ.js";import"./chunk-5LKBKI4T.js";export{a as default};
|
|
14
|
+
//# sourceMappingURL=CodeEditor-6KT2JS6X.js.map
|
|
@@ -10,5 +10,5 @@ function require(m) {
|
|
|
10
10
|
}
|
|
11
11
|
// Workaround end
|
|
12
12
|
|
|
13
|
-
import{n as a}from"./chunk-
|
|
14
|
-
//# sourceMappingURL=DatePicker-
|
|
13
|
+
import{n as a}from"./chunk-UN66UDCU.js";import"./chunk-5LKBKI4T.js";export{a as default};
|
|
14
|
+
//# sourceMappingURL=DatePicker-TDXLCEZV.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
// Workaround for react-datepicker and other cjs dependencies potentially inserting require("react") statements
|
|
3
|
+
import * as requireReact from 'react';
|
|
4
|
+
import * as requireReactDom from 'react-dom';
|
|
5
|
+
|
|
6
|
+
function require(m) {
|
|
7
|
+
if (m === 'react') return requireReact;
|
|
8
|
+
if (m === 'react-dom') return requireReactDom;
|
|
9
|
+
throw new Error(`Unknown module ${m}`);
|
|
10
|
+
}
|
|
11
|
+
// Workaround end
|
|
12
|
+
|
|
13
|
+
import{c as Cr}from"react/compiler-runtime";import{jsx as qe}from"react/jsx-runtime";function me(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Ye(t){if(Array.isArray(t))return t}function Je(t,e,r){return(e=tt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Qe(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,o,i,c,u=[],a=!0,s=!1;try{if(i=(r=r.call(t)).next,e!==0)for(;!(a=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);a=!0);}catch(l){s=!0,o=l}finally{try{if(!a&&r.return!=null&&(c=r.return(),Object(c)!==c))return}finally{if(s)throw o}}return u}}function Xe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
14
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pe(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function oe(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?pe(Object(r),!0).forEach(function(n){Je(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):pe(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ge(t,e){if(t==null)return{};var r,n,o=Ze(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)===-1&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Ze(t,e){if(t==null)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(e.indexOf(n)!==-1)continue;r[n]=t[n]}return r}function he(t,e){return Ye(t)||Qe(t,e)||rt(t,e)||Xe()}function et(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function tt(t){var e=et(t,"string");return typeof e=="symbol"?e:e+""}function rt(t,e){if(t){if(typeof t=="string")return me(t,e);var r={}.toString.call(t).slice(8,-1);return r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set"?Array.from(t):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?me(t,e):void 0}}function nt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ve(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function be(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?ve(Object(r),!0).forEach(function(n){nt(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ve(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ot(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return function(n){return e.reduceRight(function(o,i){return i(o)},n)}}function z(t){return function e(){for(var r=this,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return o.length>=t.length?t.apply(this,o):function(){for(var c=arguments.length,u=new Array(c),a=0;a<c;a++)u[a]=arguments[a];return e.apply(r,[].concat(o,u))}}}function G(t){return{}.toString.call(t).includes("Object")}function it(t){return!Object.keys(t).length}function B(t){return typeof t=="function"}function at(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ct(t,e){return G(e)||D("changeType"),Object.keys(e).some(function(r){return!at(t,r)})&&D("changeField"),e}function ut(t){B(t)||D("selectorType")}function st(t){B(t)||G(t)||D("handlerType"),G(t)&&Object.values(t).some(function(e){return!B(e)})&&D("handlersType")}function lt(t){t||D("initialIsRequired"),G(t)||D("initialType"),it(t)&&D("initialContent")}function ft(t,e){throw new Error(t[e]||t.default)}var dt={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},D=z(ft)(dt),K={changes:ct,selector:ut,handler:st,initial:lt};function mt(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};K.initial(t),K.handler(e);var r={current:t},n=z(ht)(r,e),o=z(gt)(r),i=z(K.changes)(t),c=z(pt)(r);function u(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(l){return l};return K.selector(s),s(r.current)}function a(s){ot(n,o,i,c)(s)}return[u,a]}function pt(t,e){return B(e)?e(t.current):e}function gt(t,e){return t.current=be(be({},t.current),e),e}function ht(t,e,r){return B(e)?e(t.current):Object.keys(r).forEach(function(n){var o;return(o=e[n])===null||o===void 0?void 0:o.call(e,t.current[n])}),r}var vt={create:mt},ye=vt;var we={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function Oe(t){return function e(){for(var r=this,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return o.length>=t.length?t.apply(this,o):function(){for(var c=arguments.length,u=new Array(c),a=0;a<c;a++)u[a]=arguments[a];return e.apply(r,[].concat(o,u))}}}function je(t){return{}.toString.call(t).includes("Object")}function bt(t){return t||Me("configIsRequired"),je(t)||Me("configType"),t.urls?(yt(),{paths:{vs:t.urls.monacoBase}}):t}function yt(){console.warn(Se.deprecation)}function wt(t,e){throw new Error(t[e]||t.default)}var Se={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
|
|
15
|
+
You are using deprecated way of configuration.
|
|
16
|
+
|
|
17
|
+
Instead of using
|
|
18
|
+
monaco.config({ urls: { monacoBase: '...' } })
|
|
19
|
+
use
|
|
20
|
+
monaco.config({ paths: { vs: '...' } })
|
|
21
|
+
|
|
22
|
+
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
|
|
23
|
+
`},Me=Oe(wt)(Se),xe={config:bt};var Pe=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return function(o){return r.reduceRight(function(i,c){return c(i)},o)}};function ie(t,e){return Object.keys(e).forEach(function(r){e[r]instanceof Object&&t[r]&&Object.assign(e[r],ie(t[r],e[r]))}),oe(oe({},t),e)}var Ot={type:"cancelation",msg:"operation is manually canceled"};function Y(t){var e=!1,r=new Promise(function(n,o){t.then(function(i){return e?o(Ot):n(i)}),t.catch(o)});return r.cancel=function(){return e=!0},r}var jt=["monaco"],Mt=ye.create({config:we,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ee=he(Mt,2),V=Ee[0],J=Ee[1];function St(t){var e=xe.config(t),r=e.monaco,n=ge(e,jt);J(function(o){return{config:ie(o.config,n),monaco:r}})}function xt(){var t=V(function(e){var r=e.monaco,n=e.isInitialized,o=e.resolve;return{monaco:r,isInitialized:n,resolve:o}});if(!t.isInitialized){if(J({isInitialized:!0}),t.monaco)return t.resolve(t.monaco),Y(ae);if(window.monaco&&window.monaco.editor)return Ce(window.monaco),t.resolve(window.monaco),Y(ae);Pe(Pt,Ct)(Tt)}return Y(ae)}function Pt(t){return document.body.appendChild(t)}function Et(t){var e=document.createElement("script");return t&&(e.src=t),e}function Ct(t){var e=V(function(n){var o=n.config,i=n.reject;return{config:o,reject:i}}),r=Et("".concat(e.config.paths.vs,"/loader.js"));return r.onload=function(){return t()},r.onerror=e.reject,r}function Tt(){var t=V(function(r){var n=r.config,o=r.resolve,i=r.reject;return{config:n,resolve:o,reject:i}}),e=window.require;e.config(t.config),e(["vs/editor/editor.main"],function(r){var n=r.m||r;Ce(n),t.resolve(n)},function(r){t.reject(r)})}function Ce(t){V().monaco||J({monaco:t})}function At(){return V(function(t){var e=t.monaco;return e})}var ae=new Promise(function(t,e){return J({resolve:t,reject:e})}),$={config:St,init:xt,__getMonacoInstance:At};import{memo as Rt}from"react";import It,{useState as Te,useRef as W,useCallback as Ae,useEffect as Re}from"react";import{memo as Dt}from"react";import ce from"react";import _t from"react";import{useEffect as Vt}from"react";import{useEffect as Ut,useRef as qt}from"react";import{useState as mn}from"react";import{memo as Xt}from"react";import Zt,{useState as Ie,useEffect as Q,useRef as R,useCallback as er}from"react";import{useEffect as tr,useRef as rr}from"react";var Lt={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},ue=Lt,$t={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Wt=$t;function kt({children:t}){return _t.createElement("div",{style:Wt.container},t)}var Nt=kt,Ht=Nt;function zt({width:t,height:e,isEditorReady:r,loading:n,_ref:o,className:i,wrapperProps:c}){return ce.createElement("section",{style:{...ue.wrapper,width:t,height:e},...c},!r&&ce.createElement(Ht,null,n),ce.createElement("div",{ref:o,style:{...ue.fullWidth,...!r&&ue.hide},className:i}))}var Bt=zt,De=Dt(Bt);function Ft(t){Vt(t,[])}var Le=Ft;function Kt(t,e,r=!0){let n=qt(!0);Ut(n.current||!r?()=>{n.current=!1}:t,e)}var S=Kt;function F(){}function k(t,e,r,n){return Gt(t,n)||Yt(t,e,r,n)}function Gt(t,e){return t.editor.getModel(_e(t,e))}function Yt(t,e,r,n){return t.editor.createModel(e,r,n?_e(t,n):void 0)}function _e(t,e){return t.Uri.parse(e)}function Jt({original:t,modified:e,language:r,originalLanguage:n,modifiedLanguage:o,originalModelPath:i,modifiedModelPath:c,keepCurrentOriginalModel:u=!1,keepCurrentModifiedModel:a=!1,theme:s="light",loading:l="Loading...",options:d={},height:x="100%",width:w="100%",className:M,wrapperProps:E={},beforeMount:p=F,onMount:P=F}){let[y,L]=Te(!1),[A,g]=Te(!0),h=W(null),v=W(null),C=W(null),b=W(P),f=W(p),T=W(!1);Le(()=>{let m=$.init();return m.then(O=>(v.current=O)&&g(!1)).catch(O=>O?.type!=="cancelation"&&console.error("Monaco initialization: error:",O)),()=>h.current?H():m.cancel()}),S(()=>{if(h.current&&v.current){let m=h.current.getOriginalEditor(),O=k(v.current,t||"",n||r||"text",i||"");O!==m.getModel()&&m.setModel(O)}},[i],y),S(()=>{if(h.current&&v.current){let m=h.current.getModifiedEditor(),O=k(v.current,e||"",o||r||"text",c||"");O!==m.getModel()&&m.setModel(O)}},[c],y),S(()=>{let m=h.current.getModifiedEditor();m.getOption(v.current.editor.EditorOption.readOnly)?m.setValue(e||""):e!==m.getValue()&&(m.executeEdits("",[{range:m.getModel().getFullModelRange(),text:e||"",forceMoveMarkers:!0}]),m.pushUndoStop())},[e],y),S(()=>{h.current?.getModel()?.original.setValue(t||"")},[t],y),S(()=>{let{original:m,modified:O}=h.current.getModel();v.current.editor.setModelLanguage(m,n||r||"text"),v.current.editor.setModelLanguage(O,o||r||"text")},[r,n,o],y),S(()=>{v.current?.editor.setTheme(s)},[s],y),S(()=>{h.current?.updateOptions(d)},[d],y);let _=Ae(()=>{if(!v.current)return;f.current(v.current);let m=k(v.current,t||"",n||r||"text",i||""),O=k(v.current,e||"",o||r||"text",c||"");h.current?.setModel({original:m,modified:O})},[r,e,o,t,n,i,c]),q=Ae(()=>{!T.current&&C.current&&(h.current=v.current.editor.createDiffEditor(C.current,{automaticLayout:!0,...d}),_(),v.current?.editor.setTheme(s),L(!0),T.current=!0)},[d,s,_]);Re(()=>{y&&b.current(h.current,v.current)},[y]),Re(()=>{!A&&!y&&q()},[A,y,q]);function H(){let m=h.current?.getModel();u||m?.original?.dispose(),a||m?.modified?.dispose(),h.current?.dispose()}return It.createElement(De,{width:w,height:x,isEditorReady:y,loading:l,_ref:C,className:M,wrapperProps:E})}var Qt=Jt,fn=Rt(Qt);function nr(t){let e=rr();return tr(()=>{e.current=t},[t]),e.current}var or=nr,X=new Map;function ir({defaultValue:t,defaultLanguage:e,defaultPath:r,value:n,language:o,path:i,theme:c="light",line:u,loading:a="Loading...",options:s={},overrideServices:l={},saveViewState:d=!0,keepCurrentModel:x=!1,width:w="100%",height:M="100%",className:E,wrapperProps:p={},beforeMount:P=F,onMount:y=F,onChange:L,onValidate:A=F}){let[g,h]=Ie(!1),[v,C]=Ie(!0),b=R(null),f=R(null),T=R(null),_=R(y),q=R(P),H=R(),m=R(n),O=or(i),fe=R(!1),te=R(!1);Le(()=>{let j=$.init();return j.then(I=>(b.current=I)&&C(!1)).catch(I=>I?.type!=="cancelation"&&console.error("Monaco initialization: error:",I)),()=>f.current?Ge():j.cancel()}),S(()=>{let j=k(b.current,t||n||"",e||o||"",i||r||"");j!==f.current?.getModel()&&(d&&X.set(O,f.current?.saveViewState()),f.current?.setModel(j),d&&f.current?.restoreViewState(X.get(i)))},[i],g),S(()=>{f.current?.updateOptions(s)},[s],g),S(()=>{!f.current||n===void 0||(f.current.getOption(b.current.editor.EditorOption.readOnly)?f.current.setValue(n):n!==f.current.getValue()&&(te.current=!0,f.current.executeEdits("",[{range:f.current.getModel().getFullModelRange(),text:n,forceMoveMarkers:!0}]),f.current.pushUndoStop(),te.current=!1))},[n],g),S(()=>{let j=f.current?.getModel();j&&o&&b.current?.editor.setModelLanguage(j,o)},[o],g),S(()=>{u!==void 0&&f.current?.revealLine(u)},[u],g),S(()=>{b.current?.editor.setTheme(c)},[c],g);let de=er(()=>{if(!(!T.current||!b.current)&&!fe.current){q.current(b.current);let j=i||r,I=k(b.current,n||t||"",e||o||"",j||"");f.current=b.current?.editor.create(T.current,{model:I,automaticLayout:!0,...s},l),d&&f.current.restoreViewState(X.get(j)),b.current.editor.setTheme(c),u!==void 0&&f.current.revealLine(u),h(!0),fe.current=!0}},[t,e,r,n,o,i,s,l,d,c,u]);Q(()=>{g&&_.current(f.current,b.current)},[g]),Q(()=>{!v&&!g&&de()},[v,g,de]),m.current=n,Q(()=>{g&&L&&(H.current?.dispose(),H.current=f.current?.onDidChangeModelContent(j=>{te.current||L(f.current.getValue(),j)}))},[g,L]),Q(()=>{if(g){let j=b.current.editor.onDidChangeMarkers(I=>{let re=f.current.getModel()?.uri;if(re&&I.find(ne=>ne.path===re.path)){let ne=b.current.editor.getModelMarkers({resource:re});A?.(ne)}});return()=>{j?.dispose()}}return()=>{}},[g,A]);function Ge(){H.current?.dispose(),x?d&&X.set(i,f.current.saveViewState()):f.current.getModel()?.dispose(),f.current.dispose()}return Zt.createElement(De,{width:w,height:M,isEditorReady:g,loading:a,_ref:T,className:E,wrapperProps:p})}var ar=ir,cr=Xt(ar),Z=cr;import Ke,{useState as Tr}from"react";import{c as br}from"react/compiler-runtime";import{jsx as yr}from"react/jsx-runtime";import{createContext as wr,use as Or,useEffect as jr,useState as He}from"react";import{c as dr}from"react/compiler-runtime";import{jsx as ke}from"react/jsx-runtime";import{createContext as mr,use as pr,useCallback as gr,useEffect as hr,useMemo as We}from"react";import{c as ur}from"react/compiler-runtime";import{useEffect as sr,useRef as lr,useState as fr}from"react";function $e(t,e){let r=ur(5),[n,o]=fr(t),i=lr(!0),c,u;r[0]!==t?(c=()=>{if(i.current){i.current=!1;return}o(t)},u=[t],r[0]=t,r[1]=c,r[2]=u):(c=r[1],u=r[2]),sr(c,u);let a=n??e,s;return r[3]!==a?(s=[a,o],r[3]=a,r[4]=s):s=r[4],s}var Ne=mr(void 0),vr=({children:t,config:e})=>{let[r,n]=$e(e),{collectionsBySlug:o,globalsBySlug:i}=We(()=>{let a={},s={};for(let l of r.collections)a[l.slug]=l;for(let l of r.globals)s[l.slug]=l;return{collectionsBySlug:a,globalsBySlug:s}},[r]),c=gr(a=>"collectionSlug"in a?o[a.collectionSlug]??null:"globalSlug"in a?i[a.globalSlug]??null:null,[o,i]),u=We(()=>({config:r,getEntityConfig:c,setConfig:n}),[r,c,n]);return ke(Ne,{value:u,children:t})},se=()=>pr(Ne),Cn=t=>{let e=dr(7),{children:r,config:n}=t,{config:o,setConfig:i}=se(),c,u;if(e[0]!==n||e[1]!==i?(c=()=>{i(n)},u=[n,i],e[0]=n,e[1]=i,e[2]=c,e[3]=u):(c=e[2],u=e[3]),hr(c,u),o!==n&&o.unauthenticated!==n.unauthenticated){let a;return e[4]!==r||e[5]!==n?(a=ke(vr,{config:n,children:r}),e[4]=r,e[5]=n,e[6]=a):a=e[6],a}return r};var Mr={autoMode:!0,setTheme:()=>null,theme:"light"},Be=wr(Mr);function ze(t,e,r){let n=new Date;n.setTime(n.getTime()+r*24*60*60*1e3);let o="expires="+n.toUTCString();document.cookie=t+"="+e+";"+o+";path=/"}var Sr=t=>{let e,r=window.document.cookie.split("; ").find(n=>n.startsWith(`${t}=`))?.split("=")[1];return r==="light"||r==="dark"?e=r:e=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",e),{theme:e,themeFromCookies:r}},xr="light",$n=t=>{let e=br(11),{children:r,theme:n}=t,{config:o}=se(),i=o.admin.theme,c=`${o.cookiePrefix||"payload"}-theme`,[u,a]=He(n||xr),[s,l]=He(),d,x;e[0]!==c||e[1]!==i?(d=()=>{if(i!=="all")return;let{theme:p,themeFromCookies:P}=Sr(c);a(p),l(!P)},x=[i,c],e[0]=c,e[1]=i,e[2]=d,e[3]=x):(d=e[2],x=e[3]),jr(d,x);let w;e[4]!==c?(w=p=>{if(p==="light"||p==="dark")a(p),l(!1),ze(c,p,365),document.documentElement.setAttribute("data-theme",p);else if(p==="auto"){ze(c,p,-1);let P=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";document.documentElement.setAttribute("data-theme",P),l(!0),a(P)}},e[4]=c,e[5]=w):w=e[5];let M=w,E;return e[6]!==s||e[7]!==r||e[8]!==M||e[9]!==u?(E=yr(Be,{value:{autoMode:s,setTheme:M,theme:u},children:r}),e[6]=s,e[7]=r,e[8]=M,e[9]=u,e[10]=E):E=e[10],E},Ve=()=>Or(Be);import{c as Er}from"react/compiler-runtime";import{jsx as U}from"react/jsx-runtime";import"react";import{c as Pr}from"react/compiler-runtime";import*as N from"react";var Fe=(t,e)=>{let r=Pr(9),n=e===void 0?!1:e,[o,i]=N.useState(!1),c=N.useRef(void 0),u;r[0]!==t?(u=()=>(i(!1),clearTimeout(c.current),c.current=setTimeout(()=>{i(!0)},t),()=>{clearTimeout(c.current)}),r[0]=t,r[1]=u):u=r[1];let a=u,s,l;r[2]!==a||r[3]!==n?(s=()=>{n&&a()},l=[a,n],r[2]=a,r[3]=n,r[4]=s,r[5]=l):(s=r[4],l=r[5]),N.useEffect(s,l);let d;return r[6]!==o||r[7]!==a?(d=[o,a],r[6]=o,r[7]=a,r[8]=d):d=r[8],d};var le=({animationDelay:t="0ms",className:e,disableInlineStyles:r=!1,height:n="60px",width:o="100%"})=>U("div",{className:["shimmer-effect",e].filter(Boolean).join(" "),style:{height:!r&&(typeof n=="number"?`${n}px`:n),width:!r&&(typeof o=="number"?`${o}px`:o)},children:U("div",{className:"shimmer-effect__shine",style:{animationDelay:t}})}),Fn=t=>{let e=Er(9),{className:r,count:n,height:o,renderDelay:i,shimmerDelay:c,shimmerItemClassName:u,width:a}=t,s=i===void 0?500:i,l=c===void 0?25:c,d=typeof l=="number"?`${l}ms`:l,[x]=Fe(s,!0);if(!x)return null;let w;e[0]!==n?(w=[...Array(n)],e[0]=n,e[1]=w):w=e[1];let M;return e[2]!==r||e[3]!==o||e[4]!==d||e[5]!==u||e[6]!==w||e[7]!==a?(M=U("div",{className:r,children:w.map((E,p)=>U("div",{className:u,children:U(le,{animationDelay:`calc(${p} * ${d})`,height:o,width:a})},p))}),e[2]=r,e[3]=o,e[4]=d,e[5]=u,e[6]=w,e[7]=a,e[8]=M):M=e[8],M};var ee={insertSpaces:!1,tabSize:4,trimAutoWhitespace:!1},Ue={hideCursorInOverviewRuler:!0,minimap:{enabled:!1},overviewRulerBorder:!1,readOnly:!1,scrollbar:{alwaysConsumeMouseWheel:!1},scrollBeyondLastLine:!1,wordWrap:"on"};var Ar="default"in Z?Z.default:Z,Rr="code-editor",Ir=t=>{let e=Cr(10),{className:r,maxHeight:n,minHeight:o,options:i,readOnly:c,recalculatedHeightAt:u,value:a,...s}=t,l=o??56,d=Ke.useRef(u),{insertSpaces:x,tabSize:w,trimAutoWhitespace:M,...E}=i||{},p=i?.padding?(i.padding.top||0)+(i.padding?.bottom||0):0,[P,y]=Tr(l),{theme:L}=Ve(),A=s?.defaultLanguage?`language--${s.defaultLanguage}`:"",g=c&&"read-only",h;e[0]!==r||e[1]!==A||e[2]!==g?(h=[Rr,r,A,g].filter(Boolean),e[0]=r,e[1]=A,e[2]=g,e[3]=h):h=e[3];let v=h.join(" "),C,b;return e[4]!==l||e[5]!==p||e[6]!==u||e[7]!==a?(C=()=>{u&&u>d.current&&(y(a?Math.max(l,a.split(`
|
|
24
|
+
`).length*18+2+p):l),d.current=u)},b=[a,l,p,u],e[4]=l,e[5]=p,e[6]=u,e[7]=a,e[8]=C,e[9]=b):(C=e[8],b=e[9]),Ke.useEffect(C,b),qe(Ar,{className:v,height:n?Math.min(P,n):P,loading:qe(le,{height:P}),options:{...Ue,...E,readOnly:!!c,detectIndentation:!1,insertSpaces:void 0,tabSize:void 0,trimAutoWhitespace:void 0},theme:L==="dark"?"vs-dark":"vs",value:a,...s,onChange:(f,T)=>{s.onChange?.(f,T),y(f?Math.max(l,f.split(`
|
|
25
|
+
`).length*18+2+p):l)},onMount:(f,T)=>{s.onMount?.(f,T);let _=f.getModel();_&&_.updateOptions({insertSpaces:x??ee.insertSpaces,tabSize:w??ee.tabSize,trimAutoWhitespace:M??ee.trimAutoWhitespace}),y(Math.max(l,f.getValue().split(`
|
|
26
|
+
`).length*18+2+p))}})},eo=Ir;export{$e as a,vr as b,se as c,Cn as d,Fe as e,le as f,Fn as g,xr as h,$n as i,Ve as j,ee as k,eo as l};
|
|
27
|
+
//# sourceMappingURL=chunk-TBYRZYQJ.js.map
|