@payloadcms/ui 3.85.0 → 3.86.0-internal.8bd478e

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useAuth","EditDepthProvider","useTranslation","Drawer","DrawerToggler","useFormsManager","EditManyBulkUploadsDrawerContent","baseClass","EditManyBulkUploads","props","$","collection","t0","slug","undefined","permissions","t","forms","collectionPermissions","collections","hasUpdatePermission","update","drawerSlug","t1","_jsxs","className","children","_jsx","Header"],"sources":["../../../../src/elements/BulkUpload/EditMany/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport React from 'react'\n\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Drawer, DrawerToggler } from '../../Drawer/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { EditManyBulkUploadsDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const baseClass = 'edit-many-bulk-uploads'\n\nexport type EditManyBulkUploadsProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditManyBulkUploads: React.FC<EditManyBulkUploadsProps> = (props) => {\n const { collection: { slug } = {}, collection } = props\n\n const { permissions } = useAuth()\n\n const { t } = useTranslation()\n const { forms } = useFormsManager() // Access forms managed in bulk uploads\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n const drawerSlug = `edit-${slug}-bulk-uploads`\n\n if (!hasUpdatePermission) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:editAll')}\n className={`${baseClass}__toggle`}\n slug={drawerSlug}\n >\n {t('general:editAll')}\n </DrawerToggler>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyBulkUploadsDrawerContent\n collection={collection}\n drawerSlug={drawerSlug}\n forms={forms}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,MAAW;AAElB,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,EAAEC,aAAa,QAAQ;AACtC,SAASC,eAAe,QAAQ;AAChC,SAASC,gCAAgC,QAAQ;AACjD,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,mBAAA,GAA0DC,KAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACrE;IAAAa,UAAA,EAAAC,EAAA;IAAAD;EAAA,IAAkDF,KAAA;EAA9B;IAAAI;EAAA,IAAAD,EAAa,KAAAE,SAAA,QAAbF,EAAa;EAEjC;IAAAG;EAAA,IAAwBf,OAAA;EAExB;IAAAgB;EAAA,IAAcd,cAAA;EACd;IAAAe;EAAA,IAAkBZ,eAAA;EAElB,MAAAa,qBAAA,GAA8BH,WAAA,EAAAI,WAAA,GAA2BN,IAAA;EACzD,MAAAO,mBAAA,GAA4BF,qBAAA,EAAAG,MAAA;EAE5B,MAAAC,UAAA,GAAmB,QAAQT,IAAA,eAAmB;EAAA,KAEzCO,mBAAA;IAAA;EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAb,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAY,UAAA,IAAAZ,CAAA,QAAAO,KAAA,IAAAP,CAAA,QAAAM,CAAA;IAKHO,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EAAAlB,SAAA;MAAAmB,QAAA,GACCC,IAAA,CAAAvB,aAAA;QAAA,cACcY,CAAA,CAAE;QAAAS,SAAA,EACH,GAAAlB,SAAA,UAAsB;QAAAM,IAAA,EAC3BS,UAAA;QAAAI,QAAA,EAELV,CAAA,CAAE;MAAA,C,GAELW,IAAA,CAAA1B,iBAAA;QAAAyB,QAAA,EACEC,IAAA,CAAAxB,MAAA;UAAAyB,MAAA;UAAAf,IAAA,EAA4BS,UAAA;UAAAI,QAAA,EAC1BC,IAAA,CAAArB,gCAAA;YAAAK,UAAA;YAAAW,UAAA;YAAAL;UAAA,C;;;;;;;;;;;;SAVNM,E;CAmBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useAuth","EditDepthProvider","useTranslation","Drawer","DrawerToggler","useFormsManager","EditManyBulkUploadsDrawerContent","baseClass","EditManyBulkUploads","props","$","collection","t0","slug","undefined","permissions","t","forms","collectionPermissions","collections","hasUpdatePermission","update","drawerSlug","t1","_jsxs","className","children","_jsx","Header"],"sources":["../../../../src/elements/BulkUpload/EditMany/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport React from 'react'\n\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Drawer, DrawerToggler } from '../../Drawer/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { EditManyBulkUploadsDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const baseClass = 'edit-many-bulk-uploads'\n\nexport type EditManyBulkUploadsProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditManyBulkUploads: React.FC<EditManyBulkUploadsProps> = (props) => {\n const { collection: { slug } = {}, collection } = props\n\n const { permissions } = useAuth()\n\n const { t } = useTranslation()\n const { forms } = useFormsManager() // Access forms managed in bulk uploads\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n const drawerSlug = `edit-${slug}-bulk-uploads`\n\n if (!hasUpdatePermission) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:editAll')}\n className={`${baseClass}__toggle`}\n slug={drawerSlug}\n >\n {t('general:editAll')}\n </DrawerToggler>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyBulkUploadsDrawerContent\n collection={collection}\n drawerSlug={drawerSlug}\n forms={forms}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,MAAW;AAElB,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,EAAEC,aAAa,QAAQ;AACtC,SAASC,eAAe,QAAQ;AAChC,SAASC,gCAAgC,QAAQ;AACjD,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,mBAAA,GAA0DC,KAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACrE;IAAAa,UAAA,EAAAC,EAAA;IAAAD;EAAA,IAAkDF,KAAA;EAA9B;IAAAI;EAAA,IAAAD,EAAa,KAAAE,SAAA,QAAbF,EAAa;EAEjC;IAAAG;EAAA,IAAwBf,OAAA;EAExB;IAAAgB;EAAA,IAAcd,cAAA;EACd;IAAAe;EAAA,IAAkBZ,eAAA;EAElB,MAAAa,qBAAA,GAA8BH,WAAA,EAAAI,WAAA,GAA2BN,IAAA;EACzD,MAAAO,mBAAA,GAA4BF,qBAAA,EAAAG,MAAA;EAE5B,MAAAC,UAAA,GAAmB,QAAQT,IAAA,eAAmB;EAAA,KAEzCO,mBAAA;IAAA;EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAb,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAY,UAAA,IAAAZ,CAAA,QAAAO,KAAA,IAAAP,CAAA,QAAAM,CAAA;IAKHO,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EAAAlB,SAAA;MAAAmB,QAAA,GACCC,IAAA,CAAAvB,aAAA;QAAA,cACcY,CAAA,CAAE;QAAAS,SAAA,EACH,GAAAlB,SAAA,UAAsB;QAAAM,IAAA,EAC3BS,UAAA;QAAAI,QAAA,EAELV,CAAA,CAAE;MAAA,C,GAELW,IAAA,CAAA1B,iBAAA;QAAAyB,QAAA,EACEC,IAAA,CAAAxB,MAAA;UAAAyB,MAAA;UAAAf,IAAA,EAA4BS,UAAA;UAAAA,QAAA,EAC1BK,IAAA,CAAArB,gCAAA;YAAAK,UAAA;YAAAW,UAAA;YAAAL;UAAA,C;;;;;;;;;;;;SAVNM,E;CAmBJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","closestCenter","DndContext","KeyboardSensor","MouseSensor","TouchSensor","useDroppable","useSensor","useSensors","SortableContext","sortableKeyboardCoordinates","React","useCallback","useId","DraggableSortable","props","$","children","className","ids","onDragEnd","onDragStart","dndContextID","sortableContextID","t0","id","setNodeRef","t1","Symbol","for","activationConstraint","distance","t2","delay","tolerance","t3","coordinateGetter","sensors","t4","event","active","over","activatorEvent","stopPropagation","moveFromIndex","findIndex","_id","moveToIndex","_id_0","handleDragEnd","t5","event_0","active_0","handleDragStart","t6","_jsx","collisionDetection","items","ref"],"sources":["../../../src/elements/DraggableSortable/index.tsx"],"sourcesContent":["'use client'\nimport type { DragEndEvent, DragStartEvent } from '@dnd-kit/core'\n\nimport {\n closestCenter,\n DndContext,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useDroppable,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport { SortableContext, sortableKeyboardCoordinates } from '@dnd-kit/sortable'\nimport React, { useCallback, useId } from 'react'\n\nimport type { Props } from './types.js'\n\nexport { Props }\n\nexport const DraggableSortable: React.FC<Props> = (props) => {\n const { children, className, ids, onDragEnd, onDragStart } = props\n\n const dndContextID = useId()\n const sortableContextID = useId()\n\n const { setNodeRef } = useDroppable({\n id: dndContextID,\n })\n\n const sensors = useSensors(\n useSensor(MouseSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(TouchSensor, {\n activationConstraint: {\n delay: 200,\n tolerance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event\n\n event.activatorEvent.stopPropagation()\n\n if (!active || !over) {\n return\n }\n\n if (typeof onDragEnd === 'function') {\n onDragEnd({\n event,\n moveFromIndex: ids.findIndex((_id) => _id === active.id),\n moveToIndex: ids.findIndex((_id) => _id === over.id),\n })\n }\n },\n [onDragEnd, ids],\n )\n\n const handleDragStart = useCallback(\n (event: DragStartEvent) => {\n const { active } = event\n\n if (!active) {\n return\n }\n\n if (typeof onDragStart === 'function') {\n onDragStart({ id: active.id, event })\n }\n },\n [onDragStart],\n )\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={dndContextID}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n sensors={sensors}\n >\n <SortableContext\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={sortableContextID}\n items={ids}\n >\n <div className={className} ref={setNodeRef}>\n {children}\n </div>\n </SortableContext>\n </DndContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","closestCenter","DndContext","KeyboardSensor","MouseSensor","TouchSensor","useDroppable","useSensor","useSensors","SortableContext","sortableKeyboardCoordinates","React","useCallback","useId","DraggableSortable","props","$","children","className","ids","onDragEnd","onDragStart","dndContextID","sortableContextID","t0","id","setNodeRef","t1","Symbol","for","activationConstraint","distance","t2","delay","tolerance","t3","coordinateGetter","sensors","t4","event","active","over","activatorEvent","stopPropagation","moveFromIndex","findIndex","_id","moveToIndex","_id_0","handleDragEnd","t5","event_0","active_0","handleDragStart","t6","_jsx","collisionDetection","items","ref"],"sources":["../../../src/elements/DraggableSortable/index.tsx"],"sourcesContent":["'use client'\nimport type { DragEndEvent, DragStartEvent } from '@dnd-kit/core'\n\nimport {\n closestCenter,\n DndContext,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useDroppable,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport { SortableContext, sortableKeyboardCoordinates } from '@dnd-kit/sortable'\nimport React, { useCallback, useId } from 'react'\n\nimport type { Props } from './types.js'\n\nexport { Props }\n\nexport const DraggableSortable: React.FC<Props> = (props) => {\n const { children, className, ids, onDragEnd, onDragStart } = props\n\n const dndContextID = useId()\n const sortableContextID = useId()\n\n const { setNodeRef } = useDroppable({\n id: dndContextID,\n })\n\n const sensors = useSensors(\n useSensor(MouseSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(TouchSensor, {\n activationConstraint: {\n delay: 200,\n tolerance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event\n\n event.activatorEvent.stopPropagation()\n\n if (!active || !over) {\n return\n }\n\n if (typeof onDragEnd === 'function') {\n onDragEnd({\n event,\n moveFromIndex: ids.findIndex((_id) => _id === active.id),\n moveToIndex: ids.findIndex((_id) => _id === over.id),\n })\n }\n },\n [onDragEnd, ids],\n )\n\n const handleDragStart = useCallback(\n (event: DragStartEvent) => {\n const { active } = event\n\n if (!active) {\n return\n }\n\n if (typeof onDragStart === 'function') {\n onDragStart({ id: active.id, event })\n }\n },\n [onDragStart],\n )\n\n return (\n <DndContext\n collisionDetection={closestCenter}\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={dndContextID}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n sensors={sensors}\n >\n <SortableContext\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={sortableContextID}\n items={ids}\n >\n <div className={className} ref={setNodeRef}>\n {children}\n </div>\n </SortableContext>\n </DndContext>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SACEC,aAAa,EACbC,UAAU,EACVC,cAAc,EACdC,WAAW,EACXC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,UAAU,QACL;AACP,SAASC,eAAe,EAAEC,2BAA2B,QAAQ;AAC7D,OAAOC,KAAA,IAASC,WAAW,EAAEC,KAAK,QAAQ;AAM1C,OAAO,MAAMC,iBAAA,GAAqCC,KAAA;EAAA,MAAAC,CAAA,GAAAhB,EAAA;EAChD;IAAAiB,QAAA;IAAAC,SAAA;IAAAC,GAAA;IAAAC,SAAA;IAAAC;EAAA,IAA6DN,KAAA;EAE7D,MAAAO,YAAA,GAAqBT,KAAA;EACrB,MAAAU,iBAAA,GAA0BV,KAAA;EAAA,IAAAW,EAAA;EAAA,IAAAR,CAAA,QAAAM,YAAA;IAEUE,EAAA;MAAAC,EAAA,EAC9BH;IAAA;IACNN,CAAA,MAAAM,YAAA;IAAAN,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAFA;IAAAU;EAAA,IAAuBpB,YAAA,CAAakB,EAEpC;EAAA,IAAAG,EAAA;EAAA,IAAAX,CAAA,QAAAY,MAAA,CAAAC,GAAA;IAGyBF,EAAA;MAAAG,oBAAA;QAAAC,QAAA;MAAA;IAAA;IAIvBf,CAAA,MAAAW,EAAA;EAAA;IAAAA,EAAA,GAAAX,CAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAhB,CAAA,QAAAY,MAAA,CAAAC,GAAA;IACuBG,EAAA;MAAAF,oBAAA;QAAAG,KAAA;QAAAC,SAAA;MAAA;IAAA;IAKvBlB,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,IAAAmB,EAAA;EAAA,IAAAnB,CAAA,QAAAY,MAAA,CAAAC,GAAA;IAC0BM,EAAA;MAAAC,gBAAA,EAAA1B;IAAA;IAE1BM,CAAA,MAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EAdF,MAAAqB,OAAA,GAAgB7B,UAAA,CACdD,SAAA,CAAAH,WAAA,EAAuBuB,EAIvB,GACApB,SAAA,CAAAF,WAAA,EAAuB2B,EAKvB,GACAzB,SAAA,CAAAJ,cAAA,EAA0BgC,EAE1B;EAAA,IAAAG,EAAA;EAAA,IAAAtB,CAAA,QAAAG,GAAA,IAAAH,CAAA,QAAAI,SAAA;IAIAkB,EAAA,GAAAC,KAAA;MACE;QAAAC,MAAA;QAAAC;MAAA,IAAyBF,KAAA;MAEzBA,KAAA,CAAAG,cAAA,CAAAC,eAAA,CAAoC;MAAA,IAEhC,CAACH,MAAA,KAAWC,IAAA;QAAA;MAAA;MAAA,IAIZ,OAAOrB,SAAA,KAAc;QACvBA,SAAA;UAAAmB,KAAA;UAAAK,aAAA,EAEiBzB,GAAA,CAAA0B,SAAA,CAAAC,GAAA,IAAuBA,GAAA,KAAQN,MAAA,CAAAf,EAAS;UAAAsB,WAAA,EAC1C5B,GAAA,CAAA0B,SAAA,CAAAG,KAAA,IAAuBF,KAAA,KAAQL,IAAA,CAAAhB,EAAO;QAAA,CACrD;MAAA;IAAA;IAEJT,CAAA,MAAAG,GAAA;IAAAH,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAjBF,MAAAiC,aAAA,GAAsBX,EAkBJ;EAAA,IAAAY,EAAA;EAAA,IAAAlC,CAAA,QAAAK,WAAA;IAIhB6B,EAAA,GAAAC,OAAA;MACE;QAAAX,MAAA,EAAAY;MAAA,IAAmBb,OAAA;MAAA,KAEdC,QAAA;QAAA;MAAA;MAAA,IAID,OAAOnB,WAAA,KAAgB;QACzBA,WAAA;UAAAI,EAAA,EAAkBe,QAAA,CAAAA,EAAA;UAAAA,KAAA,EAAWD;QAAA,CAAM;MAAA;IAAA;IAEvCvB,CAAA,MAAAK,WAAA;IAAAL,CAAA,MAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAXF,MAAAqC,eAAA,GAAwBH,EAYT;EAAA,IAAAI,EAAA;EAAA,IAAAtC,CAAA,SAAAC,QAAA,IAAAD,CAAA,SAAAE,SAAA,IAAAF,CAAA,SAAAM,YAAA,IAAAN,CAAA,SAAAiC,aAAA,IAAAjC,CAAA,SAAAqC,eAAA,IAAArC,CAAA,SAAAG,GAAA,IAAAH,CAAA,SAAAqB,OAAA,IAAArB,CAAA,SAAAU,UAAA,IAAAV,CAAA,SAAAO,iBAAA;IAIb+B,EAAA,GAAAC,IAAA,CAAArD,UAAA;MAAAsD,kBAAA,EAAAvD,aAAA;MAAAwB,EAAA,EAGMH,YAAA;MAAAF,SAAA,EACO6B,aAAA;MAAA5B,WAAA,EACEgC,eAAA;MAAAhB,OAAA;MAAApB,QAAA,EAGbsC,IAAA,CAAA9C,eAAA;QAAAgB,EAAA,EAEMF,iBAAA;QAAAkC,KAAA,EACGtC,GAAA;QAAAF,QAAA,EAEPsC,IAAA,CAAC;UAAArC,SAAA;UAAAwC,GAAA,EAA+BhC,UAAA;UAAAT;QAAA,C;;;;;;;;;;;;;;;;SAbpCqC,E;CAmBJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","ListSelectionButton","EditManyDrawerContent","baseClass","EditMany","props","$","count","selectAll","selectedIDs","toggleAll","t0","t1","AllAvailable","t2","_jsx","EditMany_v4","ids","onSuccess","collection","modalPrefix","where","permissions","openModal","t","Symbol","for","selectedFields","setSelectedFields","collectionPermissions","collections","slug","drawerSlug","update","filter","Boolean","t3","t4","_jsxs","className","join","children","onClick","Header"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useState } from 'react'\n\nimport type { FieldOption } from '../FieldSelect/reduceFieldOptions.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { EditManyDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n\n return (\n <EditMany_v4\n {...props}\n count={count}\n ids={selectedIDs}\n onSuccess={() => toggleAll()}\n selectAll={selectAll === SelectAllStatus.AllAvailable}\n />\n )\n}\n\nexport const EditMany_v4: React.FC<\n {\n count: number\n ids: (number | string)[]\n /**\n * When multiple EditMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n } & Omit<EditManyProps, 'ids'>\n> = ({ collection, count, ids, modalPrefix, onSuccess, selectAll, where }) => {\n const { permissions } = useAuth()\n const { openModal } = useModal()\n\n const { t } = useTranslation()\n\n const [selectedFields, setSelectedFields] = useState<FieldOption[]>([])\n\n const collectionPermissions = permissions?.collections?.[collection.slug]\n\n const drawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}edit-${collection.slug}`\n\n if (count === 0 || !collectionPermissions?.update) {\n return null\n }\n\n return (\n <div className={[baseClass, `${baseClass}__toggle`].filter(Boolean).join(' ')}>\n <ListSelectionButton\n aria-label={t('general:edit')}\n onClick={() => {\n openModal(drawerSlug)\n setSelectedFields([])\n }}\n >\n {t('general:edit')}\n </ListSelectionButton>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyDrawerContent\n collection={collection}\n count={count}\n drawerSlug={drawerSlug}\n ids={ids}\n onSuccess={onSuccess}\n selectAll={selectAll}\n selectedFields={selectedFields}\n setSelectedFields={setSelectedFields}\n where={where}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,mBAAmB,QAAQ;AACpC,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,QAAA,GAAoCC,KAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EAC/C;IAAAgB,KAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC;EAAA,IAAqDZ,YAAA;EAAA,IAAAa,EAAA;EAAA,IAAAL,CAAA,QAAAI,SAAA;IAOtCC,EAAA,GAAAA,CAAA,KAAMD,SAAA;IAAAJ,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EACN,MAAAM,EAAA,GAAAJ,SAAA,KAAAX,eAAA,CAAAgB,YAA0C;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAC,KAAA,IAAAD,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAG,WAAA,IAAAH,CAAA,QAAAK,EAAA,IAAAL,CAAA,QAAAM,EAAA;IALvDE,EAAA,GAAAC,IAAA,CAAAC,WAAA;MAAA,GACMX,KAAK;MAAAE,KAAA;MAAAU,GAAA,EAEJR,WAAA;MAAAS,SAAA,EACMP,EAAM;MAAAH,SAAA,EACNI;IAA0C,C;;;;;;;;;;SALvDE,E;CAQJ;AAEA,OAAO,MAAME,WAAA,GAYTL,EAAA;EAAA,MAAAL,CAAA,GAAAf,EAAA;EAAC;IAAA4B,UAAA;IAAAZ,KAAA;IAAAU,GAAA;IAAAG,WAAA;IAAAF,SAAA;IAAAV,SAAA;IAAAa;EAAA,IAAAV,EAAoE;EACvE;IAAAW;EAAA,IAAwB3B,OAAA;EACxB;IAAA4B;EAAA,IAAsB/B,QAAA;EAEtB;IAAAgC;EAAA,IAAczB,cAAA;EAAA,IAAAa,EAAA;EAAA,IAAAN,CAAA,QAAAmB,MAAA,CAAAC,GAAA;IAEsDd,EAAA;IAAEN,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAAtE,OAAAqB,cAAA,EAAAC,iBAAA,IAA4ClC,QAAA,CAAwBkB,EAAE;EAEtE,MAAAiB,qBAAA,GAA8BP,WAAA,EAAAQ,WAAA,GAA2BX,UAAA,CAAAY,IAAA;EAEzD,MAAAC,UAAA,GAAmB,GAAGZ,WAAA,GAAc,GAAGA,WAAA,GAAc,GAAG,UAAUD,UAAA,CAAAY,IAAA,EAAiB;EAAA,IAE/ExB,KAAA,MAAU,KAAMsB,qBAAA,EAAAI,MAAuB;IAAA;EAAA;EAAA,IAAAnB,EAAA;EAAA,IAAAR,CAAA,QAAAmB,MAAA,CAAAC,GAAA;IAKzBZ,EAAA,IAAAX,SAAA,EAAY,GAAAA,SAAA,UAAsB,EAAA+B,MAAA,CAAAC,OAAS;IAAA7B,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAA,IAAA8B,EAAA;EAAA,IAAA9B,CAAA,QAAAa,UAAA,IAAAb,CAAA,QAAAC,KAAA,IAAAD,CAAA,QAAA0B,UAAA,IAAA1B,CAAA,QAAAW,GAAA,IAAAX,CAAA,QAAAY,SAAA,IAAAZ,CAAA,QAAAiB,SAAA,IAAAjB,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAqB,cAAA,IAAArB,CAAA,SAAAkB,CAAA,IAAAlB,CAAA,SAAAe,KAAA;IAAA,IAAAgB,EAAA;IAAA,IAAA/B,CAAA,SAAA0B,UAAA,IAAA1B,CAAA,SAAAiB,SAAA;MAG9Cc,EAAA,GAAAA,CAAA;QACPd,SAAA,CAAUS,UAAA;QACVJ,iBAAA,GAAoB;MAAA;MACtBtB,CAAA,OAAA0B,UAAA;MAAA1B,CAAA,OAAAiB,SAAA;MAAAjB,CAAA,OAAA+B,EAAA;IAAA;MAAAA,EAAA,GAAA/B,CAAA;IAAA;IANJ8B,EAAA,GAAAE,KAAA,CAAC;MAAAC,SAAA,EAAezB,EAA2C,CAAA0B,IAAA,CAAc;MAAAC,QAAA,GACvE1B,IAAA,CAAAd,mBAAA;QAAA,cACcuB,CAAA,CAAE;QAAAkB,OAAA,EACLL,EAGT;QAAAI,QAAA,EAECjB,CAAA,CAAE;MAAA,C,GAELT,IAAA,CAAAnB,iBAAA;QAAA6C,QAAA,EACE1B,IAAA,CAAAf,MAAA;UAAA2C,MAAA;UAAAZ,IAAA,EAA4BC,UAAA;UAAAS,QAAA,EAC1B1B,IAAA,CAAAb,qBAAA;YAAAiB,UAAA;YAAAZ,KAAA;YAAAyB,UAAA;YAAAf,GAAA;YAAAC,SAAA;YAAAV,SAAA;YAAAmB,cAAA;YAAAC,iBAAA;YAAAP;UAAA,C;;;;;;;;;;;;;;;;;;SAZNe,E;CA2BJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","ListSelectionButton","EditManyDrawerContent","baseClass","EditMany","props","$","count","selectAll","selectedIDs","toggleAll","t0","t1","AllAvailable","t2","_jsx","EditMany_v4","ids","onSuccess","collection","modalPrefix","where","permissions","openModal","t","Symbol","for","selectedFields","setSelectedFields","collectionPermissions","collections","slug","drawerSlug","update","filter","Boolean","t3","t4","_jsxs","className","join","children","onClick","Header"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useState } from 'react'\n\nimport type { FieldOption } from '../FieldSelect/reduceFieldOptions.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { EditManyDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n\n return (\n <EditMany_v4\n {...props}\n count={count}\n ids={selectedIDs}\n onSuccess={() => toggleAll()}\n selectAll={selectAll === SelectAllStatus.AllAvailable}\n />\n )\n}\n\nexport const EditMany_v4: React.FC<\n {\n count: number\n ids: (number | string)[]\n /**\n * When multiple EditMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n } & Omit<EditManyProps, 'ids'>\n> = ({ collection, count, ids, modalPrefix, onSuccess, selectAll, where }) => {\n const { permissions } = useAuth()\n const { openModal } = useModal()\n\n const { t } = useTranslation()\n\n const [selectedFields, setSelectedFields] = useState<FieldOption[]>([])\n\n const collectionPermissions = permissions?.collections?.[collection.slug]\n\n const drawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}edit-${collection.slug}`\n\n if (count === 0 || !collectionPermissions?.update) {\n return null\n }\n\n return (\n <div className={[baseClass, `${baseClass}__toggle`].filter(Boolean).join(' ')}>\n <ListSelectionButton\n aria-label={t('general:edit')}\n onClick={() => {\n openModal(drawerSlug)\n setSelectedFields([])\n }}\n >\n {t('general:edit')}\n </ListSelectionButton>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyDrawerContent\n collection={collection}\n count={count}\n drawerSlug={drawerSlug}\n ids={ids}\n onSuccess={onSuccess}\n selectAll={selectAll}\n selectedFields={selectedFields}\n setSelectedFields={setSelectedFields}\n where={where}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","extractID","React","DocumentIcon","useConfig","useFolder","useTranslation","formatDate","ColoredFolderIcon","DraggableTableRow","SimpleTable","TableHeader","baseClass","FolderFileTable","t0","$","showRelationCell","t1","undefined","checkIfItemIsDisabled","documents","focusedRowIndex","onItemClick","onItemKeyPress","selectedItemKeys","subfolders","config","i18n","t","t2","map","collections","forEach","collection","slug","plural","labels","singular","relationToMap","useState","t3","columnsToShow","name","label","push","columns","t4","t5","subfolder","rowIndex","itemKey","relationTo","value","subfolderID","_jsx","t6","index","name_0","cellValue","_folderOrDocumentTitle","pattern","admin","dateFormat","Array","isArray","folderType","reduce","acc","index_0","_jsxs","className","children","disabled","dragData","id","type","isDroppable","isFocused","isSelected","has","isSelecting","size","onClick","event","item","onKeyDown","event_0","length","document","unadjustedIndex","itemKey_0","relationTo_0","value_0","documentID","rowIndex_0","t7","index_1","name_1","cellValue_0","event_1","event_2","headerCells","_temp","tableRows"],"sources":["../../../../src/elements/FolderView/FolderFileTable/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { extractID } from 'payload/shared'\nimport React from 'react'\n\nimport { DocumentIcon } from '../../../icons/Document/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatDate } from '../../../utilities/formatDocTitle/formatDateTitle.js'\nimport { ColoredFolderIcon } from '../ColoredFolderIcon/index.js'\nimport { DraggableTableRow } from '../DraggableTableRow/index.js'\nimport { SimpleTable, TableHeader } from '../SimpleTable/index.js'\nimport './index.scss'\n\nconst baseClass = 'folder-file-table'\n\ntype Props = {\n showRelationCell?: boolean\n}\n\nexport function FolderFileTable({ showRelationCell = true }: Props) {\n const {\n checkIfItemIsDisabled,\n documents,\n focusedRowIndex,\n onItemClick,\n onItemKeyPress,\n selectedItemKeys,\n subfolders,\n } = useFolder()\n const { config } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [relationToMap] = React.useState(() => {\n const map: Record<string, { plural: string; singular: string }> = {}\n config.collections.forEach((collection) => {\n map[collection.slug] = {\n plural: getTranslation(collection.labels?.plural, i18n),\n singular: getTranslation(collection.labels?.singular, i18n),\n }\n })\n return map\n })\n\n const [columns] = React.useState(() => {\n const columnsToShow = [\n {\n name: 'name',\n label: t('general:name'),\n },\n {\n name: 'createdAt',\n label: t('general:createdAt'),\n },\n {\n name: 'updatedAt',\n label: t('general:updatedAt'),\n },\n ]\n\n if (showRelationCell) {\n columnsToShow.push({\n name: 'type',\n label: t('version:type'),\n })\n }\n\n return columnsToShow\n })\n\n return (\n <SimpleTable\n headerCells={columns.map(({ name, label }) => (\n <TableHeader key={name}>{label}</TableHeader>\n ))}\n tableRows={[\n ...subfolders.map((subfolder, rowIndex) => {\n const { itemKey, relationTo, value } = subfolder\n const subfolderID = extractID(value)\n\n return (\n <DraggableTableRow\n columns={columns.map(({ name }, index) => {\n let cellValue: React.ReactNode = '—'\n if (name === 'name' && value._folderOrDocumentTitle !== undefined) {\n cellValue = value._folderOrDocumentTitle\n }\n\n if ((name === 'createdAt' || name === 'updatedAt') && value[name]) {\n cellValue = formatDate({\n date: value[name],\n i18n,\n pattern: config.admin.dateFormat,\n })\n }\n\n if (name === 'type') {\n cellValue = (\n <>\n {relationToMap[relationTo]?.singular || relationTo}\n {Array.isArray(subfolder.value?.folderType)\n ? subfolder.value?.folderType.reduce((acc, slug, index) => {\n if (index === 0) {\n return ` — ${relationToMap[slug]?.plural || slug}`\n }\n if (index > 0) {\n return `${acc}, ${relationToMap[slug]?.plural || slug}`\n }\n return acc\n }, '')\n : ''}\n </>\n )\n }\n\n if (index === 0) {\n return (\n <span className={`${baseClass}__cell-with-icon`} key={`${itemKey}-${name}`}>\n <ColoredFolderIcon />\n {cellValue}\n </span>\n )\n } else {\n return cellValue\n }\n })}\n disabled={checkIfItemIsDisabled(subfolder)}\n dragData={{\n id: subfolderID,\n type: 'folder',\n }}\n id={subfolderID}\n isDroppable\n isFocused={focusedRowIndex === rowIndex}\n isSelected={selectedItemKeys.has(itemKey)}\n isSelecting={selectedItemKeys.size > 0}\n itemKey={itemKey}\n key={`${rowIndex}-${itemKey}`}\n onClick={(event) => {\n void onItemClick({\n event,\n index: rowIndex,\n item: subfolder,\n })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({\n event,\n index: rowIndex,\n item: subfolder,\n })\n }}\n />\n )\n }),\n\n ...documents.map((document, unadjustedIndex) => {\n const { itemKey, relationTo, value } = document\n const documentID = extractID(value)\n const rowIndex = unadjustedIndex + subfolders.length\n\n return (\n <DraggableTableRow\n columns={columns.map(({ name }, index) => {\n let cellValue: React.ReactNode = '—'\n if (name === 'name' && value._folderOrDocumentTitle !== undefined) {\n cellValue = value._folderOrDocumentTitle\n }\n\n if ((name === 'createdAt' || name === 'updatedAt') && value[name]) {\n cellValue = formatDate({\n date: value[name],\n i18n,\n pattern: config.admin.dateFormat,\n })\n }\n\n if (name === 'type') {\n cellValue = relationToMap[relationTo]?.singular || relationTo\n }\n\n if (index === 0) {\n return (\n <span className={`${baseClass}__cell-with-icon`} key={`${itemKey}-${name}`}>\n <DocumentIcon />\n {cellValue}\n </span>\n )\n } else {\n return cellValue\n }\n })}\n disabled={checkIfItemIsDisabled(document)}\n dragData={{\n id: documentID,\n type: 'document',\n }}\n id={documentID}\n isFocused={focusedRowIndex === rowIndex}\n isSelected={selectedItemKeys.has(itemKey)}\n isSelecting={selectedItemKeys.size > 0}\n itemKey={itemKey}\n key={`${rowIndex}-${itemKey}`}\n onClick={(event) => {\n void onItemClick({\n event,\n index: rowIndex,\n item: document,\n })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({\n event,\n index: rowIndex,\n item: document,\n })\n }}\n />\n )\n }),\n ]}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","extractID","React","DocumentIcon","useConfig","useFolder","useTranslation","formatDate","ColoredFolderIcon","DraggableTableRow","SimpleTable","TableHeader","baseClass","FolderFileTable","t0","$","showRelationCell","t1","undefined","checkIfItemIsDisabled","documents","focusedRowIndex","onItemClick","onItemKeyPress","selectedItemKeys","subfolders","config","i18n","t","t2","map","collections","forEach","collection","slug","plural","labels","singular","relationToMap","useState","t3","columnsToShow","name","label","push","columns","t4","t5","subfolder","rowIndex","itemKey","relationTo","value","subfolderID","_jsx","t6","index","name_0","cellValue","_folderOrDocumentTitle","pattern","admin","dateFormat","Array","isArray","folderType","reduce","acc","index_0","_jsxs","className","children","disabled","dragData","id","type","isDroppable","isFocused","isSelected","has","isSelecting","size","onClick","event","item","onKeyDown","event_0","length","document","unadjustedIndex","itemKey_0","relationTo_0","value_0","documentID","rowIndex_0","t7","index_1","name_1","cellValue_0","event_1","event_2","headerCells","_temp","tableRows"],"sources":["../../../../src/elements/FolderView/FolderFileTable/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { extractID } from 'payload/shared'\nimport React from 'react'\n\nimport { DocumentIcon } from '../../../icons/Document/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatDate } from '../../../utilities/formatDocTitle/formatDateTitle.js'\nimport { ColoredFolderIcon } from '../ColoredFolderIcon/index.js'\nimport { DraggableTableRow } from '../DraggableTableRow/index.js'\nimport { SimpleTable, TableHeader } from '../SimpleTable/index.js'\nimport './index.scss'\n\nconst baseClass = 'folder-file-table'\n\ntype Props = {\n showRelationCell?: boolean\n}\n\nexport function FolderFileTable({ showRelationCell = true }: Props) {\n const {\n checkIfItemIsDisabled,\n documents,\n focusedRowIndex,\n onItemClick,\n onItemKeyPress,\n selectedItemKeys,\n subfolders,\n } = useFolder()\n const { config } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [relationToMap] = React.useState(() => {\n const map: Record<string, { plural: string; singular: string }> = {}\n config.collections.forEach((collection) => {\n map[collection.slug] = {\n plural: getTranslation(collection.labels?.plural, i18n),\n singular: getTranslation(collection.labels?.singular, i18n),\n }\n })\n return map\n })\n\n const [columns] = React.useState(() => {\n const columnsToShow = [\n {\n name: 'name',\n label: t('general:name'),\n },\n {\n name: 'createdAt',\n label: t('general:createdAt'),\n },\n {\n name: 'updatedAt',\n label: t('general:updatedAt'),\n },\n ]\n\n if (showRelationCell) {\n columnsToShow.push({\n name: 'type',\n label: t('version:type'),\n })\n }\n\n return columnsToShow\n })\n\n return (\n <SimpleTable\n headerCells={columns.map(({ name, label }) => (\n <TableHeader key={name}>{label}</TableHeader>\n ))}\n tableRows={[\n ...subfolders.map((subfolder, rowIndex) => {\n const { itemKey, relationTo, value } = subfolder\n const subfolderID = extractID(value)\n\n return (\n <DraggableTableRow\n columns={columns.map(({ name }, index) => {\n let cellValue: React.ReactNode = '—'\n if (name === 'name' && value._folderOrDocumentTitle !== undefined) {\n cellValue = value._folderOrDocumentTitle\n }\n\n if ((name === 'createdAt' || name === 'updatedAt') && value[name]) {\n cellValue = formatDate({\n date: value[name],\n i18n,\n pattern: config.admin.dateFormat,\n })\n }\n\n if (name === 'type') {\n cellValue = (\n <>\n {relationToMap[relationTo]?.singular || relationTo}\n {Array.isArray(subfolder.value?.folderType)\n ? subfolder.value?.folderType.reduce((acc, slug, index) => {\n if (index === 0) {\n return ` — ${relationToMap[slug]?.plural || slug}`\n }\n if (index > 0) {\n return `${acc}, ${relationToMap[slug]?.plural || slug}`\n }\n return acc\n }, '')\n : ''}\n </>\n )\n }\n\n if (index === 0) {\n return (\n <span className={`${baseClass}__cell-with-icon`} key={`${itemKey}-${name}`}>\n <ColoredFolderIcon />\n {cellValue}\n </span>\n )\n } else {\n return cellValue\n }\n })}\n disabled={checkIfItemIsDisabled(subfolder)}\n dragData={{\n id: subfolderID,\n type: 'folder',\n }}\n id={subfolderID}\n isDroppable\n isFocused={focusedRowIndex === rowIndex}\n isSelected={selectedItemKeys.has(itemKey)}\n isSelecting={selectedItemKeys.size > 0}\n itemKey={itemKey}\n key={`${rowIndex}-${itemKey}`}\n onClick={(event) => {\n void onItemClick({\n event,\n index: rowIndex,\n item: subfolder,\n })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({\n event,\n index: rowIndex,\n item: subfolder,\n })\n }}\n />\n )\n }),\n\n ...documents.map((document, unadjustedIndex) => {\n const { itemKey, relationTo, value } = document\n const documentID = extractID(value)\n const rowIndex = unadjustedIndex + subfolders.length\n\n return (\n <DraggableTableRow\n columns={columns.map(({ name }, index) => {\n let cellValue: React.ReactNode = '—'\n if (name === 'name' && value._folderOrDocumentTitle !== undefined) {\n cellValue = value._folderOrDocumentTitle\n }\n\n if ((name === 'createdAt' || name === 'updatedAt') && value[name]) {\n cellValue = formatDate({\n date: value[name],\n i18n,\n pattern: config.admin.dateFormat,\n })\n }\n\n if (name === 'type') {\n cellValue = relationToMap[relationTo]?.singular || relationTo\n }\n\n if (index === 0) {\n return (\n <span className={`${baseClass}__cell-with-icon`} key={`${itemKey}-${name}`}>\n <DocumentIcon />\n {cellValue}\n </span>\n )\n } else {\n return cellValue\n }\n })}\n disabled={checkIfItemIsDisabled(document)}\n dragData={{\n id: documentID,\n type: 'document',\n }}\n id={documentID}\n isFocused={focusedRowIndex === rowIndex}\n isSelected={selectedItemKeys.has(itemKey)}\n isSelecting={selectedItemKeys.size > 0}\n itemKey={itemKey}\n key={`${rowIndex}-${itemKey}`}\n onClick={(event) => {\n void onItemClick({\n event,\n index: rowIndex,\n item: document,\n })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({\n event,\n index: rowIndex,\n item: document,\n })\n }}\n />\n )\n }),\n ]}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","formatAdminURL","React","useId","toast","useForm","useFormFields","FolderIcon","useConfig","useDocumentInfo","useTranslation","Button","formatDrawerSlug","useDrawerDepth","MoveItemsToFolderDrawer","baseClass","MoveDocToFolder","t0","$","buttonProps","className","t1","folderCollectionSlug","folderFieldName","undefined","t","dispatchField","_temp","t2","t3","fields","currentParentFolder","fromFolderID","value","id","collectionSlug","initialData","title","setModified","fromFolderName","setFromFolderName","useState","config","modalID","t4","t5","routes","api","fetchFolderLabel","response","fetch","apiRoute","path","folderData","json","name","useEffect","t6","t7","t8","id_0","type","t9","_jsx","MoveDocToFolderButton","docData","docID","docTitle","modalSlug","onConfirm","skipConfirmModal","dispatch","getEntityConfig","i18n","closeModal","openModal","drawerDepth","drawerSlug","slug","depth","titleToRender","labels","singular","filter","Boolean","_jsxs","_Fragment","children","buttonStyle","join","icon","iconPosition","onClick","action","folderAssignedCollections","itemsToMove","itemKey","relationTo","args","success","folderName","_"],"sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { type FolderOrDocument, formatAdminURL } from 'payload/shared'\nimport React, { useId } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props as ButtonProps } from '../../Button/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { formatDrawerSlug, useDrawerDepth } from '../../Drawer/index.js'\nimport './index.scss'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst baseClass = 'move-doc-to-folder'\n\n/**\n * This is the button shown on the edit document view. It uses the more generic `MoveDocToFolderButton` component.\n */\nexport function MoveDocToFolder({\n buttonProps,\n className = '',\n folderCollectionSlug,\n folderFieldName,\n}: {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n}) {\n const { t } = useTranslation()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const currentParentFolder = useFormFields(\n ([fields]) => (fields && fields?.[folderFieldName]) || null,\n )\n const fromFolderID = currentParentFolder?.value\n const { id, collectionSlug, initialData, title } = useDocumentInfo()\n const { setModified } = useForm()\n const [fromFolderName, setFromFolderName] = React.useState(() => `${t('general:loading')}...`)\n\n const { config } = useConfig()\n const modalID = useId()\n\n React.useEffect(() => {\n async function fetchFolderLabel() {\n if (fromFolderID && (typeof fromFolderID === 'string' || typeof fromFolderID === 'number')) {\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${folderCollectionSlug}/${fromFolderID}`,\n }),\n )\n const folderData = await response.json()\n setFromFolderName(folderData?.name || t('folder:noFolder'))\n } else {\n setFromFolderName(t('folder:noFolder'))\n }\n }\n\n void fetchFolderLabel()\n }, [folderCollectionSlug, config.routes.api, fromFolderID, t])\n\n return (\n <MoveDocToFolderButton\n buttonProps={buttonProps}\n className={className}\n collectionSlug={collectionSlug}\n docData={initialData as FolderOrDocument['value']}\n docID={id}\n docTitle={title}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID as number | string}\n fromFolderName={fromFolderName}\n modalSlug={`move-to-folder-${modalID}`}\n onConfirm={({ id }) => {\n if (currentParentFolder.value !== id) {\n dispatchField({\n type: 'UPDATE',\n path: folderFieldName,\n value: id,\n })\n setModified(true)\n }\n }}\n skipConfirmModal={!currentParentFolder?.value}\n />\n )\n}\n\ntype MoveDocToFolderButtonProps = {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly collectionSlug: string\n readonly docData: FolderOrDocument['value']\n readonly docID: number | string\n readonly docTitle?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName: string\n readonly modalSlug: string\n readonly onConfirm?: (args: { id: number | string; name: string }) => Promise<void> | void\n readonly skipConfirmModal?: boolean\n}\n\n/**\n * This is a more generic button that can be used in other contexts, such as table cells and the edit view.\n */\nexport const MoveDocToFolderButton = ({\n buttonProps,\n className,\n collectionSlug,\n docData,\n docID,\n docTitle,\n folderCollectionSlug,\n folderFieldName,\n fromFolderID,\n fromFolderName,\n modalSlug,\n onConfirm,\n skipConfirmModal,\n}: MoveDocToFolderButtonProps) => {\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const drawerDepth = useDrawerDepth()\n const drawerSlug = formatDrawerSlug({ slug: modalSlug, depth: drawerDepth })\n\n const titleToRender =\n docTitle || getTranslation(getEntityConfig({ collectionSlug }).labels.singular, i18n)\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, className].filter(Boolean).join(' ')}\n icon={<FolderIcon />}\n iconPosition=\"left\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n {...buttonProps}\n >\n {fromFolderName}\n </Button>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={drawerSlug}\n //todo this should inherit\n folderAssignedCollections={[collectionSlug]}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID}\n fromFolderName={fromFolderName}\n itemsToMove={[\n {\n itemKey: `${collectionSlug}-${docID}`,\n relationTo: collectionSlug,\n value: { ...docData, id: docID },\n },\n ]}\n onConfirm={async (args) => {\n if (fromFolderID !== args.id && typeof onConfirm === 'function') {\n try {\n await onConfirm(args)\n\n if (args.id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${args.name}\"`,\n title: titleToRender,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: titleToRender,\n }),\n )\n }\n } catch (_) {\n // todo: add error toast?\n }\n }\n\n closeModal(drawerSlug)\n }}\n skipConfirmModal={skipConfirmModal}\n title={titleToRender}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","formatAdminURL","React","useId","toast","useForm","useFormFields","FolderIcon","useConfig","useDocumentInfo","useTranslation","Button","formatDrawerSlug","useDrawerDepth","MoveItemsToFolderDrawer","baseClass","MoveDocToFolder","t0","$","buttonProps","className","t1","folderCollectionSlug","folderFieldName","undefined","t","dispatchField","_temp","t2","t3","fields","currentParentFolder","fromFolderID","value","id","collectionSlug","initialData","title","setModified","fromFolderName","setFromFolderName","useState","config","modalID","t4","t5","routes","api","fetchFolderLabel","response","fetch","apiRoute","path","folderData","json","name","useEffect","t6","t7","t8","id_0","type","t9","_jsx","MoveDocToFolderButton","docData","docID","docTitle","modalSlug","onConfirm","skipConfirmModal","dispatch","getEntityConfig","i18n","closeModal","openModal","drawerDepth","drawerSlug","slug","depth","titleToRender","labels","singular","filter","Boolean","_jsxs","_Fragment","children","buttonStyle","join","icon","iconPosition","onClick","action","folderAssignedCollections","itemsToMove","itemKey","relationTo","args","success","folderName","_"],"sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { type FolderOrDocument, formatAdminURL } from 'payload/shared'\nimport React, { useId } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props as ButtonProps } from '../../Button/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { formatDrawerSlug, useDrawerDepth } from '../../Drawer/index.js'\nimport './index.scss'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst baseClass = 'move-doc-to-folder'\n\n/**\n * This is the button shown on the edit document view. It uses the more generic `MoveDocToFolderButton` component.\n */\nexport function MoveDocToFolder({\n buttonProps,\n className = '',\n folderCollectionSlug,\n folderFieldName,\n}: {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n}) {\n const { t } = useTranslation()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const currentParentFolder = useFormFields(\n ([fields]) => (fields && fields?.[folderFieldName]) || null,\n )\n const fromFolderID = currentParentFolder?.value\n const { id, collectionSlug, initialData, title } = useDocumentInfo()\n const { setModified } = useForm()\n const [fromFolderName, setFromFolderName] = React.useState(() => `${t('general:loading')}...`)\n\n const { config } = useConfig()\n const modalID = useId()\n\n React.useEffect(() => {\n async function fetchFolderLabel() {\n if (fromFolderID && (typeof fromFolderID === 'string' || typeof fromFolderID === 'number')) {\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${folderCollectionSlug}/${fromFolderID}`,\n }),\n )\n const folderData = await response.json()\n setFromFolderName(folderData?.name || t('folder:noFolder'))\n } else {\n setFromFolderName(t('folder:noFolder'))\n }\n }\n\n void fetchFolderLabel()\n }, [folderCollectionSlug, config.routes.api, fromFolderID, t])\n\n return (\n <MoveDocToFolderButton\n buttonProps={buttonProps}\n className={className}\n collectionSlug={collectionSlug}\n docData={initialData as FolderOrDocument['value']}\n docID={id}\n docTitle={title}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID as number | string}\n fromFolderName={fromFolderName}\n modalSlug={`move-to-folder-${modalID}`}\n onConfirm={({ id }) => {\n if (currentParentFolder.value !== id) {\n dispatchField({\n type: 'UPDATE',\n path: folderFieldName,\n value: id,\n })\n setModified(true)\n }\n }}\n skipConfirmModal={!currentParentFolder?.value}\n />\n )\n}\n\ntype MoveDocToFolderButtonProps = {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly collectionSlug: string\n readonly docData: FolderOrDocument['value']\n readonly docID: number | string\n readonly docTitle?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName: string\n readonly modalSlug: string\n readonly onConfirm?: (args: { id: number | string; name: string }) => Promise<void> | void\n readonly skipConfirmModal?: boolean\n}\n\n/**\n * This is a more generic button that can be used in other contexts, such as table cells and the edit view.\n */\nexport const MoveDocToFolderButton = ({\n buttonProps,\n className,\n collectionSlug,\n docData,\n docID,\n docTitle,\n folderCollectionSlug,\n folderFieldName,\n fromFolderID,\n fromFolderName,\n modalSlug,\n onConfirm,\n skipConfirmModal,\n}: MoveDocToFolderButtonProps) => {\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const drawerDepth = useDrawerDepth()\n const drawerSlug = formatDrawerSlug({ slug: modalSlug, depth: drawerDepth })\n\n const titleToRender =\n docTitle || getTranslation(getEntityConfig({ collectionSlug }).labels.singular, i18n)\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, className].filter(Boolean).join(' ')}\n icon={<FolderIcon />}\n iconPosition=\"left\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n {...buttonProps}\n >\n {fromFolderName}\n </Button>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={drawerSlug}\n //todo this should inherit\n folderAssignedCollections={[collectionSlug]}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID}\n fromFolderName={fromFolderName}\n itemsToMove={[\n {\n itemKey: `${collectionSlug}-${docID}`,\n relationTo: collectionSlug,\n value: { ...docData, id: docID },\n },\n ]}\n onConfirm={async (args) => {\n if (fromFolderID !== args.id && typeof onConfirm === 'function') {\n try {\n await onConfirm(args)\n\n if (args.id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${args.name}\"`,\n title: titleToRender,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: titleToRender,\n }),\n )\n }\n } catch (_) {\n // todo: add error toast?\n }\n }\n\n closeModal(drawerSlug)\n }}\n skipConfirmModal={skipConfirmModal}\n title={titleToRender}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"usePreventLeave.js","names":["c","_c","useRouter","useCallback","useEffect","useRef","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","undefined","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","err","console","log","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isNewTab","metaKey","ctrlKey","isPageLeaving","confirm","current","stopPropagation","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from 'next/navigation.js'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure you want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n try {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:isAnchorOfCurrentUrl', err)\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink || isNewTab)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:usePreventLeave', err)\n }\n }\n\n if (prevent) {\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n }\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"usePreventLeave.js","names":["c","_c","useRouter","useCallback","useEffect","useRef","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","undefined","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","err","console","log","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isNewTab","metaKey","ctrlKey","isPageLeaving","confirm","current","stopPropagation","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from 'next/navigation.js'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure you want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n try {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:isAnchorOfCurrentUrl', err)\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink || isNewTab)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:usePreventLeave', err)\n }\n }\n\n if (prevent) {\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n }\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,5 +10,5 @@ function require(m) {
10
10
  }
11
11
  // Workaround end
12
12
 
13
- import{l as a}from"./chunk-MRRDX6D7.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
- //# sourceMappingURL=CodeEditor-TL3K3PHG.js.map
13
+ import{l as a}from"./chunk-2GZJJKQF.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
+ //# sourceMappingURL=CodeEditor-5OM6KTW4.js.map
@@ -24,4 +24,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
24
24
  `).length*18+2+p):l),d.current=u)},b=[a,l,p,u],e[4]=l,e[5]=p,e[6]=u,e[7]=a,e[8]=E,e[9]=b):(E=e[8],b=e[9]),Ge.useEffect(E,b),Ke(Rr,{className:v,height:n?Math.min(P,n):P,loading:Ke(le,{height:P}),options:{...qe,...C,readOnly:!!c,detectIndentation:!1,insertSpaces:void 0,tabSize:void 0,trimAutoWhitespace:void 0},theme:L==="dark"?"vs-dark":"vs",value:a,...s,onChange:(f,T)=>{s.onChange?.(f,T),y(f?Math.max(l,f.split(`
25
25
  `).length*18+2+p):l)},onMount:(f,T)=>{s.onMount?.(f,T);let _=f.getModel();_&&_.updateOptions({insertSpaces:x??ee.insertSpaces,tabSize:w??ee.tabSize,trimAutoWhitespace:S??ee.trimAutoWhitespace}),y(Math.max(l,f.getValue().split(`
26
26
  `).length*18+2+p))}})},to=Dr;export{$e as a,br as b,se as c,Tn as d,Fe as e,le as f,Un as g,Pr as h,Wn as i,Ve as j,ee as k,to as l};
27
- //# sourceMappingURL=chunk-MRRDX6D7.js.map
27
+ //# sourceMappingURL=chunk-2GZJJKQF.js.map