@wordpress/customize-widgets 3.7.0 → 3.8.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 3.8.0 (2022-06-15)
6
+
5
7
  ## 3.7.0 (2022-06-01)
6
8
 
7
9
  ## 3.6.0 (2022-05-18)
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/customize-widgets/use-clear-selected-block.js"],"names":["useClearSelectedBlock","sidebarControl","popoverRef","hasSelectedBlock","hasMultiSelection","blockEditorStore","clearSelectedBlock","current","inspector","container","ownerDocument","ownerWindow","defaultView","handleClearSelectedBlock","element","contains","closest","expanded","handleMouseDown","event","target","handleBlur","activeElement","addEventListener","removeEventListener"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,qBAAT,CAAgCC,cAAhC,EAAgDC,UAAhD,EAA6D;AAC3E,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAA0C,qBAC/CC,kBAD+C,CAAhD;AAGA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaD,kBAAb,CAA/B;AAEA,0BAAW,MAAM;AAChB,QAAKH,UAAU,CAACK,OAAX,IAAsBN,cAA3B,EAA4C;AAC3C,YAAMO,SAAS,GAAGP,cAAc,CAACO,SAAjC;AACA,YAAMC,SAAS,GAAGR,cAAc,CAACQ,SAAf,CAA0B,CAA1B,CAAlB;AACA,YAAMC,aAAa,GAAGD,SAAS,CAACC,aAAhC;AACA,YAAMC,WAAW,GAAGD,aAAa,CAACE,WAAlC;;AAEA,eAASC,wBAAT,CAAmCC,OAAnC,EAA6C;AAC5C,aACC;AACA,SAAEX,gBAAgB,MAAMC,iBAAiB,EAAzC,KACA;AACAU,QAAAA,OAFA,IAGAJ,aAAa,CAACK,QAAd,CAAwBD,OAAxB,CAHA,IAIA;AACA,SAAEL,SAAS,CAACM,QAAV,CAAoBD,OAApB,CALF,IAMA,CAAEZ,UAAU,CAACK,OAAX,CAAmBQ,QAAnB,CAA6BD,OAA7B,CANF,IAOA,CAAEA,OAAO,CAACE,OAAR,CAAiB,iBAAjB,CAPF,IAQA;AACA,SAAER,SAAS,CAACS,QAAV,EAXH,EAYE;AACDX,UAAAA,kBAAkB;AAClB;AACD,OAtB0C,CAwB3C;;;AACA,eAASY,eAAT,CAA0BC,KAA1B,EAAkC;AACjCN,QAAAA,wBAAwB,CAAEM,KAAK,CAACC,MAAR,CAAxB;AACA,OA3B0C,CA4B3C;;;AACA,eAASC,UAAT,GAAsB;AACrBR,QAAAA,wBAAwB,CAAEH,aAAa,CAACY,aAAhB,CAAxB;AACA;;AAEDZ,MAAAA,aAAa,CAACa,gBAAd,CAAgC,WAAhC,EAA6CL,eAA7C;AACAP,MAAAA,WAAW,CAACY,gBAAZ,CAA8B,MAA9B,EAAsCF,UAAtC;AAEA,aAAO,MAAM;AACZX,QAAAA,aAAa,CAACc,mBAAd,CACC,WADD,EAECN,eAFD;AAIAP,QAAAA,WAAW,CAACa,mBAAZ,CAAiC,MAAjC,EAAyCH,UAAzC;AACA,OAND;AAOA;AACD,GA7CD,EA6CG,CACFnB,UADE,EAEFD,cAFE,EAGFE,gBAHE,EAIFC,iBAJE,EAKFE,kBALE,CA7CH;AAoDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * We can't just use <BlockSelectionClearer> because the customizer has\n * many root nodes rather than just one in the post editor.\n * We need to listen to the focus events in all those roots, and also in\n * the preview iframe.\n * This hook will clear the selected block when focusing outside the editor,\n * with a few exceptions:\n * 1. Focusing on popovers.\n * 2. Focusing on the inspector.\n * 3. Focusing on any modals/dialogs.\n * These cases are normally triggered by user interactions from the editor,\n * not by explicitly focusing outside the editor, hence no need for clearing.\n *\n * @param {Object} sidebarControl The sidebar control instance.\n * @param {Object} popoverRef The ref object of the popover node container.\n */\nexport default function useClearSelectedBlock( sidebarControl, popoverRef ) {\n\tconst { hasSelectedBlock, hasMultiSelection } = useSelect(\n\t\tblockEditorStore\n\t);\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( popoverRef.current && sidebarControl ) {\n\t\t\tconst inspector = sidebarControl.inspector;\n\t\t\tconst container = sidebarControl.container[ 0 ];\n\t\t\tconst ownerDocument = container.ownerDocument;\n\t\t\tconst ownerWindow = ownerDocument.defaultView;\n\n\t\t\tfunction handleClearSelectedBlock( element ) {\n\t\t\t\tif (\n\t\t\t\t\t// 1. Make sure there are blocks being selected.\n\t\t\t\t\t( hasSelectedBlock() || hasMultiSelection() ) &&\n\t\t\t\t\t// 2. The element should exist in the DOM (not deleted).\n\t\t\t\t\telement &&\n\t\t\t\t\townerDocument.contains( element ) &&\n\t\t\t\t\t// 3. It should also not exist in the container, the popover, nor the dialog.\n\t\t\t\t\t! container.contains( element ) &&\n\t\t\t\t\t! popoverRef.current.contains( element ) &&\n\t\t\t\t\t! element.closest( '[role=\"dialog\"]' ) &&\n\t\t\t\t\t// 4. The inspector should not be opened.\n\t\t\t\t\t! inspector.expanded()\n\t\t\t\t) {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Handle mouse down in the same document.\n\t\t\tfunction handleMouseDown( event ) {\n\t\t\t\thandleClearSelectedBlock( event.target );\n\t\t\t}\n\t\t\t// Handle focusing outside the current document, like to iframes.\n\t\t\tfunction handleBlur() {\n\t\t\t\thandleClearSelectedBlock( ownerDocument.activeElement );\n\t\t\t}\n\n\t\t\townerDocument.addEventListener( 'mousedown', handleMouseDown );\n\t\t\townerWindow.addEventListener( 'blur', handleBlur );\n\n\t\t\treturn () => {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'mousedown',\n\t\t\t\t\thandleMouseDown\n\t\t\t\t);\n\t\t\t\townerWindow.removeEventListener( 'blur', handleBlur );\n\t\t\t};\n\t\t}\n\t}, [\n\t\tpopoverRef,\n\t\tsidebarControl,\n\t\thasSelectedBlock,\n\t\thasMultiSelection,\n\t\tclearSelectedBlock,\n\t] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/components/customize-widgets/use-clear-selected-block.js"],"names":["useClearSelectedBlock","sidebarControl","popoverRef","hasSelectedBlock","hasMultiSelection","blockEditorStore","clearSelectedBlock","current","inspector","container","ownerDocument","ownerWindow","defaultView","handleClearSelectedBlock","element","contains","closest","expanded","handleMouseDown","event","target","handleBlur","activeElement","addEventListener","removeEventListener"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,qBAAT,CAAgCC,cAAhC,EAAgDC,UAAhD,EAA6D;AAC3E,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MACL,qBAAWC,kBAAX,CADD;AAEA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaD,kBAAb,CAA/B;AAEA,0BAAW,MAAM;AAChB,QAAKH,UAAU,CAACK,OAAX,IAAsBN,cAA3B,EAA4C;AAC3C,YAAMO,SAAS,GAAGP,cAAc,CAACO,SAAjC;AACA,YAAMC,SAAS,GAAGR,cAAc,CAACQ,SAAf,CAA0B,CAA1B,CAAlB;AACA,YAAMC,aAAa,GAAGD,SAAS,CAACC,aAAhC;AACA,YAAMC,WAAW,GAAGD,aAAa,CAACE,WAAlC;;AAEA,eAASC,wBAAT,CAAmCC,OAAnC,EAA6C;AAC5C,aACC;AACA,SAAEX,gBAAgB,MAAMC,iBAAiB,EAAzC,KACA;AACAU,QAAAA,OAFA,IAGAJ,aAAa,CAACK,QAAd,CAAwBD,OAAxB,CAHA,IAIA;AACA,SAAEL,SAAS,CAACM,QAAV,CAAoBD,OAApB,CALF,IAMA,CAAEZ,UAAU,CAACK,OAAX,CAAmBQ,QAAnB,CAA6BD,OAA7B,CANF,IAOA,CAAEA,OAAO,CAACE,OAAR,CAAiB,iBAAjB,CAPF,IAQA;AACA,SAAER,SAAS,CAACS,QAAV,EAXH,EAYE;AACDX,UAAAA,kBAAkB;AAClB;AACD,OAtB0C,CAwB3C;;;AACA,eAASY,eAAT,CAA0BC,KAA1B,EAAkC;AACjCN,QAAAA,wBAAwB,CAAEM,KAAK,CAACC,MAAR,CAAxB;AACA,OA3B0C,CA4B3C;;;AACA,eAASC,UAAT,GAAsB;AACrBR,QAAAA,wBAAwB,CAAEH,aAAa,CAACY,aAAhB,CAAxB;AACA;;AAEDZ,MAAAA,aAAa,CAACa,gBAAd,CAAgC,WAAhC,EAA6CL,eAA7C;AACAP,MAAAA,WAAW,CAACY,gBAAZ,CAA8B,MAA9B,EAAsCF,UAAtC;AAEA,aAAO,MAAM;AACZX,QAAAA,aAAa,CAACc,mBAAd,CACC,WADD,EAECN,eAFD;AAIAP,QAAAA,WAAW,CAACa,mBAAZ,CAAiC,MAAjC,EAAyCH,UAAzC;AACA,OAND;AAOA;AACD,GA7CD,EA6CG,CACFnB,UADE,EAEFD,cAFE,EAGFE,gBAHE,EAIFC,iBAJE,EAKFE,kBALE,CA7CH;AAoDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * We can't just use <BlockSelectionClearer> because the customizer has\n * many root nodes rather than just one in the post editor.\n * We need to listen to the focus events in all those roots, and also in\n * the preview iframe.\n * This hook will clear the selected block when focusing outside the editor,\n * with a few exceptions:\n * 1. Focusing on popovers.\n * 2. Focusing on the inspector.\n * 3. Focusing on any modals/dialogs.\n * These cases are normally triggered by user interactions from the editor,\n * not by explicitly focusing outside the editor, hence no need for clearing.\n *\n * @param {Object} sidebarControl The sidebar control instance.\n * @param {Object} popoverRef The ref object of the popover node container.\n */\nexport default function useClearSelectedBlock( sidebarControl, popoverRef ) {\n\tconst { hasSelectedBlock, hasMultiSelection } =\n\t\tuseSelect( blockEditorStore );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( popoverRef.current && sidebarControl ) {\n\t\t\tconst inspector = sidebarControl.inspector;\n\t\t\tconst container = sidebarControl.container[ 0 ];\n\t\t\tconst ownerDocument = container.ownerDocument;\n\t\t\tconst ownerWindow = ownerDocument.defaultView;\n\n\t\t\tfunction handleClearSelectedBlock( element ) {\n\t\t\t\tif (\n\t\t\t\t\t// 1. Make sure there are blocks being selected.\n\t\t\t\t\t( hasSelectedBlock() || hasMultiSelection() ) &&\n\t\t\t\t\t// 2. The element should exist in the DOM (not deleted).\n\t\t\t\t\telement &&\n\t\t\t\t\townerDocument.contains( element ) &&\n\t\t\t\t\t// 3. It should also not exist in the container, the popover, nor the dialog.\n\t\t\t\t\t! container.contains( element ) &&\n\t\t\t\t\t! popoverRef.current.contains( element ) &&\n\t\t\t\t\t! element.closest( '[role=\"dialog\"]' ) &&\n\t\t\t\t\t// 4. The inspector should not be opened.\n\t\t\t\t\t! inspector.expanded()\n\t\t\t\t) {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Handle mouse down in the same document.\n\t\t\tfunction handleMouseDown( event ) {\n\t\t\t\thandleClearSelectedBlock( event.target );\n\t\t\t}\n\t\t\t// Handle focusing outside the current document, like to iframes.\n\t\t\tfunction handleBlur() {\n\t\t\t\thandleClearSelectedBlock( ownerDocument.activeElement );\n\t\t\t}\n\n\t\t\townerDocument.addEventListener( 'mousedown', handleMouseDown );\n\t\t\townerWindow.addEventListener( 'blur', handleBlur );\n\n\t\t\treturn () => {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'mousedown',\n\t\t\t\t\thandleMouseDown\n\t\t\t\t);\n\t\t\t\townerWindow.removeEventListener( 'blur', handleBlur );\n\t\t\t};\n\t\t}\n\t}, [\n\t\tpopoverRef,\n\t\tsidebarControl,\n\t\thasSelectedBlock,\n\t\thasMultiSelection,\n\t\tclearSelectedBlock,\n\t] );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/focus-control/index.js"],"names":["FocusControlContext","FocusControl","api","sidebarControls","children","focusedWidgetIdRef","setFocusedWidgetIdRef","current","focusWidget","widgetId","sidebarControl","widgets","setting","get","includes","sectionInstance","expand","completeCallback","handleFocus","settingId","handleReady","previewer","preview","bind","unbind","context","useFocusControl"],"mappings":";;;;;;;;AAGA;;AAYA;;AAfA;AACA;AACA;;AAUA;AACA;AACA;AAGA,MAAMA,mBAAmB,GAAG,6BAA5B;;AAEe,SAASC,YAAT,OAA4D;AAAA,MAArC;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,eAAP;AAAwBC,IAAAA;AAAxB,GAAqC;AAC1E,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgD,uBAAU;AAC/DC,IAAAA,OAAO,EAAE;AADsD,GAAV,CAAtD;AAIA,QAAMC,WAAW,GAAG,0BACjBC,QAAF,IAAgB;AACf,SAAM,MAAMC,cAAZ,IAA8BP,eAA9B,EAAgD;AAC/C,YAAMQ,OAAO,GAAGD,cAAc,CAACE,OAAf,CAAuBC,GAAvB,EAAhB;;AAEA,UAAKF,OAAO,CAACG,QAAR,CAAkBL,QAAlB,CAAL,EAAoC;AACnCC,QAAAA,cAAc,CAACK,eAAf,CAA+BC,MAA/B,CAAuC;AACtC;AACA;AACAC,UAAAA,gBAAgB,GAAG;AAClB;AACA;AACAX,YAAAA,qBAAqB,CAAE;AAAEC,cAAAA,OAAO,EAAEE;AAAX,aAAF,CAArB;AACA;;AAPqC,SAAvC;AAUA;AACA;AACD;AACD,GAnBkB,EAoBnB,CAAEN,eAAF,CApBmB,CAApB;AAuBA,0BAAW,MAAM;AAChB,aAASe,WAAT,CAAsBC,SAAtB,EAAkC;AACjC,YAAMV,QAAQ,GAAG,gCAAqBU,SAArB,CAAjB;AAEAX,MAAAA,WAAW,CAAEC,QAAF,CAAX;AACA;;AAED,aAASW,WAAT,GAAuB;AACtBlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcC,OAAd,CAAsBC,IAAtB,CACC,2BADD,EAECL,WAFD;AAIA;;AAEDhB,IAAAA,GAAG,CAACmB,SAAJ,CAAcE,IAAd,CAAoB,OAApB,EAA6BH,WAA7B;AAEA,WAAO,MAAM;AACZlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcG,MAAd,CAAsB,OAAtB,EAA+BJ,WAA/B;AACAlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcC,OAAd,CAAsBE,MAAtB,CACC,2BADD,EAECN,WAFD;AAIA,KAND;AAOA,GAvBD,EAuBG,CAAEhB,GAAF,EAAOM,WAAP,CAvBH;AAyBA,QAAMiB,OAAO,GAAG,sBAAS,MAAM,CAAEpB,kBAAF,EAAsBG,WAAtB,CAAf,EAAoD,CACnEH,kBADmE,EAEnEG,WAFmE,CAApD,CAAhB;AAKA,SACC,4BAAC,mBAAD,CAAqB,QAArB;AAA8B,IAAA,KAAK,EAAGiB;AAAtC,KACGrB,QADH,CADD;AAKA;;AAEM,MAAMsB,eAAe,GAAG,MAAM,yBAAY1B,mBAAZ,CAA9B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseState,\n\tuseEffect,\n\tuseContext,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst FocusControlContext = createContext();\n\nexport default function FocusControl( { api, sidebarControls, children } ) {\n\tconst [ focusedWidgetIdRef, setFocusedWidgetIdRef ] = useState( {\n\t\tcurrent: null,\n\t} );\n\n\tconst focusWidget = useCallback(\n\t\t( widgetId ) => {\n\t\t\tfor ( const sidebarControl of sidebarControls ) {\n\t\t\t\tconst widgets = sidebarControl.setting.get();\n\n\t\t\t\tif ( widgets.includes( widgetId ) ) {\n\t\t\t\t\tsidebarControl.sectionInstance.expand( {\n\t\t\t\t\t\t// Schedule it after the complete callback so that\n\t\t\t\t\t\t// it won't be overridden by the \"Back\" button focus.\n\t\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t\t// Create a \"ref-like\" object every time to ensure\n\t\t\t\t\t\t\t// the same widget id can also triggers the focus control.\n\t\t\t\t\t\t\tsetFocusedWidgetIdRef( { current: widgetId } );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ sidebarControls ]\n\t);\n\n\tuseEffect( () => {\n\t\tfunction handleFocus( settingId ) {\n\t\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\t\tfocusWidget( widgetId );\n\t\t}\n\n\t\tfunction handleReady() {\n\t\t\tapi.previewer.preview.bind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t}\n\n\t\tapi.previewer.bind( 'ready', handleReady );\n\n\t\treturn () => {\n\t\t\tapi.previewer.unbind( 'ready', handleReady );\n\t\t\tapi.previewer.preview.unbind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t};\n\t}, [ api, focusWidget ] );\n\n\tconst context = useMemo( () => [ focusedWidgetIdRef, focusWidget ], [\n\t\tfocusedWidgetIdRef,\n\t\tfocusWidget,\n\t] );\n\n\treturn (\n\t\t<FocusControlContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</FocusControlContext.Provider>\n\t);\n}\n\nexport const useFocusControl = () => useContext( FocusControlContext );\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/components/focus-control/index.js"],"names":["FocusControlContext","FocusControl","api","sidebarControls","children","focusedWidgetIdRef","setFocusedWidgetIdRef","current","focusWidget","widgetId","sidebarControl","widgets","setting","get","includes","sectionInstance","expand","completeCallback","handleFocus","settingId","handleReady","previewer","preview","bind","unbind","context","useFocusControl"],"mappings":";;;;;;;;AAGA;;AAYA;;AAfA;AACA;AACA;;AAUA;AACA;AACA;AAGA,MAAMA,mBAAmB,GAAG,6BAA5B;;AAEe,SAASC,YAAT,OAA4D;AAAA,MAArC;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,eAAP;AAAwBC,IAAAA;AAAxB,GAAqC;AAC1E,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgD,uBAAU;AAC/DC,IAAAA,OAAO,EAAE;AADsD,GAAV,CAAtD;AAIA,QAAMC,WAAW,GAAG,0BACjBC,QAAF,IAAgB;AACf,SAAM,MAAMC,cAAZ,IAA8BP,eAA9B,EAAgD;AAC/C,YAAMQ,OAAO,GAAGD,cAAc,CAACE,OAAf,CAAuBC,GAAvB,EAAhB;;AAEA,UAAKF,OAAO,CAACG,QAAR,CAAkBL,QAAlB,CAAL,EAAoC;AACnCC,QAAAA,cAAc,CAACK,eAAf,CAA+BC,MAA/B,CAAuC;AACtC;AACA;AACAC,UAAAA,gBAAgB,GAAG;AAClB;AACA;AACAX,YAAAA,qBAAqB,CAAE;AAAEC,cAAAA,OAAO,EAAEE;AAAX,aAAF,CAArB;AACA;;AAPqC,SAAvC;AAUA;AACA;AACD;AACD,GAnBkB,EAoBnB,CAAEN,eAAF,CApBmB,CAApB;AAuBA,0BAAW,MAAM;AAChB,aAASe,WAAT,CAAsBC,SAAtB,EAAkC;AACjC,YAAMV,QAAQ,GAAG,gCAAqBU,SAArB,CAAjB;AAEAX,MAAAA,WAAW,CAAEC,QAAF,CAAX;AACA;;AAED,aAASW,WAAT,GAAuB;AACtBlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcC,OAAd,CAAsBC,IAAtB,CACC,2BADD,EAECL,WAFD;AAIA;;AAEDhB,IAAAA,GAAG,CAACmB,SAAJ,CAAcE,IAAd,CAAoB,OAApB,EAA6BH,WAA7B;AAEA,WAAO,MAAM;AACZlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcG,MAAd,CAAsB,OAAtB,EAA+BJ,WAA/B;AACAlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcC,OAAd,CAAsBE,MAAtB,CACC,2BADD,EAECN,WAFD;AAIA,KAND;AAOA,GAvBD,EAuBG,CAAEhB,GAAF,EAAOM,WAAP,CAvBH;AAyBA,QAAMiB,OAAO,GAAG,sBACf,MAAM,CAAEpB,kBAAF,EAAsBG,WAAtB,CADS,EAEf,CAAEH,kBAAF,EAAsBG,WAAtB,CAFe,CAAhB;AAKA,SACC,4BAAC,mBAAD,CAAqB,QAArB;AAA8B,IAAA,KAAK,EAAGiB;AAAtC,KACGrB,QADH,CADD;AAKA;;AAEM,MAAMsB,eAAe,GAAG,MAAM,yBAAY1B,mBAAZ,CAA9B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseState,\n\tuseEffect,\n\tuseContext,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst FocusControlContext = createContext();\n\nexport default function FocusControl( { api, sidebarControls, children } ) {\n\tconst [ focusedWidgetIdRef, setFocusedWidgetIdRef ] = useState( {\n\t\tcurrent: null,\n\t} );\n\n\tconst focusWidget = useCallback(\n\t\t( widgetId ) => {\n\t\t\tfor ( const sidebarControl of sidebarControls ) {\n\t\t\t\tconst widgets = sidebarControl.setting.get();\n\n\t\t\t\tif ( widgets.includes( widgetId ) ) {\n\t\t\t\t\tsidebarControl.sectionInstance.expand( {\n\t\t\t\t\t\t// Schedule it after the complete callback so that\n\t\t\t\t\t\t// it won't be overridden by the \"Back\" button focus.\n\t\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t\t// Create a \"ref-like\" object every time to ensure\n\t\t\t\t\t\t\t// the same widget id can also triggers the focus control.\n\t\t\t\t\t\t\tsetFocusedWidgetIdRef( { current: widgetId } );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ sidebarControls ]\n\t);\n\n\tuseEffect( () => {\n\t\tfunction handleFocus( settingId ) {\n\t\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\t\tfocusWidget( widgetId );\n\t\t}\n\n\t\tfunction handleReady() {\n\t\t\tapi.previewer.preview.bind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t}\n\n\t\tapi.previewer.bind( 'ready', handleReady );\n\n\t\treturn () => {\n\t\t\tapi.previewer.unbind( 'ready', handleReady );\n\t\t\tapi.previewer.preview.unbind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t};\n\t}, [ api, focusWidget ] );\n\n\tconst context = useMemo(\n\t\t() => [ focusedWidgetIdRef, focusWidget ],\n\t\t[ focusedWidgetIdRef, focusWidget ]\n\t);\n\n\treturn (\n\t\t<FocusControlContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</FocusControlContext.Provider>\n\t);\n}\n\nexport const useFocusControl = () => useContext( FocusControlContext );\n"]}
@@ -9,8 +9,6 @@ exports.default = SidebarBlockEditor;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
- var _lodash = require("lodash");
13
-
14
12
  var _coreData = require("@wordpress/core-data");
