{
  "version": 3,
  "sources": ["../../../src/components/meta-boxes/use-meta-box-initialization.js"],
  "sourcesContent": ["import { useDispatch, useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\nimport { store as editPostStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Initializes WordPress `postboxes` script and the logic for saving meta boxes.\n *\n * @param { boolean } enabled\n */\nexport const useMetaBoxInitialization = ( enabled ) => {\n\tconst {\n\t\tisEnabledAndEditorReady,\n\t\tisCollaborationEnabled,\n\t\thasIncompatibleMetaBoxes,\n\t\thasActiveMetaBoxes,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\t__unstableIsEditorReady,\n\t\t\t\tisCollaborationEnabledForCurrentPost,\n\t\t\t} = unlock( select( editorStore ) );\n\t\t\treturn {\n\t\t\t\tisEnabledAndEditorReady: enabled && __unstableIsEditorReady(),\n\t\t\t\tisCollaborationEnabled: isCollaborationEnabledForCurrentPost(),\n\t\t\t\thasIncompatibleMetaBoxes: enabled\n\t\t\t\t\t? select( editPostStore )\n\t\t\t\t\t\t\t.getAllMetaBoxes()\n\t\t\t\t\t\t\t.some( ( metaBox ) => ! metaBox.__rtc_compatible )\n\t\t\t\t\t: false,\n\t\t\t\thasActiveMetaBoxes:\n\t\t\t\t\tenabled && select( editPostStore ).hasMetaBoxes(),\n\t\t\t};\n\t\t},\n\t\t[ enabled ]\n\t);\n\tconst { setCollaborationSupported } = unlock( useDispatch( coreStore ) );\n\tconst { updateEditorSettings } = useDispatch( editorStore );\n\tconst { initializeMetaBoxes } = useDispatch( editPostStore );\n\n\t// The effect has to rerun when the editor is ready because initializeMetaBoxes\n\t// will noop until then.\n\tuseEffect( () => {\n\t\tif ( isEnabledAndEditorReady ) {\n\t\t\tinitializeMetaBoxes();\n\n\t\t\t// Disable real-time collaboration when incompatible meta boxes are detected.\n\t\t\tif ( isCollaborationEnabled && hasIncompatibleMetaBoxes ) {\n\t\t\t\tsetCollaborationSupported( false );\n\t\t\t}\n\n\t\t\t// Classic meta box values are saved through a separate\n\t\t\t// admin-ajax submission that the in-editor revisions restore\n\t\t\t// does not drive, so visual revisions would silently leave\n\t\t\t// them untouched. Fall back to the classic revision.php\n\t\t\t// admin screen instead.\n\t\t\tif ( hasActiveMetaBoxes ) {\n\t\t\t\tupdateEditorSettings( { disableVisualRevisions: true } );\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisEnabledAndEditorReady,\n\t\tinitializeMetaBoxes,\n\t\tisCollaborationEnabled,\n\t\tsetCollaborationSupported,\n\t\thasIncompatibleMetaBoxes,\n\t\thasActiveMetaBoxes,\n\t\tupdateEditorSettings,\n\t] );\n};\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAuC;AACvC,oBAAqC;AACrC,uBAAmC;AACnC,qBAA0B;AAC1B,mBAAuC;AACvC,yBAAuB;AAOhB,IAAM,2BAA2B,CAAE,YAAa;AACtD,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI;AAAA,IACH,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,MACD,QAAI,2BAAQ,OAAQ,cAAAA,KAAY,CAAE;AAClC,aAAO;AAAA,QACN,yBAAyB,WAAW,wBAAwB;AAAA,QAC5D,wBAAwB,qCAAqC;AAAA,QAC7D,0BAA0B,UACvB,OAAQ,aAAAC,KAAc,EACrB,gBAAgB,EAChB,KAAM,CAAE,YAAa,CAAE,QAAQ,gBAAiB,IACjD;AAAA,QACH,oBACC,WAAW,OAAQ,aAAAA,KAAc,EAAE,aAAa;AAAA,MAClD;AAAA,IACD;AAAA,IACA,CAAE,OAAQ;AAAA,EACX;AACA,QAAM,EAAE,0BAA0B,QAAI,+BAAQ,yBAAa,iBAAAC,KAAU,CAAE;AACvE,QAAM,EAAE,qBAAqB,QAAI,yBAAa,cAAAF,KAAY;AAC1D,QAAM,EAAE,oBAAoB,QAAI,yBAAa,aAAAC,KAAc;AAI3D,gCAAW,MAAM;AAChB,QAAK,yBAA0B;AAC9B,0BAAoB;AAGpB,UAAK,0BAA0B,0BAA2B;AACzD,kCAA2B,KAAM;AAAA,MAClC;AAOA,UAAK,oBAAqB;AACzB,6BAAsB,EAAE,wBAAwB,KAAK,CAAE;AAAA,MACxD;AAAA,IACD;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AACH;",
  "names": ["editorStore", "editPostStore", "coreStore"]
}
