@payloadcms/ui 3.54.0-internal.bdc84f3 → 3.55.0-canary.0

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.
Files changed (44) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/index.js +68 -62
  3. package/dist/elements/AddNewRelation/index.js.map +1 -1
  4. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  5. package/dist/elements/CodeEditor/CodeEditor.js +94 -43
  6. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  7. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  8. package/dist/elements/DocumentDrawer/DrawerContent.js +8 -7
  9. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  10. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  11. package/dist/elements/DocumentDrawer/types.d.ts +11 -15
  12. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  13. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  14. package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +1 -1
  15. package/dist/elements/FolderView/FolderTypeField/index.js +26 -28
  16. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
  17. package/dist/exports/client/{CodeEditor-POJ47VX6.js → CodeEditor-MIIBUJZ4.js} +2 -2
  18. package/dist/exports/client/{chunk-PLMZTUXI.js → chunk-Z6O2JA43.js} +5 -5
  19. package/dist/exports/client/chunk-Z6O2JA43.js.map +7 -0
  20. package/dist/exports/client/index.js +12 -12
  21. package/dist/exports/client/index.js.map +3 -3
  22. package/dist/fields/Code/index.d.ts.map +1 -1
  23. package/dist/fields/Code/index.js +29 -4
  24. package/dist/fields/Code/index.js.map +1 -1
  25. package/dist/fields/JSON/index.d.ts.map +1 -1
  26. package/dist/fields/JSON/index.js +9 -6
  27. package/dist/fields/JSON/index.js.map +1 -1
  28. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  29. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +15 -5
  30. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  31. package/dist/providers/Auth/index.d.ts.map +1 -1
  32. package/dist/providers/Auth/index.js +6 -4
  33. package/dist/providers/Auth/index.js.map +1 -1
  34. package/dist/providers/Root/index.js +3 -1
  35. package/dist/providers/Root/index.js.map +1 -1
  36. package/dist/providers/ToastContainer/index.d.ts +4 -1
  37. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  38. package/dist/providers/ToastContainer/index.js +15 -2
  39. package/dist/providers/ToastContainer/index.js.map +1 -1
  40. package/dist/views/Edit/index.d.ts.map +1 -1
  41. package/dist/views/Edit/index.js.map +1 -1
  42. package/package.json +4 -4
  43. package/dist/exports/client/chunk-PLMZTUXI.js.map +0 -7
  44. /package/dist/exports/client/{CodeEditor-POJ47VX6.js.map → CodeEditor-MIIBUJZ4.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AddNewRelation/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAGzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAWvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkN1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AddNewRelation/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAGzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAWvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0M1C,CAAA"}
@@ -16,7 +16,7 @@ import { Tooltip } from '../Tooltip/index.js';
16
16
  import './index.scss';
17
17
  const baseClass = 'relationship-add-new';
18
18
  export const AddNewRelation = t0 => {
19
- const $ = _c(46);
19
+ const $ = _c(47);
20
20
  const {
21
21
  Button: ButtonFromProps,
22
22
  hasMany,
@@ -197,71 +197,75 @@ export const AddNewRelation = t0 => {
197
197
  useEffect(t13, t14);
198
198
  const t15 = relatedCollections[0]?.labels.singular;
199
199
  let t16;
200
+ let t17;
200
201
  if ($[30] !== ButtonFromProps || $[31] !== DocumentDrawer || $[32] !== DocumentDrawerToggler || $[33] !== collectionConfig || $[34] !== i18n || $[35] !== onSave || $[36] !== path || $[37] !== permissions || $[38] !== popupOpen || $[39] !== relatedCollections || $[40] !== show || $[41] !== showTooltip || $[42] !== t || $[43] !== t15 || $[44] !== unstyled) {
201
- t16 = Symbol.for("react.early_return_sentinel");
202
+ t17 = Symbol.for("react.early_return_sentinel");
202
203
  bb0: {
203
204
  const label = t("fields:addNewLabel", {
204
205
  label: getTranslation(t15, i18n)
205
206
  });
206
- if (show) {
207
- t16 = _jsxs("div", {
208
- className: baseClass,
209
- id: `${path}-add-new`,
210
- children: [relatedCollections.length === 1 && _jsxs(Fragment, {
211
- children: [_jsx(DocumentDrawerToggler, {
212
- className: [`${baseClass}__add-button`, unstyled && `${baseClass}__add-button--unstyled`].filter(Boolean).join(" "),
213
- onClick: () => setShowTooltip(false),
214
- onMouseEnter: () => setShowTooltip(true),
215
- onMouseLeave: () => setShowTooltip(false),
216
- children: ButtonFromProps ? ButtonFromProps : _jsxs(Fragment, {
217
- children: [_jsx(Tooltip, {
218
- className: `${baseClass}__tooltip`,
219
- show: showTooltip,
220
- children: label
221
- }), _jsx(PlusIcon, {})]
222
- })
223
- }), _jsx(DocumentDrawer, {
224
- onSave
225
- })]
226
- }), relatedCollections.length > 1 && _jsxs(Fragment, {
227
- children: [_jsx(Popup, {
228
- button: ButtonFromProps ? ButtonFromProps : _jsx(Button, {
229
- buttonStyle: "none",
230
- className: `${baseClass}__add-button`,
231
- tooltip: popupOpen ? undefined : t("fields:addNew"),
232
- children: _jsx(PlusIcon, {})
233
- }),
234
- buttonType: "custom",
235
- horizontalAlign: "center",
236
- onToggleOpen: onPopupToggle,
237
- render: t17 => {
238
- const {
239
- close: closePopup
240
- } = t17;
241
- return _jsx(PopupList.ButtonGroup, {
242
- children: relatedCollections.map(relatedCollection => {
243
- if (permissions.collections[relatedCollection?.slug].create) {
244
- return _jsx(PopupList.Button, {
245
- className: `${baseClass}__relation-button--${relatedCollection?.slug}`,
246
- onClick: () => {
247
- closePopup();
248
- setSelectedCollection(relatedCollection?.slug);
249
- },
250
- children: getTranslation(relatedCollection?.labels?.singular, i18n)
251
- }, relatedCollection?.slug);
252
- }
253
- return null;
254
- })
255
- });
256
- },
257
- size: "medium"
258
- }), collectionConfig && permissions.collections[collectionConfig?.slug]?.create && _jsx(DocumentDrawer, {
259
- onSave
260
- })]
261
- })]
262
- });
207
+ if (!show) {
208
+ t17 = null;
263
209
  break bb0;
264
210
  }
211
+ t16 = _jsxs("div", {
212
+ className: baseClass,
213
+ id: `${path}-add-new`,
214
+ children: [relatedCollections.length === 1 && _jsxs(Fragment, {
215
+ children: [_jsx(DocumentDrawerToggler, {
216
+ className: [`${baseClass}__add-button`, unstyled && `${baseClass}__add-button--unstyled`].filter(Boolean).join(" "),
217
+ onClick: () => {
218
+ setShowTooltip(false);
219
+ },
220
+ onMouseEnter: () => setShowTooltip(true),
221
+ onMouseLeave: () => setShowTooltip(false),
222
+ children: ButtonFromProps ? ButtonFromProps : _jsxs(Fragment, {
223
+ children: [_jsx(Tooltip, {
224
+ className: `${baseClass}__tooltip`,
225
+ show: showTooltip,
226
+ children: label
227
+ }), _jsx(PlusIcon, {})]
228
+ })
229
+ }), _jsx(DocumentDrawer, {
230
+ onSave
231
+ })]
232
+ }), relatedCollections.length > 1 && _jsxs(Fragment, {
233
+ children: [_jsx(Popup, {
234
+ button: ButtonFromProps ? ButtonFromProps : _jsx(Button, {
235
+ buttonStyle: "none",
236
+ className: `${baseClass}__add-button`,
237
+ tooltip: popupOpen ? undefined : t("fields:addNew"),
238
+ children: _jsx(PlusIcon, {})
239
+ }),
240
+ buttonType: "custom",
241
+ horizontalAlign: "center",
242
+ onToggleOpen: onPopupToggle,
243
+ render: t18 => {
244
+ const {
245
+ close: closePopup
246
+ } = t18;
247
+ return _jsx(PopupList.ButtonGroup, {
248
+ children: relatedCollections.map(relatedCollection => {
249
+ if (permissions.collections[relatedCollection?.slug].create) {
250
+ return _jsx(PopupList.Button, {
251
+ className: `${baseClass}__relation-button--${relatedCollection?.slug}`,
252
+ onClick: () => {
253
+ closePopup();
254
+ setSelectedCollection(relatedCollection?.slug);
255
+ },
256
+ children: getTranslation(relatedCollection?.labels?.singular, i18n)
257
+ }, relatedCollection?.slug);
258
+ }
259
+ return null;
260
+ })
261
+ });
262
+ },
263
+ size: "medium"
264
+ }), collectionConfig && permissions.collections[collectionConfig?.slug]?.create && _jsx(DocumentDrawer, {
265
+ onSave
266
+ })]
267
+ })]
268
+ });
265
269
  }
266
270
  $[30] = ButtonFromProps;
267
271
  $[31] = DocumentDrawer;
@@ -279,12 +283,14 @@ export const AddNewRelation = t0 => {
279
283
  $[43] = t15;
280
284
  $[44] = unstyled;
281
285
  $[45] = t16;
286
+ $[46] = t17;
282
287
  } else {
283
288
  t16 = $[45];
289
+ t17 = $[46];
284
290
  }
285
- if (t16 !== Symbol.for("react.early_return_sentinel")) {
286
- return t16;
291
+ if (t17 !== Symbol.for("react.early_return_sentinel")) {
292
+ return t17;
287
293
  }
288
- return null;
294
+ return t16;
289
295
  };
290
296
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","useEffect","useState","useRelatedCollections","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","Popup","PopupList","Tooltip","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","onChange","path","relationTo","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","showTooltip","setShowTooltip","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","isAutosaveEnabled","versions","drafts","autosave","isNewValue","some","v","id","Array","isArray","onSave","Symbol","for","state","onPopupToggle","t7","t8","collections","create","collection","t10","t9","find","collection_0","t11","t12","t13","t14","t15","labels","singular","t16","label","_jsxs","className","children","_jsx","filter","Boolean","join","onClick","onMouseEnter","onMouseLeave","button","buttonStyle","tooltip","horizontalAlign","onToggleOpen","render","t17","close","closePopup","ButtonGroup","map","relatedCollection"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\nimport type { Props } from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup } from '../Popup/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n onChange,\n path,\n relationTo,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n\n const relatedToMany = relatedCollections.length > 1\n\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n const [showTooltip, setShowTooltip] = useState(false)\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentDrawerContextType['onSave'] = useCallback(\n ({ doc, operation }) => {\n // if autosave is enabled, the operation will be 'update'\n const isAutosaveEnabled =\n typeof collectionConfig?.versions?.drafts === 'object'\n ? collectionConfig.versions.drafts.autosave\n : false\n\n if (operation === 'create' || (operation === 'update' && isAutosaveEnabled)) {\n // ensure the value is not already in the array\n let isNewValue = false\n if (!value) {\n isNewValue = true\n } else {\n isNewValue = Array.isArray(value)\n ? !value.some((v) => v && v.value === doc.id)\n : value.value !== doc.id\n }\n\n if (isNewValue) {\n // dispatchOptions({\n // collection: collectionConfig,\n // // TODO: fix this\n // // @ts-expect-error-next-line\n // type: 'ADD',\n // config,\n // docs: [doc],\n // i18n,\n // sort: true,\n // })\n\n if (hasMany === true) {\n onChange([\n ...(Array.isArray(value) ? value : []),\n {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n },\n ])\n } else {\n onChange({\n relationTo: relatedCollections[0].slug,\n value: doc.id,\n })\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [collectionConfig, hasMany, onChange, value, relatedCollections],\n )\n\n const onPopupToggle = useCallback((state) => {\n setPopupOpen(state)\n }, [])\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0]?.labels.singular, i18n),\n })\n\n if (show) {\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => setShowTooltip(false)}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n >\n {ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Fragment>\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {label}\n </Tooltip>\n <PlusIcon />\n </Fragment>\n )}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n button={\n ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__add-button`}\n tooltip={popupOpen ? undefined : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n onToggleOpen={onPopupToggle}\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug].create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n {collectionConfig && permissions.collections[collectionConfig?.slug]?.create && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n }\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","useEffect","useState","useRelatedCollections","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","Popup","PopupList","Tooltip","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","onChange","path","relationTo","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","showTooltip","setShowTooltip","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","isAutosaveEnabled","versions","drafts","autosave","isNewValue","some","v","id","Array","isArray","onSave","Symbol","for","state","onPopupToggle","t7","t8","collections","create","collection","t10","t9","find","collection_0","t11","t12","t13","t14","t15","labels","singular","t16","t17","bb0","label","_jsxs","className","children","_jsx","filter","Boolean","join","onClick","onMouseEnter","onMouseLeave","button","buttonStyle","tooltip","horizontalAlign","onToggleOpen","render","t18","close","closePopup","ButtonGroup","map","relatedCollection"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\nimport type { Props } from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup } from '../Popup/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n onChange,\n path,\n relationTo,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n\n const relatedToMany = relatedCollections.length > 1\n\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n const [showTooltip, setShowTooltip] = useState(false)\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentDrawerContextType['onSave'] = useCallback(\n ({ doc, operation }) => {\n // if autosave is enabled, the operation will be 'update'\n const isAutosaveEnabled =\n typeof collectionConfig?.versions?.drafts === 'object'\n ? collectionConfig.versions.drafts.autosave\n : false\n\n if (operation === 'create' || (operation === 'update' && isAutosaveEnabled)) {\n // ensure the value is not already in the array\n let isNewValue = false\n if (!value) {\n isNewValue = true\n } else {\n isNewValue = Array.isArray(value)\n ? !value.some((v) => v && v.value === doc.id)\n : value.value !== doc.id\n }\n\n if (isNewValue) {\n if (hasMany === true) {\n onChange([\n ...(Array.isArray(value) ? value : []),\n {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n },\n ])\n } else {\n onChange({\n relationTo: relatedCollections[0].slug,\n value: doc.id,\n })\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [collectionConfig, hasMany, onChange, value, relatedCollections],\n )\n\n const onPopupToggle = useCallback((state) => {\n setPopupOpen(state)\n }, [])\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0]?.labels.singular, i18n),\n })\n\n if (!show) {\n return null\n }\n\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => {\n setShowTooltip(false)\n }}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n >\n {ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Fragment>\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {label}\n </Tooltip>\n <PlusIcon />\n </Fragment>\n )}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n button={\n ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__add-button`}\n tooltip={popupOpen ? undefined : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n onToggleOpen={onPopupToggle}\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug].create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n {collectionConfig && permissions.collections[collectionConfig?.slug]?.create && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAKlE,SAASC,qBAAqB,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AACzB,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,KAAK,QAAQ;AACtB,YAAYC,SAAA,MAAe;AAC3B,SAASC,OAAO,QAAQ;AACxB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,cAAA,GAAkCC,EAAA;EAAA,MAAAC,CAAA,GAAAnB,EAAA;EAAC;IAAAW,MAAA,EAAAS,eAAA;IAAAC,OAAA;IAAAC,QAAA;IAAAC,IAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC;EAAA,IAAAR,EAQ/C;EACC,MAAAS,kBAAA,GAA2BpB,qBAAA,CAAsBiB,UAAA;EACjD;IAAAI;EAAA,IAAwBnB,OAAA;EACxB,OAAAoB,IAAA,EAAAC,OAAA,IAAwBxB,QAAA,MAAS;EACjC,OAAAyB,kBAAA,EAAAC,qBAAA,IAAoD1B,QAAA;EAEpD,MAAA2B,aAAA,GAAsBN,kBAAA,CAAAO,MAAA,IAA4B;EAAA,IAAAC,EAAA;EAAA,IAAAhB,CAAA,QAAAQ,kBAAA,OAAAR,CAAA,QAAAc,aAAA;IAE+BE,EAAA,GAAAA,CAAA,KAC/E,CAACF,aAAA,GAAgBN,kBAAkB,MAAAS,SAAM;IAAAjB,CAAA,MAAAQ,kBAAA;IAAAR,CAAA,MAAAc,aAAA;IAAAd,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAD3C,OAAAkB,gBAAA,EAAAC,mBAAA,IAAgDhC,QAAA,CAAiC6B,EACtC;EAG3C,OAAAI,SAAA,EAAAC,YAAA,IAAkClC,QAAA,MAAS;EAC3C;IAAAmC,IAAA;IAAAC;EAAA,IAAoBhC,cAAA;EACpB,OAAAiC,WAAA,EAAAC,cAAA,IAAsCtC,QAAA,MAAS;EAI3B,MAAAuC,EAAA,GAAAR,gBAAA,EAAAS,IAAA;EAAkB,IAAAC,EAAA;EAAA,IAAA5B,CAAA,QAAA0B,EAAA;IADpCE,EAAA;MAAAC,cAAA,EACkBH;IAAkB;IACpC1B,CAAA,MAAA0B,EAAA;IAAA1B,CAAA,MAAA4B,EAAA;EAAA;IAAAA,EAAA,GAAA5B,CAAA;EAAA;EAHF,OAAA8B,cAAA,EAAAC,qBAAA,EAAAC,EAAA,IAAgFvC,iBAAA,CAC9EmC,EAEA;EAH4C;IAAAK,YAAA;IAAAC;EAAA,IAAAF,EAA8B;EAAA,IAAAG,EAAA;EAAA,IAAAnC,CAAA,QAAAkB,gBAAA,IAAAlB,CAAA,QAAAE,OAAA,IAAAF,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAQ,kBAAA,OAAAR,CAAA,QAAAO,KAAA;IAO1E4B,EAAA,GAAAC,EAAA;MAAC;QAAAC,GAAA;QAAAC;MAAA,IAAAF,EAAkB;MAEjB,MAAAG,iBAAA,GACE,OAAOrB,gBAAA,EAAAsB,QAAA,EAAAC,MAAA,KAAuC,WAC1CvB,gBAAA,CAAAsB,QAAA,CAAAC,MAAA,CAAAC,QAAA,QACA;MAAA,IAEFJ,SAAA,KAAc,YAAaA,SAAA,KAAc,YAAYC,iBAAA;QAEvD,IAAAI,UAAA;QAAiB,KACZpC,KAAA;UACHoC,UAAA,CAAAA,CAAA,CAAAA,IAAA;QAAA;UAEAA,UAAA,CAAAA,CAAA,CAAaA,cAAcpC,KAAA,KACtBA,KAAA,CAAAqC,IAAA,CAAAC,CAAA,IAAkBA,CAAA,IAAKA,CAAA,CAAAtC,KAAA,KAAY8B,GAAA,CAAAS,EAAM,IAC1CvC,KAAA,CAAAA,KAAA,KAAgB8B,GAAA,CAAAS,EAAM;QAF1B;QAAA,IAKEH,UAAA;UAAA,IACEzC,OAAA,SAAY;YACdC,QAAA,MACM4C,KAAA,CAAAC,OAAA,CAAczC,KAAA,IAASA,KAAA,KAAU;cAAAF,UAAA,EAEvBa,gBAAA,EAAAS,IAAA;cAAApB,KAAA,EACL8B,GAAA,CAAAS;YAAA,EAEV;UAAA;YAED3C,QAAA;cAAAE,UAAA,EACcG,kBAAkB,IAAAmB,IAAA;cAAApB,KAAA,EACvB8B,GAAA,CAAAS;YAAA,CACT;UAAA;QAAA;QAIJjC,qBAAA,CAAAI,SAAsB;MAAA;IAAA;IAE1BjB,CAAA,MAAAkB,gBAAA;IAAAlB,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAQ,kBAAA;IAAAR,CAAA,MAAAO,KAAA;IAAAP,CAAA,OAAAmC,EAAA;EAAA;IAAAA,EAAA,GAAAnC,CAAA;EAAA;EAtCF,MAAAiD,MAAA,GAAoDd,EAuCc;EAAA,IAAAC,EAAA;EAAA,IAAApC,CAAA,SAAAkD,MAAA,CAAAC,GAAA;IAGhCf,EAAA,GAAAgB,KAAA;MAChC/B,YAAA,CAAa+B,KAAA;IAAA;IACfpD,CAAA,OAAAoC,EAAA;EAAA;IAAAA,EAAA,GAAApC,CAAA;EAAA;EAFA,MAAAqD,aAAA,GAAsBjB,EAEjB;EAAA,IAAAkB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAvD,CAAA,SAAAS,WAAA,IAAAT,CAAA,SAAAQ,kBAAA;IAEK8C,EAAA,GAAAA,CAAA;MAAA,IACJ7C,WAAA;QAAA,IACED,kBAAA,CAAAO,MAAA,MAA8B;UAChCJ,OAAA,CAAQF,WAAA,CAAA+C,WAAA,CAAwBhD,kBAAkB,KAAAmB,IAAA,GAAA8B,MAAY;QAAA;UAE9D9C,OAAA,CACEH,kBAAA,CAAAoC,IAAA,CAAAc,UAAA,IACkBjD,WAAA,CAAA+C,WAAA,CAAwBE,UAAA,EAAA/B,IAAA,GAAA8B,MAAmB;QAAA;MAAA;IAAA;IAKlEF,EAAA,IAAC9C,WAAA,EAAaD,kBAAA;IAAmBR,CAAA,OAAAS,WAAA;IAAAT,CAAA,OAAAQ,kBAAA;IAAAR,CAAA,OAAAsD,EAAA;IAAAtD,CAAA,OAAAuD,EAAA;EAAA;IAAAD,EAAA,GAAAtD,CAAA;IAAAuD,EAAA,GAAAvD,CAAA;EAAA;EAZpCd,SAAA,CAAUoE,EAYV,EAAGC,EAAiC;EAAA,IAAAI,GAAA;EAAA,IAAAC,EAAA;EAAA,IAAA5D,CAAA,SAAAQ,kBAAA,IAAAR,CAAA,SAAAc,aAAA,IAAAd,CAAA,SAAAY,kBAAA;IAE1BgD,EAAA,GAAAA,CAAA;MAAA,IACJ9C,aAAA,IAAiBF,kBAAA;QACnBO,mBAAA,CACEX,kBAAA,CAAAqD,IAAA,CAAAC,YAAA,IAAwCJ,YAAA,EAAA/B,IAAA,KAAqBf,kBAAA;MAAA;IAAA;IAGhE+C,GAAA,IAAC/C,kBAAA,EAAoBE,aAAA,EAAeN,kBAAA;IAAmBR,CAAA,OAAAQ,kBAAA;IAAAR,CAAA,OAAAc,aAAA;IAAAd,CAAA,OAAAY,kBAAA;IAAAZ,CAAA,OAAA2D,GAAA;IAAA3D,CAAA,OAAA4D,EAAA;EAAA;IAAAD,GAAA,GAAA3D,CAAA;IAAA4D,EAAA,GAAA5D,CAAA;EAAA;EAN1Dd,SAAA,CAAU0E,EAMV,EAAGD,GAAuD;EAAA,IAAAI,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAAhE,CAAA,SAAAkB,gBAAA,IAAAlB,CAAA,SAAAc,aAAA,IAAAd,CAAA,SAAAkC,YAAA;IAEhD6B,GAAA,GAAAA,CAAA;MAAA,IACJjD,aAAA,IAAiBI,gBAAA;QAGnBgB,YAAA;QACArB,qBAAA,CAAAI,SAAsB;MAAA;IAAA;IAEvB+C,GAAA,IAAC9B,YAAA,EAAcpB,aAAA,EAAeI,gBAAA;IAAiBlB,CAAA,OAAAkB,gBAAA;IAAAlB,CAAA,OAAAc,aAAA;IAAAd,CAAA,OAAAkC,YAAA;IAAAlC,CAAA,OAAA+D,GAAA;IAAA/D,CAAA,OAAAgE,GAAA;EAAA;IAAAD,GAAA,GAAA/D,CAAA;IAAAgE,GAAA,GAAAhE,CAAA;EAAA;EAPlDd,SAAA,CAAU6E,GAOV,EAAGC,GAA+C;EAAA,IAAAC,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAAlE,CAAA,SAAAiC,YAAA,IAAAjC,CAAA,SAAAc,aAAA;IAExCmD,GAAA,GAAAA,CAAA;MAAA,IACJnD,aAAA,KAAkBmB,YAAA;QACpBd,mBAAA,CAAAF,SAAoB;MAAA;IAAA;IAErBiD,GAAA,IAACjC,YAAA,EAAcnB,aAAA;IAAcd,CAAA,OAAAiC,YAAA;IAAAjC,CAAA,OAAAc,aAAA;IAAAd,CAAA,OAAAiE,GAAA;IAAAjE,CAAA,OAAAkE,GAAA;EAAA;IAAAD,GAAA,GAAAjE,CAAA;IAAAkE,GAAA,GAAAlE,CAAA;EAAA;EAJhCd,SAAA,CAAU+E,GAIV,EAAGC,GAA6B;EAGR,MAAAC,GAAA,GAAA3D,kBAAkB,KAAA4D,MAAA,CAAAC,QAAA;EAAY,IAAAC,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAAvE,CAAA,SAAAC,eAAA,IAAAD,CAAA,SAAA8B,cAAA,IAAA9B,CAAA,SAAA+B,qBAAA,IAAA/B,CAAA,SAAAkB,gBAAA,IAAAlB,CAAA,SAAAsB,IAAA,IAAAtB,CAAA,SAAAiD,MAAA,IAAAjD,CAAA,SAAAI,IAAA,IAAAJ,CAAA,SAAAS,WAAA,IAAAT,CAAA,SAAAoB,SAAA,IAAApB,CAAA,SAAAQ,kBAAA,IAAAR,CAAA,SAAAU,IAAA,IAAAV,CAAA,SAAAwB,WAAA,IAAAxB,CAAA,SAAAuB,CAAA,IAAAvB,CAAA,SAAAmE,GAAA,IAAAnE,CAAA,SAAAM,QAAA;IAI7CiE,GAAA,GAAArB,MAAA,CAAAC,GAAA;IAAAqB,GAAA;MALT,MAAAC,KAAA,GAAclD,CAAA,CAAE;QAAAkD,KAAA,EACP3F,cAAA,CAAeqF,GAA8B,EAAU7C,IAAA;MAAA,CAChE;MAAA,KAEKZ,IAAA;QACI6D,GAAA;QAAA,MAAAC,GAAA;MAAA;MAIPF,GAAA,GAAAI,KAAA,CAAC;QAAAC,SAAA,EAAA9E,SAAA;QAAAiD,EAAA,EAA8B,GAAG1C,IAAA,UAAc;QAAAwE,QAAA,GAC7CpE,kBAAA,CAAAO,MAAA,MAA8B,IAC7B2D,KAAA,CAAA1F,QAAA;UAAA4F,QAAA,GACEC,IAAA,CAAC9C,qBAAA;YAAA4C,SAAA,EACY,CACT,GAAA9E,SAAA,cAA0B,EAC1BS,QAAA,IAAY,GAAAT,SAAA,wBAAoC,EAAAiF,MAAA,CAAAC,OAExC,EAAAC,IAAA,CACF;YAAAC,OAAA,EAAAA,CAAA;cAENxD,cAAA,MAAe;YAAA;YAAAyD,YAAA,EAAAA,CAAA,KAEGzD,cAAA,KAAe;YAAA0D,YAAA,EAAAA,CAAA,KACf1D,cAAA,MAAe;YAAAmD,QAAA,EAElC3E,eAAA,GACCA,eAAA,GAEAyE,KAAA,CAAA1F,QAAA;cAAA4F,QAAA,GACEC,IAAA,CAAAjF,OAAA;gBAAA+E,SAAA,EAAoB,GAAA9E,SAAA,WAAuB;gBAAAa,IAAA,EAAQc,WAAA;gBAAAoD,QAAA,EAChDH;cAAA,C,GAEHI,IAAA,CAAAxF,QAAA,IAAC;YAAA,C;cAIPwF,IAAA,CAAC/C,cAAA;YAAAmB;UAAA,C;YAGJzC,kBAAA,CAAAO,MAAA,IAA4B,IAC3B2D,KAAA,CAAA1F,QAAA;UAAA4F,QAAA,GACEC,IAAA,CAAAnF,KAAA;YAAA0F,MAAA,EAEInF,eAAA,GACEA,eAAA,GAEA4E,IAAA,CAAArF,MAAA;cAAA6F,WAAA,EACc;cAAAV,SAAA,EACD,GAAA9E,SAAA,cAA0B;cAAAyF,OAAA,EAC5BlE,SAAA,GAAAH,SAAA,GAAwBM,CAAA,CAAE;cAAAqD,QAAA,EAEnCC,IAAA,CAAAxF,QAAA,IAAC;YAAA,C;wBAII;YAAAkG,eAAA,EACK;YAAAC,YAAA,EACFnC,aAAA;YAAAoC,MAAA,EAAAC,GAAA;cACL;gBAAAC,KAAA,EAAAC;cAAA,IAAAF,GAAqB;cAAA,OAC5Bb,IAAA,CAAAlF,SAAA,CAAAkG,WAAA;gBAAAjB,QAAA,EACGpE,kBAAA,CAAAsF,GAAA,CAAAC,iBAAA;kBAAA,IACKtF,WAAA,CAAA+C,WAAA,CAAwBuC,iBAAA,EAAApE,IAAA,EAAA8B,MAAA;oBAAA,OAExBoB,IAAA,CAAAlF,SAAA,CAAAH,MAAA;sBAAAmF,SAAA,EACa,GAAA9E,SAAA,sBAAkCkG,iBAAA,EAAApE,IAAA,EAAyB;sBAAAsD,OAAA,EAAAA,CAAA;wBAGpEW,UAAA;wBACA/E,qBAAA,CAAsBkF,iBAAA,EAAApE,IAAmB;sBAAA;sBAAAiD,QAAA,EAG1C9F,cAAA,CAAeiH,iBAAA,EAAA3B,MAAA,EAAAC,QAAA,EAAqC/C,IAAA;oBAAA,GANhDyE,iBAAA,EAAApE,IAAmB;kBAAA;kBAAA;gBAAA,CAYhC;cAAA,C;;kBAGC;UAAA,C,GAENT,gBAAA,IAAoBT,WAAA,CAAA+C,WAAA,CAAwBtC,gBAAA,EAAAS,IAAA,GAAA8B,MAAyB,IACpEoB,IAAA,CAAC/C,cAAA;YAAAmB;UAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA1ETqB,G;CAgFJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,cAAc,CAAA;AAMrB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0D/B,CAAA;AAGD,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,cAAc,CAAA;AAMrB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyE/B,CAAA;AAGD,eAAe,UAAU,CAAA"}
@@ -10,7 +10,7 @@ import './index.scss';
10
10
  const Editor = 'default' in EditorImport ? EditorImport.default : EditorImport;
11
11
  const baseClass = 'code-editor';
12
12
  const CodeEditor = props => {
13
- const $ = _c(26);
13
+ const $ = _c(42);
14
14
  let className;
15
15
  let maxHeight;
16
16
  let minHeight;
@@ -42,54 +42,102 @@ const CodeEditor = props => {
42
42
  rest = $[6];
43
43
  }
44
44
  const MIN_HEIGHT = minHeight ?? 56;
45
+ let t0;
46
+ if ($[7] !== options) {
47
+ t0 = options || {};
48
+ $[7] = options;
49
+ $[8] = t0;
50
+ } else {
51
+ t0 = $[8];
52
+ }
53
+ let editorOptions;
54
+ let insertSpaces;
55
+ let tabSize;
56
+ let trimAutoWhitespace;
57
+ if ($[9] !== t0) {
58
+ ({
59
+ insertSpaces,
60
+ tabSize,
61
+ trimAutoWhitespace,
62
+ ...editorOptions
63
+ } = t0);
64
+ $[9] = t0;
65
+ $[10] = editorOptions;
66
+ $[11] = insertSpaces;
67
+ $[12] = tabSize;
68
+ $[13] = trimAutoWhitespace;
69
+ } else {
70
+ editorOptions = $[10];
71
+ insertSpaces = $[11];
72
+ tabSize = $[12];
73
+ trimAutoWhitespace = $[13];
74
+ }
45
75
  const paddingFromProps = options?.padding ? (options.padding.top || 0) + (options.padding?.bottom || 0) : 0;
46
76
  const [dynamicHeight, setDynamicHeight] = useState(MIN_HEIGHT);
47
77
  const {
48
78
  theme
49
79
  } = useTheme();
50
- const t0 = rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : "";
51
- const t1 = readOnly && "read-only";
52
- let t2;
53
- if ($[7] !== className || $[8] !== t0 || $[9] !== t1) {
54
- t2 = [baseClass, className, t0, t1].filter(Boolean);
55
- $[7] = className;
56
- $[8] = t0;
57
- $[9] = t1;
58
- $[10] = t2;
80
+ const t1 = rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : "";
81
+ const t2 = readOnly && "read-only";
82
+ let t3;
83
+ if ($[14] !== className || $[15] !== t1 || $[16] !== t2) {
84
+ t3 = [baseClass, className, t1, t2].filter(Boolean);
85
+ $[14] = className;
86
+ $[15] = t1;
87
+ $[16] = t2;
88
+ $[17] = t3;
59
89
  } else {
60
- t2 = $[10];
90
+ t3 = $[17];
61
91
  }
62
- const classes = t2.join(" ");
63
- let t3;
64
- if ($[11] !== MIN_HEIGHT || $[12] !== classes || $[13] !== dynamicHeight || $[14] !== maxHeight || $[15] !== options || $[16] !== paddingFromProps || $[17] !== readOnly || $[18] !== rest || $[19] !== theme) {
65
- let t4;
92
+ const classes = t3.join(" ");
93
+ let t4;
94
+ if ($[18] !== MIN_HEIGHT || $[19] !== classes || $[20] !== dynamicHeight || $[21] !== editorOptions || $[22] !== insertSpaces || $[23] !== maxHeight || $[24] !== paddingFromProps || $[25] !== readOnly || $[26] !== rest || $[27] !== tabSize || $[28] !== theme || $[29] !== trimAutoWhitespace) {
66
95
  let t5;
67
- if ($[21] !== MIN_HEIGHT || $[22] !== paddingFromProps || $[23] !== rest) {
68
- t4 = (value, ev) => {
96
+ if ($[31] !== MIN_HEIGHT || $[32] !== paddingFromProps || $[33] !== rest) {
97
+ t5 = (value, ev) => {
69
98
  rest.onChange?.(value, ev);
70
99
  setDynamicHeight(Math.max(MIN_HEIGHT, value.split("\n").length * 18 + 2 + paddingFromProps));
71
100
  };
72
- t5 = (editor, monaco) => {
101
+ $[31] = MIN_HEIGHT;
102
+ $[32] = paddingFromProps;
103
+ $[33] = rest;
104
+ $[34] = t5;
105
+ } else {
106
+ t5 = $[34];
107
+ }
108
+ let t6;
109
+ if ($[35] !== MIN_HEIGHT || $[36] !== insertSpaces || $[37] !== paddingFromProps || $[38] !== rest || $[39] !== tabSize || $[40] !== trimAutoWhitespace) {
110
+ t6 = (editor, monaco) => {
73
111
  rest.onMount?.(editor, monaco);
112
+ const model = editor.getModel();
113
+ if (model) {
114
+ model.updateOptions({
115
+ insertSpaces: insertSpaces ?? true,
116
+ tabSize: tabSize ?? 4,
117
+ trimAutoWhitespace: trimAutoWhitespace ?? true
118
+ });
119
+ }
74
120
  setDynamicHeight(Math.max(MIN_HEIGHT, editor.getValue().split("\n").length * 18 + 2 + paddingFromProps));
75
121
  };
76
- $[21] = MIN_HEIGHT;
77
- $[22] = paddingFromProps;
78
- $[23] = rest;
79
- $[24] = t4;
80
- $[25] = t5;
122
+ $[35] = MIN_HEIGHT;
123
+ $[36] = insertSpaces;
124
+ $[37] = paddingFromProps;
125
+ $[38] = rest;
126
+ $[39] = tabSize;
127
+ $[40] = trimAutoWhitespace;
128
+ $[41] = t6;
81
129
  } else {
82
- t4 = $[24];
83
- t5 = $[25];
130
+ t6 = $[41];
84
131
  }
85
- t3 = _jsx(Editor, {
132
+ t4 = _jsx(Editor, {
86
133
  className: classes,
87
134
  loading: _jsx(ShimmerEffect, {
88
135
  height: dynamicHeight
89
136
  }),
90
137
  options: {
91
- detectIndentation: true,
138
+ detectIndentation: false,
92
139
  hideCursorInOverviewRuler: true,
140
+ insertSpaces: false,
93
141
  minimap: {
94
142
  enabled: false
95
143
  },
@@ -99,30 +147,33 @@ const CodeEditor = props => {
99
147
  alwaysConsumeMouseWheel: false
100
148
  },
101
149
  scrollBeyondLastLine: false,
102
- tabSize: 2,
150
+ trimAutoWhitespace: false,
103
151
  wordWrap: "on",
104
- ...options
152
+ ...editorOptions
105
153
  },
106
154
  theme: theme === "dark" ? "vs-dark" : "vs",
107
155
  ...rest,
108
156
  height: maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight,
109
- onChange: t4,
110
- onMount: t5
157
+ onChange: t5,
158
+ onMount: t6
111
159
  });
112
- $[11] = MIN_HEIGHT;
113
- $[12] = classes;
114
- $[13] = dynamicHeight;
115
- $[14] = maxHeight;
116
- $[15] = options;
117
- $[16] = paddingFromProps;
118
- $[17] = readOnly;
119
- $[18] = rest;
120
- $[19] = theme;
121
- $[20] = t3;
160
+ $[18] = MIN_HEIGHT;
161
+ $[19] = classes;
162
+ $[20] = dynamicHeight;
163
+ $[21] = editorOptions;
164
+ $[22] = insertSpaces;
165
+ $[23] = maxHeight;
166
+ $[24] = paddingFromProps;
167
+ $[25] = readOnly;
168
+ $[26] = rest;
169
+ $[27] = tabSize;
170
+ $[28] = theme;
171
+ $[29] = trimAutoWhitespace;
172
+ $[30] = t4;
122
173
  } else {
123
- t3 = $[20];
174
+ t4 = $[30];
124
175
  }
125
- return t3;
176
+ return t4;
126
177
  };
127
178
  // eslint-disable-next-line no-restricted-exports
128
179
  export default CodeEditor;
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.js","names":["c","_c","EditorImport","React","useState","useTheme","ShimmerEffect","Editor","default","baseClass","CodeEditor","props","$","className","maxHeight","minHeight","options","readOnly","rest","MIN_HEIGHT","paddingFromProps","padding","top","bottom","dynamicHeight","setDynamicHeight","theme","t0","defaultLanguage","t1","t2","filter","Boolean","classes","join","t3","t4","t5","value","ev","onChange","Math","max","split","length","editor","monaco","onMount","getValue","_jsx","loading","height","scrollbar","alwaysConsumeMouseWheel","scrollBeyondLastLine","tabSize","wordWrap","min"],"sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"sourcesContent":["'use client'\nimport EditorImport from '@monaco-editor/react'\nimport React, { useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTheme } from '../../providers/Theme/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport './index.scss'\n\nconst Editor = 'default' in EditorImport ? EditorImport.default : EditorImport\n\nconst baseClass = 'code-editor'\n\nconst CodeEditor: React.FC<Props> = (props) => {\n const { className, maxHeight, minHeight, options, readOnly, ...rest } = props\n const MIN_HEIGHT = minHeight ?? 56 // equivalent to 3 lines\n const paddingFromProps = options?.padding\n ? (options.padding.top || 0) + (options.padding?.bottom || 0)\n : 0\n\n const [dynamicHeight, setDynamicHeight] = useState(MIN_HEIGHT)\n const { theme } = useTheme()\n\n const classes = [\n baseClass,\n className,\n rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : '',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <Editor\n className={classes}\n loading={<ShimmerEffect height={dynamicHeight} />}\n options={{\n detectIndentation: true,\n hideCursorInOverviewRuler: true,\n minimap: {\n enabled: false,\n },\n overviewRulerBorder: false,\n readOnly: Boolean(readOnly),\n scrollbar: {\n alwaysConsumeMouseWheel: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n wordWrap: 'on',\n ...options,\n }}\n theme={theme === 'dark' ? 'vs-dark' : 'vs'}\n {...rest}\n // Since we are not building an IDE and the container\n // can already have scrolling, we want the height of the\n // editor to fit its content.\n // See: https://github.com/microsoft/monaco-editor/discussions/3677\n height={maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight}\n onChange={(value, ev) => {\n rest.onChange?.(value, ev)\n setDynamicHeight(Math.max(MIN_HEIGHT, value.split('\\n').length * 18 + 2 + paddingFromProps))\n }}\n onMount={(editor, monaco) => {\n rest.onMount?.(editor, monaco)\n setDynamicHeight(\n Math.max(MIN_HEIGHT, editor.getValue().split('\\n').length * 18 + 2 + paddingFromProps),\n )\n }}\n />\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default CodeEditor\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CodeEditor.js","names":["c","_c","EditorImport","React","useState","useTheme","ShimmerEffect","Editor","default","baseClass","CodeEditor","props","$","className","maxHeight","minHeight","options","readOnly","rest","MIN_HEIGHT","t0","editorOptions","insertSpaces","tabSize","trimAutoWhitespace","paddingFromProps","padding","top","bottom","dynamicHeight","setDynamicHeight","theme","t1","defaultLanguage","t2","t3","filter","Boolean","classes","join","t4","t5","value","ev","onChange","Math","max","split","length","t6","editor","monaco","onMount","model","getModel","updateOptions","getValue","_jsx","loading","height","scrollbar","alwaysConsumeMouseWheel","scrollBeyondLastLine","wordWrap","min"],"sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"sourcesContent":["'use client'\nimport EditorImport from '@monaco-editor/react'\nimport React, { useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTheme } from '../../providers/Theme/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport './index.scss'\n\nconst Editor = 'default' in EditorImport ? EditorImport.default : EditorImport\n\nconst baseClass = 'code-editor'\n\nconst CodeEditor: React.FC<Props> = (props) => {\n const { className, maxHeight, minHeight, options, readOnly, ...rest } = props\n const MIN_HEIGHT = minHeight ?? 56 // equivalent to 3 lines\n\n // Extract per-model settings to avoid global conflicts\n const { insertSpaces, tabSize, trimAutoWhitespace, ...editorOptions } = options || {}\n const paddingFromProps = options?.padding\n ? (options.padding.top || 0) + (options.padding?.bottom || 0)\n : 0\n\n const [dynamicHeight, setDynamicHeight] = useState(MIN_HEIGHT)\n const { theme } = useTheme()\n\n const classes = [\n baseClass,\n className,\n rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : '',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <Editor\n className={classes}\n loading={<ShimmerEffect height={dynamicHeight} />}\n options={{\n detectIndentation: false, // use the tabSize on the model, set onMount\n hideCursorInOverviewRuler: true,\n insertSpaces: false,\n minimap: {\n enabled: false,\n },\n overviewRulerBorder: false,\n readOnly: Boolean(readOnly),\n scrollbar: {\n alwaysConsumeMouseWheel: false,\n },\n scrollBeyondLastLine: false,\n trimAutoWhitespace: false,\n wordWrap: 'on',\n ...editorOptions,\n }}\n theme={theme === 'dark' ? 'vs-dark' : 'vs'}\n {...rest}\n // Since we are not building an IDE and the container\n // can already have scrolling, we want the height of the\n // editor to fit its content.\n // See: https://github.com/microsoft/monaco-editor/discussions/3677\n height={maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight}\n onChange={(value, ev) => {\n rest.onChange?.(value, ev)\n setDynamicHeight(Math.max(MIN_HEIGHT, value.split('\\n').length * 18 + 2 + paddingFromProps))\n }}\n onMount={(editor, monaco) => {\n rest.onMount?.(editor, monaco)\n\n // Set per-model options to avoid global conflicts\n const model = editor.getModel()\n if (model) {\n model.updateOptions({\n insertSpaces: insertSpaces ?? true,\n tabSize: tabSize ?? 4,\n trimAutoWhitespace: trimAutoWhitespace ?? true,\n })\n }\n\n setDynamicHeight(\n Math.max(MIN_HEIGHT, editor.getValue().split('\\n').length * 18 + 2 + paddingFromProps),\n )\n }}\n />\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default CodeEditor\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsK/D,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwK/D,CAAA"}
@@ -12,7 +12,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
12
12
  import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
13
13
  import { DocumentDrawerContextProvider } from './Provider.js';
14
14
  export const DocumentDrawerContent = ({
15
- id: existingDocID,
15
+ id: docID,
16
16
  collectionSlug,
17
17
  disableActions,
18
18
  drawerSlug,
@@ -46,7 +46,7 @@ export const DocumentDrawerContent = ({
46
46
  const [DocumentView, setDocumentView] = useState(undefined);
47
47
  const [isLoading, setIsLoading] = useState(true);
48
48
  const hasInitialized = useRef(false);
49
- const getDocumentView = useCallback((docID, showLoadingIndicator = false) => {
49
+ const getDocumentView = useCallback((docID_0, showLoadingIndicator = false) => {
50
50
  const controller = handleAbortRef(abortGetDocumentViewRef);
51
51
  const fetchDocumentView = async () => {
52
52
  if (showLoadingIndicator) {
@@ -56,7 +56,7 @@ export const DocumentDrawerContent = ({
56
56
  const result = await renderDocument({
57
57
  collectionSlug,
58
58
  disableActions,
59
- docID,
59
+ docID: docID_0,
60
60
  drawerSlug,
61
61
  initialData,
62
62
  locale,
@@ -74,14 +74,15 @@ export const DocumentDrawerContent = ({
74
74
  } catch (error) {
75
75
  toast.error(error?.message || t('error:unspecific'));
76
76
  closeModal(drawerSlug);
77
- // toast.error(data?.errors?.[0].message || t('error:unspecific'))
78
77
  }
79
78
  abortGetDocumentViewRef.current = null;
80
79
  };
81
80
  void fetchDocumentView();
82
81
  }, [collectionSlug, disableActions, drawerSlug, initialData, redirectAfterDelete, redirectAfterDuplicate, redirectAfterRestore, renderDocument, redirectAfterCreate, closeModal, overrideEntityVisibility, t, locale]);
83
82
  const onSave = useCallback(args => {
84
- getDocumentView(args.doc.id);
83
+ if (args.operation === 'create') {
84
+ getDocumentView(args.doc.id);
85
+ }
85
86
  if (typeof onSaveFromProps === 'function') {
86
87
  void onSaveFromProps({
87
88
  ...args,
@@ -112,10 +113,10 @@ export const DocumentDrawerContent = ({
112
113
  }, [getDocumentView]);
113
114
  useEffect(() => {
114
115
  if (!DocumentView && !hasInitialized.current) {
115
- getDocumentView(existingDocID, true);
116
+ getDocumentView(docID, true);
116
117
  hasInitialized.current = true;
117
118
  }
118
- }, [DocumentView, getDocumentView, existingDocID]);
119
+ }, [DocumentView, getDocumentView, docID]);
119
120
  // Cleanup any pending requests when the component unmounts
120
121
  useEffect(() => {
121
122
  const abortGetDocumentView = abortGetDocumentViewRef.current;
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","getEntityConfig","locale","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","docID","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n}) => {\n const { getEntityConfig } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string, showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(existingDocID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAChE,SAASC,KAAK,QAAQ;AAItB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAC/C,SAASC,6BAA6B,QAAQ;AAE9C,OAAO,MAAMC,qBAAA,GAAuDA,CAAC;EACnEC,EAAA,EAAIC,aAAa;EACjBC,cAAc;EACdC,cAAc;EACdC,UAAU;EACVC,WAAW;EACXC,QAAA,EAAUC,iBAAiB;EAC3BC,WAAA,EAAaC,oBAAoB;EACjCC,MAAA,EAAQC,eAAe;EACvBC,wBAAA,GAA2B,IAAI;EAC/BC,mBAAmB;EACnBC,mBAAmB;EACnBC,sBAAsB;EACtBC;AAAoB,CACrB;EACC,MAAM;IAAEC;EAAe,CAAE,GAAGzB,SAAA;EAC5B,MAAM0B,MAAA,GAASzB,SAAA;EAEf,MAAM,CAAC0B,gBAAA,CAAiB,GAAG9B,QAAA,CAAS,MAAM4B,eAAA,CAAgB;IAAEf;EAAe;EAE3E,MAAMkB,uBAAA,GAA0BnC,KAAA,CAAMG,MAAM,CAAkB;EAE9D,MAAM;IAAEiC;EAAU,CAAE,GAAGrC,QAAA;EACvB,MAAM;IAAEsC;EAAC,CAAE,GAAG3B,cAAA;EAEd,MAAM;IAAE4B;EAAc,CAAE,GAAG7B,kBAAA;EAE3B,MAAM,CAAC8B,YAAA,EAAcC,eAAA,CAAgB,GAAGpC,QAAA,CAA0BqC,SAAA;EAClE,MAAM,CAACC,SAAA,EAAWC,YAAA,CAAa,GAAGvC,QAAA,CAAS;EAC3C,MAAMwC,cAAA,GAAiBzC,MAAA,CAAO;EAE9B,MAAM0C,eAAA,GAAkB5C,WAAA,CACtB,CAAC6C,KAAA,EAAyBC,oBAAA,GAAgC,KAAK;IAC7D,MAAMC,UAAA,GAAapC,cAAA,CAAeuB,uBAAA;IAElC,MAAMc,iBAAA,GAAoB,MAAAA,CAAA;MACxB,IAAIF,oBAAA,EAAsB;QACxBJ,YAAA,CAAa;MACf;MAEA,IAAI;QACF,MAAMO,MAAA,GAAS,MAAMZ,cAAA,CAAe;UAClCrB,cAAA;UACAC,cAAA;UACA4B,KAAA;UACA3B,UAAA;UACAC,WAAA;UACAa,MAAA;UACAN,wBAAA;UACAC,mBAAA;UACAC,mBAAA,EAAqBA,mBAAA,KAAwBY,SAAA,GAAYZ,mBAAA,GAAsB;UAC/EC,sBAAA,EACEA,sBAAA,KAA2BW,SAAA,GAAYX,sBAAA,GAAyB;UAClEC,oBAAA,EAAsBA,oBAAA,KAAyBU,SAAA,GAAYV,oBAAA,GAAuB;UAClFoB,MAAA,EAAQH,UAAA,CAAWG;QACrB;QAEA,IAAID,MAAA,EAAQE,QAAA,EAAU;UACpBZ,eAAA,CAAgBU,MAAA,CAAOE,QAAQ;UAC/BT,YAAA,CAAa;QACf;MACF,EAAE,OAAOU,KAAA,EAAO;QACdhD,KAAA,CAAMgD,KAAK,CAACA,KAAA,EAAOC,OAAA,IAAWjB,CAAA,CAAE;QAChCD,UAAA,CAAWjB,UAAA;QACX;MACF;MAEAgB,uBAAA,CAAwBoB,OAAO,GAAG;IACpC;IAEA,KAAKN,iBAAA;EACP,GACA,CACEhC,cAAA,EACAC,cAAA,EACAC,UAAA,EACAC,WAAA,EACAS,mBAAA,EACAC,sBAAA,EACAC,oBAAA,EACAO,cAAA,EACAV,mBAAA,EACAQ,UAAA,EACAT,wBAAA,EACAU,CAAA,EACAJ,MAAA,CACD;EAGH,MAAMR,MAAA,GAASxB,WAAA,CACZuD,IAAA;IACCX,eAAA,CAAgBW,IAAA,CAAKC,GAAG,CAAC1C,EAAE;IAE3B,IAAI,OAAOW,eAAA,KAAoB,YAAY;MACzC,KAAKA,eAAA,CAAgB;QACnB,GAAG8B,IAAI;QACPtB;MACF;IACF;EACF,GACA,CAACR,eAAA,EAAiBQ,gBAAA,EAAkBW,eAAA,CAAgB;EAGtD,MAAMtB,WAAA,GAActB,WAAA,CACjBuD,MAAA;IACCX,eAAA,CAAgBW,MAAA,CAAKC,GAAG,CAAC1C,EAAE;IAE3B,IAAI,OAAOS,oBAAA,KAAyB,YAAY;MAC9C,KAAKA,oBAAA,CAAqB;QACxB,GAAGgC,MAAI;QACPtB;MACF;IACF;EACF,GACA,CAACV,oBAAA,EAAsBU,gBAAA,EAAkBW,eAAA,CAAgB;EAG3D,MAAMxB,QAAA,GAAWpB,WAAA,CACduD,MAAA;IACC,IAAI,OAAOlC,iBAAA,KAAsB,YAAY;MAC3C,KAAKA,iBAAA,CAAkB;QACrB,GAAGkC,MAAI;QACPtB;MACF;IACF;IAEAE,UAAA,CAAWjB,UAAA;EACb,GACA,CAACG,iBAAA,EAAmBc,UAAA,EAAYjB,UAAA,EAAYe,gBAAA,CAAiB;EAG/D,MAAMwB,QAAA,GAAWzD,WAAA,CAAY;IAC3B4C,eAAA,CAAgBJ,SAAA,EAAW;EAC7B,GAAG,CAACI,eAAA,CAAgB;EAEpB3C,SAAA,CAAU;IACR,IAAI,CAACqC,YAAA,IAAgB,CAACK,cAAA,CAAeW,OAAO,EAAE;MAC5CV,eAAA,CAAgB7B,aAAA,EAAe;MAC/B4B,cAAA,CAAeW,OAAO,GAAG;IAC3B;EACF,GAAG,CAAChB,YAAA,EAAcM,eAAA,EAAiB7B,aAAA,CAAc;EAEjD;EACAd,SAAA,CAAU;IACR,MAAMyD,oBAAA,GAAuBxB,uBAAA,CAAwBoB,OAAO;IAE5D,OAAO;MACL5C,cAAA,CAAegD,oBAAA;IACjB;EACF,GAAG,EAAE;EAEL,IAAIjB,SAAA,EAAW;IACb,oBAAOkB,IAAA,CAACtD,cAAA;EACV;EAEA,oBACEsD,IAAA,CAAC/C,6BAAA;IACC6C,QAAA,EAAUA,QAAA;IACVvC,UAAA,EAAYA,UAAA;IACZE,QAAA,EAAUA,QAAA;IACVE,WAAA,EAAaA,WAAA;IACbE,MAAA,EAAQA,MAAA;cAEPc;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","docID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","getEntityConfig","locale","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","operation","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: docID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n}) => {\n const { getEntityConfig } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: DocumentDrawerProps['id'], showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n if (args.operation === 'create') {\n getDocumentView(args.doc.id)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(docID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, docID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}