15
13
 
16
14
  var _data = require("@wordpress/data");
@@ -35,10 +33,6 @@ var _keyboardShortcuts = _interopRequireDefault(require("../keyboard-shortcuts")
35
33
 
36
34
  var _blockAppender = _interopRequireDefault(require("../block-appender"));
37
35
 
38
- /**
39
- * External dependencies
40
- */
41
-
42
36
  /**
43
37
  * WordPress dependencies
44
38
  */
@@ -60,11 +54,13 @@ function SidebarBlockEditor(_ref) {
60
54
  keepCaretInsideBlock,
61
55
  isWelcomeGuideActive
62
56
  } = (0, _data.useSelect)(select => {
57
+ var _select$canUser;
58
+
63
59
  const {
64
60
  get
65
61
  } = select(_preferences.store);
66
62
  return {
67
- hasUploadPermissions: (0, _lodash.defaultTo)(select(_coreData.store).canUser('create', 'media'), true),
63
+ hasUploadPermissions: (_select$canUser = select(_coreData.store).canUser('create', 'media')) !== null && _select$canUser !== void 0 ? _select$canUser : true,
68
64
  isFixedToolbarActive: !!get('core/customize-widgets', 'fixedToolbar'),
69
65
  keepCaretInsideBlock: !!get('core/customize-widgets', 'keepCaretInsideBlock'),
70
66
  isWelcomeGuideActive: !!get('core/customize-widgets', 'welcomeGuide')
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/index.js"],"names":["SidebarBlockEditor","blockEditorSettings","sidebar","inserter","inspector","isInserterOpened","setIsInserterOpened","hasUploadPermissions","isFixedToolbarActive","keepCaretInsideBlock","isWelcomeGuideActive","select","get","preferencesStore","coreStore","canUser","settings","mediaUploadBlockEditor","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalSetIsInserterOpened","mediaUpload","hasFixedToolbar","__unstableHasCustomAppender","undo","redo","save","defaultEditorStyles","BlockAppender","event","preventDefault","contentContainer","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { defaultTo } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, createPortal } from '@wordpress/element';\nimport {\n\tBlockList,\n\tBlockTools,\n\tBlockSelectionClearer,\n\tBlockInspector,\n\tCopyHandler,\n\tObserveTyping,\n\tWritingFlow,\n\tBlockEditorKeyboardShortcuts,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__unstableEditorStyles as EditorStyles,\n} from '@wordpress/block-editor';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport BlockInspectorButton from '../block-inspector-button';\nimport Header from '../header';\nimport useInserter from '../inserter/use-inserter';\nimport SidebarEditorProvider from './sidebar-editor-provider';\nimport WelcomeGuide from '../welcome-guide';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport BlockAppender from '../block-appender';\n\nexport default function SidebarBlockEditor( {\n\tblockEditorSettings,\n\tsidebar,\n\tinserter,\n\tinspector,\n} ) {\n\tconst [ isInserterOpened, setIsInserterOpened ] = useInserter( inserter );\n\tconst {\n\t\thasUploadPermissions,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tisWelcomeGuideActive,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\treturn {\n\t\t\thasUploadPermissions: defaultTo(\n\t\t\t\tselect( coreStore ).canUser( 'create', 'media' ),\n\t\t\t\ttrue\n\t\t\t),\n\t\t\tisFixedToolbarActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tisWelcomeGuideActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'welcomeGuide'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( hasUploadPermissions ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\thasFixedToolbar: isFixedToolbarActive,\n\t\t\tkeepCaretInsideBlock,\n\t\t\t__unstableHasCustomAppender: true,\n\t\t};\n\t}, [\n\t\thasUploadPermissions,\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tsetIsInserterOpened,\n\t] );\n\n\tif ( isWelcomeGuideActive ) {\n\t\treturn <WelcomeGuide sidebar={ sidebar } />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t<KeyboardShortcuts.Register />\n\n\t\t\t<SidebarEditorProvider sidebar={ sidebar } settings={ settings }>\n\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\tundo={ sidebar.undo }\n\t\t\t\t\tredo={ sidebar.redo }\n\t\t\t\t\tsave={ sidebar.save }\n\t\t\t\t/>\n\n\t\t\t\t<Header\n\t\t\t\t\tsidebar={ sidebar }\n\t\t\t\t\tinserter={ inserter }\n\t\t\t\t\tisInserterOpened={ isInserterOpened }\n\t\t\t\t\tsetIsInserterOpened={ setIsInserterOpened }\n\t\t\t\t\tisFixedToolbarActive={ isFixedToolbarActive }\n\t\t\t\t/>\n\n\t\t\t\t<CopyHandler>\n\t\t\t\t\t<BlockTools>\n\t\t\t\t\t\t<EditorStyles styles={ settings.defaultEditorStyles } />\n\t\t\t\t\t\t<BlockSelectionClearer>\n\t\t\t\t\t\t\t<WritingFlow className=\"editor-styles-wrapper\">\n\t\t\t\t\t\t\t\t<ObserveTyping>\n\t\t\t\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\t\t\t\trenderAppender={ BlockAppender }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ObserveTyping>\n\t\t\t\t\t\t\t</WritingFlow>\n\t\t\t\t\t\t</BlockSelectionClearer>\n\t\t\t\t\t</BlockTools>\n\t\t\t\t</CopyHandler>\n\n\t\t\t\t{ createPortal(\n\t\t\t\t\t// This is a temporary hack to prevent button component inside <BlockInspector>\n\t\t\t\t\t// from submitting form when type=\"button\" is not specified.\n\t\t\t\t\t<form onSubmit={ ( event ) => event.preventDefault() }>\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t</form>,\n\t\t\t\t\tinspector.contentContainer[ 0 ]\n\t\t\t\t) }\n\t\t\t</SidebarEditorProvider>\n\n\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<BlockInspectorButton\n\t\t\t\t\t\tinspector={ inspector }\n\t\t\t\t\t\tcloseMenu={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/index.js"],"names":["SidebarBlockEditor","blockEditorSettings","sidebar","inserter","inspector","isInserterOpened","setIsInserterOpened","hasUploadPermissions","isFixedToolbarActive","keepCaretInsideBlock","isWelcomeGuideActive","select","get","preferencesStore","coreStore","canUser","settings","mediaUploadBlockEditor","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalSetIsInserterOpened","mediaUpload","hasFixedToolbar","__unstableHasCustomAppender","undo","redo","save","defaultEditorStyles","BlockAppender","event","preventDefault","contentContainer","onClose"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, createPortal } from '@wordpress/element';\nimport {\n\tBlockList,\n\tBlockTools,\n\tBlockSelectionClearer,\n\tBlockInspector,\n\tCopyHandler,\n\tObserveTyping,\n\tWritingFlow,\n\tBlockEditorKeyboardShortcuts,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__unstableEditorStyles as EditorStyles,\n} from '@wordpress/block-editor';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport BlockInspectorButton from '../block-inspector-button';\nimport Header from '../header';\nimport useInserter from '../inserter/use-inserter';\nimport SidebarEditorProvider from './sidebar-editor-provider';\nimport WelcomeGuide from '../welcome-guide';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport BlockAppender from '../block-appender';\n\nexport default function SidebarBlockEditor( {\n\tblockEditorSettings,\n\tsidebar,\n\tinserter,\n\tinspector,\n} ) {\n\tconst [ isInserterOpened, setIsInserterOpened ] = useInserter( inserter );\n\tconst {\n\t\thasUploadPermissions,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tisWelcomeGuideActive,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\treturn {\n\t\t\thasUploadPermissions:\n\t\t\t\tselect( coreStore ).canUser( 'create', 'media' ) ?? true,\n\t\t\tisFixedToolbarActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tisWelcomeGuideActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'welcomeGuide'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( hasUploadPermissions ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\thasFixedToolbar: isFixedToolbarActive,\n\t\t\tkeepCaretInsideBlock,\n\t\t\t__unstableHasCustomAppender: true,\n\t\t};\n\t}, [\n\t\thasUploadPermissions,\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tsetIsInserterOpened,\n\t] );\n\n\tif ( isWelcomeGuideActive ) {\n\t\treturn <WelcomeGuide sidebar={ sidebar } />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t<KeyboardShortcuts.Register />\n\n\t\t\t<SidebarEditorProvider sidebar={ sidebar } settings={ settings }>\n\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\tundo={ sidebar.undo }\n\t\t\t\t\tredo={ sidebar.redo }\n\t\t\t\t\tsave={ sidebar.save }\n\t\t\t\t/>\n\n\t\t\t\t<Header\n\t\t\t\t\tsidebar={ sidebar }\n\t\t\t\t\tinserter={ inserter }\n\t\t\t\t\tisInserterOpened={ isInserterOpened }\n\t\t\t\t\tsetIsInserterOpened={ setIsInserterOpened }\n\t\t\t\t\tisFixedToolbarActive={ isFixedToolbarActive }\n\t\t\t\t/>\n\n\t\t\t\t<CopyHandler>\n\t\t\t\t\t<BlockTools>\n\t\t\t\t\t\t<EditorStyles styles={ settings.defaultEditorStyles } />\n\t\t\t\t\t\t<BlockSelectionClearer>\n\t\t\t\t\t\t\t<WritingFlow className=\"editor-styles-wrapper\">\n\t\t\t\t\t\t\t\t<ObserveTyping>\n\t\t\t\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\t\t\t\trenderAppender={ BlockAppender }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ObserveTyping>\n\t\t\t\t\t\t\t</WritingFlow>\n\t\t\t\t\t\t</BlockSelectionClearer>\n\t\t\t\t\t</BlockTools>\n\t\t\t\t</CopyHandler>\n\n\t\t\t\t{ createPortal(\n\t\t\t\t\t// This is a temporary hack to prevent button component inside <BlockInspector>\n\t\t\t\t\t// from submitting form when type=\"button\" is not specified.\n\t\t\t\t\t<form onSubmit={ ( event ) => event.preventDefault() }>\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t</form>,\n\t\t\t\t\tinspector.contentContainer[ 0 ]\n\t\t\t\t) }\n\t\t\t</SidebarEditorProvider>\n\n\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<BlockInspectorButton\n\t\t\t\t\t\tinspector={ inspector }\n\t\t\t\t\t\tcloseMenu={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t</>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-adapter.js"],"names":["wp","window","parseWidgetId","widgetId","matches","match","idBase","number","parseInt","widgetIdToSettingId","debounce","leading","callback","timeout","isLeading","timerID","debounced","args","result","apply","clearTimeout","setTimeout","cancel","SidebarAdapter","constructor","setting","api","locked","widgetsCache","WeakMap","subscribers","Set","history","_getWidgetIds","map","getWidget","historyIndex","historySubscribers","_debounceSetHistory","_pushHistory","_replaceHistory","bind","_handleSettingChange","_handleAllSettingsChange","undo","redo","save","subscribe","add","delete","getWidgets","_emit","get","slice","forEach","listener","prevWidgets","id","startsWith","includes","_createWidget","widget","widgetModel","customize","Widgets","availableWidgets","findWhere","id_base","set","settingId","settingArgs","transport","data","selectiveRefreshableWidgets","previewer","create","instance","_removeWidget","remove","_updateWidget","prevWidget","has","_updateWidgets","nextWidgets","addedWidgetIds","nextWidgetIds","nextWidget","push","deletedWidgets","filter","setWidgets","hasUndo","hasRedo","length","_seek","currentWidgets","widgets","subscribeHistory"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGA,MAAM;AAAEA,EAAAA;AAAF,IAASC,MAAf;;AAEA,SAASC,aAAT,CAAwBC,QAAxB,EAAmC;AAClC,QAAMC,OAAO,GAAGD,QAAQ,CAACE,KAAT,CAAgB,cAAhB,CAAhB;;AACA,MAAKD,OAAL,EAAe;AACd,WAAO;AACNE,MAAAA,MAAM,EAAEF,OAAO,CAAE,CAAF,CADT;AAENG,MAAAA,MAAM,EAAEC,QAAQ,CAAEJ,OAAO,CAAE,CAAF,CAAT,EAAgB,EAAhB;AAFV,KAAP;AAIA,GAPiC,CASlC;;;AACA,SAAO;AAAEE,IAAAA,MAAM,EAAEH;AAAV,GAAP;AACA;;AAED,SAASM,mBAAT,CAA8BN,QAA9B,EAAyC;AACxC,QAAM;AAAEG,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAqBL,aAAa,CAAEC,QAAF,CAAxC;;AACA,MAAKI,MAAL,EAAc;AACb,WAAQ,UAAUD,MAAQ,IAAIC,MAAQ,GAAtC;AACA;;AAED,SAAQ,UAAUD,MAAQ,EAA1B;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,QAAT,CAAmBC,OAAnB,EAA4BC,QAA5B,EAAsCC,OAAtC,EAAgD;AAC/C,MAAIC,SAAS,GAAG,KAAhB;AACA,MAAIC,OAAJ;;AAEA,WAASC,SAAT,GAA8B;AAAA,sCAAPC,IAAO;AAAPA,MAAAA,IAAO;AAAA;;AAC7B,UAAMC,MAAM,GAAG,CAAEJ,SAAS,GAAGF,QAAH,GAAcD,OAAzB,EAAmCQ,KAAnC,CAA0C,IAA1C,EAAgDF,IAAhD,CAAf;AAEAH,IAAAA,SAAS,GAAG,IAAZ;AAEAM,IAAAA,YAAY,CAAEL,OAAF,CAAZ;AAEAA,IAAAA,OAAO,GAAGM,UAAU,CAAE,MAAM;AAC3BP,MAAAA,SAAS,GAAG,KAAZ;AACA,KAFmB,EAEjBD,OAFiB,CAApB;AAIA,WAAOK,MAAP;AACA;;AAEDF,EAAAA,SAAS,CAACM,MAAV,GAAmB,MAAM;AACxBR,IAAAA,SAAS,GAAG,KAAZ;AACAM,IAAAA,YAAY,CAAEL,OAAF,CAAZ;AACA,GAHD;;AAKA,SAAOC,SAAP;AACA;;AAEc,MAAMO,cAAN,CAAqB;AACnCC,EAAAA,WAAW,CAAEC,OAAF,EAAWC,GAAX,EAAiB;AAC3B,SAAKD,OAAL,GAAeA,OAAf;AACA,SAAKC,GAAL,GAAWA,GAAX;AAEA,SAAKC,MAAL,GAAc,KAAd;AACA,SAAKC,YAAL,GAAoB,IAAIC,OAAJ,EAApB;AACA,SAAKC,WAAL,GAAmB,IAAIC,GAAJ,EAAnB;AAEA,SAAKC,OAAL,GAAe,CACd,KAAKC,aAAL,GAAqBC,GAArB,CAA4B/B,QAAF,IACzB,KAAKgC,SAAL,CAAgBhC,QAAhB,CADD,CADc,CAAf;AAKA,SAAKiC,YAAL,GAAoB,CAApB;AACA,SAAKC,kBAAL,GAA0B,IAAIN,GAAJ,EAA1B,CAd2B,CAe3B;;AACA,SAAKO,mBAAL,GAA2B5B,QAAQ,CAClC,KAAK6B,YAD6B,EAElC,KAAKC,eAF6B,EAGlC,IAHkC,CAAnC;AAMA,SAAKf,OAAL,CAAagB,IAAb,CAAmB,KAAKC,oBAAL,CAA0BD,IAA1B,CAAgC,IAAhC,CAAnB;AACA,SAAKf,GAAL,CAASe,IAAT,CAAe,QAAf,EAAyB,KAAKE,wBAAL,CAA8BF,IAA9B,CAAoC,IAApC,CAAzB;AAEA,SAAKG,IAAL,GAAY,KAAKA,IAAL,CAAUH,IAAV,CAAgB,IAAhB,CAAZ;AACA,SAAKI,IAAL,GAAY,KAAKA,IAAL,CAAUJ,IAAV,CAAgB,IAAhB,CAAZ;AACA,SAAKK,IAAL,GAAY,KAAKA,IAAL,CAAUL,IAAV,CAAgB,IAAhB,CAAZ;AACA;;AAEDM,EAAAA,SAAS,CAAEnC,QAAF,EAAa;AACrB,SAAKkB,WAAL,CAAiBkB,GAAjB,CAAsBpC,QAAtB;AAEA,WAAO,MAAM;AACZ,WAAKkB,WAAL,CAAiBmB,MAAjB,CAAyBrC,QAAzB;AACA,KAFD;AAGA;;AAEDsC,EAAAA,UAAU,GAAG;AACZ,WAAO,KAAKlB,OAAL,CAAc,KAAKI,YAAnB,CAAP;AACA;;AAEDe,EAAAA,KAAK,GAAY;AAChB,SAAM,MAAMvC,QAAZ,IAAwB,KAAKkB,WAA7B,EAA2C;AAC1ClB,MAAAA,QAAQ,CAAE,YAAF,CAAR;AACA;AACD;;AAEDqB,EAAAA,aAAa,GAAG;AACf,WAAO,KAAKR,OAAL,CAAa2B,GAAb,EAAP;AACA;;AAEDb,EAAAA,YAAY,GAAG;AACd,SAAKP,OAAL,GAAe,CACd,GAAG,KAAKA,OAAL,CAAaqB,KAAb,CAAoB,CAApB,EAAuB,KAAKjB,YAAL,GAAoB,CAA3C,CADW,EAEd,KAAKH,aAAL,GAAqBC,GAArB,CAA4B/B,QAAF,IACzB,KAAKgC,SAAL,CAAgBhC,QAAhB,CADD,CAFc,CAAf;AAMA,SAAKiC,YAAL,IAAqB,CAArB;AAEA,SAAKC,kBAAL,CAAwBiB,OAAxB,CAAmCC,QAAF,IAAgBA,QAAQ,EAAzD;AACA;;AAEDf,EAAAA,eAAe,GAAG;AACjB,SAAKR,OAAL,CACC,KAAKI,YADN,IAEI,KAAKH,aAAL,GAAqBC,GAArB,CAA4B/B,QAAF,IAC7B,KAAKgC,SAAL,CAAgBhC,QAAhB,CADG,CAFJ;AAKA;;AAEDuC,EAAAA,oBAAoB,GAAG;AACtB,QAAK,KAAKf,MAAV,EAAmB;AAClB;AACA;;AAED,UAAM6B,WAAW,GAAG,KAAKN,UAAL,EAApB;;AAEA,SAAKX,YAAL;;AAEA,SAAKY,KAAL,CAAYK,WAAZ,EAAyB,KAAKN,UAAL,EAAzB;AACA;;AAEDP,EAAAA,wBAAwB,CAAElB,OAAF,EAAY;AACnC,QAAK,KAAKE,MAAV,EAAmB;AAClB;AACA;;AAED,QAAK,CAAEF,OAAO,CAACgC,EAAR,CAAWC,UAAX,CAAuB,SAAvB,CAAP,EAA4C;AAC3C;AACA;;AAED,UAAMvD,QAAQ,GAAG,gCAAqBsB,OAAO,CAACgC,EAA7B,CAAjB;;AACA,QAAK,CAAE,KAAKhC,OAAL,CAAa2B,GAAb,GAAmBO,QAAnB,CAA6BxD,QAA7B,CAAP,EAAiD;AAChD;AACA;;AAED,UAAMqD,WAAW,GAAG,KAAKN,UAAL,EAApB;;AAEA,SAAKX,YAAL;;AAEA,SAAKY,KAAL,CAAYK,WAAZ,EAAyB,KAAKN,UAAL,EAAzB;AACA;;AAEDU,EAAAA,aAAa,CAAEC,MAAF,EAAW;AACvB,UAAMC,WAAW,GAAG9D,EAAE,CAAC+D,SAAH,CAAaC,OAAb,CAAqBC,gBAArB,CAAsCC,SAAtC,CAAiD;AACpEC,MAAAA,OAAO,EAAEN,MAAM,CAACvD;AADoD,KAAjD,CAApB;AAIA,QAAIC,MAAM,GAAGsD,MAAM,CAACtD,MAApB;;AACA,QAAKuD,WAAW,CAACV,GAAZ,CAAiB,UAAjB,KAAiC,CAAE7C,MAAxC,EAAiD;AAChDuD,MAAAA,WAAW,CAACM,GAAZ,CACC,cADD,EAECN,WAAW,CAACV,GAAZ,CAAiB,cAAjB,IAAoC,CAFrC;AAIA7C,MAAAA,MAAM,GAAGuD,WAAW,CAACV,GAAZ,CAAiB,cAAjB,CAAT;AACA;;AAED,UAAMiB,SAAS,GAAG9D,MAAM,GACpB,UAAUsD,MAAM,CAACvD,MAAQ,IAAIC,MAAQ,GADjB,GAEpB,UAAUsD,MAAM,CAACvD,MAAQ,EAF7B;AAIA,UAAMgE,WAAW,GAAG;AACnBC,MAAAA,SAAS,EAAEvE,EAAE,CAAC+D,SAAH,CAAaC,OAAb,CAAqBQ,IAArB,CAA0BC,2BAA1B,CACVX,WAAW,CAACV,GAAZ,CAAiB,SAAjB,CADU,IAGR,aAHQ,GAIR,SALgB;AAMnBsB,MAAAA,SAAS,EAAE,KAAKjD,OAAL,CAAaiD;AANL,KAApB;AAQA,UAAMjD,OAAO,GAAG,KAAKC,GAAL,CAASiD,MAAT,CACfN,SADe,EAEfA,SAFe,EAGf,EAHe,EAIfC,WAJe,CAAhB;AAMA7C,IAAAA,OAAO,CAAC2C,GAAR,CAAaP,MAAM,CAACe,QAApB;AAEA,UAAMzE,QAAQ,GAAG,gCAAqBkE,SAArB,CAAjB;AAEA,WAAOlE,QAAP;AACA;;AAED0E,EAAAA,aAAa,CAAEhB,MAAF,EAAW;AACvB,UAAMQ,SAAS,GAAG5D,mBAAmB,CAAEoD,MAAM,CAACJ,EAAT,CAArC;AACA,UAAMhC,OAAO,GAAG,KAAKC,GAAL,CAAU2C,SAAV,CAAhB;;AAEA,QAAK5C,OAAL,EAAe;AACd,YAAMmD,QAAQ,GAAGnD,OAAO,CAAC2B,GAAR,EAAjB;AACA,WAAKxB,YAAL,CAAkBqB,MAAlB,CAA0B2B,QAA1B;AACA;;AAED,SAAKlD,GAAL,CAASoD,MAAT,CAAiBT,SAAjB;AACA;;AAEDU,EAAAA,aAAa,CAAElB,MAAF,EAAW;AACvB,UAAMmB,UAAU,GAAG,KAAK7C,SAAL,CAAgB0B,MAAM,CAACJ,EAAvB,CAAnB,CADuB,CAGvB;;AACA,QAAKuB,UAAU,KAAKnB,MAApB,EAA6B;AAC5B,aAAOA,MAAM,CAACJ,EAAd;AACA,KANsB,CAQvB;;;AACA,QACCuB,UAAU,CAAC1E,MAAX,IACAuD,MAAM,CAACvD,MADP,IAEA0E,UAAU,CAAC1E,MAAX,KAAsBuD,MAAM,CAACvD,MAH9B,EAIE;AACD,YAAM+D,SAAS,GAAG5D,mBAAmB,CAAEoD,MAAM,CAACJ,EAAT,CAArC;AACA,WAAK/B,GAAL,CAAU2C,SAAV,EAAsBD,GAAtB,CAA2BP,MAAM,CAACe,QAAlC;AACA,aAAOf,MAAM,CAACJ,EAAd;AACA,KAjBsB,CAmBvB;;;AACA,SAAKoB,aAAL,CAAoBhB,MAApB;;AACA,WAAO,KAAKD,aAAL,CAAoBC,MAApB,CAAP;AACA;;AAED1B,EAAAA,SAAS,CAAEhC,QAAF,EAAa;AACrB,QAAK,CAAEA,QAAP,EAAkB;AACjB,aAAO,IAAP;AACA;;AAED,UAAM;AAAEG,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAqBL,aAAa,CAAEC,QAAF,CAAxC;AACA,UAAMkE,SAAS,GAAG5D,mBAAmB,CAAEN,QAAF,CAArC;AACA,UAAMsB,OAAO,GAAG,KAAKC,GAAL,CAAU2C,SAAV,CAAhB;;AAEA,QAAK,CAAE5C,OAAP,EAAiB;AAChB,aAAO,IAAP;AACA;;AAED,UAAMmD,QAAQ,GAAGnD,OAAO,CAAC2B,GAAR,EAAjB;;AAEA,QAAK,KAAKxB,YAAL,CAAkBqD,GAAlB,CAAuBL,QAAvB,CAAL,EAAyC;AACxC,aAAO,KAAKhD,YAAL,CAAkBwB,GAAlB,CAAuBwB,QAAvB,CAAP;AACA;;AAED,UAAMf,MAAM,GAAG;AACdJ,MAAAA,EAAE,EAAEtD,QADU;AAEdG,MAAAA,MAFc;AAGdC,MAAAA,MAHc;AAIdqE,MAAAA;AAJc,KAAf;AAOA,SAAKhD,YAAL,CAAkBwC,GAAlB,CAAuBQ,QAAvB,EAAiCf,MAAjC;AAEA,WAAOA,MAAP;AACA;;AAEDqB,EAAAA,cAAc,CAAEC,WAAF,EAAgB;AAC7B,SAAKxD,MAAL,GAAc,IAAd;AAEA,UAAMyD,cAAc,GAAG,EAAvB;AAEA,UAAMC,aAAa,GAAGF,WAAW,CAACjD,GAAZ,CAAmBoD,UAAF,IAAkB;AACxD,UAAKA,UAAU,CAAC7B,EAAX,IAAiB,KAAKtB,SAAL,CAAgBmD,UAAU,CAAC7B,EAA3B,CAAtB,EAAwD;AACvD2B,QAAAA,cAAc,CAACG,IAAf,CAAqB,IAArB;AAEA,eAAO,KAAKR,aAAL,CAAoBO,UAApB,CAAP;AACA;;AAED,YAAMnF,QAAQ,GAAG,KAAKyD,aAAL,CAAoB0B,UAApB,CAAjB;;AAEAF,MAAAA,cAAc,CAACG,IAAf,CAAqBpF,QAArB;AAEA,aAAOA,QAAP;AACA,KAZqB,CAAtB;AAcA,UAAMqF,cAAc,GAAG,KAAKtC,UAAL,GAAkBuC,MAAlB,CACpB5B,MAAF,IAAc,CAAEwB,aAAa,CAAC1B,QAAd,CAAwBE,MAAM,CAACJ,EAA/B,CADM,CAAvB;AAGA+B,IAAAA,cAAc,CAAClC,OAAf,CAA0BO,MAAF,IAAc,KAAKgB,aAAL,CAAoBhB,MAApB,CAAtC;AAEA,SAAKpC,OAAL,CAAa2C,GAAb,CAAkBiB,aAAlB;AAEA,SAAK1D,MAAL,GAAc,KAAd;AAEA,WAAOyD,cAAP;AACA;;AAEDM,EAAAA,UAAU,CAAEP,WAAF,EAAgB;AACzB,UAAMC,cAAc,GAAG,KAAKF,cAAL,CAAqBC,WAArB,CAAvB;;AAEA,SAAK7C,mBAAL;;AAEA,WAAO8C,cAAP;AACA;AAED;AACD;AACA;;;AACCO,EAAAA,OAAO,GAAG;AACT,WAAO,KAAKvD,YAAL,GAAoB,CAA3B;AACA;;AAEDwD,EAAAA,OAAO,GAAG;AACT,WAAO,KAAKxD,YAAL,GAAoB,KAAKJ,OAAL,CAAa6D,MAAb,GAAsB,CAAjD;AACA;;AAEDC,EAAAA,KAAK,CAAE1D,YAAF,EAAiB;AACrB,UAAM2D,cAAc,GAAG,KAAK7C,UAAL,EAAvB;AAEA,SAAKd,YAAL,GAAoBA,YAApB;AAEA,UAAM4D,OAAO,GAAG,KAAKhE,OAAL,CAAc,KAAKI,YAAnB,CAAhB;;AAEA,SAAK8C,cAAL,CAAqBc,OAArB;;AAEA,SAAK7C,KAAL,CAAY4C,cAAZ,EAA4B,KAAK7C,UAAL,EAA5B;;AAEA,SAAKb,kBAAL,CAAwBiB,OAAxB,CAAmCC,QAAF,IAAgBA,QAAQ,EAAzD;;AACA,SAAKjB,mBAAL,CAAyBhB,MAAzB;AACA;;AAEDsB,EAAAA,IAAI,GAAG;AACN,QAAK,CAAE,KAAK+C,OAAL,EAAP,EAAwB;AACvB;AACA;;AAED,SAAKG,KAAL,CAAY,KAAK1D,YAAL,GAAoB,CAAhC;AACA;;AAEDS,EAAAA,IAAI,GAAG;AACN,QAAK,CAAE,KAAK+C,OAAL,EAAP,EAAwB;AACvB;AACA;;AAED,SAAKE,KAAL,CAAY,KAAK1D,YAAL,GAAoB,CAAhC;AACA;;AAED6D,EAAAA,gBAAgB,CAAE1C,QAAF,EAAa;AAC5B,SAAKlB,kBAAL,CAAwBW,GAAxB,CAA6BO,QAA7B;AAEA,WAAO,MAAM;AACZ,WAAKlB,kBAAL,CAAwBY,MAAxB,CAAgCM,QAAhC;AACA,KAFD;AAGA;;AAEDT,EAAAA,IAAI,GAAG;AACN,SAAKpB,GAAL,CAASgD,SAAT,CAAmB5B,IAAnB;AACA;;AA/SkC","sourcesContent":["/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst { wp } = window;\n\nfunction parseWidgetId( widgetId ) {\n\tconst matches = widgetId.match( /^(.+)-(\\d+)$/ );\n\tif ( matches ) {\n\t\treturn {\n\t\t\tidBase: matches[ 1 ],\n\t\t\tnumber: parseInt( matches[ 2 ], 10 ),\n\t\t};\n\t}\n\n\t// Likely an old single widget.\n\treturn { idBase: widgetId };\n}\n\nfunction widgetIdToSettingId( widgetId ) {\n\tconst { idBase, number } = parseWidgetId( widgetId );\n\tif ( number ) {\n\t\treturn `widget_${ idBase }[${ number }]`;\n\t}\n\n\treturn `widget_${ idBase }`;\n}\n\n/**\n * This is a custom debounce function to call different callbacks depending on\n * whether it's the _leading_ call or not.\n *\n * @param {Function} leading The callback that gets called first.\n * @param {Function} callback The callback that gets called after the first time.\n * @param {number} timeout The debounced time in milliseconds.\n * @return {Function} The debounced function.\n */\nfunction debounce( leading, callback, timeout ) {\n\tlet isLeading = false;\n\tlet timerID;\n\n\tfunction debounced( ...args ) {\n\t\tconst result = ( isLeading ? callback : leading ).apply( this, args );\n\n\t\tisLeading = true;\n\n\t\tclearTimeout( timerID );\n\n\t\ttimerID = setTimeout( () => {\n\t\t\tisLeading = false;\n\t\t}, timeout );\n\n\t\treturn result;\n\t}\n\n\tdebounced.cancel = () => {\n\t\tisLeading = false;\n\t\tclearTimeout( timerID );\n\t};\n\n\treturn debounced;\n}\n\nexport default class SidebarAdapter {\n\tconstructor( setting, api ) {\n\t\tthis.setting = setting;\n\t\tthis.api = api;\n\n\t\tthis.locked = false;\n\t\tthis.widgetsCache = new WeakMap();\n\t\tthis.subscribers = new Set();\n\n\t\tthis.history = [\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex = 0;\n\t\tthis.historySubscribers = new Set();\n\t\t// Debounce the input for 1 second.\n\t\tthis._debounceSetHistory = debounce(\n\t\t\tthis._pushHistory,\n\t\t\tthis._replaceHistory,\n\t\t\t1000\n\t\t);\n\n\t\tthis.setting.bind( this._handleSettingChange.bind( this ) );\n\t\tthis.api.bind( 'change', this._handleAllSettingsChange.bind( this ) );\n\n\t\tthis.undo = this.undo.bind( this );\n\t\tthis.redo = this.redo.bind( this );\n\t\tthis.save = this.save.bind( this );\n\t}\n\n\tsubscribe( callback ) {\n\t\tthis.subscribers.add( callback );\n\n\t\treturn () => {\n\t\t\tthis.subscribers.delete( callback );\n\t\t};\n\t}\n\n\tgetWidgets() {\n\t\treturn this.history[ this.historyIndex ];\n\t}\n\n\t_emit( ...args ) {\n\t\tfor ( const callback of this.subscribers ) {\n\t\t\tcallback( ...args );\n\t\t}\n\t}\n\n\t_getWidgetIds() {\n\t\treturn this.setting.get();\n\t}\n\n\t_pushHistory() {\n\t\tthis.history = [\n\t\t\t...this.history.slice( 0, this.historyIndex + 1 ),\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex += 1;\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t}\n\n\t_replaceHistory() {\n\t\tthis.history[\n\t\t\tthis.historyIndex\n\t\t] = this._getWidgetIds().map( ( widgetId ) =>\n\t\t\tthis.getWidget( widgetId )\n\t\t);\n\t}\n\n\t_handleSettingChange() {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_handleAllSettingsChange( setting ) {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! setting.id.startsWith( 'widget_' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst widgetId = settingIdToWidgetId( setting.id );\n\t\tif ( ! this.setting.get().includes( widgetId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_createWidget( widget ) {\n\t\tconst widgetModel = wp.customize.Widgets.availableWidgets.findWhere( {\n\t\t\tid_base: widget.idBase,\n\t\t} );\n\n\t\tlet number = widget.number;\n\t\tif ( widgetModel.get( 'is_multi' ) && ! number ) {\n\t\t\twidgetModel.set(\n\t\t\t\t'multi_number',\n\t\t\t\twidgetModel.get( 'multi_number' ) + 1\n\t\t\t);\n\t\t\tnumber = widgetModel.get( 'multi_number' );\n\t\t}\n\n\t\tconst settingId = number\n\t\t\t? `widget_${ widget.idBase }[${ number }]`\n\t\t\t: `widget_${ widget.idBase }`;\n\n\t\tconst settingArgs = {\n\t\t\ttransport: wp.customize.Widgets.data.selectiveRefreshableWidgets[\n\t\t\t\twidgetModel.get( 'id_base' )\n\t\t\t]\n\t\t\t\t? 'postMessage'\n\t\t\t\t: 'refresh',\n\t\t\tpreviewer: this.setting.previewer,\n\t\t};\n\t\tconst setting = this.api.create(\n\t\t\tsettingId,\n\t\t\tsettingId,\n\t\t\t'',\n\t\t\tsettingArgs\n\t\t);\n\t\tsetting.set( widget.instance );\n\n\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\treturn widgetId;\n\t}\n\n\t_removeWidget( widget ) {\n\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( setting ) {\n\t\t\tconst instance = setting.get();\n\t\t\tthis.widgetsCache.delete( instance );\n\t\t}\n\n\t\tthis.api.remove( settingId );\n\t}\n\n\t_updateWidget( widget ) {\n\t\tconst prevWidget = this.getWidget( widget.id );\n\n\t\t// Bail out update if nothing changed.\n\t\tif ( prevWidget === widget ) {\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Update existing setting if only the widget's instance changed.\n\t\tif (\n\t\t\tprevWidget.idBase &&\n\t\t\twidget.idBase &&\n\t\t\tprevWidget.idBase === widget.idBase\n\t\t) {\n\t\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\t\tthis.api( settingId ).set( widget.instance );\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Otherwise delete and re-create.\n\t\tthis._removeWidget( widget );\n\t\treturn this._createWidget( widget );\n\t}\n\n\tgetWidget( widgetId ) {\n\t\tif ( ! widgetId ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { idBase, number } = parseWidgetId( widgetId );\n\t\tconst settingId = widgetIdToSettingId( widgetId );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( ! setting ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst instance = setting.get();\n\n\t\tif ( this.widgetsCache.has( instance ) ) {\n\t\t\treturn this.widgetsCache.get( instance );\n\t\t}\n\n\t\tconst widget = {\n\t\t\tid: widgetId,\n\t\t\tidBase,\n\t\t\tnumber,\n\t\t\tinstance,\n\t\t};\n\n\t\tthis.widgetsCache.set( instance, widget );\n\n\t\treturn widget;\n\t}\n\n\t_updateWidgets( nextWidgets ) {\n\t\tthis.locked = true;\n\n\t\tconst addedWidgetIds = [];\n\n\t\tconst nextWidgetIds = nextWidgets.map( ( nextWidget ) => {\n\t\t\tif ( nextWidget.id && this.getWidget( nextWidget.id ) ) {\n\t\t\t\taddedWidgetIds.push( null );\n\n\t\t\t\treturn this._updateWidget( nextWidget );\n\t\t\t}\n\n\t\t\tconst widgetId = this._createWidget( nextWidget );\n\n\t\t\taddedWidgetIds.push( widgetId );\n\n\t\t\treturn widgetId;\n\t\t} );\n\n\t\tconst deletedWidgets = this.getWidgets().filter(\n\t\t\t( widget ) => ! nextWidgetIds.includes( widget.id )\n\t\t);\n\t\tdeletedWidgets.forEach( ( widget ) => this._removeWidget( widget ) );\n\n\t\tthis.setting.set( nextWidgetIds );\n\n\t\tthis.locked = false;\n\n\t\treturn addedWidgetIds;\n\t}\n\n\tsetWidgets( nextWidgets ) {\n\t\tconst addedWidgetIds = this._updateWidgets( nextWidgets );\n\n\t\tthis._debounceSetHistory();\n\n\t\treturn addedWidgetIds;\n\t}\n\n\t/**\n\t * Undo/Redo related features\n\t */\n\thasUndo() {\n\t\treturn this.historyIndex > 0;\n\t}\n\n\thasRedo() {\n\t\treturn this.historyIndex < this.history.length - 1;\n\t}\n\n\t_seek( historyIndex ) {\n\t\tconst currentWidgets = this.getWidgets();\n\n\t\tthis.historyIndex = historyIndex;\n\n\t\tconst widgets = this.history[ this.historyIndex ];\n\n\t\tthis._updateWidgets( widgets );\n\n\t\tthis._emit( currentWidgets, this.getWidgets() );\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t\tthis._debounceSetHistory.cancel();\n\t}\n\n\tundo() {\n\t\tif ( ! this.hasUndo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex - 1 );\n\t}\n\n\tredo() {\n\t\tif ( ! this.hasRedo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex + 1 );\n\t}\n\n\tsubscribeHistory( listener ) {\n\t\tthis.historySubscribers.add( listener );\n\n\t\treturn () => {\n\t\t\tthis.historySubscribers.delete( listener );\n\t\t};\n\t}\n\n\tsave() {\n\t\tthis.api.previewer.save();\n\t}\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-adapter.js"],"names":["wp","window","parseWidgetId","widgetId","matches","match","idBase","number","parseInt","widgetIdToSettingId","debounce","leading","callback","timeout","isLeading","timerID","debounced","args","result","apply","clearTimeout","setTimeout","cancel","SidebarAdapter","constructor","setting","api","locked","widgetsCache","WeakMap","subscribers","Set","history","_getWidgetIds","map","getWidget","historyIndex","historySubscribers","_debounceSetHistory","_pushHistory","_replaceHistory","bind","_handleSettingChange","_handleAllSettingsChange","undo","redo","save","subscribe","add","delete","getWidgets","_emit","get","slice","forEach","listener","prevWidgets","id","startsWith","includes","_createWidget","widget","widgetModel","customize","Widgets","availableWidgets","findWhere","id_base","set","settingId","settingArgs","transport","data","selectiveRefreshableWidgets","previewer","create","instance","_removeWidget","remove","_updateWidget","prevWidget","has","_updateWidgets","nextWidgets","addedWidgetIds","nextWidgetIds","nextWidget","push","deletedWidgets","filter","setWidgets","hasUndo","hasRedo","length","_seek","currentWidgets","widgets","subscribeHistory"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst { wp } = window;\n\nfunction parseWidgetId( widgetId ) {\n\tconst matches = widgetId.match( /^(.+)-(\\d+)$/ );\n\tif ( matches ) {\n\t\treturn {\n\t\t\tidBase: matches[ 1 ],\n\t\t\tnumber: parseInt( matches[ 2 ], 10 ),\n\t\t};\n\t}\n\n\t// Likely an old single widget.\n\treturn { idBase: widgetId };\n}\n\nfunction widgetIdToSettingId( widgetId ) {\n\tconst { idBase, number } = parseWidgetId( widgetId );\n\tif ( number ) {\n\t\treturn `widget_${ idBase }[${ number }]`;\n\t}\n\n\treturn `widget_${ idBase }`;\n}\n\n/**\n * This is a custom debounce function to call different callbacks depending on\n * whether it's the _leading_ call or not.\n *\n * @param {Function} leading The callback that gets called first.\n * @param {Function} callback The callback that gets called after the first time.\n * @param {number} timeout The debounced time in milliseconds.\n * @return {Function} The debounced function.\n */\nfunction debounce( leading, callback, timeout ) {\n\tlet isLeading = false;\n\tlet timerID;\n\n\tfunction debounced( ...args ) {\n\t\tconst result = ( isLeading ? callback : leading ).apply( this, args );\n\n\t\tisLeading = true;\n\n\t\tclearTimeout( timerID );\n\n\t\ttimerID = setTimeout( () => {\n\t\t\tisLeading = false;\n\t\t}, timeout );\n\n\t\treturn result;\n\t}\n\n\tdebounced.cancel = () => {\n\t\tisLeading = false;\n\t\tclearTimeout( timerID );\n\t};\n\n\treturn debounced;\n}\n\nexport default class SidebarAdapter {\n\tconstructor( setting, api ) {\n\t\tthis.setting = setting;\n\t\tthis.api = api;\n\n\t\tthis.locked = false;\n\t\tthis.widgetsCache = new WeakMap();\n\t\tthis.subscribers = new Set();\n\n\t\tthis.history = [\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex = 0;\n\t\tthis.historySubscribers = new Set();\n\t\t// Debounce the input for 1 second.\n\t\tthis._debounceSetHistory = debounce(\n\t\t\tthis._pushHistory,\n\t\t\tthis._replaceHistory,\n\t\t\t1000\n\t\t);\n\n\t\tthis.setting.bind( this._handleSettingChange.bind( this ) );\n\t\tthis.api.bind( 'change', this._handleAllSettingsChange.bind( this ) );\n\n\t\tthis.undo = this.undo.bind( this );\n\t\tthis.redo = this.redo.bind( this );\n\t\tthis.save = this.save.bind( this );\n\t}\n\n\tsubscribe( callback ) {\n\t\tthis.subscribers.add( callback );\n\n\t\treturn () => {\n\t\t\tthis.subscribers.delete( callback );\n\t\t};\n\t}\n\n\tgetWidgets() {\n\t\treturn this.history[ this.historyIndex ];\n\t}\n\n\t_emit( ...args ) {\n\t\tfor ( const callback of this.subscribers ) {\n\t\t\tcallback( ...args );\n\t\t}\n\t}\n\n\t_getWidgetIds() {\n\t\treturn this.setting.get();\n\t}\n\n\t_pushHistory() {\n\t\tthis.history = [\n\t\t\t...this.history.slice( 0, this.historyIndex + 1 ),\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex += 1;\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t}\n\n\t_replaceHistory() {\n\t\tthis.history[ this.historyIndex ] = this._getWidgetIds().map(\n\t\t\t( widgetId ) => this.getWidget( widgetId )\n\t\t);\n\t}\n\n\t_handleSettingChange() {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_handleAllSettingsChange( setting ) {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! setting.id.startsWith( 'widget_' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst widgetId = settingIdToWidgetId( setting.id );\n\t\tif ( ! this.setting.get().includes( widgetId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_createWidget( widget ) {\n\t\tconst widgetModel = wp.customize.Widgets.availableWidgets.findWhere( {\n\t\t\tid_base: widget.idBase,\n\t\t} );\n\n\t\tlet number = widget.number;\n\t\tif ( widgetModel.get( 'is_multi' ) && ! number ) {\n\t\t\twidgetModel.set(\n\t\t\t\t'multi_number',\n\t\t\t\twidgetModel.get( 'multi_number' ) + 1\n\t\t\t);\n\t\t\tnumber = widgetModel.get( 'multi_number' );\n\t\t}\n\n\t\tconst settingId = number\n\t\t\t? `widget_${ widget.idBase }[${ number }]`\n\t\t\t: `widget_${ widget.idBase }`;\n\n\t\tconst settingArgs = {\n\t\t\ttransport: wp.customize.Widgets.data.selectiveRefreshableWidgets[\n\t\t\t\twidgetModel.get( 'id_base' )\n\t\t\t]\n\t\t\t\t? 'postMessage'\n\t\t\t\t: 'refresh',\n\t\t\tpreviewer: this.setting.previewer,\n\t\t};\n\t\tconst setting = this.api.create(\n\t\t\tsettingId,\n\t\t\tsettingId,\n\t\t\t'',\n\t\t\tsettingArgs\n\t\t);\n\t\tsetting.set( widget.instance );\n\n\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\treturn widgetId;\n\t}\n\n\t_removeWidget( widget ) {\n\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( setting ) {\n\t\t\tconst instance = setting.get();\n\t\t\tthis.widgetsCache.delete( instance );\n\t\t}\n\n\t\tthis.api.remove( settingId );\n\t}\n\n\t_updateWidget( widget ) {\n\t\tconst prevWidget = this.getWidget( widget.id );\n\n\t\t// Bail out update if nothing changed.\n\t\tif ( prevWidget === widget ) {\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Update existing setting if only the widget's instance changed.\n\t\tif (\n\t\t\tprevWidget.idBase &&\n\t\t\twidget.idBase &&\n\t\t\tprevWidget.idBase === widget.idBase\n\t\t) {\n\t\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\t\tthis.api( settingId ).set( widget.instance );\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Otherwise delete and re-create.\n\t\tthis._removeWidget( widget );\n\t\treturn this._createWidget( widget );\n\t}\n\n\tgetWidget( widgetId ) {\n\t\tif ( ! widgetId ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { idBase, number } = parseWidgetId( widgetId );\n\t\tconst settingId = widgetIdToSettingId( widgetId );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( ! setting ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst instance = setting.get();\n\n\t\tif ( this.widgetsCache.has( instance ) ) {\n\t\t\treturn this.widgetsCache.get( instance );\n\t\t}\n\n\t\tconst widget = {\n\t\t\tid: widgetId,\n\t\t\tidBase,\n\t\t\tnumber,\n\t\t\tinstance,\n\t\t};\n\n\t\tthis.widgetsCache.set( instance, widget );\n\n\t\treturn widget;\n\t}\n\n\t_updateWidgets( nextWidgets ) {\n\t\tthis.locked = true;\n\n\t\tconst addedWidgetIds = [];\n\n\t\tconst nextWidgetIds = nextWidgets.map( ( nextWidget ) => {\n\t\t\tif ( nextWidget.id && this.getWidget( nextWidget.id ) ) {\n\t\t\t\taddedWidgetIds.push( null );\n\n\t\t\t\treturn this._updateWidget( nextWidget );\n\t\t\t}\n\n\t\t\tconst widgetId = this._createWidget( nextWidget );\n\n\t\t\taddedWidgetIds.push( widgetId );\n\n\t\t\treturn widgetId;\n\t\t} );\n\n\t\tconst deletedWidgets = this.getWidgets().filter(\n\t\t\t( widget ) => ! nextWidgetIds.includes( widget.id )\n\t\t);\n\t\tdeletedWidgets.forEach( ( widget ) => this._removeWidget( widget ) );\n\n\t\tthis.setting.set( nextWidgetIds );\n\n\t\tthis.locked = false;\n\n\t\treturn addedWidgetIds;\n\t}\n\n\tsetWidgets( nextWidgets ) {\n\t\tconst addedWidgetIds = this._updateWidgets( nextWidgets );\n\n\t\tthis._debounceSetHistory();\n\n\t\treturn addedWidgetIds;\n\t}\n\n\t/**\n\t * Undo/Redo related features\n\t */\n\thasUndo() {\n\t\treturn this.historyIndex > 0;\n\t}\n\n\thasRedo() {\n\t\treturn this.historyIndex < this.history.length - 1;\n\t}\n\n\t_seek( historyIndex ) {\n\t\tconst currentWidgets = this.getWidgets();\n\n\t\tthis.historyIndex = historyIndex;\n\n\t\tconst widgets = this.history[ this.historyIndex ];\n\n\t\tthis._updateWidgets( widgets );\n\n\t\tthis._emit( currentWidgets, this.getWidgets() );\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t\tthis._debounceSetHistory.cancel();\n\t}\n\n\tundo() {\n\t\tif ( ! this.hasUndo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex - 1 );\n\t}\n\n\tredo() {\n\t\tif ( ! this.hasRedo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex + 1 );\n\t}\n\n\tsubscribeHistory( listener ) {\n\t\tthis.historySubscribers.add( listener );\n\n\t\treturn () => {\n\t\t\tthis.historySubscribers.delete( listener );\n\t\t};\n\t}\n\n\tsave() {\n\t\tthis.api.previewer.save();\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/controls/inserter-outer-section.js"],"names":["getInserterOuterSection","wp","customize","window","OuterSection","onChangeExpanded","expanded","args","section","each","params","type","id","collapse","sectionConstructor","outer","InserterOuterSection","constructor","activeElementBeforeExpanded","ownerWindow","contentContainer","ownerDocument","defaultView","addEventListener","event","keyCode","ESCAPE","code","defaultPrevented","preventDefault","stopPropagation","customizeWidgetsStore","setIsInserterOpened","addClass","isFromInternalAction","bind","open","activeElement","expand","completeCallback","searchBox","focus","tabbable","find","close","contains"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { focus } from '@wordpress/dom';\nimport { dispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as customizeWidgetsStore } from '../store';\n\nexport default function getInserterOuterSection() {\n\tconst {\n\t\twp: { customize },\n\t} = window;\n\n\tconst OuterSection = customize.OuterSection;\n\t// Override the OuterSection class to handle multiple outer sections.\n\t// It closes all the other outer sections whenever one is opened.\n\t// The result is that at most one outer section can be opened at the same time.\n\tcustomize.OuterSection = class extends OuterSection {\n\t\tonChangeExpanded( expanded, args ) {\n\t\t\tif ( expanded ) {\n\t\t\t\tcustomize.section.each( ( section ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tsection.params.type === 'outer' &&\n\t\t\t\t\t\tsection.id !== this.id\n\t\t\t\t\t) {\n\t\t\t\t\t\tif ( section.expanded() ) {\n\t\t\t\t\t\t\tsection.collapse();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn super.onChangeExpanded( expanded, args );\n\t\t}\n\t};\n\t// Handle constructor so that \"params.type\" can be correctly pointed to \"outer\".\n\tcustomize.sectionConstructor.outer = customize.OuterSection;\n\n\treturn class InserterOuterSection extends customize.OuterSection {\n\t\tconstructor( ...args ) {\n\t\t\tsuper( ...args );\n\n\t\t\t// This is necessary since we're creating a new class which is not identical to the original OuterSection.\n\t\t\t// @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436\n\t\t\tthis.params.type = 'outer';\n\n\t\t\tthis.activeElementBeforeExpanded = null;\n\n\t\t\tconst ownerWindow = this.contentContainer[ 0 ].ownerDocument\n\t\t\t\t.defaultView;\n\n\t\t\t// Handle closing the inserter when pressing the Escape key.\n\t\t\townerWindow.addEventListener(\n\t\t\t\t'keydown',\n\t\t\t\t( event ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.expanded() &&\n\t\t\t\t\t\t( event.keyCode === ESCAPE ||\n\t\t\t\t\t\t\tevent.code === 'Escape' ) &&\n\t\t\t\t\t\t! event.defaultPrevented\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// Use capture mode to make this run before other event listeners.\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tthis.contentContainer.addClass( 'widgets-inserter' );\n\n\t\t\t// Set a flag if the state is being changed from open() or close().\n\t\t\t// Don't propagate the event if it's an internal action to prevent infinite loop.\n\t\t\tthis.isFromInternalAction = false;\n\t\t\tthis.expanded.bind( () => {\n\t\t\t\tif ( ! this.isFromInternalAction ) {\n\t\t\t\t\t// Propagate the event to React to sync the state.\n\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\tthis.expanded()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.isFromInternalAction = false;\n\t\t\t} );\n\t\t}\n\t\topen() {\n\t\t\tif ( ! this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tthis.activeElementBeforeExpanded =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.expand( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// We have to do this in a \"completeCallback\" or else the elements will not yet be visible/tabbable.\n\t\t\t\t\t\t// The first one should be the close button,\n\t\t\t\t\t\t// we want to skip it and choose the second one instead, which is the search box.\n\t\t\t\t\t\tconst searchBox = focus.tabbable.find(\n\t\t\t\t\t\t\tcontentContainer\n\t\t\t\t\t\t)[ 1 ];\n\t\t\t\t\t\tif ( searchBox ) {\n\t\t\t\t\t\t\tsearchBox.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\tclose() {\n\t\t\tif ( this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tconst activeElement =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.collapse( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t// Only do this if the active element which triggers the action is inside the inserter,\n\t\t\t\t\t\t// (the close button for instance). In that case the focus will be lost.\n\t\t\t\t\t\t// Otherwise, we don't hijack the focus when the user is focusing on other elements\n\t\t\t\t\t\t// (like the quick inserter).\n\t\t\t\t\t\tif ( contentContainer.contains( activeElement ) ) {\n\t\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t\tif ( this.activeElementBeforeExpanded ) {\n\t\t\t\t\t\t\t\tthis.activeElementBeforeExpanded.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/controls/inserter-outer-section.js"],"names":["getInserterOuterSection","wp","customize","window","OuterSection","onChangeExpanded","expanded","args","section","each","params","type","id","collapse","sectionConstructor","outer","InserterOuterSection","constructor","activeElementBeforeExpanded","ownerWindow","contentContainer","ownerDocument","defaultView","addEventListener","event","keyCode","ESCAPE","code","defaultPrevented","preventDefault","stopPropagation","customizeWidgetsStore","setIsInserterOpened","addClass","isFromInternalAction","bind","open","activeElement","expand","completeCallback","searchBox","focus","tabbable","find","close","contains"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { focus } from '@wordpress/dom';\nimport { dispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as customizeWidgetsStore } from '../store';\n\nexport default function getInserterOuterSection() {\n\tconst {\n\t\twp: { customize },\n\t} = window;\n\n\tconst OuterSection = customize.OuterSection;\n\t// Override the OuterSection class to handle multiple outer sections.\n\t// It closes all the other outer sections whenever one is opened.\n\t// The result is that at most one outer section can be opened at the same time.\n\tcustomize.OuterSection = class extends OuterSection {\n\t\tonChangeExpanded( expanded, args ) {\n\t\t\tif ( expanded ) {\n\t\t\t\tcustomize.section.each( ( section ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tsection.params.type === 'outer' &&\n\t\t\t\t\t\tsection.id !== this.id\n\t\t\t\t\t) {\n\t\t\t\t\t\tif ( section.expanded() ) {\n\t\t\t\t\t\t\tsection.collapse();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn super.onChangeExpanded( expanded, args );\n\t\t}\n\t};\n\t// Handle constructor so that \"params.type\" can be correctly pointed to \"outer\".\n\tcustomize.sectionConstructor.outer = customize.OuterSection;\n\n\treturn class InserterOuterSection extends customize.OuterSection {\n\t\tconstructor( ...args ) {\n\t\t\tsuper( ...args );\n\n\t\t\t// This is necessary since we're creating a new class which is not identical to the original OuterSection.\n\t\t\t// @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436\n\t\t\tthis.params.type = 'outer';\n\n\t\t\tthis.activeElementBeforeExpanded = null;\n\n\t\t\tconst ownerWindow =\n\t\t\t\tthis.contentContainer[ 0 ].ownerDocument.defaultView;\n\n\t\t\t// Handle closing the inserter when pressing the Escape key.\n\t\t\townerWindow.addEventListener(\n\t\t\t\t'keydown',\n\t\t\t\t( event ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.expanded() &&\n\t\t\t\t\t\t( event.keyCode === ESCAPE ||\n\t\t\t\t\t\t\tevent.code === 'Escape' ) &&\n\t\t\t\t\t\t! event.defaultPrevented\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// Use capture mode to make this run before other event listeners.\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tthis.contentContainer.addClass( 'widgets-inserter' );\n\n\t\t\t// Set a flag if the state is being changed from open() or close().\n\t\t\t// Don't propagate the event if it's an internal action to prevent infinite loop.\n\t\t\tthis.isFromInternalAction = false;\n\t\t\tthis.expanded.bind( () => {\n\t\t\t\tif ( ! this.isFromInternalAction ) {\n\t\t\t\t\t// Propagate the event to React to sync the state.\n\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\tthis.expanded()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.isFromInternalAction = false;\n\t\t\t} );\n\t\t}\n\t\topen() {\n\t\t\tif ( ! this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tthis.activeElementBeforeExpanded =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.expand( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// We have to do this in a \"completeCallback\" or else the elements will not yet be visible/tabbable.\n\t\t\t\t\t\t// The first one should be the close button,\n\t\t\t\t\t\t// we want to skip it and choose the second one instead, which is the search box.\n\t\t\t\t\t\tconst searchBox =\n\t\t\t\t\t\t\tfocus.tabbable.find( contentContainer )[ 1 ];\n\t\t\t\t\t\tif ( searchBox ) {\n\t\t\t\t\t\t\tsearchBox.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\tclose() {\n\t\t\tif ( this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tconst activeElement =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.collapse( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t// Only do this if the active element which triggers the action is inside the inserter,\n\t\t\t\t\t\t// (the close button for instance). In that case the focus will be lost.\n\t\t\t\t\t\t// Otherwise, we don't hijack the focus when the user is focusing on other elements\n\t\t\t\t\t\t// (like the quick inserter).\n\t\t\t\t\t\tif ( contentContainer.contains( activeElement ) ) {\n\t\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t\tif ( this.activeElementBeforeExpanded ) {\n\t\t\t\t\t\t\t\tthis.activeElementBeforeExpanded.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/customize-widgets/use-clear-selected-block.js"],"names":["useEffect","useDispatch","useSelect","store","blockEditorStore","useClearSelectedBlock","sidebarControl","popoverRef","hasSelectedBlock","hasMultiSelection","clearSelectedBlock","current","inspector","container","ownerDocument","ownerWindow","defaultView","handleClearSelectedBlock","element","contains","closest","expanded","handleMouseDown","event","target","handleBlur","activeElement","addEventListener","removeEventListener"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,oBAA1B;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,qBAAT,CAAgCC,cAAhC,EAAgDC,UAAhD,EAA6D;AAC3E,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAA0CP,SAAS,CACxDE,gBADwD,CAAzD;AAGA,QAAM;AAAEM,IAAAA;AAAF,MAAyBT,WAAW,CAAEG,gBAAF,CAA1C;AAEAJ,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKO,UAAU,CAACI,OAAX,IAAsBL,cAA3B,EAA4C;AAC3C,YAAMM,SAAS,GAAGN,cAAc,CAACM,SAAjC;AACA,YAAMC,SAAS,GAAGP,cAAc,CAACO,SAAf,CAA0B,CAA1B,CAAlB;AACA,YAAMC,aAAa,GAAGD,SAAS,CAACC,aAAhC;AACA,YAAMC,WAAW,GAAGD,aAAa,CAACE,WAAlC;;AAEA,eAASC,wBAAT,CAAmCC,OAAnC,EAA6C;AAC5C,aACC;AACA,SAAEV,gBAAgB,MAAMC,iBAAiB,EAAzC,KACA;AACAS,QAAAA,OAFA,IAGAJ,aAAa,CAACK,QAAd,CAAwBD,OAAxB,CAHA,IAIA;AACA,SAAEL,SAAS,CAACM,QAAV,CAAoBD,OAApB,CALF,IAMA,CAAEX,UAAU,CAACI,OAAX,CAAmBQ,QAAnB,CAA6BD,OAA7B,CANF,IAOA,CAAEA,OAAO,CAACE,OAAR,CAAiB,iBAAjB,CAPF,IAQA;AACA,SAAER,SAAS,CAACS,QAAV,EAXH,EAYE;AACDX,UAAAA,kBAAkB;AAClB;AACD,OAtB0C,CAwB3C;;;AACA,eAASY,eAAT,CAA0BC,KAA1B,EAAkC;AACjCN,QAAAA,wBAAwB,CAAEM,KAAK,CAACC,MAAR,CAAxB;AACA,OA3B0C,CA4B3C;;;AACA,eAASC,UAAT,GAAsB;AACrBR,QAAAA,wBAAwB,CAAEH,aAAa,CAACY,aAAhB,CAAxB;AACA;;AAEDZ,MAAAA,aAAa,CAACa,gBAAd,CAAgC,WAAhC,EAA6CL,eAA7C;AACAP,MAAAA,WAAW,CAACY,gBAAZ,CAA8B,MAA9B,EAAsCF,UAAtC;AAEA,aAAO,MAAM;AACZX,QAAAA,aAAa,CAACc,mBAAd,CACC,WADD,EAECN,eAFD;AAIAP,QAAAA,WAAW,CAACa,mBAAZ,CAAiC,MAAjC,EAAyCH,UAAzC;AACA,OAND;AAOA;AACD,GA7CQ,EA6CN,CACFlB,UADE,EAEFD,cAFE,EAGFE,gBAHE,EAIFC,iBAJE,EAKFC,kBALE,CA7CM,CAAT;AAoDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * We can't just use <BlockSelectionClearer> because the customizer has\n * many root nodes rather than just one in the post editor.\n * We need to listen to the focus events in all those roots, and also in\n * the preview iframe.\n * This hook will clear the selected block when focusing outside the editor,\n * with a few exceptions:\n * 1. Focusing on popovers.\n * 2. Focusing on the inspector.\n * 3. Focusing on any modals/dialogs.\n * These cases are normally triggered by user interactions from the editor,\n * not by explicitly focusing outside the editor, hence no need for clearing.\n *\n * @param {Object} sidebarControl The sidebar control instance.\n * @param {Object} popoverRef The ref object of the popover node container.\n */\nexport default function useClearSelectedBlock( sidebarControl, popoverRef ) {\n\tconst { hasSelectedBlock, hasMultiSelection } = useSelect(\n\t\tblockEditorStore\n\t);\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( popoverRef.current && sidebarControl ) {\n\t\t\tconst inspector = sidebarControl.inspector;\n\t\t\tconst container = sidebarControl.container[ 0 ];\n\t\t\tconst ownerDocument = container.ownerDocument;\n\t\t\tconst ownerWindow = ownerDocument.defaultView;\n\n\t\t\tfunction handleClearSelectedBlock( element ) {\n\t\t\t\tif (\n\t\t\t\t\t// 1. Make sure there are blocks being selected.\n\t\t\t\t\t( hasSelectedBlock() || hasMultiSelection() ) &&\n\t\t\t\t\t// 2. The element should exist in the DOM (not deleted).\n\t\t\t\t\telement &&\n\t\t\t\t\townerDocument.contains( element ) &&\n\t\t\t\t\t// 3. It should also not exist in the container, the popover, nor the dialog.\n\t\t\t\t\t! container.contains( element ) &&\n\t\t\t\t\t! popoverRef.current.contains( element ) &&\n\t\t\t\t\t! element.closest( '[role=\"dialog\"]' ) &&\n\t\t\t\t\t// 4. The inspector should not be opened.\n\t\t\t\t\t! inspector.expanded()\n\t\t\t\t) {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Handle mouse down in the same document.\n\t\t\tfunction handleMouseDown( event ) {\n\t\t\t\thandleClearSelectedBlock( event.target );\n\t\t\t}\n\t\t\t// Handle focusing outside the current document, like to iframes.\n\t\t\tfunction handleBlur() {\n\t\t\t\thandleClearSelectedBlock( ownerDocument.activeElement );\n\t\t\t}\n\n\t\t\townerDocument.addEventListener( 'mousedown', handleMouseDown );\n\t\t\townerWindow.addEventListener( 'blur', handleBlur );\n\n\t\t\treturn () => {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'mousedown',\n\t\t\t\t\thandleMouseDown\n\t\t\t\t);\n\t\t\t\townerWindow.removeEventListener( 'blur', handleBlur );\n\t\t\t};\n\t\t}\n\t}, [\n\t\tpopoverRef,\n\t\tsidebarControl,\n\t\thasSelectedBlock,\n\t\thasMultiSelection,\n\t\tclearSelectedBlock,\n\t] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/components/customize-widgets/use-clear-selected-block.js"],"names":["useEffect","useDispatch","useSelect","store","blockEditorStore","useClearSelectedBlock","sidebarControl","popoverRef","hasSelectedBlock","hasMultiSelection","clearSelectedBlock","current","inspector","container","ownerDocument","ownerWindow","defaultView","handleClearSelectedBlock","element","contains","closest","expanded","handleMouseDown","event","target","handleBlur","activeElement","addEventListener","removeEventListener"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,oBAA1B;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,qBAAT,CAAgCC,cAAhC,EAAgDC,UAAhD,EAA6D;AAC3E,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MACLP,SAAS,CAAEE,gBAAF,CADV;AAEA,QAAM;AAAEM,IAAAA;AAAF,MAAyBT,WAAW,CAAEG,gBAAF,CAA1C;AAEAJ,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKO,UAAU,CAACI,OAAX,IAAsBL,cAA3B,EAA4C;AAC3C,YAAMM,SAAS,GAAGN,cAAc,CAACM,SAAjC;AACA,YAAMC,SAAS,GAAGP,cAAc,CAACO,SAAf,CAA0B,CAA1B,CAAlB;AACA,YAAMC,aAAa,GAAGD,SAAS,CAACC,aAAhC;AACA,YAAMC,WAAW,GAAGD,aAAa,CAACE,WAAlC;;AAEA,eAASC,wBAAT,CAAmCC,OAAnC,EAA6C;AAC5C,aACC;AACA,SAAEV,gBAAgB,MAAMC,iBAAiB,EAAzC,KACA;AACAS,QAAAA,OAFA,IAGAJ,aAAa,CAACK,QAAd,CAAwBD,OAAxB,CAHA,IAIA;AACA,SAAEL,SAAS,CAACM,QAAV,CAAoBD,OAApB,CALF,IAMA,CAAEX,UAAU,CAACI,OAAX,CAAmBQ,QAAnB,CAA6BD,OAA7B,CANF,IAOA,CAAEA,OAAO,CAACE,OAAR,CAAiB,iBAAjB,CAPF,IAQA;AACA,SAAER,SAAS,CAACS,QAAV,EAXH,EAYE;AACDX,UAAAA,kBAAkB;AAClB;AACD,OAtB0C,CAwB3C;;;AACA,eAASY,eAAT,CAA0BC,KAA1B,EAAkC;AACjCN,QAAAA,wBAAwB,CAAEM,KAAK,CAACC,MAAR,CAAxB;AACA,OA3B0C,CA4B3C;;;AACA,eAASC,UAAT,GAAsB;AACrBR,QAAAA,wBAAwB,CAAEH,aAAa,CAACY,aAAhB,CAAxB;AACA;;AAEDZ,MAAAA,aAAa,CAACa,gBAAd,CAAgC,WAAhC,EAA6CL,eAA7C;AACAP,MAAAA,WAAW,CAACY,gBAAZ,CAA8B,MAA9B,EAAsCF,UAAtC;AAEA,aAAO,MAAM;AACZX,QAAAA,aAAa,CAACc,mBAAd,CACC,WADD,EAECN,eAFD;AAIAP,QAAAA,WAAW,CAACa,mBAAZ,CAAiC,MAAjC,EAAyCH,UAAzC;AACA,OAND;AAOA;AACD,GA7CQ,EA6CN,CACFlB,UADE,EAEFD,cAFE,EAGFE,gBAHE,EAIFC,iBAJE,EAKFC,kBALE,CA7CM,CAAT;AAoDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * We can't just use <BlockSelectionClearer> because the customizer has\n * many root nodes rather than just one in the post editor.\n * We need to listen to the focus events in all those roots, and also in\n * the preview iframe.\n * This hook will clear the selected block when focusing outside the editor,\n * with a few exceptions:\n * 1. Focusing on popovers.\n * 2. Focusing on the inspector.\n * 3. Focusing on any modals/dialogs.\n * These cases are normally triggered by user interactions from the editor,\n * not by explicitly focusing outside the editor, hence no need for clearing.\n *\n * @param {Object} sidebarControl The sidebar control instance.\n * @param {Object} popoverRef The ref object of the popover node container.\n */\nexport default function useClearSelectedBlock( sidebarControl, popoverRef ) {\n\tconst { hasSelectedBlock, hasMultiSelection } =\n\t\tuseSelect( blockEditorStore );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( popoverRef.current && sidebarControl ) {\n\t\t\tconst inspector = sidebarControl.inspector;\n\t\t\tconst container = sidebarControl.container[ 0 ];\n\t\t\tconst ownerDocument = container.ownerDocument;\n\t\t\tconst ownerWindow = ownerDocument.defaultView;\n\n\t\t\tfunction handleClearSelectedBlock( element ) {\n\t\t\t\tif (\n\t\t\t\t\t// 1. Make sure there are blocks being selected.\n\t\t\t\t\t( hasSelectedBlock() || hasMultiSelection() ) &&\n\t\t\t\t\t// 2. The element should exist in the DOM (not deleted).\n\t\t\t\t\telement &&\n\t\t\t\t\townerDocument.contains( element ) &&\n\t\t\t\t\t// 3. It should also not exist in the container, the popover, nor the dialog.\n\t\t\t\t\t! container.contains( element ) &&\n\t\t\t\t\t! popoverRef.current.contains( element ) &&\n\t\t\t\t\t! element.closest( '[role=\"dialog\"]' ) &&\n\t\t\t\t\t// 4. The inspector should not be opened.\n\t\t\t\t\t! inspector.expanded()\n\t\t\t\t) {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Handle mouse down in the same document.\n\t\t\tfunction handleMouseDown( event ) {\n\t\t\t\thandleClearSelectedBlock( event.target );\n\t\t\t}\n\t\t\t// Handle focusing outside the current document, like to iframes.\n\t\t\tfunction handleBlur() {\n\t\t\t\thandleClearSelectedBlock( ownerDocument.activeElement );\n\t\t\t}\n\n\t\t\townerDocument.addEventListener( 'mousedown', handleMouseDown );\n\t\t\townerWindow.addEventListener( 'blur', handleBlur );\n\n\t\t\treturn () => {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'mousedown',\n\t\t\t\t\thandleMouseDown\n\t\t\t\t);\n\t\t\t\townerWindow.removeEventListener( 'blur', handleBlur );\n\t\t\t};\n\t\t}\n\t}, [\n\t\tpopoverRef,\n\t\tsidebarControl,\n\t\thasSelectedBlock,\n\t\thasMultiSelection,\n\t\tclearSelectedBlock,\n\t] );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/focus-control/index.js"],"names":["createContext","useState","useEffect","useContext","useCallback","useMemo","settingIdToWidgetId","FocusControlContext","FocusControl","api","sidebarControls","children","focusedWidgetIdRef","setFocusedWidgetIdRef","current","focusWidget","widgetId","sidebarControl","widgets","setting","get","includes","sectionInstance","expand","completeCallback","handleFocus","settingId","handleReady","previewer","preview","bind","unbind","context","useFocusControl"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,aADD,EAECC,QAFD,EAGCC,SAHD,EAICC,UAJD,EAKCC,WALD,EAMCC,OAND,QAOO,oBAPP;AASA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,aAApC;AAEA,MAAMC,mBAAmB,GAAGP,aAAa,EAAzC;AAEA,eAAe,SAASQ,YAAT,OAA4D;AAAA,MAArC;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,eAAP;AAAwBC,IAAAA;AAAxB,GAAqC;AAC1E,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgDZ,QAAQ,CAAE;AAC/Da,IAAAA,OAAO,EAAE;AADsD,GAAF,CAA9D;AAIA,QAAMC,WAAW,GAAGX,WAAW,CAC5BY,QAAF,IAAgB;AACf,SAAM,MAAMC,cAAZ,IAA8BP,eAA9B,EAAgD;AAC/C,YAAMQ,OAAO,GAAGD,cAAc,CAACE,OAAf,CAAuBC,GAAvB,EAAhB;;AAEA,UAAKF,OAAO,CAACG,QAAR,CAAkBL,QAAlB,CAAL,EAAoC;AACnCC,QAAAA,cAAc,CAACK,eAAf,CAA+BC,MAA/B,CAAuC;AACtC;AACA;AACAC,UAAAA,gBAAgB,GAAG;AAClB;AACA;AACAX,YAAAA,qBAAqB,CAAE;AAAEC,cAAAA,OAAO,EAAEE;AAAX,aAAF,CAArB;AACA;;AAPqC,SAAvC;AAUA;AACA;AACD;AACD,GAnB6B,EAoB9B,CAAEN,eAAF,CApB8B,CAA/B;AAuBAR,EAAAA,SAAS,CAAE,MAAM;AAChB,aAASuB,WAAT,CAAsBC,SAAtB,EAAkC;AACjC,YAAMV,QAAQ,GAAGV,mBAAmB,CAAEoB,SAAF,CAApC;AAEAX,MAAAA,WAAW,CAAEC,QAAF,CAAX;AACA;;AAED,aAASW,WAAT,GAAuB;AACtBlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcC,OAAd,CAAsBC,IAAtB,CACC,2BADD,EAECL,WAFD;AAIA;;AAEDhB,IAAAA,GAAG,CAACmB,SAAJ,CAAcE,IAAd,CAAoB,OAApB,EAA6BH,WAA7B;AAEA,WAAO,MAAM;AACZlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcG,MAAd,CAAsB,OAAtB,EAA+BJ,WAA/B;AACAlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcC,OAAd,CAAsBE,MAAtB,CACC,2BADD,EAECN,WAFD;AAIA,KAND;AAOA,GAvBQ,EAuBN,CAAEhB,GAAF,EAAOM,WAAP,CAvBM,CAAT;AAyBA,QAAMiB,OAAO,GAAG3B,OAAO,CAAE,MAAM,CAAEO,kBAAF,EAAsBG,WAAtB,CAAR,EAA6C,CACnEH,kBADmE,EAEnEG,WAFmE,CAA7C,CAAvB;AAKA,SACC,cAAC,mBAAD,CAAqB,QAArB;AAA8B,IAAA,KAAK,EAAGiB;AAAtC,KACGrB,QADH,CADD;AAKA;AAED,OAAO,MAAMsB,eAAe,GAAG,MAAM9B,UAAU,CAAEI,mBAAF,CAAxC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseState,\n\tuseEffect,\n\tuseContext,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst FocusControlContext = createContext();\n\nexport default function FocusControl( { api, sidebarControls, children } ) {\n\tconst [ focusedWidgetIdRef, setFocusedWidgetIdRef ] = useState( {\n\t\tcurrent: null,\n\t} );\n\n\tconst focusWidget = useCallback(\n\t\t( widgetId ) => {\n\t\t\tfor ( const sidebarControl of sidebarControls ) {\n\t\t\t\tconst widgets = sidebarControl.setting.get();\n\n\t\t\t\tif ( widgets.includes( widgetId ) ) {\n\t\t\t\t\tsidebarControl.sectionInstance.expand( {\n\t\t\t\t\t\t// Schedule it after the complete callback so that\n\t\t\t\t\t\t// it won't be overridden by the \"Back\" button focus.\n\t\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t\t// Create a \"ref-like\" object every time to ensure\n\t\t\t\t\t\t\t// the same widget id can also triggers the focus control.\n\t\t\t\t\t\t\tsetFocusedWidgetIdRef( { current: widgetId } );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ sidebarControls ]\n\t);\n\n\tuseEffect( () => {\n\t\tfunction handleFocus( settingId ) {\n\t\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\t\tfocusWidget( widgetId );\n\t\t}\n\n\t\tfunction handleReady() {\n\t\t\tapi.previewer.preview.bind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t}\n\n\t\tapi.previewer.bind( 'ready', handleReady );\n\n\t\treturn () => {\n\t\t\tapi.previewer.unbind( 'ready', handleReady );\n\t\t\tapi.previewer.preview.unbind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t};\n\t}, [ api, focusWidget ] );\n\n\tconst context = useMemo( () => [ focusedWidgetIdRef, focusWidget ], [\n\t\tfocusedWidgetIdRef,\n\t\tfocusWidget,\n\t] );\n\n\treturn (\n\t\t<FocusControlContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</FocusControlContext.Provider>\n\t);\n}\n\nexport const useFocusControl = () => useContext( FocusControlContext );\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/components/focus-control/index.js"],"names":["createContext","useState","useEffect","useContext","useCallback","useMemo","settingIdToWidgetId","FocusControlContext","FocusControl","api","sidebarControls","children","focusedWidgetIdRef","setFocusedWidgetIdRef","current","focusWidget","widgetId","sidebarControl","widgets","setting","get","includes","sectionInstance","expand","completeCallback","handleFocus","settingId","handleReady","previewer","preview","bind","unbind","context","useFocusControl"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,aADD,EAECC,QAFD,EAGCC,SAHD,EAICC,UAJD,EAKCC,WALD,EAMCC,OAND,QAOO,oBAPP;AASA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,aAApC;AAEA,MAAMC,mBAAmB,GAAGP,aAAa,EAAzC;AAEA,eAAe,SAASQ,YAAT,OAA4D;AAAA,MAArC;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,eAAP;AAAwBC,IAAAA;AAAxB,GAAqC;AAC1E,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgDZ,QAAQ,CAAE;AAC/Da,IAAAA,OAAO,EAAE;AADsD,GAAF,CAA9D;AAIA,QAAMC,WAAW,GAAGX,WAAW,CAC5BY,QAAF,IAAgB;AACf,SAAM,MAAMC,cAAZ,IAA8BP,eAA9B,EAAgD;AAC/C,YAAMQ,OAAO,GAAGD,cAAc,CAACE,OAAf,CAAuBC,GAAvB,EAAhB;;AAEA,UAAKF,OAAO,CAACG,QAAR,CAAkBL,QAAlB,CAAL,EAAoC;AACnCC,QAAAA,cAAc,CAACK,eAAf,CAA+BC,MAA/B,CAAuC;AACtC;AACA;AACAC,UAAAA,gBAAgB,GAAG;AAClB;AACA;AACAX,YAAAA,qBAAqB,CAAE;AAAEC,cAAAA,OAAO,EAAEE;AAAX,aAAF,CAArB;AACA;;AAPqC,SAAvC;AAUA;AACA;AACD;AACD,GAnB6B,EAoB9B,CAAEN,eAAF,CApB8B,CAA/B;AAuBAR,EAAAA,SAAS,CAAE,MAAM;AAChB,aAASuB,WAAT,CAAsBC,SAAtB,EAAkC;AACjC,YAAMV,QAAQ,GAAGV,mBAAmB,CAAEoB,SAAF,CAApC;AAEAX,MAAAA,WAAW,CAAEC,QAAF,CAAX;AACA;;AAED,aAASW,WAAT,GAAuB;AACtBlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcC,OAAd,CAAsBC,IAAtB,CACC,2BADD,EAECL,WAFD;AAIA;;AAEDhB,IAAAA,GAAG,CAACmB,SAAJ,CAAcE,IAAd,CAAoB,OAApB,EAA6BH,WAA7B;AAEA,WAAO,MAAM;AACZlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcG,MAAd,CAAsB,OAAtB,EAA+BJ,WAA/B;AACAlB,MAAAA,GAAG,CAACmB,SAAJ,CAAcC,OAAd,CAAsBE,MAAtB,CACC,2BADD,EAECN,WAFD;AAIA,KAND;AAOA,GAvBQ,EAuBN,CAAEhB,GAAF,EAAOM,WAAP,CAvBM,CAAT;AAyBA,QAAMiB,OAAO,GAAG3B,OAAO,CACtB,MAAM,CAAEO,kBAAF,EAAsBG,WAAtB,CADgB,EAEtB,CAAEH,kBAAF,EAAsBG,WAAtB,CAFsB,CAAvB;AAKA,SACC,cAAC,mBAAD,CAAqB,QAArB;AAA8B,IAAA,KAAK,EAAGiB;AAAtC,KACGrB,QADH,CADD;AAKA;AAED,OAAO,MAAMsB,eAAe,GAAG,MAAM9B,UAAU,CAAEI,mBAAF,CAAxC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseState,\n\tuseEffect,\n\tuseContext,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst FocusControlContext = createContext();\n\nexport default function FocusControl( { api, sidebarControls, children } ) {\n\tconst [ focusedWidgetIdRef, setFocusedWidgetIdRef ] = useState( {\n\t\tcurrent: null,\n\t} );\n\n\tconst focusWidget = useCallback(\n\t\t( widgetId ) => {\n\t\t\tfor ( const sidebarControl of sidebarControls ) {\n\t\t\t\tconst widgets = sidebarControl.setting.get();\n\n\t\t\t\tif ( widgets.includes( widgetId ) ) {\n\t\t\t\t\tsidebarControl.sectionInstance.expand( {\n\t\t\t\t\t\t// Schedule it after the complete callback so that\n\t\t\t\t\t\t// it won't be overridden by the \"Back\" button focus.\n\t\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t\t// Create a \"ref-like\" object every time to ensure\n\t\t\t\t\t\t\t// the same widget id can also triggers the focus control.\n\t\t\t\t\t\t\tsetFocusedWidgetIdRef( { current: widgetId } );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ sidebarControls ]\n\t);\n\n\tuseEffect( () => {\n\t\tfunction handleFocus( settingId ) {\n\t\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\t\tfocusWidget( widgetId );\n\t\t}\n\n\t\tfunction handleReady() {\n\t\t\tapi.previewer.preview.bind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t}\n\n\t\tapi.previewer.bind( 'ready', handleReady );\n\n\t\treturn () => {\n\t\t\tapi.previewer.unbind( 'ready', handleReady );\n\t\t\tapi.previewer.preview.unbind(\n\t\t\t\t'focus-control-for-setting',\n\t\t\t\thandleFocus\n\t\t\t);\n\t\t};\n\t}, [ api, focusWidget ] );\n\n\tconst context = useMemo(\n\t\t() => [ focusedWidgetIdRef, focusWidget ],\n\t\t[ focusedWidgetIdRef, focusWidget ]\n\t);\n\n\treturn (\n\t\t<FocusControlContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</FocusControlContext.Provider>\n\t);\n}\n\nexport const useFocusControl = () => useContext( FocusControlContext );\n"]}
@@ -1,13 +1,8 @@
1
1
  import { createElement, Fragment } from "@wordpress/element";
2
2
 
3
- /**
4
- * External dependencies
5
- */
6
- import { defaultTo } from 'lodash';
7
3
  /**
8
4
  * WordPress dependencies
9
5
  */
10
-
11
6
  import { store as coreStore } from '@wordpress/core-data';
12
7
  import { useSelect } from '@wordpress/data';
13
8
  import { useMemo, createPortal } from '@wordpress/element';
@@ -39,11 +34,13 @@ export default function SidebarBlockEditor(_ref) {
39
34
  keepCaretInsideBlock,
40
35
  isWelcomeGuideActive
41
36
  } = useSelect(select => {
37
+ var _select$canUser;
38
+
42
39
  const {
43
40
  get
44
41
  } = select(preferencesStore);
45
42
  return {
46
- hasUploadPermissions: defaultTo(select(coreStore).canUser('create', 'media'), true),
43
+ hasUploadPermissions: (_select$canUser = select(coreStore).canUser('create', 'media')) !== null && _select$canUser !== void 0 ? _select$canUser : true,
47
44
  isFixedToolbarActive: !!get('core/customize-widgets', 'fixedToolbar'),
48
45
  keepCaretInsideBlock: !!get('core/customize-widgets', 'keepCaretInsideBlock'),
49
46
  isWelcomeGuideActive: !!get('core/customize-widgets', 'welcomeGuide')
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/index.js"],"names":["defaultTo","store","coreStore","useSelect","useMemo","createPortal","BlockList","BlockTools","BlockSelectionClearer","BlockInspector","CopyHandler","ObserveTyping","WritingFlow","BlockEditorKeyboardShortcuts","__unstableBlockSettingsMenuFirstItem","__unstableEditorStyles","EditorStyles","uploadMedia","preferencesStore","BlockInspectorButton","Header","useInserter","SidebarEditorProvider","WelcomeGuide","KeyboardShortcuts","BlockAppender","SidebarBlockEditor","blockEditorSettings","sidebar","inserter","inspector","isInserterOpened","setIsInserterOpened","hasUploadPermissions","isFixedToolbarActive","keepCaretInsideBlock","isWelcomeGuideActive","select","get","canUser","settings","mediaUploadBlockEditor","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalSetIsInserterOpened","mediaUpload","hasFixedToolbar","__unstableHasCustomAppender","undo","redo","save","defaultEditorStyles","event","preventDefault","contentContainer","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { defaultTo } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, createPortal } from '@wordpress/element';\nimport {\n\tBlockList,\n\tBlockTools,\n\tBlockSelectionClearer,\n\tBlockInspector,\n\tCopyHandler,\n\tObserveTyping,\n\tWritingFlow,\n\tBlockEditorKeyboardShortcuts,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__unstableEditorStyles as EditorStyles,\n} from '@wordpress/block-editor';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport BlockInspectorButton from '../block-inspector-button';\nimport Header from '../header';\nimport useInserter from '../inserter/use-inserter';\nimport SidebarEditorProvider from './sidebar-editor-provider';\nimport WelcomeGuide from '../welcome-guide';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport BlockAppender from '../block-appender';\n\nexport default function SidebarBlockEditor( {\n\tblockEditorSettings,\n\tsidebar,\n\tinserter,\n\tinspector,\n} ) {\n\tconst [ isInserterOpened, setIsInserterOpened ] = useInserter( inserter );\n\tconst {\n\t\thasUploadPermissions,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tisWelcomeGuideActive,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\treturn {\n\t\t\thasUploadPermissions: defaultTo(\n\t\t\t\tselect( coreStore ).canUser( 'create', 'media' ),\n\t\t\t\ttrue\n\t\t\t),\n\t\t\tisFixedToolbarActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tisWelcomeGuideActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'welcomeGuide'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( hasUploadPermissions ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\thasFixedToolbar: isFixedToolbarActive,\n\t\t\tkeepCaretInsideBlock,\n\t\t\t__unstableHasCustomAppender: true,\n\t\t};\n\t}, [\n\t\thasUploadPermissions,\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tsetIsInserterOpened,\n\t] );\n\n\tif ( isWelcomeGuideActive ) {\n\t\treturn <WelcomeGuide sidebar={ sidebar } />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t<KeyboardShortcuts.Register />\n\n\t\t\t<SidebarEditorProvider sidebar={ sidebar } settings={ settings }>\n\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\tundo={ sidebar.undo }\n\t\t\t\t\tredo={ sidebar.redo }\n\t\t\t\t\tsave={ sidebar.save }\n\t\t\t\t/>\n\n\t\t\t\t<Header\n\t\t\t\t\tsidebar={ sidebar }\n\t\t\t\t\tinserter={ inserter }\n\t\t\t\t\tisInserterOpened={ isInserterOpened }\n\t\t\t\t\tsetIsInserterOpened={ setIsInserterOpened }\n\t\t\t\t\tisFixedToolbarActive={ isFixedToolbarActive }\n\t\t\t\t/>\n\n\t\t\t\t<CopyHandler>\n\t\t\t\t\t<BlockTools>\n\t\t\t\t\t\t<EditorStyles styles={ settings.defaultEditorStyles } />\n\t\t\t\t\t\t<BlockSelectionClearer>\n\t\t\t\t\t\t\t<WritingFlow className=\"editor-styles-wrapper\">\n\t\t\t\t\t\t\t\t<ObserveTyping>\n\t\t\t\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\t\t\t\trenderAppender={ BlockAppender }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ObserveTyping>\n\t\t\t\t\t\t\t</WritingFlow>\n\t\t\t\t\t\t</BlockSelectionClearer>\n\t\t\t\t\t</BlockTools>\n\t\t\t\t</CopyHandler>\n\n\t\t\t\t{ createPortal(\n\t\t\t\t\t// This is a temporary hack to prevent button component inside <BlockInspector>\n\t\t\t\t\t// from submitting form when type=\"button\" is not specified.\n\t\t\t\t\t<form onSubmit={ ( event ) => event.preventDefault() }>\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t</form>,\n\t\t\t\t\tinspector.contentContainer[ 0 ]\n\t\t\t\t) }\n\t\t\t</SidebarEditorProvider>\n\n\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<BlockInspectorButton\n\t\t\t\t\t\tinspector={ inspector }\n\t\t\t\t\t\tcloseMenu={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/index.js"],"names":["store","coreStore","useSelect","useMemo","createPortal","BlockList","BlockTools","BlockSelectionClearer","BlockInspector","CopyHandler","ObserveTyping","WritingFlow","BlockEditorKeyboardShortcuts","__unstableBlockSettingsMenuFirstItem","__unstableEditorStyles","EditorStyles","uploadMedia","preferencesStore","BlockInspectorButton","Header","useInserter","SidebarEditorProvider","WelcomeGuide","KeyboardShortcuts","BlockAppender","SidebarBlockEditor","blockEditorSettings","sidebar","inserter","inspector","isInserterOpened","setIsInserterOpened","hasUploadPermissions","isFixedToolbarActive","keepCaretInsideBlock","isWelcomeGuideActive","select","get","canUser","settings","mediaUploadBlockEditor","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalSetIsInserterOpened","mediaUpload","hasFixedToolbar","__unstableHasCustomAppender","undo","redo","save","defaultEditorStyles","event","preventDefault","contentContainer","onClose"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, createPortal } from '@wordpress/element';\nimport {\n\tBlockList,\n\tBlockTools,\n\tBlockSelectionClearer,\n\tBlockInspector,\n\tCopyHandler,\n\tObserveTyping,\n\tWritingFlow,\n\tBlockEditorKeyboardShortcuts,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__unstableEditorStyles as EditorStyles,\n} from '@wordpress/block-editor';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport BlockInspectorButton from '../block-inspector-button';\nimport Header from '../header';\nimport useInserter from '../inserter/use-inserter';\nimport SidebarEditorProvider from './sidebar-editor-provider';\nimport WelcomeGuide from '../welcome-guide';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport BlockAppender from '../block-appender';\n\nexport default function SidebarBlockEditor( {\n\tblockEditorSettings,\n\tsidebar,\n\tinserter,\n\tinspector,\n} ) {\n\tconst [ isInserterOpened, setIsInserterOpened ] = useInserter( inserter );\n\tconst {\n\t\thasUploadPermissions,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tisWelcomeGuideActive,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\treturn {\n\t\t\thasUploadPermissions:\n\t\t\t\tselect( coreStore ).canUser( 'create', 'media' ) ?? true,\n\t\t\tisFixedToolbarActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tisWelcomeGuideActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'welcomeGuide'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( hasUploadPermissions ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\thasFixedToolbar: isFixedToolbarActive,\n\t\t\tkeepCaretInsideBlock,\n\t\t\t__unstableHasCustomAppender: true,\n\t\t};\n\t}, [\n\t\thasUploadPermissions,\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tsetIsInserterOpened,\n\t] );\n\n\tif ( isWelcomeGuideActive ) {\n\t\treturn <WelcomeGuide sidebar={ sidebar } />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t<KeyboardShortcuts.Register />\n\n\t\t\t<SidebarEditorProvider sidebar={ sidebar } settings={ settings }>\n\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\tundo={ sidebar.undo }\n\t\t\t\t\tredo={ sidebar.redo }\n\t\t\t\t\tsave={ sidebar.save }\n\t\t\t\t/>\n\n\t\t\t\t<Header\n\t\t\t\t\tsidebar={ sidebar }\n\t\t\t\t\tinserter={ inserter }\n\t\t\t\t\tisInserterOpened={ isInserterOpened }\n\t\t\t\t\tsetIsInserterOpened={ setIsInserterOpened }\n\t\t\t\t\tisFixedToolbarActive={ isFixedToolbarActive }\n\t\t\t\t/>\n\n\t\t\t\t<CopyHandler>\n\t\t\t\t\t<BlockTools>\n\t\t\t\t\t\t<EditorStyles styles={ settings.defaultEditorStyles } />\n\t\t\t\t\t\t<BlockSelectionClearer>\n\t\t\t\t\t\t\t<WritingFlow className=\"editor-styles-wrapper\">\n\t\t\t\t\t\t\t\t<ObserveTyping>\n\t\t\t\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\t\t\t\trenderAppender={ BlockAppender }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ObserveTyping>\n\t\t\t\t\t\t\t</WritingFlow>\n\t\t\t\t\t\t</BlockSelectionClearer>\n\t\t\t\t\t</BlockTools>\n\t\t\t\t</CopyHandler>\n\n\t\t\t\t{ createPortal(\n\t\t\t\t\t// This is a temporary hack to prevent button component inside <BlockInspector>\n\t\t\t\t\t// from submitting form when type=\"button\" is not specified.\n\t\t\t\t\t<form onSubmit={ ( event ) => event.preventDefault() }>\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t</form>,\n\t\t\t\t\tinspector.contentContainer[ 0 ]\n\t\t\t\t) }\n\t\t\t</SidebarEditorProvider>\n\n\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<BlockInspectorButton\n\t\t\t\t\t\tinspector={ inspector }\n\t\t\t\t\t\tcloseMenu={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t</>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-adapter.js"],"names":["settingIdToWidgetId","wp","window","parseWidgetId","widgetId","matches","match","idBase","number","parseInt","widgetIdToSettingId","debounce","leading","callback","timeout","isLeading","timerID","debounced","args","result","apply","clearTimeout","setTimeout","cancel","SidebarAdapter","constructor","setting","api","locked","widgetsCache","WeakMap","subscribers","Set","history","_getWidgetIds","map","getWidget","historyIndex","historySubscribers","_debounceSetHistory","_pushHistory","_replaceHistory","bind","_handleSettingChange","_handleAllSettingsChange","undo","redo","save","subscribe","add","delete","getWidgets","_emit","get","slice","forEach","listener","prevWidgets","id","startsWith","includes","_createWidget","widget","widgetModel","customize","Widgets","availableWidgets","findWhere","id_base","set","settingId","settingArgs","transport","data","selectiveRefreshableWidgets","previewer","create","instance","_removeWidget","remove","_updateWidget","prevWidget","has","_updateWidgets","nextWidgets","addedWidgetIds","nextWidgetIds","nextWidget","push","deletedWidgets","filter","setWidgets","hasUndo","hasRedo","length","_seek","currentWidgets","widgets","subscribeHistory"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst { wp } = window;\n\nfunction parseWidgetId( widgetId ) {\n\tconst matches = widgetId.match( /^(.+)-(\\d+)$/ );\n\tif ( matches ) {\n\t\treturn {\n\t\t\tidBase: matches[ 1 ],\n\t\t\tnumber: parseInt( matches[ 2 ], 10 ),\n\t\t};\n\t}\n\n\t// Likely an old single widget.\n\treturn { idBase: widgetId };\n}\n\nfunction widgetIdToSettingId( widgetId ) {\n\tconst { idBase, number } = parseWidgetId( widgetId );\n\tif ( number ) {\n\t\treturn `widget_${ idBase }[${ number }]`;\n\t}\n\n\treturn `widget_${ idBase }`;\n}\n\n/**\n * This is a custom debounce function to call different callbacks depending on\n * whether it's the _leading_ call or not.\n *\n * @param {Function} leading The callback that gets called first.\n * @param {Function} callback The callback that gets called after the first time.\n * @param {number} timeout The debounced time in milliseconds.\n * @return {Function} The debounced function.\n */\nfunction debounce( leading, callback, timeout ) {\n\tlet isLeading = false;\n\tlet timerID;\n\n\tfunction debounced( ...args ) {\n\t\tconst result = ( isLeading ? callback : leading ).apply( this, args );\n\n\t\tisLeading = true;\n\n\t\tclearTimeout( timerID );\n\n\t\ttimerID = setTimeout( () => {\n\t\t\tisLeading = false;\n\t\t}, timeout );\n\n\t\treturn result;\n\t}\n\n\tdebounced.cancel = () => {\n\t\tisLeading = false;\n\t\tclearTimeout( timerID );\n\t};\n\n\treturn debounced;\n}\n\nexport default class SidebarAdapter {\n\tconstructor( setting, api ) {\n\t\tthis.setting = setting;\n\t\tthis.api = api;\n\n\t\tthis.locked = false;\n\t\tthis.widgetsCache = new WeakMap();\n\t\tthis.subscribers = new Set();\n\n\t\tthis.history = [\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex = 0;\n\t\tthis.historySubscribers = new Set();\n\t\t// Debounce the input for 1 second.\n\t\tthis._debounceSetHistory = debounce(\n\t\t\tthis._pushHistory,\n\t\t\tthis._replaceHistory,\n\t\t\t1000\n\t\t);\n\n\t\tthis.setting.bind( this._handleSettingChange.bind( this ) );\n\t\tthis.api.bind( 'change', this._handleAllSettingsChange.bind( this ) );\n\n\t\tthis.undo = this.undo.bind( this );\n\t\tthis.redo = this.redo.bind( this );\n\t\tthis.save = this.save.bind( this );\n\t}\n\n\tsubscribe( callback ) {\n\t\tthis.subscribers.add( callback );\n\n\t\treturn () => {\n\t\t\tthis.subscribers.delete( callback );\n\t\t};\n\t}\n\n\tgetWidgets() {\n\t\treturn this.history[ this.historyIndex ];\n\t}\n\n\t_emit( ...args ) {\n\t\tfor ( const callback of this.subscribers ) {\n\t\t\tcallback( ...args );\n\t\t}\n\t}\n\n\t_getWidgetIds() {\n\t\treturn this.setting.get();\n\t}\n\n\t_pushHistory() {\n\t\tthis.history = [\n\t\t\t...this.history.slice( 0, this.historyIndex + 1 ),\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex += 1;\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t}\n\n\t_replaceHistory() {\n\t\tthis.history[\n\t\t\tthis.historyIndex\n\t\t] = this._getWidgetIds().map( ( widgetId ) =>\n\t\t\tthis.getWidget( widgetId )\n\t\t);\n\t}\n\n\t_handleSettingChange() {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_handleAllSettingsChange( setting ) {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! setting.id.startsWith( 'widget_' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst widgetId = settingIdToWidgetId( setting.id );\n\t\tif ( ! this.setting.get().includes( widgetId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_createWidget( widget ) {\n\t\tconst widgetModel = wp.customize.Widgets.availableWidgets.findWhere( {\n\t\t\tid_base: widget.idBase,\n\t\t} );\n\n\t\tlet number = widget.number;\n\t\tif ( widgetModel.get( 'is_multi' ) && ! number ) {\n\t\t\twidgetModel.set(\n\t\t\t\t'multi_number',\n\t\t\t\twidgetModel.get( 'multi_number' ) + 1\n\t\t\t);\n\t\t\tnumber = widgetModel.get( 'multi_number' );\n\t\t}\n\n\t\tconst settingId = number\n\t\t\t? `widget_${ widget.idBase }[${ number }]`\n\t\t\t: `widget_${ widget.idBase }`;\n\n\t\tconst settingArgs = {\n\t\t\ttransport: wp.customize.Widgets.data.selectiveRefreshableWidgets[\n\t\t\t\twidgetModel.get( 'id_base' )\n\t\t\t]\n\t\t\t\t? 'postMessage'\n\t\t\t\t: 'refresh',\n\t\t\tpreviewer: this.setting.previewer,\n\t\t};\n\t\tconst setting = this.api.create(\n\t\t\tsettingId,\n\t\t\tsettingId,\n\t\t\t'',\n\t\t\tsettingArgs\n\t\t);\n\t\tsetting.set( widget.instance );\n\n\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\treturn widgetId;\n\t}\n\n\t_removeWidget( widget ) {\n\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( setting ) {\n\t\t\tconst instance = setting.get();\n\t\t\tthis.widgetsCache.delete( instance );\n\t\t}\n\n\t\tthis.api.remove( settingId );\n\t}\n\n\t_updateWidget( widget ) {\n\t\tconst prevWidget = this.getWidget( widget.id );\n\n\t\t// Bail out update if nothing changed.\n\t\tif ( prevWidget === widget ) {\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Update existing setting if only the widget's instance changed.\n\t\tif (\n\t\t\tprevWidget.idBase &&\n\t\t\twidget.idBase &&\n\t\t\tprevWidget.idBase === widget.idBase\n\t\t) {\n\t\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\t\tthis.api( settingId ).set( widget.instance );\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Otherwise delete and re-create.\n\t\tthis._removeWidget( widget );\n\t\treturn this._createWidget( widget );\n\t}\n\n\tgetWidget( widgetId ) {\n\t\tif ( ! widgetId ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { idBase, number } = parseWidgetId( widgetId );\n\t\tconst settingId = widgetIdToSettingId( widgetId );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( ! setting ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst instance = setting.get();\n\n\t\tif ( this.widgetsCache.has( instance ) ) {\n\t\t\treturn this.widgetsCache.get( instance );\n\t\t}\n\n\t\tconst widget = {\n\t\t\tid: widgetId,\n\t\t\tidBase,\n\t\t\tnumber,\n\t\t\tinstance,\n\t\t};\n\n\t\tthis.widgetsCache.set( instance, widget );\n\n\t\treturn widget;\n\t}\n\n\t_updateWidgets( nextWidgets ) {\n\t\tthis.locked = true;\n\n\t\tconst addedWidgetIds = [];\n\n\t\tconst nextWidgetIds = nextWidgets.map( ( nextWidget ) => {\n\t\t\tif ( nextWidget.id && this.getWidget( nextWidget.id ) ) {\n\t\t\t\taddedWidgetIds.push( null );\n\n\t\t\t\treturn this._updateWidget( nextWidget );\n\t\t\t}\n\n\t\t\tconst widgetId = this._createWidget( nextWidget );\n\n\t\t\taddedWidgetIds.push( widgetId );\n\n\t\t\treturn widgetId;\n\t\t} );\n\n\t\tconst deletedWidgets = this.getWidgets().filter(\n\t\t\t( widget ) => ! nextWidgetIds.includes( widget.id )\n\t\t);\n\t\tdeletedWidgets.forEach( ( widget ) => this._removeWidget( widget ) );\n\n\t\tthis.setting.set( nextWidgetIds );\n\n\t\tthis.locked = false;\n\n\t\treturn addedWidgetIds;\n\t}\n\n\tsetWidgets( nextWidgets ) {\n\t\tconst addedWidgetIds = this._updateWidgets( nextWidgets );\n\n\t\tthis._debounceSetHistory();\n\n\t\treturn addedWidgetIds;\n\t}\n\n\t/**\n\t * Undo/Redo related features\n\t */\n\thasUndo() {\n\t\treturn this.historyIndex > 0;\n\t}\n\n\thasRedo() {\n\t\treturn this.historyIndex < this.history.length - 1;\n\t}\n\n\t_seek( historyIndex ) {\n\t\tconst currentWidgets = this.getWidgets();\n\n\t\tthis.historyIndex = historyIndex;\n\n\t\tconst widgets = this.history[ this.historyIndex ];\n\n\t\tthis._updateWidgets( widgets );\n\n\t\tthis._emit( currentWidgets, this.getWidgets() );\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t\tthis._debounceSetHistory.cancel();\n\t}\n\n\tundo() {\n\t\tif ( ! this.hasUndo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex - 1 );\n\t}\n\n\tredo() {\n\t\tif ( ! this.hasRedo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex + 1 );\n\t}\n\n\tsubscribeHistory( listener ) {\n\t\tthis.historySubscribers.add( listener );\n\n\t\treturn () => {\n\t\t\tthis.historySubscribers.delete( listener );\n\t\t};\n\t}\n\n\tsave() {\n\t\tthis.api.previewer.save();\n\t}\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-adapter.js"],"names":["settingIdToWidgetId","wp","window","parseWidgetId","widgetId","matches","match","idBase","number","parseInt","widgetIdToSettingId","debounce","leading","callback","timeout","isLeading","timerID","debounced","args","result","apply","clearTimeout","setTimeout","cancel","SidebarAdapter","constructor","setting","api","locked","widgetsCache","WeakMap","subscribers","Set","history","_getWidgetIds","map","getWidget","historyIndex","historySubscribers","_debounceSetHistory","_pushHistory","_replaceHistory","bind","_handleSettingChange","_handleAllSettingsChange","undo","redo","save","subscribe","add","delete","getWidgets","_emit","get","slice","forEach","listener","prevWidgets","id","startsWith","includes","_createWidget","widget","widgetModel","customize","Widgets","availableWidgets","findWhere","id_base","set","settingId","settingArgs","transport","data","selectiveRefreshableWidgets","previewer","create","instance","_removeWidget","remove","_updateWidget","prevWidget","has","_updateWidgets","nextWidgets","addedWidgetIds","nextWidgetIds","nextWidget","push","deletedWidgets","filter","setWidgets","hasUndo","hasRedo","length","_seek","currentWidgets","widgets","subscribeHistory"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst { wp } = window;\n\nfunction parseWidgetId( widgetId ) {\n\tconst matches = widgetId.match( /^(.+)-(\\d+)$/ );\n\tif ( matches ) {\n\t\treturn {\n\t\t\tidBase: matches[ 1 ],\n\t\t\tnumber: parseInt( matches[ 2 ], 10 ),\n\t\t};\n\t}\n\n\t// Likely an old single widget.\n\treturn { idBase: widgetId };\n}\n\nfunction widgetIdToSettingId( widgetId ) {\n\tconst { idBase, number } = parseWidgetId( widgetId );\n\tif ( number ) {\n\t\treturn `widget_${ idBase }[${ number }]`;\n\t}\n\n\treturn `widget_${ idBase }`;\n}\n\n/**\n * This is a custom debounce function to call different callbacks depending on\n * whether it's the _leading_ call or not.\n *\n * @param {Function} leading The callback that gets called first.\n * @param {Function} callback The callback that gets called after the first time.\n * @param {number} timeout The debounced time in milliseconds.\n * @return {Function} The debounced function.\n */\nfunction debounce( leading, callback, timeout ) {\n\tlet isLeading = false;\n\tlet timerID;\n\n\tfunction debounced( ...args ) {\n\t\tconst result = ( isLeading ? callback : leading ).apply( this, args );\n\n\t\tisLeading = true;\n\n\t\tclearTimeout( timerID );\n\n\t\ttimerID = setTimeout( () => {\n\t\t\tisLeading = false;\n\t\t}, timeout );\n\n\t\treturn result;\n\t}\n\n\tdebounced.cancel = () => {\n\t\tisLeading = false;\n\t\tclearTimeout( timerID );\n\t};\n\n\treturn debounced;\n}\n\nexport default class SidebarAdapter {\n\tconstructor( setting, api ) {\n\t\tthis.setting = setting;\n\t\tthis.api = api;\n\n\t\tthis.locked = false;\n\t\tthis.widgetsCache = new WeakMap();\n\t\tthis.subscribers = new Set();\n\n\t\tthis.history = [\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex = 0;\n\t\tthis.historySubscribers = new Set();\n\t\t// Debounce the input for 1 second.\n\t\tthis._debounceSetHistory = debounce(\n\t\t\tthis._pushHistory,\n\t\t\tthis._replaceHistory,\n\t\t\t1000\n\t\t);\n\n\t\tthis.setting.bind( this._handleSettingChange.bind( this ) );\n\t\tthis.api.bind( 'change', this._handleAllSettingsChange.bind( this ) );\n\n\t\tthis.undo = this.undo.bind( this );\n\t\tthis.redo = this.redo.bind( this );\n\t\tthis.save = this.save.bind( this );\n\t}\n\n\tsubscribe( callback ) {\n\t\tthis.subscribers.add( callback );\n\n\t\treturn () => {\n\t\t\tthis.subscribers.delete( callback );\n\t\t};\n\t}\n\n\tgetWidgets() {\n\t\treturn this.history[ this.historyIndex ];\n\t}\n\n\t_emit( ...args ) {\n\t\tfor ( const callback of this.subscribers ) {\n\t\t\tcallback( ...args );\n\t\t}\n\t}\n\n\t_getWidgetIds() {\n\t\treturn this.setting.get();\n\t}\n\n\t_pushHistory() {\n\t\tthis.history = [\n\t\t\t...this.history.slice( 0, this.historyIndex + 1 ),\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex += 1;\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t}\n\n\t_replaceHistory() {\n\t\tthis.history[ this.historyIndex ] = this._getWidgetIds().map(\n\t\t\t( widgetId ) => this.getWidget( widgetId )\n\t\t);\n\t}\n\n\t_handleSettingChange() {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_handleAllSettingsChange( setting ) {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! setting.id.startsWith( 'widget_' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst widgetId = settingIdToWidgetId( setting.id );\n\t\tif ( ! this.setting.get().includes( widgetId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_createWidget( widget ) {\n\t\tconst widgetModel = wp.customize.Widgets.availableWidgets.findWhere( {\n\t\t\tid_base: widget.idBase,\n\t\t} );\n\n\t\tlet number = widget.number;\n\t\tif ( widgetModel.get( 'is_multi' ) && ! number ) {\n\t\t\twidgetModel.set(\n\t\t\t\t'multi_number',\n\t\t\t\twidgetModel.get( 'multi_number' ) + 1\n\t\t\t);\n\t\t\tnumber = widgetModel.get( 'multi_number' );\n\t\t}\n\n\t\tconst settingId = number\n\t\t\t? `widget_${ widget.idBase }[${ number }]`\n\t\t\t: `widget_${ widget.idBase }`;\n\n\t\tconst settingArgs = {\n\t\t\ttransport: wp.customize.Widgets.data.selectiveRefreshableWidgets[\n\t\t\t\twidgetModel.get( 'id_base' )\n\t\t\t]\n\t\t\t\t? 'postMessage'\n\t\t\t\t: 'refresh',\n\t\t\tpreviewer: this.setting.previewer,\n\t\t};\n\t\tconst setting = this.api.create(\n\t\t\tsettingId,\n\t\t\tsettingId,\n\t\t\t'',\n\t\t\tsettingArgs\n\t\t);\n\t\tsetting.set( widget.instance );\n\n\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\treturn widgetId;\n\t}\n\n\t_removeWidget( widget ) {\n\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( setting ) {\n\t\t\tconst instance = setting.get();\n\t\t\tthis.widgetsCache.delete( instance );\n\t\t}\n\n\t\tthis.api.remove( settingId );\n\t}\n\n\t_updateWidget( widget ) {\n\t\tconst prevWidget = this.getWidget( widget.id );\n\n\t\t// Bail out update if nothing changed.\n\t\tif ( prevWidget === widget ) {\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Update existing setting if only the widget's instance changed.\n\t\tif (\n\t\t\tprevWidget.idBase &&\n\t\t\twidget.idBase &&\n\t\t\tprevWidget.idBase === widget.idBase\n\t\t) {\n\t\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\t\tthis.api( settingId ).set( widget.instance );\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Otherwise delete and re-create.\n\t\tthis._removeWidget( widget );\n\t\treturn this._createWidget( widget );\n\t}\n\n\tgetWidget( widgetId ) {\n\t\tif ( ! widgetId ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { idBase, number } = parseWidgetId( widgetId );\n\t\tconst settingId = widgetIdToSettingId( widgetId );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( ! setting ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst instance = setting.get();\n\n\t\tif ( this.widgetsCache.has( instance ) ) {\n\t\t\treturn this.widgetsCache.get( instance );\n\t\t}\n\n\t\tconst widget = {\n\t\t\tid: widgetId,\n\t\t\tidBase,\n\t\t\tnumber,\n\t\t\tinstance,\n\t\t};\n\n\t\tthis.widgetsCache.set( instance, widget );\n\n\t\treturn widget;\n\t}\n\n\t_updateWidgets( nextWidgets ) {\n\t\tthis.locked = true;\n\n\t\tconst addedWidgetIds = [];\n\n\t\tconst nextWidgetIds = nextWidgets.map( ( nextWidget ) => {\n\t\t\tif ( nextWidget.id && this.getWidget( nextWidget.id ) ) {\n\t\t\t\taddedWidgetIds.push( null );\n\n\t\t\t\treturn this._updateWidget( nextWidget );\n\t\t\t}\n\n\t\t\tconst widgetId = this._createWidget( nextWidget );\n\n\t\t\taddedWidgetIds.push( widgetId );\n\n\t\t\treturn widgetId;\n\t\t} );\n\n\t\tconst deletedWidgets = this.getWidgets().filter(\n\t\t\t( widget ) => ! nextWidgetIds.includes( widget.id )\n\t\t);\n\t\tdeletedWidgets.forEach( ( widget ) => this._removeWidget( widget ) );\n\n\t\tthis.setting.set( nextWidgetIds );\n\n\t\tthis.locked = false;\n\n\t\treturn addedWidgetIds;\n\t}\n\n\tsetWidgets( nextWidgets ) {\n\t\tconst addedWidgetIds = this._updateWidgets( nextWidgets );\n\n\t\tthis._debounceSetHistory();\n\n\t\treturn addedWidgetIds;\n\t}\n\n\t/**\n\t * Undo/Redo related features\n\t */\n\thasUndo() {\n\t\treturn this.historyIndex > 0;\n\t}\n\n\thasRedo() {\n\t\treturn this.historyIndex < this.history.length - 1;\n\t}\n\n\t_seek( historyIndex ) {\n\t\tconst currentWidgets = this.getWidgets();\n\n\t\tthis.historyIndex = historyIndex;\n\n\t\tconst widgets = this.history[ this.historyIndex ];\n\n\t\tthis._updateWidgets( widgets );\n\n\t\tthis._emit( currentWidgets, this.getWidgets() );\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t\tthis._debounceSetHistory.cancel();\n\t}\n\n\tundo() {\n\t\tif ( ! this.hasUndo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex - 1 );\n\t}\n\n\tredo() {\n\t\tif ( ! this.hasRedo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex + 1 );\n\t}\n\n\tsubscribeHistory( listener ) {\n\t\tthis.historySubscribers.add( listener );\n\n\t\treturn () => {\n\t\t\tthis.historySubscribers.delete( listener );\n\t\t};\n\t}\n\n\tsave() {\n\t\tthis.api.previewer.save();\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/controls/inserter-outer-section.js"],"names":["ESCAPE","focus","dispatch","store","customizeWidgetsStore","getInserterOuterSection","wp","customize","window","OuterSection","onChangeExpanded","expanded","args","section","each","params","type","id","collapse","sectionConstructor","outer","InserterOuterSection","constructor","activeElementBeforeExpanded","ownerWindow","contentContainer","ownerDocument","defaultView","addEventListener","event","keyCode","code","defaultPrevented","preventDefault","stopPropagation","setIsInserterOpened","addClass","isFromInternalAction","bind","open","activeElement","expand","completeCallback","searchBox","tabbable","find","close","contains"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { focus } from '@wordpress/dom';\nimport { dispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as customizeWidgetsStore } from '../store';\n\nexport default function getInserterOuterSection() {\n\tconst {\n\t\twp: { customize },\n\t} = window;\n\n\tconst OuterSection = customize.OuterSection;\n\t// Override the OuterSection class to handle multiple outer sections.\n\t// It closes all the other outer sections whenever one is opened.\n\t// The result is that at most one outer section can be opened at the same time.\n\tcustomize.OuterSection = class extends OuterSection {\n\t\tonChangeExpanded( expanded, args ) {\n\t\t\tif ( expanded ) {\n\t\t\t\tcustomize.section.each( ( section ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tsection.params.type === 'outer' &&\n\t\t\t\t\t\tsection.id !== this.id\n\t\t\t\t\t) {\n\t\t\t\t\t\tif ( section.expanded() ) {\n\t\t\t\t\t\t\tsection.collapse();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn super.onChangeExpanded( expanded, args );\n\t\t}\n\t};\n\t// Handle constructor so that \"params.type\" can be correctly pointed to \"outer\".\n\tcustomize.sectionConstructor.outer = customize.OuterSection;\n\n\treturn class InserterOuterSection extends customize.OuterSection {\n\t\tconstructor( ...args ) {\n\t\t\tsuper( ...args );\n\n\t\t\t// This is necessary since we're creating a new class which is not identical to the original OuterSection.\n\t\t\t// @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436\n\t\t\tthis.params.type = 'outer';\n\n\t\t\tthis.activeElementBeforeExpanded = null;\n\n\t\t\tconst ownerWindow = this.contentContainer[ 0 ].ownerDocument\n\t\t\t\t.defaultView;\n\n\t\t\t// Handle closing the inserter when pressing the Escape key.\n\t\t\townerWindow.addEventListener(\n\t\t\t\t'keydown',\n\t\t\t\t( event ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.expanded() &&\n\t\t\t\t\t\t( event.keyCode === ESCAPE ||\n\t\t\t\t\t\t\tevent.code === 'Escape' ) &&\n\t\t\t\t\t\t! event.defaultPrevented\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// Use capture mode to make this run before other event listeners.\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tthis.contentContainer.addClass( 'widgets-inserter' );\n\n\t\t\t// Set a flag if the state is being changed from open() or close().\n\t\t\t// Don't propagate the event if it's an internal action to prevent infinite loop.\n\t\t\tthis.isFromInternalAction = false;\n\t\t\tthis.expanded.bind( () => {\n\t\t\t\tif ( ! this.isFromInternalAction ) {\n\t\t\t\t\t// Propagate the event to React to sync the state.\n\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\tthis.expanded()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.isFromInternalAction = false;\n\t\t\t} );\n\t\t}\n\t\topen() {\n\t\t\tif ( ! this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tthis.activeElementBeforeExpanded =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.expand( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// We have to do this in a \"completeCallback\" or else the elements will not yet be visible/tabbable.\n\t\t\t\t\t\t// The first one should be the close button,\n\t\t\t\t\t\t// we want to skip it and choose the second one instead, which is the search box.\n\t\t\t\t\t\tconst searchBox = focus.tabbable.find(\n\t\t\t\t\t\t\tcontentContainer\n\t\t\t\t\t\t)[ 1 ];\n\t\t\t\t\t\tif ( searchBox ) {\n\t\t\t\t\t\t\tsearchBox.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\tclose() {\n\t\t\tif ( this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tconst activeElement =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.collapse( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t// Only do this if the active element which triggers the action is inside the inserter,\n\t\t\t\t\t\t// (the close button for instance). In that case the focus will be lost.\n\t\t\t\t\t\t// Otherwise, we don't hijack the focus when the user is focusing on other elements\n\t\t\t\t\t\t// (like the quick inserter).\n\t\t\t\t\t\tif ( contentContainer.contains( activeElement ) ) {\n\t\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t\tif ( this.activeElementBeforeExpanded ) {\n\t\t\t\t\t\t\t\tthis.activeElementBeforeExpanded.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/customize-widgets/src/controls/inserter-outer-section.js"],"names":["ESCAPE","focus","dispatch","store","customizeWidgetsStore","getInserterOuterSection","wp","customize","window","OuterSection","onChangeExpanded","expanded","args","section","each","params","type","id","collapse","sectionConstructor","outer","InserterOuterSection","constructor","activeElementBeforeExpanded","ownerWindow","contentContainer","ownerDocument","defaultView","addEventListener","event","keyCode","code","defaultPrevented","preventDefault","stopPropagation","setIsInserterOpened","addClass","isFromInternalAction","bind","open","activeElement","expand","completeCallback","searchBox","tabbable","find","close","contains"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { focus } from '@wordpress/dom';\nimport { dispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as customizeWidgetsStore } from '../store';\n\nexport default function getInserterOuterSection() {\n\tconst {\n\t\twp: { customize },\n\t} = window;\n\n\tconst OuterSection = customize.OuterSection;\n\t// Override the OuterSection class to handle multiple outer sections.\n\t// It closes all the other outer sections whenever one is opened.\n\t// The result is that at most one outer section can be opened at the same time.\n\tcustomize.OuterSection = class extends OuterSection {\n\t\tonChangeExpanded( expanded, args ) {\n\t\t\tif ( expanded ) {\n\t\t\t\tcustomize.section.each( ( section ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tsection.params.type === 'outer' &&\n\t\t\t\t\t\tsection.id !== this.id\n\t\t\t\t\t) {\n\t\t\t\t\t\tif ( section.expanded() ) {\n\t\t\t\t\t\t\tsection.collapse();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn super.onChangeExpanded( expanded, args );\n\t\t}\n\t};\n\t// Handle constructor so that \"params.type\" can be correctly pointed to \"outer\".\n\tcustomize.sectionConstructor.outer = customize.OuterSection;\n\n\treturn class InserterOuterSection extends customize.OuterSection {\n\t\tconstructor( ...args ) {\n\t\t\tsuper( ...args );\n\n\t\t\t// This is necessary since we're creating a new class which is not identical to the original OuterSection.\n\t\t\t// @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436\n\t\t\tthis.params.type = 'outer';\n\n\t\t\tthis.activeElementBeforeExpanded = null;\n\n\t\t\tconst ownerWindow =\n\t\t\t\tthis.contentContainer[ 0 ].ownerDocument.defaultView;\n\n\t\t\t// Handle closing the inserter when pressing the Escape key.\n\t\t\townerWindow.addEventListener(\n\t\t\t\t'keydown',\n\t\t\t\t( event ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.expanded() &&\n\t\t\t\t\t\t( event.keyCode === ESCAPE ||\n\t\t\t\t\t\t\tevent.code === 'Escape' ) &&\n\t\t\t\t\t\t! event.defaultPrevented\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// Use capture mode to make this run before other event listeners.\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tthis.contentContainer.addClass( 'widgets-inserter' );\n\n\t\t\t// Set a flag if the state is being changed from open() or close().\n\t\t\t// Don't propagate the event if it's an internal action to prevent infinite loop.\n\t\t\tthis.isFromInternalAction = false;\n\t\t\tthis.expanded.bind( () => {\n\t\t\t\tif ( ! this.isFromInternalAction ) {\n\t\t\t\t\t// Propagate the event to React to sync the state.\n\t\t\t\t\tdispatch( customizeWidgetsStore ).setIsInserterOpened(\n\t\t\t\t\t\tthis.expanded()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.isFromInternalAction = false;\n\t\t\t} );\n\t\t}\n\t\topen() {\n\t\t\tif ( ! this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tthis.activeElementBeforeExpanded =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.expand( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// We have to do this in a \"completeCallback\" or else the elements will not yet be visible/tabbable.\n\t\t\t\t\t\t// The first one should be the close button,\n\t\t\t\t\t\t// we want to skip it and choose the second one instead, which is the search box.\n\t\t\t\t\t\tconst searchBox =\n\t\t\t\t\t\t\tfocus.tabbable.find( contentContainer )[ 1 ];\n\t\t\t\t\t\tif ( searchBox ) {\n\t\t\t\t\t\t\tsearchBox.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t\tclose() {\n\t\t\tif ( this.expanded() ) {\n\t\t\t\tconst contentContainer = this.contentContainer[ 0 ];\n\t\t\t\tconst activeElement =\n\t\t\t\t\tcontentContainer.ownerDocument.activeElement;\n\n\t\t\t\tthis.isFromInternalAction = true;\n\n\t\t\t\tthis.collapse( {\n\t\t\t\t\tcompleteCallback() {\n\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t// Only do this if the active element which triggers the action is inside the inserter,\n\t\t\t\t\t\t// (the close button for instance). In that case the focus will be lost.\n\t\t\t\t\t\t// Otherwise, we don't hijack the focus when the user is focusing on other elements\n\t\t\t\t\t\t// (like the quick inserter).\n\t\t\t\t\t\tif ( contentContainer.contains( activeElement ) ) {\n\t\t\t\t\t\t\t// Return back the focus when closing the inserter.\n\t\t\t\t\t\t\tif ( this.activeElementBeforeExpanded ) {\n\t\t\t\t\t\t\t\tthis.activeElementBeforeExpanded.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t};\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/customize-widgets",
3
- "version": "3.7.0",
3
+ "version": "3.8.0",
4
4
  "description": "Widgets blocks in Customizer Module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -24,25 +24,25 @@
24
24
  "react-native": "src/index",
25
25
  "dependencies": {
26
26
  "@babel/runtime": "^7.16.0",
27
- "@wordpress/block-editor": "^9.2.0",
28
- "@wordpress/block-library": "^7.7.0",
29
- "@wordpress/blocks": "^11.9.0",
30
- "@wordpress/components": "^19.12.0",
31
- "@wordpress/compose": "^5.8.0",
32
- "@wordpress/core-data": "^4.8.0",
33
- "@wordpress/data": "^6.10.0",
34
- "@wordpress/dom": "^3.10.0",
35
- "@wordpress/element": "^4.8.0",
36
- "@wordpress/hooks": "^3.10.0",
37
- "@wordpress/i18n": "^4.10.0",
38
- "@wordpress/icons": "^9.1.0",
39
- "@wordpress/interface": "^4.9.0",
40
- "@wordpress/is-shallow-equal": "^4.10.0",
41
- "@wordpress/keyboard-shortcuts": "^3.8.0",
42
- "@wordpress/keycodes": "^3.10.0",
43
- "@wordpress/media-utils": "^4.1.0",
44
- "@wordpress/preferences": "^2.2.0",
45
- "@wordpress/widgets": "^2.8.0",
27
+ "@wordpress/block-editor": "^9.3.0",
28
+ "@wordpress/block-library": "^7.8.0",
29
+ "@wordpress/blocks": "^11.10.0",
30
+ "@wordpress/components": "^19.13.0",
31
+ "@wordpress/compose": "^5.9.0",
32
+ "@wordpress/core-data": "^4.9.0",
33
+ "@wordpress/data": "^6.11.0",
34
+ "@wordpress/dom": "^3.11.0",
35
+ "@wordpress/element": "^4.9.0",
36
+ "@wordpress/hooks": "^3.11.0",
37
+ "@wordpress/i18n": "^4.11.0",
38
+ "@wordpress/icons": "^9.2.0",
39
+ "@wordpress/interface": "^4.10.0",
40
+ "@wordpress/is-shallow-equal": "^4.11.0",
41
+ "@wordpress/keyboard-shortcuts": "^3.9.0",
42
+ "@wordpress/keycodes": "^3.11.0",
43
+ "@wordpress/media-utils": "^4.2.0",
44
+ "@wordpress/preferences": "^2.3.0",
45
+ "@wordpress/widgets": "^2.9.0",
46
46
  "classnames": "^2.3.1",
47
47
  "lodash": "^4.17.21"
48
48
  },
@@ -53,5 +53,5 @@
53
53
  "publishConfig": {
54
54
  "access": "public"
55
55
  },
56
- "gitHead": "a3e0b62091e8a8bdf5e2518e42d60d7098af48cc"
56
+ "gitHead": "48d5f37dfb52d2e77c8eeb662f9874cf141b8c6b"
57
57
  }
@@ -22,9 +22,8 @@ import { store as blockEditorStore } from '@wordpress/block-editor';
22
22
  * @param {Object} popoverRef The ref object of the popover node container.
23
23
  */
24
24
  export default function useClearSelectedBlock( sidebarControl, popoverRef ) {
25
- const { hasSelectedBlock, hasMultiSelection } = useSelect(
26
- blockEditorStore
27
- );
25
+ const { hasSelectedBlock, hasMultiSelection } =
26
+ useSelect( blockEditorStore );
28
27
  const { clearSelectedBlock } = useDispatch( blockEditorStore );
29
28
 
30
29
  useEffect( () => {
@@ -70,10 +70,10 @@ export default function FocusControl( { api, sidebarControls, children } ) {
70
70
  };
71
71
  }, [ api, focusWidget ] );
72
72
 
73
- const context = useMemo( () => [ focusedWidgetIdRef, focusWidget ], [
74
- focusedWidgetIdRef,
75
- focusWidget,
76
- ] );
73
+ const context = useMemo(
74
+ () => [ focusedWidgetIdRef, focusWidget ],
75
+ [ focusedWidgetIdRef, focusWidget ]
76
+ );
77
77
 
78
78
  return (
79
79
  <FocusControlContext.Provider value={ context }>
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { defaultTo } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -50,10 +45,8 @@ export default function SidebarBlockEditor( {
50
45
  } = useSelect( ( select ) => {
51
46
  const { get } = select( preferencesStore );
52
47
  return {
53
- hasUploadPermissions: defaultTo(
54
- select( coreStore ).canUser( 'create', 'media' ),
55
- true
56
- ),
48
+ hasUploadPermissions:
49
+ select( coreStore ).canUser( 'create', 'media' ) ?? true,
57
50
  isFixedToolbarActive: !! get(
58
51
  'core/customize-widgets',
59
52
  'fixedToolbar'
@@ -128,10 +128,8 @@ export default class SidebarAdapter {
128
128
  }
129
129
 
130
130
  _replaceHistory() {
131
- this.history[
132
- this.historyIndex
133
- ] = this._getWidgetIds().map( ( widgetId ) =>
134
- this.getWidget( widgetId )
131
+ this.history[ this.historyIndex ] = this._getWidgetIds().map(
132
+ ( widgetId ) => this.getWidget( widgetId )
135
133
  );
136
134
  }
137
135
 
@@ -50,8 +50,8 @@ export default function getInserterOuterSection() {
50
50
 
51
51
  this.activeElementBeforeExpanded = null;
52
52
 
53
- const ownerWindow = this.contentContainer[ 0 ].ownerDocument
54
- .defaultView;
53
+ const ownerWindow =
54
+ this.contentContainer[ 0 ].ownerDocument.defaultView;
55
55
 
56
56
  // Handle closing the inserter when pressing the Escape key.
57
57
  ownerWindow.addEventListener(
@@ -102,9 +102,8 @@ export default function getInserterOuterSection() {
102
102
  // We have to do this in a "completeCallback" or else the elements will not yet be visible/tabbable.
103
103
  // The first one should be the close button,
104
104
  // we want to skip it and choose the second one instead, which is the search box.
105
- const searchBox = focus.tabbable.find(
106
- contentContainer
107
- )[ 1 ];
105
+ const searchBox =
106
+ focus.tabbable.find( contentContainer )[ 1 ];
108
107
  if ( searchBox ) {
109
108
  searchBox.focus();
110
109
  }