@payloadcms/ui 4.0.0-canary.22 → 4.0.0-canary.24
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/AppHeader/index.css +1 -0
- package/dist/elements/ArrayAction/index.d.ts +1 -0
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +45 -32
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +55 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
- package/dist/elements/Drawer/index.css +10 -4
- package/dist/elements/IDLabel/index.css +6 -0
- package/dist/elements/IDLabel/index.d.ts +1 -1
- package/dist/elements/IDLabel/index.d.ts.map +1 -1
- package/dist/elements/IDLabel/index.js +16 -21
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +5 -2
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/SortHeader/index.d.ts.map +1 -1
- package/dist/elements/SortHeader/index.js +29 -26
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/StepNav/index.css +64 -14
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +143 -69
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +3 -11
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.d.ts +1 -0
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +2 -0
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +38 -10
- 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 -0
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/RowActions.d.ts +1 -0
- package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
- package/dist/fields/Blocks/RowActions.js +22 -19
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +35 -7
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/views/List/ListHeader/index.d.ts +1 -10
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +1 -3
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +0 -14
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/List/index.css +5 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ArrayAction/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAYhF,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,6BAA6B,CAAA;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ArrayAction/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAYhF,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,6BAA6B,CAAA;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmIvC,CAAA"}
|
|
@@ -4,11 +4,11 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { ArrowIcon } from '../../icons/Arrow/index.js';
|
|
7
|
-
import { ClipboardIcon } from '../../icons/Clipboard/index.js';
|
|
8
7
|
import { CopyIcon } from '../../icons/Copy/index.js';
|
|
9
8
|
import { DuplicateIcon } from '../../icons/Duplicate/index.js';
|
|
10
9
|
import { MoreIcon } from '../../icons/More/index.js';
|
|
11
10
|
import { PlusIcon } from '../../icons/Plus/index.js';
|
|
11
|
+
import { SwapIcon } from '../../icons/Swap/index.js';
|
|
12
12
|
import { XIcon } from '../../icons/X/index.js';
|
|
13
13
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
14
14
|
import { useCanPasteClipboard } from '../ClipboardAction/useCanPasteClipboard.js';
|
|
@@ -16,7 +16,7 @@ import { Popup, PopupList } from '../Popup/index.js';
|
|
|
16
16
|
import './index.css';
|
|
17
17
|
const baseClass = 'array-actions';
|
|
18
18
|
export const ArrayAction = t0 => {
|
|
19
|
-
const $ = _c(
|
|
19
|
+
const $ = _c(31);
|
|
20
20
|
const {
|
|
21
21
|
addRow,
|
|
22
22
|
copyRow,
|
|
@@ -27,6 +27,7 @@ export const ArrayAction = t0 => {
|
|
|
27
27
|
moveRow,
|
|
28
28
|
pasteData,
|
|
29
29
|
pasteRow,
|
|
30
|
+
pasteRowBelow,
|
|
30
31
|
removeRow,
|
|
31
32
|
rowCount
|
|
32
33
|
} = t0;
|
|
@@ -38,21 +39,21 @@ export const ArrayAction = t0 => {
|
|
|
38
39
|
refresh
|
|
39
40
|
} = useCanPasteClipboard(pasteData);
|
|
40
41
|
let t1;
|
|
41
|
-
if ($[0] !== addRow || $[1] !== canPaste || $[2] !== copyRow || $[3] !== duplicateRow || $[4] !== hasMaxRows || $[5] !== index || $[6] !== isSortable || $[7] !== moveRow || $[8] !== pasteRow || $[9] !==
|
|
42
|
+
if ($[0] !== addRow || $[1] !== canPaste || $[2] !== copyRow || $[3] !== duplicateRow || $[4] !== hasMaxRows || $[5] !== index || $[6] !== isSortable || $[7] !== moveRow || $[8] !== pasteRow || $[9] !== pasteRowBelow || $[10] !== refresh || $[11] !== removeRow || $[12] !== rowCount || $[13] !== t) {
|
|
42
43
|
let t2;
|
|
43
|
-
if ($[
|
|
44
|
+
if ($[15] !== refresh) {
|
|
44
45
|
t2 = active => {
|
|
45
46
|
if (active) {
|
|
46
47
|
refresh();
|
|
47
48
|
}
|
|
48
49
|
};
|
|
49
|
-
$[
|
|
50
|
-
$[
|
|
50
|
+
$[15] = refresh;
|
|
51
|
+
$[16] = t2;
|
|
51
52
|
} else {
|
|
52
|
-
t2 = $[
|
|
53
|
+
t2 = $[16];
|
|
53
54
|
}
|
|
54
55
|
let t3;
|
|
55
|
-
if ($[
|
|
56
|
+
if ($[17] !== addRow || $[18] !== canPaste || $[19] !== copyRow || $[20] !== duplicateRow || $[21] !== hasMaxRows || $[22] !== index || $[23] !== isSortable || $[24] !== moveRow || $[25] !== pasteRow || $[26] !== pasteRowBelow || $[27] !== removeRow || $[28] !== rowCount || $[29] !== t) {
|
|
56
57
|
t3 = t4 => {
|
|
57
58
|
const {
|
|
58
59
|
close
|
|
@@ -112,17 +113,27 @@ export const ArrayAction = t0 => {
|
|
|
112
113
|
close();
|
|
113
114
|
},
|
|
114
115
|
children: t("general:copyRow")
|
|
115
|
-
}), _jsx(PopupList.Button, {
|
|
116
|
-
className: `${baseClass}__action ${baseClass}__paste`,
|
|
116
|
+
}), !hasMaxRows && _jsx(PopupList.Button, {
|
|
117
|
+
className: `${baseClass}__action ${baseClass}__paste-below`,
|
|
117
118
|
disabled: !canPaste,
|
|
118
|
-
icon: _jsx(
|
|
119
|
+
icon: _jsx(ArrowIcon, {
|
|
120
|
+
direction: "down",
|
|
119
121
|
size: 24
|
|
120
122
|
}),
|
|
123
|
+
onClick: () => {
|
|
124
|
+
pasteRowBelow(index);
|
|
125
|
+
close();
|
|
126
|
+
},
|
|
127
|
+
children: t("general:pasteBelow")
|
|
128
|
+
}), _jsx(PopupList.Button, {
|
|
129
|
+
className: `${baseClass}__action ${baseClass}__paste`,
|
|
130
|
+
disabled: !canPaste,
|
|
131
|
+
icon: _jsx(SwapIcon, {}),
|
|
121
132
|
onClick: () => {
|
|
122
133
|
pasteRow(index);
|
|
123
134
|
close();
|
|
124
135
|
},
|
|
125
|
-
children: t("general:
|
|
136
|
+
children: t("general:replaceRow")
|
|
126
137
|
}), _jsx(PopupList.Button, {
|
|
127
138
|
className: `${baseClass}__action ${baseClass}__remove`,
|
|
128
139
|
icon: _jsx(XIcon, {
|
|
@@ -136,21 +147,22 @@ export const ArrayAction = t0 => {
|
|
|
136
147
|
})]
|
|
137
148
|
});
|
|
138
149
|
};
|
|
139
|
-
$[
|
|
140
|
-
$[
|
|
141
|
-
$[
|
|
142
|
-
$[
|
|
143
|
-
$[
|
|
144
|
-
$[
|
|
145
|
-
$[
|
|
146
|
-
$[
|
|
147
|
-
$[
|
|
148
|
-
$[
|
|
149
|
-
$[
|
|
150
|
-
$[
|
|
151
|
-
$[
|
|
150
|
+
$[17] = addRow;
|
|
151
|
+
$[18] = canPaste;
|
|
152
|
+
$[19] = copyRow;
|
|
153
|
+
$[20] = duplicateRow;
|
|
154
|
+
$[21] = hasMaxRows;
|
|
155
|
+
$[22] = index;
|
|
156
|
+
$[23] = isSortable;
|
|
157
|
+
$[24] = moveRow;
|
|
158
|
+
$[25] = pasteRow;
|
|
159
|
+
$[26] = pasteRowBelow;
|
|
160
|
+
$[27] = removeRow;
|
|
161
|
+
$[28] = rowCount;
|
|
162
|
+
$[29] = t;
|
|
163
|
+
$[30] = t3;
|
|
152
164
|
} else {
|
|
153
|
-
t3 = $[
|
|
165
|
+
t3 = $[30];
|
|
154
166
|
}
|
|
155
167
|
t1 = _jsx(Popup, {
|
|
156
168
|
button: _jsx(MoreIcon, {}),
|
|
@@ -171,13 +183,14 @@ export const ArrayAction = t0 => {
|
|
|
171
183
|
$[6] = isSortable;
|
|
172
184
|
$[7] = moveRow;
|
|
173
185
|
$[8] = pasteRow;
|
|
174
|
-
$[9] =
|
|
175
|
-
$[10] =
|
|
176
|
-
$[11] =
|
|
177
|
-
$[12] =
|
|
178
|
-
$[13] =
|
|
186
|
+
$[9] = pasteRowBelow;
|
|
187
|
+
$[10] = refresh;
|
|
188
|
+
$[11] = removeRow;
|
|
189
|
+
$[12] = rowCount;
|
|
190
|
+
$[13] = t;
|
|
191
|
+
$[14] = t1;
|
|
179
192
|
} else {
|
|
180
|
-
t1 = $[
|
|
193
|
+
t1 = $[14];
|
|
181
194
|
}
|
|
182
195
|
return t1;
|
|
183
196
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","ArrowIcon","ClipboardIcon","CopyIcon","DuplicateIcon","MoreIcon","PlusIcon","XIcon","useTranslation","useCanPasteClipboard","Popup","PopupList","baseClass","ArrayAction","t0","$","addRow","copyRow","duplicateRow","hasMaxRows","index","isSortable","moveRow","pasteData","pasteRow","removeRow","rowCount","t","canPaste","refresh","t1","t2","active","t3","t4","close","_jsxs","MenuItem","children","_jsx","Button","className","icon","direction","size","Fragment","disabled","button","buttonAriaLabel","buttonClassName","caret","horizontalAlign","onToggleOpen","render"],"sources":["../../../src/elements/ArrayAction/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { ClipboardPasteEligibilityArgs } from '../ClipboardAction/types.js'\n\nimport { ArrowIcon } from '../../icons/Arrow/index.js'\nimport { ClipboardIcon } from '../../icons/Clipboard/index.js'\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { DuplicateIcon } from '../../icons/Duplicate/index.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useCanPasteClipboard } from '../ClipboardAction/useCanPasteClipboard.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.css'\n\nconst baseClass = 'array-actions'\n\nexport type Props = {\n addRow: (current: number, blockType?: string) => Promise<void> | void\n copyRow: (index: number) => void\n duplicateRow: (current: number) => void\n hasMaxRows: boolean\n index: number\n isSortable?: boolean\n moveRow: (from: number, to: number) => void\n pasteData: ClipboardPasteEligibilityArgs\n pasteRow: (index: number) => void\n removeRow: (index: number) => void\n rowCount: number\n}\n\nexport const ArrayAction: React.FC<Props> = ({\n addRow,\n copyRow,\n duplicateRow,\n hasMaxRows,\n index,\n isSortable,\n moveRow,\n pasteData,\n pasteRow,\n removeRow,\n rowCount,\n}) => {\n const { t } = useTranslation()\n\n const { canPaste, refresh } = useCanPasteClipboard(pasteData)\n\n return (\n <Popup\n button={<MoreIcon />}\n buttonAriaLabel={t('general:moreOptions')}\n buttonClassName={`${baseClass}__button`}\n caret={false}\n className={baseClass}\n horizontalAlign=\"right\"\n onToggleOpen={(active) => {\n if (active) {\n refresh()\n }\n }}\n render={({ close }) => {\n return (\n <PopupList.MenuItem>\n {isSortable && index !== 0 && (\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__move-up`}\n icon={<ArrowIcon direction=\"up\" size={24} />}\n onClick={() => {\n moveRow(index, index - 1)\n close()\n }}\n >\n {t('general:moveUp')}\n </PopupList.Button>\n )}\n {isSortable && index < rowCount - 1 && (\n <PopupList.Button\n className={`${baseClass}__action`}\n icon={<ArrowIcon direction=\"down\" size={24} />}\n onClick={() => {\n moveRow(index, index + 1)\n close()\n }}\n >\n {t('general:moveDown')}\n </PopupList.Button>\n )}\n {!hasMaxRows && (\n <React.Fragment>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__add`}\n icon={<PlusIcon size={24} />}\n onClick={() => {\n void addRow(index + 1)\n close()\n }}\n >\n {t('general:addBelow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__duplicate`}\n icon={<DuplicateIcon size={24} />}\n onClick={() => {\n duplicateRow(index)\n close()\n }}\n >\n {t('general:duplicate')}\n </PopupList.Button>\n </React.Fragment>\n )}\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__copy`}\n icon={<CopyIcon size={24} />}\n onClick={() => {\n copyRow(index)\n close()\n }}\n >\n {t('general:copyRow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__paste`}\n disabled={!canPaste}\n icon={<ClipboardIcon size={24} />}\n onClick={() => {\n pasteRow(index)\n close()\n }}\n >\n {t('general:pasteRow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__remove`}\n icon={<XIcon size={24} />}\n onClick={() => {\n removeRow(index)\n close()\n }}\n >\n {t('general:remove')}\n </PopupList.Button>\n </PopupList.MenuItem>\n )\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","ArrowIcon","CopyIcon","DuplicateIcon","MoreIcon","PlusIcon","SwapIcon","XIcon","useTranslation","useCanPasteClipboard","Popup","PopupList","baseClass","ArrayAction","t0","$","addRow","copyRow","duplicateRow","hasMaxRows","index","isSortable","moveRow","pasteData","pasteRow","pasteRowBelow","removeRow","rowCount","t","canPaste","refresh","t1","t2","active","t3","t4","close","_jsxs","MenuItem","children","_jsx","Button","className","icon","direction","size","Fragment","disabled","onClick","button","buttonAriaLabel","buttonClassName","caret","horizontalAlign","onToggleOpen","render"],"sources":["../../../src/elements/ArrayAction/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { ClipboardPasteEligibilityArgs } from '../ClipboardAction/types.js'\n\nimport { ArrowIcon } from '../../icons/Arrow/index.js'\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { DuplicateIcon } from '../../icons/Duplicate/index.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { SwapIcon } from '../../icons/Swap/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useCanPasteClipboard } from '../ClipboardAction/useCanPasteClipboard.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.css'\n\nconst baseClass = 'array-actions'\n\nexport type Props = {\n addRow: (current: number, blockType?: string) => Promise<void> | void\n copyRow: (index: number) => void\n duplicateRow: (current: number) => void\n hasMaxRows: boolean\n index: number\n isSortable?: boolean\n moveRow: (from: number, to: number) => void\n pasteData: ClipboardPasteEligibilityArgs\n pasteRow: (index: number) => void\n pasteRowBelow: (index: number) => void\n removeRow: (index: number) => void\n rowCount: number\n}\n\nexport const ArrayAction: React.FC<Props> = ({\n addRow,\n copyRow,\n duplicateRow,\n hasMaxRows,\n index,\n isSortable,\n moveRow,\n pasteData,\n pasteRow,\n pasteRowBelow,\n removeRow,\n rowCount,\n}) => {\n const { t } = useTranslation()\n\n const { canPaste, refresh } = useCanPasteClipboard(pasteData)\n\n return (\n <Popup\n button={<MoreIcon />}\n buttonAriaLabel={t('general:moreOptions')}\n buttonClassName={`${baseClass}__button`}\n caret={false}\n className={baseClass}\n horizontalAlign=\"right\"\n onToggleOpen={(active) => {\n if (active) {\n refresh()\n }\n }}\n render={({ close }) => {\n return (\n <PopupList.MenuItem>\n {isSortable && index !== 0 && (\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__move-up`}\n icon={<ArrowIcon direction=\"up\" size={24} />}\n onClick={() => {\n moveRow(index, index - 1)\n close()\n }}\n >\n {t('general:moveUp')}\n </PopupList.Button>\n )}\n {isSortable && index < rowCount - 1 && (\n <PopupList.Button\n className={`${baseClass}__action`}\n icon={<ArrowIcon direction=\"down\" size={24} />}\n onClick={() => {\n moveRow(index, index + 1)\n close()\n }}\n >\n {t('general:moveDown')}\n </PopupList.Button>\n )}\n {!hasMaxRows && (\n <React.Fragment>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__add`}\n icon={<PlusIcon size={24} />}\n onClick={() => {\n void addRow(index + 1)\n close()\n }}\n >\n {t('general:addBelow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__duplicate`}\n icon={<DuplicateIcon size={24} />}\n onClick={() => {\n duplicateRow(index)\n close()\n }}\n >\n {t('general:duplicate')}\n </PopupList.Button>\n </React.Fragment>\n )}\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__copy`}\n icon={<CopyIcon size={24} />}\n onClick={() => {\n copyRow(index)\n close()\n }}\n >\n {t('general:copyRow')}\n </PopupList.Button>\n {!hasMaxRows && (\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__paste-below`}\n disabled={!canPaste}\n icon={<ArrowIcon direction=\"down\" size={24} />}\n onClick={() => {\n pasteRowBelow(index)\n close()\n }}\n >\n {t('general:pasteBelow')}\n </PopupList.Button>\n )}\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__paste`}\n disabled={!canPaste}\n icon={<SwapIcon />}\n onClick={() => {\n pasteRow(index)\n close()\n }}\n >\n {t('general:replaceRow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__remove`}\n icon={<XIcon size={24} />}\n onClick={() => {\n removeRow(index)\n close()\n }}\n >\n {t('general:remove')}\n </PopupList.Button>\n </PopupList.MenuItem>\n )\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,4 +11,14 @@ export declare function mergeFormStateFromClipboard({ dataFromClipboard: clipboa
|
|
|
11
11
|
path: string;
|
|
12
12
|
rowIndex?: number;
|
|
13
13
|
}): FormState;
|
|
14
|
+
/**
|
|
15
|
+
* Inserts a new row at `rowIndex`, populated with clipboard data, without disturbing
|
|
16
|
+
* any existing rows. Existing rows at and after `rowIndex` are shifted down by one.
|
|
17
|
+
*/
|
|
18
|
+
export declare function insertRowFromClipboard({ dataFromClipboard: clipboardData, formState, path, rowIndex, }: {
|
|
19
|
+
dataFromClipboard: ClipboardPasteData;
|
|
20
|
+
formState: FormState;
|
|
21
|
+
path: string;
|
|
22
|
+
rowIndex: number;
|
|
23
|
+
}): FormState;
|
|
14
24
|
//# sourceMappingURL=mergeFormStateFromClipboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeFormStateFromClipboard.d.ts","sourceRoot":"","sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"mergeFormStateFromClipboard.d.ts","sourceRoot":"","sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAO,MAAM,SAAS,CAAA;AAIzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAMpD,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,8BAyBA;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,iBAAiB,EAAE,aAAa,EAChC,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,iBAAiB,EAAE,kBAAkB,CAAA;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,aA0IA;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,iBAAiB,EAAE,aAAa,EAChC,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,iBAAiB,EAAE,kBAAkB,CAAA;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,SAAS,CAqCZ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import ObjectIdImport from 'bson-objectid';
|
|
2
|
+
import { flattenRows, separateRows } from '../../forms/Form/rows.js';
|
|
2
3
|
const ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport;
|
|
3
4
|
export function reduceFormStateByPath({
|
|
4
5
|
formState,
|
|
@@ -147,4 +148,58 @@ export function mergeFormStateFromClipboard({
|
|
|
147
148
|
}
|
|
148
149
|
return formState;
|
|
149
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Inserts a new row at `rowIndex`, populated with clipboard data, without disturbing
|
|
153
|
+
* any existing rows. Existing rows at and after `rowIndex` are shifted down by one.
|
|
154
|
+
*/
|
|
155
|
+
export function insertRowFromClipboard({
|
|
156
|
+
dataFromClipboard: clipboardData,
|
|
157
|
+
formState,
|
|
158
|
+
path,
|
|
159
|
+
rowIndex
|
|
160
|
+
}) {
|
|
161
|
+
const {
|
|
162
|
+
path: pathFromClipboard,
|
|
163
|
+
rowIndex: rowIndexFromClipboard
|
|
164
|
+
} = clipboardData;
|
|
165
|
+
const sourceRowPath = typeof rowIndexFromClipboard === 'number' ? `${pathFromClipboard}.${rowIndexFromClipboard}` : pathFromClipboard;
|
|
166
|
+
const blockType = clipboardData.data[`${sourceRowPath}.blockType`]?.value;
|
|
167
|
+
const newRowID = new ObjectId().toHexString();
|
|
168
|
+
const {
|
|
169
|
+
remainingFields,
|
|
170
|
+
rows
|
|
171
|
+
} = separateRows(path, formState);
|
|
172
|
+
rows.splice(rowIndex, 0, {
|
|
173
|
+
id: {
|
|
174
|
+
initialValue: newRowID,
|
|
175
|
+
valid: true,
|
|
176
|
+
value: newRowID
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
const newRows = [...(formState[path].rows || [])];
|
|
180
|
+
const newRow = {
|
|
181
|
+
id: newRowID,
|
|
182
|
+
isLoading: false
|
|
183
|
+
};
|
|
184
|
+
if (blockType) {
|
|
185
|
+
newRow.blockType = blockType;
|
|
186
|
+
}
|
|
187
|
+
newRows.splice(rowIndex, 0, newRow);
|
|
188
|
+
const formStateWithNewRow = {
|
|
189
|
+
...remainingFields,
|
|
190
|
+
...flattenRows(path, rows),
|
|
191
|
+
[path]: {
|
|
192
|
+
...formState[path],
|
|
193
|
+
disableFormData: true,
|
|
194
|
+
rows: newRows,
|
|
195
|
+
value: rows.length
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
return mergeFormStateFromClipboard({
|
|
199
|
+
dataFromClipboard: clipboardData,
|
|
200
|
+
formState: formStateWithNewRow,
|
|
201
|
+
path,
|
|
202
|
+
rowIndex
|
|
203
|
+
});
|
|
204
|
+
}
|
|
150
205
|
//# sourceMappingURL=mergeFormStateFromClipboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeFormStateFromClipboard.js","names":["ObjectIdImport","ObjectId","default","reduceFormStateByPath","formState","path","rowIndex","filteredState","prefix","key","startsWith","customComponents","_","validate","__","field","Array","isArray","rows","map","row","serializableRow","mergeFormStateFromClipboard","dataFromClipboard","clipboardData","type","typeFromClipboard","data","pathFromClipboard","rowIndexFromClipboard","copyFromField","pasteIntoField","fromRowToField","pathToReplace","targetSegment","lastRenderedPath","rowIDFromClipboard","value","hasRows","length","id","isLoading","initialValue","disableFormData","fieldPath","idReplacements","Map","clipboardPath","newPath","replace","undefined","endsWith","oldID","isValid","newID","toHexString","set","relativePath","segments","split","parseInt","parentFieldPath","slice","join","fullParentPath","parentRows","isNaN","targetParts","lastPart","rowIndexFromTarget"],"sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.ts"],"sourcesContent":["import type { FieldState, FormState } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\n\nimport type { ClipboardPasteData } from './types.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport function reduceFormStateByPath({\n formState,\n path,\n rowIndex,\n}: {\n formState: FormState\n path: string\n rowIndex?: number\n}) {\n const filteredState: Record<string, FieldState> = {}\n const prefix = typeof rowIndex !== 'number' ? path : `${path}.${rowIndex}`\n\n for (const key in formState) {\n if (!key.startsWith(prefix)) {\n continue\n }\n\n const { customComponents: _, validate: __, ...field } = formState[key]\n\n if (Array.isArray(field.rows)) {\n field.rows = field.rows.map((row) => {\n if (!row || typeof row !== 'object') {\n return row\n }\n const { customComponents: _, ...serializableRow } = row\n return serializableRow\n })\n }\n\n filteredState[key] = field\n }\n\n return filteredState\n}\n\nexport function mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path,\n rowIndex,\n}: {\n dataFromClipboard: ClipboardPasteData\n formState: FormState\n path: string\n rowIndex?: number\n}) {\n const {\n type: typeFromClipboard,\n data: dataFromClipboard,\n path: pathFromClipboard,\n rowIndex: rowIndexFromClipboard,\n } = clipboardData\n\n const copyFromField = typeof rowIndexFromClipboard !== 'number'\n const pasteIntoField = typeof rowIndex !== 'number'\n const fromRowToField = !copyFromField && pasteIntoField\n const isArray = typeFromClipboard === 'array'\n\n let pathToReplace: string\n if (copyFromField && pasteIntoField) {\n pathToReplace = pathFromClipboard\n } else if (copyFromField) {\n pathToReplace = `${pathFromClipboard}.${rowIndex}`\n } else {\n pathToReplace = `${pathFromClipboard}.${rowIndexFromClipboard}`\n }\n\n let targetSegment: string\n if (!pasteIntoField) {\n targetSegment = `${path}.${rowIndex}`\n } else if (fromRowToField) {\n targetSegment = `${path}.0`\n } else {\n targetSegment = path\n }\n\n if (fromRowToField) {\n const lastRenderedPath = `${path}.0`\n const rowIDFromClipboard = dataFromClipboard[`${pathToReplace}.id`]?.value as string\n const hasRows = formState[path].rows?.length\n\n formState[path].rows = [\n {\n ...(hasRows && isArray ? formState[path].rows[0] : {}),\n id: rowIDFromClipboard,\n isLoading: false,\n lastRenderedPath,\n },\n ]\n formState[path].value = 1\n formState[path].initialValue = 1\n formState[path].disableFormData = true\n\n for (const fieldPath in formState) {\n if (\n fieldPath !== path &&\n !fieldPath.startsWith(lastRenderedPath) &&\n fieldPath.startsWith(path)\n ) {\n delete formState[fieldPath]\n }\n }\n }\n\n // Map to track old IDs to new IDs for regenerating nested IDs\n const idReplacements: Map<string, string> = new Map()\n\n for (const clipboardPath in dataFromClipboard) {\n // When pasting into a specific row, skip only the direct row ID to avoid overwriting\n // the target row's identity. Nested IDs (array item IDs within the block) should\n // still be processed so they get regenerated below, preventing server-side duplication.\n if (\n (!pasteIntoField && clipboardPath === `${pathToReplace}.id`) ||\n !clipboardPath.startsWith(pathToReplace)\n ) {\n continue\n }\n\n const newPath = clipboardPath.replace(pathToReplace, targetSegment)\n\n const customComponents = isArray ? formState[newPath]?.customComponents : undefined\n const validate = isArray ? formState[newPath]?.validate : undefined\n\n // If this is an ID field, generate a new ID to prevent duplicates\n if (clipboardPath.endsWith('.id') && dataFromClipboard[clipboardPath]?.value) {\n const oldID = dataFromClipboard[clipboardPath].value as string\n if (typeof oldID === 'string' && ObjectId.isValid(oldID)) {\n const newID = new ObjectId().toHexString()\n idReplacements.set(clipboardPath, newID)\n\n formState[newPath] = {\n customComponents,\n validate,\n ...dataFromClipboard[clipboardPath],\n initialValue: newID,\n value: newID,\n }\n continue\n }\n }\n\n formState[newPath] = {\n customComponents,\n validate,\n ...dataFromClipboard[clipboardPath],\n }\n }\n\n // Update parent field rows with new IDs\n for (const [clipboardPath, newID] of idReplacements) {\n const relativePath = clipboardPath.replace(`${pathToReplace}.`, '')\n const segments = relativePath.split('.')\n\n if (segments.length >= 2) {\n const rowIndex = parseInt(segments[segments.length - 2], 10)\n const parentFieldPath = segments.slice(0, segments.length - 2).join('.')\n const fullParentPath = parentFieldPath ? `${targetSegment}.${parentFieldPath}` : targetSegment\n\n if (formState[fullParentPath] && Array.isArray(formState[fullParentPath].rows)) {\n const parentRows = formState[fullParentPath].rows\n if (!isNaN(rowIndex) && parentRows[rowIndex]) {\n parentRows[rowIndex].id = newID\n }\n }\n } else if (segments.length === 1 && segments[0] === 'id') {\n // Top-level block ID - extract field path and row index from targetSegment\n const targetParts = targetSegment.split('.')\n const lastPart = targetParts[targetParts.length - 1]\n const rowIndexFromTarget = !isNaN(parseInt(lastPart, 10)) ? parseInt(lastPart, 10) : 0\n const fieldPath = !isNaN(parseInt(lastPart, 10))\n ? targetParts.slice(0, -1).join('.')\n : targetSegment\n\n if (formState[fieldPath] && Array.isArray(formState[fieldPath].rows)) {\n const rows = formState[fieldPath].rows\n if (rows[rowIndexFromTarget]) {\n rows[rowIndexFromTarget].id = newID\n }\n }\n }\n }\n\n return formState\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"mergeFormStateFromClipboard.js","names":["ObjectIdImport","flattenRows","separateRows","ObjectId","default","reduceFormStateByPath","formState","path","rowIndex","filteredState","prefix","key","startsWith","customComponents","_","validate","__","field","Array","isArray","rows","map","row","serializableRow","mergeFormStateFromClipboard","dataFromClipboard","clipboardData","type","typeFromClipboard","data","pathFromClipboard","rowIndexFromClipboard","copyFromField","pasteIntoField","fromRowToField","pathToReplace","targetSegment","lastRenderedPath","rowIDFromClipboard","value","hasRows","length","id","isLoading","initialValue","disableFormData","fieldPath","idReplacements","Map","clipboardPath","newPath","replace","undefined","endsWith","oldID","isValid","newID","toHexString","set","relativePath","segments","split","parseInt","parentFieldPath","slice","join","fullParentPath","parentRows","isNaN","targetParts","lastPart","rowIndexFromTarget","insertRowFromClipboard","sourceRowPath","blockType","newRowID","remainingFields","splice","valid","newRows","newRow","formStateWithNewRow"],"sources":["../../../src/elements/ClipboardAction/mergeFormStateFromClipboard.ts"],"sourcesContent":["import type { FieldState, FormState, Row } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\n\nimport type { ClipboardPasteData } from './types.js'\n\nimport { flattenRows, separateRows } from '../../forms/Form/rows.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport function reduceFormStateByPath({\n formState,\n path,\n rowIndex,\n}: {\n formState: FormState\n path: string\n rowIndex?: number\n}) {\n const filteredState: Record<string, FieldState> = {}\n const prefix = typeof rowIndex !== 'number' ? path : `${path}.${rowIndex}`\n\n for (const key in formState) {\n if (!key.startsWith(prefix)) {\n continue\n }\n\n const { customComponents: _, validate: __, ...field } = formState[key]\n\n if (Array.isArray(field.rows)) {\n field.rows = field.rows.map((row) => {\n if (!row || typeof row !== 'object') {\n return row\n }\n const { customComponents: _, ...serializableRow } = row\n return serializableRow\n })\n }\n\n filteredState[key] = field\n }\n\n return filteredState\n}\n\nexport function mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path,\n rowIndex,\n}: {\n dataFromClipboard: ClipboardPasteData\n formState: FormState\n path: string\n rowIndex?: number\n}) {\n const {\n type: typeFromClipboard,\n data: dataFromClipboard,\n path: pathFromClipboard,\n rowIndex: rowIndexFromClipboard,\n } = clipboardData\n\n const copyFromField = typeof rowIndexFromClipboard !== 'number'\n const pasteIntoField = typeof rowIndex !== 'number'\n const fromRowToField = !copyFromField && pasteIntoField\n const isArray = typeFromClipboard === 'array'\n\n let pathToReplace: string\n if (copyFromField && pasteIntoField) {\n pathToReplace = pathFromClipboard\n } else if (copyFromField) {\n pathToReplace = `${pathFromClipboard}.${rowIndex}`\n } else {\n pathToReplace = `${pathFromClipboard}.${rowIndexFromClipboard}`\n }\n\n let targetSegment: string\n if (!pasteIntoField) {\n targetSegment = `${path}.${rowIndex}`\n } else if (fromRowToField) {\n targetSegment = `${path}.0`\n } else {\n targetSegment = path\n }\n\n if (fromRowToField) {\n const lastRenderedPath = `${path}.0`\n const rowIDFromClipboard = dataFromClipboard[`${pathToReplace}.id`]?.value as string\n const hasRows = formState[path].rows?.length\n\n formState[path].rows = [\n {\n ...(hasRows && isArray ? formState[path].rows[0] : {}),\n id: rowIDFromClipboard,\n isLoading: false,\n lastRenderedPath,\n },\n ]\n formState[path].value = 1\n formState[path].initialValue = 1\n formState[path].disableFormData = true\n\n for (const fieldPath in formState) {\n if (\n fieldPath !== path &&\n !fieldPath.startsWith(lastRenderedPath) &&\n fieldPath.startsWith(path)\n ) {\n delete formState[fieldPath]\n }\n }\n }\n\n // Map to track old IDs to new IDs for regenerating nested IDs\n const idReplacements: Map<string, string> = new Map()\n\n for (const clipboardPath in dataFromClipboard) {\n // When pasting into a specific row, skip only the direct row ID to avoid overwriting\n // the target row's identity. Nested IDs (array item IDs within the block) should\n // still be processed so they get regenerated below, preventing server-side duplication.\n if (\n (!pasteIntoField && clipboardPath === `${pathToReplace}.id`) ||\n !clipboardPath.startsWith(pathToReplace)\n ) {\n continue\n }\n\n const newPath = clipboardPath.replace(pathToReplace, targetSegment)\n\n const customComponents = isArray ? formState[newPath]?.customComponents : undefined\n const validate = isArray ? formState[newPath]?.validate : undefined\n\n // If this is an ID field, generate a new ID to prevent duplicates\n if (clipboardPath.endsWith('.id') && dataFromClipboard[clipboardPath]?.value) {\n const oldID = dataFromClipboard[clipboardPath].value as string\n if (typeof oldID === 'string' && ObjectId.isValid(oldID)) {\n const newID = new ObjectId().toHexString()\n idReplacements.set(clipboardPath, newID)\n\n formState[newPath] = {\n customComponents,\n validate,\n ...dataFromClipboard[clipboardPath],\n initialValue: newID,\n value: newID,\n }\n continue\n }\n }\n\n formState[newPath] = {\n customComponents,\n validate,\n ...dataFromClipboard[clipboardPath],\n }\n }\n\n // Update parent field rows with new IDs\n for (const [clipboardPath, newID] of idReplacements) {\n const relativePath = clipboardPath.replace(`${pathToReplace}.`, '')\n const segments = relativePath.split('.')\n\n if (segments.length >= 2) {\n const rowIndex = parseInt(segments[segments.length - 2], 10)\n const parentFieldPath = segments.slice(0, segments.length - 2).join('.')\n const fullParentPath = parentFieldPath ? `${targetSegment}.${parentFieldPath}` : targetSegment\n\n if (formState[fullParentPath] && Array.isArray(formState[fullParentPath].rows)) {\n const parentRows = formState[fullParentPath].rows\n if (!isNaN(rowIndex) && parentRows[rowIndex]) {\n parentRows[rowIndex].id = newID\n }\n }\n } else if (segments.length === 1 && segments[0] === 'id') {\n // Top-level block ID - extract field path and row index from targetSegment\n const targetParts = targetSegment.split('.')\n const lastPart = targetParts[targetParts.length - 1]\n const rowIndexFromTarget = !isNaN(parseInt(lastPart, 10)) ? parseInt(lastPart, 10) : 0\n const fieldPath = !isNaN(parseInt(lastPart, 10))\n ? targetParts.slice(0, -1).join('.')\n : targetSegment\n\n if (formState[fieldPath] && Array.isArray(formState[fieldPath].rows)) {\n const rows = formState[fieldPath].rows\n if (rows[rowIndexFromTarget]) {\n rows[rowIndexFromTarget].id = newID\n }\n }\n }\n }\n\n return formState\n}\n\n/**\n * Inserts a new row at `rowIndex`, populated with clipboard data, without disturbing\n * any existing rows. Existing rows at and after `rowIndex` are shifted down by one.\n */\nexport function insertRowFromClipboard({\n dataFromClipboard: clipboardData,\n formState,\n path,\n rowIndex,\n}: {\n dataFromClipboard: ClipboardPasteData\n formState: FormState\n path: string\n rowIndex: number\n}): FormState {\n const { path: pathFromClipboard, rowIndex: rowIndexFromClipboard } = clipboardData\n\n const sourceRowPath =\n typeof rowIndexFromClipboard === 'number'\n ? `${pathFromClipboard}.${rowIndexFromClipboard}`\n : pathFromClipboard\n\n const blockType = clipboardData.data[`${sourceRowPath}.blockType`]?.value as string | undefined\n\n const newRowID = new ObjectId().toHexString()\n\n const { remainingFields, rows } = separateRows(path, formState)\n\n rows.splice(rowIndex, 0, {\n id: { initialValue: newRowID, valid: true, value: newRowID },\n })\n\n const newRows = [...(formState[path].rows || [])]\n const newRow: Row = { id: newRowID, isLoading: false }\n if (blockType) {\n newRow.blockType = blockType\n }\n newRows.splice(rowIndex, 0, newRow)\n\n const formStateWithNewRow: FormState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: { ...formState[path], disableFormData: true, rows: newRows, value: rows.length },\n }\n\n return mergeFormStateFromClipboard({\n dataFromClipboard: clipboardData,\n formState: formStateWithNewRow,\n path,\n rowIndex,\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
position: fixed;
|
|
7
7
|
inset: 0;
|
|
8
8
|
|
|
9
|
-
--gutter-h: var(--spacer-
|
|
9
|
+
--gutter-h: var(--spacer-3);
|
|
10
10
|
--gutter-v: var(--spacer-4);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
@media (
|
|
13
|
+
@media (min-width: 768px) {
|
|
14
14
|
.drawer {
|
|
15
|
-
--gutter-h: var(--spacer-
|
|
15
|
+
--gutter-h: var(--spacer-4);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
position: relative;
|
|
34
34
|
z-index: 2;
|
|
35
35
|
width: clamp(600px, 40vw, 1080px);
|
|
36
|
-
max-width: 100vw;
|
|
36
|
+
max-width: calc(100vw - var(--spacer-3));
|
|
37
37
|
background-color: var(--color-bg);
|
|
38
38
|
box-shadow: var(--elevation-400-menu-panel);
|
|
39
39
|
container: drawer / inline-size;
|
|
@@ -41,6 +41,12 @@
|
|
|
41
41
|
transition: transform 100ms ease-out;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
@media (min-width: 768px) {
|
|
45
|
+
.drawer__content {
|
|
46
|
+
max-width: 100vw;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
44
50
|
.drawer__content-children {
|
|
45
51
|
position: relative;
|
|
46
52
|
z-index: 1;
|
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
white-space: nowrap;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
.id-label--is-link:hover,
|
|
22
|
+
a:not([aria-disabled='true']):hover > .id-label,
|
|
23
|
+
button:not(:disabled):hover > .id-label {
|
|
24
|
+
background: var(--color-bg-secondary-hover);
|
|
25
|
+
}
|
|
26
|
+
|
|
21
27
|
.id-label__prefix {
|
|
22
28
|
color: var(--color-text-secondary);
|
|
23
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/IDLabel/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/IDLabel/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAyCA,CAAA"}
|
|
@@ -12,7 +12,7 @@ import { useDrawerDepth } from '../Drawer/index.js';
|
|
|
12
12
|
import './index.css';
|
|
13
13
|
const baseClass = 'id-label';
|
|
14
14
|
export const IDLabel = t0 => {
|
|
15
|
-
const $ = _c(
|
|
15
|
+
const $ = _c(12);
|
|
16
16
|
const {
|
|
17
17
|
id,
|
|
18
18
|
className,
|
|
@@ -40,22 +40,25 @@ export const IDLabel = t0 => {
|
|
|
40
40
|
bb0: {
|
|
41
41
|
const sanitizedID = sanitizeID(id);
|
|
42
42
|
const shouldRenderLink = drawerDepth > 0 && (collectionSlug || globalSlug);
|
|
43
|
+
const t6 = shouldRenderLink && `${baseClass}--is-link`;
|
|
44
|
+
let t7;
|
|
45
|
+
if ($[9] !== className || $[10] !== t6) {
|
|
46
|
+
t7 = [baseClass, t6, className].filter(Boolean);
|
|
47
|
+
$[9] = className;
|
|
48
|
+
$[10] = t6;
|
|
49
|
+
$[11] = t7;
|
|
50
|
+
} else {
|
|
51
|
+
t7 = $[11];
|
|
52
|
+
}
|
|
53
|
+
const classes = t7.join(" ");
|
|
43
54
|
if (shouldRenderLink) {
|
|
44
55
|
const docPath = formatAdminURL({
|
|
45
56
|
adminRoute,
|
|
46
57
|
path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`
|
|
47
58
|
});
|
|
48
|
-
let t6;
|
|
49
|
-
if ($[9] !== className) {
|
|
50
|
-
t6 = [baseClass, className].filter(Boolean);
|
|
51
|
-
$[9] = className;
|
|
52
|
-
$[10] = t6;
|
|
53
|
-
} else {
|
|
54
|
-
t6 = $[10];
|
|
55
|
-
}
|
|
56
59
|
t5 = _jsxs("div", {
|
|
57
|
-
className:
|
|
58
|
-
title: id,
|
|
60
|
+
className: classes,
|
|
61
|
+
title: String(id),
|
|
59
62
|
children: [_jsx("span", {
|
|
60
63
|
className: `${baseClass}__prefix`,
|
|
61
64
|
children: prefix
|
|
@@ -67,17 +70,9 @@ export const IDLabel = t0 => {
|
|
|
67
70
|
});
|
|
68
71
|
break bb0;
|
|
69
72
|
}
|
|
70
|
-
let t6;
|
|
71
|
-
if ($[11] !== className) {
|
|
72
|
-
t6 = [baseClass, className].filter(Boolean);
|
|
73
|
-
$[11] = className;
|
|
74
|
-
$[12] = t6;
|
|
75
|
-
} else {
|
|
76
|
-
t6 = $[12];
|
|
77
|
-
}
|
|
78
73
|
t4 = _jsxs("div", {
|
|
79
|
-
className:
|
|
80
|
-
title: id,
|
|
74
|
+
className: classes,
|
|
75
|
+
title: String(id),
|
|
81
76
|
children: [_jsx("span", {
|
|
82
77
|
className: `${baseClass}__prefix`,
|
|
83
78
|
children: prefix
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","Link","useConfig","useDocumentInfo","sanitizeID","useDrawerDepth","baseClass","IDLabel","t0","$","id","className","prefix","t1","undefined","config","t2","routes","t3","admin","adminRoute","collectionSlug","globalSlug","drawerDepth","t4","t5","Symbol","for","sanitizedID","shouldRenderLink","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","Link","useConfig","useDocumentInfo","sanitizeID","useDrawerDepth","baseClass","IDLabel","t0","$","id","className","prefix","t1","undefined","config","t2","routes","t3","admin","adminRoute","collectionSlug","globalSlug","drawerDepth","t4","t5","Symbol","for","sanitizedID","shouldRenderLink","t6","t7","filter","Boolean","classes","join","docPath","path","_jsxs","title","String","children","_jsx","href"],"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { sanitizeID } from '../../utilities/sanitizeID.js'\nimport { useDrawerDepth } from '../Drawer/index.js'\nimport './index.css'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{\n className?: string\n id: number | string\n prefix?: string\n}> = ({ id, className, prefix = 'ID' }) => {\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const drawerDepth = useDrawerDepth()\n\n const sanitizedID = sanitizeID(id)\n\n // Only render as link if we're inside a drawer and have document context\n const shouldRenderLink = drawerDepth > 0 && (collectionSlug || globalSlug)\n\n const classes = [baseClass, shouldRenderLink && `${baseClass}--is-link`, className]\n .filter(Boolean)\n .join(' ')\n\n if (shouldRenderLink) {\n const docPath = formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n })\n\n return (\n <div className={classes} title={String(id)}>\n <span className={`${baseClass}__prefix`}>{prefix}</span>\n <Link className={`${baseClass}__link`} href={docPath}>\n {sanitizedID}\n </Link>\n </div>\n )\n }\n\n return (\n <div className={classes} title={String(id)}>\n <span className={`${baseClass}__prefix`}>{prefix}</span>\n <span className={`${baseClass}__value`}>{sanitizedID}</span>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,IAAI,QAAQ;AACrB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,OAAA,GAIRC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,EAAA;IAAAC,SAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAL,EAAgC;EAAf,MAAAI,MAAA,GAAAC,EAAa,KAAAC,SAAA,GAAJ,IAAI,GAAbD,EAAa;EAClC;IAAAE,MAAA,EAAAC;EAAA,IAIId,SAAA;EAHM;IAAAe,MAAA,EAAAC;EAAA,IAAAF,EAEP;EADS;IAAAG,KAAA,EAAAC;EAAA,IAAAF,EAAqB;EAIjC;IAAAG,cAAA;IAAAC;EAAA,IAAuCnB,eAAA;EACvC,MAAAoB,WAAA,GAAoBlB,cAAA;EAAA,IAAAmB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAhB,CAAA,QAAAW,UAAA,IAAAX,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAY,cAAA,IAAAZ,CAAA,QAAAc,WAAA,IAAAd,CAAA,QAAAa,UAAA,IAAAb,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAG,MAAA;IAkBhBa,EAAA,GAAAC,MAAA,CAAAC,GAAA,8B;;MAhBJ,MAAAC,WAAA,GAAoBxB,UAAA,CAAWM,EAAA;MAG/B,MAAAmB,gBAAA,GAAyBN,WAAA,IAAc,KAAMF,cAAA,IAAkBC,UAAS;MAE5C,MAAAQ,EAAA,GAAAD,gBAAA,IAAoB,GAAAvB,SAAA,WAAuB;MAAA,IAAAyB,EAAA;MAAA,IAAAtB,CAAA,QAAAE,SAAA,IAAAF,CAAA,SAAAqB,EAAA;QAAvDC,EAAA,IAAAzB,SAAA,EAAYwB,EAA2C,EAAEnB,SAAA,EAAAqB,MAAA,CAAAC,OAC/D;QAAAxB,CAAA,MAAAE,SAAA;QAAAF,CAAA,OAAAqB,EAAA;QAAArB,CAAA,OAAAsB,EAAA;MAAA;QAAAA,EAAA,GAAAtB,CAAA;MAAA;MADV,MAAAyB,OAAA,GAAgBH,EACN,CAAAI,IAAA,CACF;MAAA,IAEJN,gBAAA;QACF,MAAAO,OAAA,GAAgBrC,cAAA;UAAAqB,UAAA;UAAAiB,IAAA,EAER,IAAIhB,cAAA,GAAiB,eAAeA,cAAA,EAAgB,GAAG,WAAWC,UAAA,EAAY,IAAIZ,EAAA;QAAI,CAC9F;QAGEe,EAAA,GAAAa,KAAA,CAAC;UAAA3B,SAAA,EAAeuB,OAAA;UAAAK,KAAA,EAAgBC,MAAA,CAAO9B,EAAA;UAAA+B,QAAA,GACrCC,IAAA,CAAC;YAAA/B,SAAA,EAAgB,GAAAL,SAAA,UAAsB;YAAAmC,QAAA,EAAG7B;UAAA,C,GAC1C8B,IAAA,CAAAzC,IAAA;YAAAU,SAAA,EAAiB,GAAAL,SAAA,QAAoB;YAAAqC,IAAA,EAAQP,OAAA;YAAAK,QAAA,EAC1Cb;UAAA,C;;;;MAOPJ,EAAA,GAAAc,KAAA,CAAC;QAAA3B,SAAA,EAAeuB,OAAA;QAAAK,KAAA,EAAgBC,MAAA,CAAO9B,EAAA;QAAA+B,QAAA,GACrCC,IAAA,CAAC;UAAA/B,SAAA,EAAgB,GAAAL,SAAA,UAAsB;UAAAmC,QAAA,EAAG7B;QAAA,C,GAC1C8B,IAAA,CAAC;UAAA/B,SAAA,EAAgB,GAAAL,SAAA,SAAqB;UAAAmC,QAAA,EAAGb;QAAA,C;;;;;;;;;;;;;;;;;;;SAF3CJ,E;CAKJ","ignoreList":[]}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import type { CollectionSlug } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
export declare function ListBulkUploadButton({ collectionSlug, hasCreatePermission, isBulkUploadEnabled, onBulkUploadSuccess,
|
|
3
|
+
export declare function ListBulkUploadButton({ collectionSlug, hasCreatePermission, isBulkUploadEnabled, onBulkUploadSuccess, }: {
|
|
4
4
|
collectionSlug: CollectionSlug;
|
|
5
5
|
hasCreatePermission: boolean;
|
|
6
6
|
isBulkUploadEnabled: boolean;
|
|
7
7
|
onBulkUploadSuccess?: () => void;
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated This prop will be removed in the next major version.
|
|
10
|
-
*
|
|
11
|
-
* Prefer using `onBulkUploadSuccess`
|
|
12
|
-
*/
|
|
13
|
-
openBulkUpload?: () => void;
|
|
14
8
|
}): React.JSX.Element;
|
|
15
9
|
//# sourceMappingURL=ListBulkUploadButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListBulkUploadButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,wBAAgB,oBAAoB,CAAC,EACnC,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ListBulkUploadButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,wBAAgB,oBAAoB,CAAC,EACnC,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;CACjC,qBAkDA"}
|