{"version":3,"file":"index.js","names":["getTranslation","React","Fragment","useCallback","useEffect","useMemo","useState","Collapsible","CollapsibleElement","ErrorPill","RenderCustomComponent","FieldDescription","RenderFields","RowLabel","useField","WatchChildErrors","withCondition","useDocumentInfo","usePreferences","useTranslation","mergeFieldStyles","fieldBaseClass","baseClass","CollapsibleFieldComponent","props","field","admin","className","description","initCollapsed","fields","label","indexPath","parentPath","parentSchemaPath","path","permissions","readOnly","i18n","getPreference","setPreference","preferencesKey","collapsedOnMount","setCollapsedOnMount","fieldPreferencesKey","replace","errorCount","setErrorCount","fieldHasErrors","customComponents","AfterInput","BeforeInput","Description","Label","disabled","onToggle","newCollapsedState","existingPreferences","collapsed","fetchInitialState","preferences","specificPreference","undefined","Boolean","styles","_jsxs","_jsx","split","slice","filter","join","id","style","collapsibleStyle","header","CustomComponent","count","withMessage","margins","parentIndexPath","Fallback","CollapsibleField"],"sources":["../../../src/fields/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport type { CollapsibleFieldClientComponent, DocumentPreferences } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { Collapsible as CollapsibleElement } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { WatchChildErrors } from '../../forms/WatchChildErrors/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst baseClass = 'collapsible-field'\n\nconst CollapsibleFieldComponent: CollapsibleFieldClientComponent = (props) => {\n const {\n field,\n field: { admin: { className, description, initCollapsed = false } = {}, fields, label } = {},\n indexPath,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n readOnly,\n } = props\n\n const { i18n } = useTranslation()\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const [collapsedOnMount, setCollapsedOnMount] = useState()\n const fieldPreferencesKey = `collapsible-${path?.replace(/\\./g, '__')}`\n const [errorCount, setErrorCount] = useState(0)\n const fieldHasErrors = errorCount > 0\n\n const { customComponents: { AfterInput, BeforeInput, Description, Label } = {}, disabled } =\n useField({\n path,\n })\n\n const onToggle = useCallback(\n async (newCollapsedState: boolean): Promise => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n if (preferencesKey) {\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n collapsed: newCollapsedState,\n },\n },\n }\n : {\n fields: {\n ...(existingPreferences?.fields || {}),\n [fieldPreferencesKey]: {\n ...existingPreferences?.fields?.[fieldPreferencesKey],\n collapsed: newCollapsedState,\n },\n },\n }),\n })\n }\n },\n [preferencesKey, fieldPreferencesKey, getPreference, setPreference, path],\n )\n\n useEffect(() => {\n const fetchInitialState = async () => {\n if (preferencesKey) {\n const preferences = await getPreference(preferencesKey)\n const specificPreference = path\n ? preferences?.fields?.[path]?.collapsed\n : preferences?.fields?.[fieldPreferencesKey]?.collapsed\n\n if (specificPreference !== undefined) {\n setCollapsedOnMount(Boolean(specificPreference))\n } else {\n setCollapsedOnMount(typeof initCollapsed === 'boolean' ? initCollapsed : false)\n }\n } else {\n setCollapsedOnMount(typeof initCollapsed === 'boolean' ? initCollapsed : false)\n }\n }\n\n void fetchInitialState()\n }, [getPreference, preferencesKey, fieldPreferencesKey, initCollapsed, path])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n if (typeof collapsedOnMount !== 'boolean') {\n return null\n }\n\n return (\n \n \n \n {BeforeInput}\n \n \n {fieldHasErrors && }\n \n }\n initCollapsed={collapsedOnMount}\n onToggle={onToggle}\n >\n \n \n {AfterInput}\n }\n />\n \n \n )\n}\n\nexport const CollapsibleField = withCondition(CollapsibleFieldComponent)\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AAE3E,SAASC,WAAA,IAAeC,kBAAkB,QAAQ;AAClD,SAASC,SAAS,QAAQ;AAC1B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,YAAY,QAAQ;AAC7B,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,OAAO;AACP,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,MAAMC,yBAAA,GAA8DC,KAAA;EAClE,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MAAEC,KAAA,EAAO;QAAEC,SAAS;QAAEC,WAAW;QAAEC,aAAA,GAAgB;MAAK,CAAE,GAAG,CAAC,CAAC;MAAEC,MAAM;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC5FC,SAAS;IACTC,UAAU;IACVC,gBAAgB;IAChBC,IAAI;IACJC,WAAW;IACXC;EAAQ,CACT,GAAGb,KAAA;EAEJ,MAAM;IAAEc;EAAI,CAAE,GAAGnB,cAAA;EACjB,MAAM;IAAEoB,aAAa;IAAEC;EAAa,CAAE,GAAGtB,cAAA;EACzC,MAAM;IAAEuB;EAAc,CAAE,GAAGxB,eAAA;EAC3B,MAAM,CAACyB,gBAAA,EAAkBC,mBAAA,CAAoB,GAAGrC,QAAA;EAChD,MAAMsC,mBAAA,GAAsB,eAAeT,IAAA,EAAMU,OAAA,CAAQ,OAAO,OAAO;EACvE,MAAM,CAACC,UAAA,EAAYC,aAAA,CAAc,GAAGzC,QAAA,CAAS;EAC7C,MAAM0C,cAAA,GAAiBF,UAAA,GAAa;EAEpC,MAAM;IAAEG,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAAEC;EAAQ,CAAE,GACxFxC,QAAA,CAAS;IACPqB;EACF;EAEF,MAAMoB,QAAA,GAAWpD,WAAA,CACf,MAAOqD,iBAAA;IACL,MAAMC,mBAAA,GAA2C,MAAMlB,aAAA,CAAcE,cAAA;IAErE,IAAIA,cAAA,EAAgB;MAClB,KAAKD,aAAA,CAAcC,cAAA,EAAgB;QACjC,GAAGgB,mBAAmB;QACtB,IAAItB,IAAA,GACA;UACEL,MAAA,EAAQ;YACN,IAAI2B,mBAAA,EAAqB3B,MAAA,IAAU,CAAC,CAAC;YACrC,CAACK,IAAA,GAAO;cACN,GAAGsB,mBAAA,EAAqB3B,MAAA,GAASK,IAAA,CAAK;cACtCuB,SAAA,EAAWF;YACb;UACF;QACF,IACA;UACE1B,MAAA,EAAQ;YACN,IAAI2B,mBAAA,EAAqB3B,MAAA,IAAU,CAAC,CAAC;YACrC,CAACc,mBAAA,GAAsB;cACrB,GAAGa,mBAAA,EAAqB3B,MAAA,GAASc,mBAAA,CAAoB;cACrDc,SAAA,EAAWF;YACb;UACF;QACF,CAAC;MACP;IACF;EACF,GACA,CAACf,cAAA,EAAgBG,mBAAA,EAAqBL,aAAA,EAAeC,aAAA,EAAeL,IAAA,CAAK;EAG3E/B,SAAA,CAAU;IACR,MAAMuD,iBAAA,GAAoB,MAAAA,CAAA;MACxB,IAAIlB,cAAA,EAAgB;QAClB,MAAMmB,WAAA,GAAc,MAAMrB,aAAA,CAAcE,cAAA;QACxC,MAAMoB,kBAAA,GAAqB1B,IAAA,GACvByB,WAAA,EAAa9B,MAAA,GAASK,IAAA,CAAK,EAAEuB,SAAA,GAC7BE,WAAA,EAAa9B,MAAA,GAASc,mBAAA,CAAoB,EAAEc,SAAA;QAEhD,IAAIG,kBAAA,KAAuBC,SAAA,EAAW;UACpCnB,mBAAA,CAAoBoB,OAAA,CAAQF,kBAAA;QAC9B,OAAO;UACLlB,mBAAA,CAAoB,OAAOd,aAAA,KAAkB,YAAYA,aAAA,GAAgB;QAC3E;MACF,OAAO;QACLc,mBAAA,CAAoB,OAAOd,aAAA,KAAkB,YAAYA,aAAA,GAAgB;MAC3E;IACF;IAEA,KAAK8B,iBAAA;EACP,GAAG,CAACpB,aAAA,EAAeE,cAAA,EAAgBG,mBAAA,EAAqBf,aAAA,EAAeM,IAAA,CAAK;EAE5E,MAAM6B,MAAA,GAAS3D,OAAA,CAAQ,MAAMe,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,IAAI,OAAOiB,gBAAA,KAAqB,WAAW;IACzC,OAAO;EACT;EAEA,oBACEuB,KAAA,CAAC/D,QAAA;4BACCgE,IAAA,CAACnD,gBAAA;MACCe,MAAA,EAAQA,MAAA;MACR;MACAK,IAAA,EAAMA,IAAA,CAAKgC,KAAK,CAAC,KAAKC,KAAK,CAAC,GAAG,CAAC;MAChCrB,aAAA,EAAeA;qBAEjBkB,KAAA,CAAC;MACCtC,SAAA,EAAW,CACTN,cAAA,EACAC,SAAA,EACAK,SAAA,EACAqB,cAAA,GAAiB,GAAG1B,SAAA,aAAsB,GAAG,GAAGA,SAAA,gBAAyB,CAC1E,CACE+C,MAAM,CAACN,OAAA,EACPO,IAAI,CAAC;MACRC,EAAA,EAAI,SAAS3B,mBAAA,EAAqB;MAClC4B,KAAA,EAAOR,MAAA;iBAENb,WAAA,E,aACDe,IAAA,CAAC1D,kBAAA;QACCmB,SAAA,EAAW,GAAGL,SAAA,eAAwB;QACtCmD,gBAAA,EAAkBzB,cAAA,GAAiB,UAAU;QAC7C0B,MAAA,eACET,KAAA,CAAC;UAAItC,SAAA,EAAW,GAAGL,SAAA,kBAA2B;kCAC5C4C,IAAA,CAACrD,QAAA;YAAS8D,eAAA,EAAiBtB,KAAA;YAAOtB,KAAA,EAAO/B,cAAA,CAAe+B,KAAA,EAAOO,IAAA;YAAOH,IAAA,EAAMA;cAC3Ea,cAAA,iBAAkBkB,IAAA,CAACzD,SAAA;YAAUmE,KAAA,EAAO9B,UAAA;YAAYR,IAAA,EAAMA,IAAA;YAAMuC,WAAW;;;QAG5EhD,aAAA,EAAea,gBAAA;QACfa,QAAA,EAAUA,QAAA;kBAEV,aAAAW,IAAA,CAACtD,YAAA;UACCkB,MAAA,EAAQA,MAAA;UACRgD,OAAA,EAAQ;UACRC,eAAA,EAAiB/C,SAAA;UACjBC,UAAA,EAAYA,UAAA;UACZC,gBAAA,EAAkBA,gBAAA;UAClBE,WAAA,EAAaA,WAAA;UACbC,QAAA,EAAUA,QAAA,IAAYiB;;UAGzBJ,UAAA,E,aACDgB,IAAA,CAACxD,qBAAA;QACCiE,eAAA,EAAiBvB,WAAA;QACjB4B,QAAA,eAAUd,IAAA,CAACvD,gBAAA;UAAiBiB,WAAA,EAAaA,WAAA;UAAaO,IAAA,EAAMA;;;;;AAKtE;AAEA,OAAO,MAAM8C,gBAAA,GAAmBjE,aAAA,CAAcO,yBAAA","ignoreList":[]}