@wordpress/customize-widgets 4.16.0 → 4.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-appender/index.js +6 -8
  3. package/build/components/block-appender/index.js.map +1 -1
  4. package/build/components/block-inspector-button/index.js +3 -9
  5. package/build/components/block-inspector-button/index.js.map +1 -1
  6. package/build/components/customize-widgets/index.js +4 -12
  7. package/build/components/customize-widgets/index.js.map +1 -1
  8. package/build/components/customize-widgets/use-clear-selected-block.js +12 -15
  9. package/build/components/customize-widgets/use-clear-selected-block.js.map +1 -1
  10. package/build/components/error-boundary/index.js +1 -14
  11. package/build/components/error-boundary/index.js.map +1 -1
  12. package/build/components/focus-control/index.js +1 -12
  13. package/build/components/focus-control/index.js.map +1 -1
  14. package/build/components/focus-control/use-blocks-focus-control.js +3 -9
  15. package/build/components/focus-control/use-blocks-focus-control.js.map +1 -1
  16. package/build/components/header/index.js +7 -18
  17. package/build/components/header/index.js.map +1 -1
  18. package/build/components/inserter/index.js +1 -10
  19. package/build/components/inserter/index.js.map +1 -1
  20. package/build/components/inserter/use-inserter.js +1 -6
  21. package/build/components/inserter/use-inserter.js.map +1 -1
  22. package/build/components/keyboard-shortcut-help-modal/config.js +1 -2
  23. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  24. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +1 -9
  25. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  26. package/build/components/keyboard-shortcut-help-modal/index.js +4 -20
  27. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  28. package/build/components/keyboard-shortcut-help-modal/shortcut.js +1 -6
  29. package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  30. package/build/components/keyboard-shortcuts/index.js +1 -16
  31. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  32. package/build/components/more-menu/index.js +2 -15
  33. package/build/components/more-menu/index.js.map +1 -1
  34. package/build/components/sidebar-block-editor/index.js +5 -22
  35. package/build/components/sidebar-block-editor/index.js.map +1 -1
  36. package/build/components/sidebar-block-editor/sidebar-adapter.js +13 -75
  37. package/build/components/sidebar-block-editor/sidebar-adapter.js.map +1 -1
  38. package/build/components/sidebar-block-editor/sidebar-editor-provider.js +1 -8
  39. package/build/components/sidebar-block-editor/sidebar-editor-provider.js.map +1 -1
  40. package/build/components/sidebar-block-editor/use-sidebar-block-editor.js +14 -24
  41. package/build/components/sidebar-block-editor/use-sidebar-block-editor.js.map +1 -1
  42. package/build/components/sidebar-controls/index.js +1 -5
  43. package/build/components/sidebar-controls/index.js.map +1 -1
  44. package/build/components/welcome-guide/index.js +1 -6
  45. package/build/components/welcome-guide/index.js.map +1 -1
  46. package/build/controls/inserter-outer-section.js +15 -24
  47. package/build/controls/inserter-outer-section.js.map +1 -1
  48. package/build/controls/inspector-section.js +0 -12
  49. package/build/controls/inspector-section.js.map +1 -1
  50. package/build/controls/sidebar-control.js +1 -12
  51. package/build/controls/sidebar-control.js.map +1 -1
  52. package/build/controls/sidebar-section.js +3 -14
  53. package/build/controls/sidebar-section.js.map +1 -1
  54. package/build/filters/index.js +0 -2
  55. package/build/filters/index.js.map +1 -1
  56. package/build/filters/move-to-sidebar.js +7 -17
  57. package/build/filters/move-to-sidebar.js.map +1 -1
  58. package/build/filters/replace-media-upload.js +1 -3
  59. package/build/filters/replace-media-upload.js.map +1 -1
  60. package/build/filters/wide-widget-display.js +3 -5
  61. package/build/filters/wide-widget-display.js.map +1 -1
  62. package/build/index.js +5 -20
  63. package/build/index.js.map +1 -1
  64. package/build/lock-unlock.js +1 -2
  65. package/build/lock-unlock.js.map +1 -1
  66. package/build/store/actions.js +0 -1
  67. package/build/store/actions.js.map +1 -1
  68. package/build/store/constants.js +0 -1
  69. package/build/store/constants.js.map +1 -1
  70. package/build/store/index.js +1 -10
  71. package/build/store/index.js.map +1 -1
  72. package/build/store/reducer.js +0 -5
  73. package/build/store/reducer.js.map +1 -1
  74. package/build/store/selectors.js +9 -10
  75. package/build/store/selectors.js.map +1 -1
  76. package/build/utils.js +8 -18
  77. package/build/utils.js.map +1 -1
  78. package/build-module/components/block-appender/index.js +5 -5
  79. package/build-module/components/block-appender/index.js.map +1 -1
  80. package/build-module/components/block-inspector-button/index.js +2 -5
  81. package/build-module/components/block-inspector-button/index.js.map +1 -1
  82. package/build-module/components/customize-widgets/index.js +4 -4
  83. package/build-module/components/customize-widgets/index.js.map +1 -1
  84. package/build-module/components/customize-widgets/use-clear-selected-block.js +13 -12
  85. package/build-module/components/customize-widgets/use-clear-selected-block.js.map +1 -1
  86. package/build-module/components/error-boundary/index.js +0 -8
  87. package/build-module/components/error-boundary/index.js.map +1 -1
  88. package/build-module/components/focus-control/index.js +1 -8
  89. package/build-module/components/focus-control/index.js.map +1 -1
  90. package/build-module/components/focus-control/use-blocks-focus-control.js +3 -4
  91. package/build-module/components/focus-control/use-blocks-focus-control.js.map +1 -1
  92. package/build-module/components/header/index.js +8 -11
  93. package/build-module/components/header/index.js.map +1 -1
  94. package/build-module/components/inserter/index.js +1 -4
  95. package/build-module/components/inserter/index.js.map +1 -1
  96. package/build-module/components/inserter/use-inserter.js +1 -3
  97. package/build-module/components/inserter/use-inserter.js.map +1 -1
  98. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  99. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +1 -6
  100. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  101. package/build-module/components/keyboard-shortcut-help-modal/index.js +5 -13
  102. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  103. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +0 -5
  104. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  105. package/build-module/components/keyboard-shortcuts/index.js +0 -9
  106. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  107. package/build-module/components/more-menu/index.js +2 -6
  108. package/build-module/components/more-menu/index.js.map +1 -1
  109. package/build-module/components/sidebar-block-editor/index.js +5 -9
  110. package/build-module/components/sidebar-block-editor/index.js.map +1 -1
  111. package/build-module/components/sidebar-block-editor/sidebar-adapter.js +12 -72
  112. package/build-module/components/sidebar-block-editor/sidebar-adapter.js.map +1 -1
  113. package/build-module/components/sidebar-block-editor/sidebar-editor-provider.js +1 -2
  114. package/build-module/components/sidebar-block-editor/sidebar-editor-provider.js.map +1 -1
  115. package/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js +15 -20
  116. package/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js.map +1 -1
  117. package/build-module/components/sidebar-controls/index.js +0 -1
  118. package/build-module/components/sidebar-controls/index.js.map +1 -1
  119. package/build-module/components/welcome-guide/index.js +0 -1
  120. package/build-module/components/welcome-guide/index.js.map +1 -1
  121. package/build-module/controls/inserter-outer-section.js +15 -20
  122. package/build-module/controls/inserter-outer-section.js.map +1 -1
  123. package/build-module/controls/inspector-section.js +0 -11
  124. package/build-module/controls/inspector-section.js.map +1 -1
  125. package/build-module/controls/sidebar-control.js +1 -8
  126. package/build-module/controls/sidebar-control.js.map +1 -1
  127. package/build-module/controls/sidebar-section.js +3 -12
  128. package/build-module/controls/sidebar-section.js.map +1 -1
  129. package/build-module/filters/index.js.map +1 -1
  130. package/build-module/filters/move-to-sidebar.js +7 -10
  131. package/build-module/filters/move-to-sidebar.js.map +1 -1
  132. package/build-module/filters/replace-media-upload.js +0 -2
  133. package/build-module/filters/replace-media-upload.js.map +1 -1
  134. package/build-module/filters/wide-widget-display.js +2 -3
  135. package/build-module/filters/wide-widget-display.js.map +1 -1
  136. package/build-module/index.js +5 -10
  137. package/build-module/index.js.map +1 -1
  138. package/build-module/lock-unlock.js.map +1 -1
  139. package/build-module/store/actions.js.map +1 -1
  140. package/build-module/store/constants.js.map +1 -1
  141. package/build-module/store/index.js +3 -3
  142. package/build-module/store/index.js.map +1 -1
  143. package/build-module/store/reducer.js +1 -3
  144. package/build-module/store/reducer.js.map +1 -1
  145. package/build-module/store/selectors.js +10 -9
  146. package/build-module/store/selectors.js.map +1 -1
  147. package/build-module/utils.js +9 -14
  148. package/build-module/utils.js.map +1 -1
  149. package/package.json +22 -22
  150. package/src/store/selectors.js +10 -2
@@ -1 +1 @@
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
+ {"version":3,"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","_select$canUser","get","canUser","settings","mediaUploadBlockEditor","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalSetIsInserterOpened","mediaUpload","hasFixedToolbar","__unstableHasCustomAppender","createElement","Fragment","Register","undo","redo","save","styles","defaultEditorStyles","className","renderAppender","onSubmit","event","preventDefault","contentContainer","onClose","closeMenu"],"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/index.js"],"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"],"mappings":"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"}
@@ -5,35 +5,31 @@ import { settingIdToWidgetId } from '../../utils';
5
5
  const {
6
6
  wp
7
7
  } = window;
8
-
9
8
  function parseWidgetId(widgetId) {
10
9
  const matches = widgetId.match(/^(.+)-(\d+)$/);
11
-
12
10
  if (matches) {
13
11
  return {
14
12
  idBase: matches[1],
15
13
  number: parseInt(matches[2], 10)
16
14
  };
17
- } // Likely an old single widget.
18
-
15
+ }
19
16
 
17
+ // Likely an old single widget.
20
18
  return {
21
19
  idBase: widgetId
22
20
  };
23
21
  }
24
-
25
22
  function widgetIdToSettingId(widgetId) {
26
23
  const {
27
24
  idBase,
28
25
  number
29
26
  } = parseWidgetId(widgetId);
30
-
31
27
  if (number) {
32
28
  return `widget_${idBase}[${number}]`;
33
29
  }
34
-
35
30
  return `widget_${idBase}`;
36
31
  }
32
+
37
33
  /**
38
34
  * This is a custom debounce function to call different callbacks depending on
39
35
  * whether it's the _leading_ call or not.
@@ -43,12 +39,9 @@ function widgetIdToSettingId(widgetId) {
43
39
  * @param {number} timeout The debounced time in milliseconds.
44
40
  * @return {Function} The debounced function.
45
41
  */
46
-
47
-
48
42
  function debounce(leading, callback, timeout) {
49
43
  let isLeading = false;
50
44
  let timerID;
51
-
52
45
  function debounced(...args) {
53
46
  const result = (isLeading ? callback : leading).apply(this, args);
54
47
  isLeading = true;
@@ -58,15 +51,12 @@ function debounce(leading, callback, timeout) {
58
51
  }, timeout);
59
52
  return result;
60
53
  }
61
-
62
54
  debounced.cancel = () => {
63
55
  isLeading = false;
64
56
  clearTimeout(timerID);
65
57
  };
66
-
67
58
  return debounced;
68
59
  }
69
-
70
60
  export default class SidebarAdapter {
71
61
  constructor(setting, api) {
72
62
  this.setting = setting;
@@ -76,8 +66,8 @@ export default class SidebarAdapter {
76
66
  this.subscribers = new Set();
77
67
  this.history = [this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
78
68
  this.historyIndex = 0;
79
- this.historySubscribers = new Set(); // Debounce the input for 1 second.
80
-
69
+ this.historySubscribers = new Set();
70
+ // Debounce the input for 1 second.
81
71
  this._debounceSetHistory = debounce(this._pushHistory, this._replaceHistory, 1000);
82
72
  this.setting.bind(this._handleSettingChange.bind(this));
83
73
  this.api.bind('change', this._handleAllSettingsChange.bind(this));
@@ -85,83 +75,63 @@ export default class SidebarAdapter {
85
75
  this.redo = this.redo.bind(this);
86
76
  this.save = this.save.bind(this);
87
77
  }
88
-
89
78
  subscribe(callback) {
90
79
  this.subscribers.add(callback);
91
80
  return () => {
92
81
  this.subscribers.delete(callback);
93
82
  };
94
83
  }
95
-
96
84
  getWidgets() {
97
85
  return this.history[this.historyIndex];
98
86
  }
99
-
100
87
  _emit(...args) {
101
88
  for (const callback of this.subscribers) {
102
89
  callback(...args);
103
90
  }
104
91
  }
105
-
106
92
  _getWidgetIds() {
107
93
  return this.setting.get();
108
94
  }
109
-
110
95
  _pushHistory() {
111
96
  this.history = [...this.history.slice(0, this.historyIndex + 1), this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
112
97
  this.historyIndex += 1;
113
98
  this.historySubscribers.forEach(listener => listener());
114
99
  }
115
-
116
100
  _replaceHistory() {
117
101
  this.history[this.historyIndex] = this._getWidgetIds().map(widgetId => this.getWidget(widgetId));
118
102
  }
119
-
120
103
  _handleSettingChange() {
121
104
  if (this.locked) {
122
105
  return;
123
106
  }
124
-
125
107
  const prevWidgets = this.getWidgets();
126
-
127
108
  this._pushHistory();
128
-
129
109
  this._emit(prevWidgets, this.getWidgets());
130
110
  }
131
-
132
111
  _handleAllSettingsChange(setting) {
133
112
  if (this.locked) {
134
113
  return;
135
114
  }
136
-
137
115
  if (!setting.id.startsWith('widget_')) {
138
116
  return;
139
117
  }
140
-
141
118
  const widgetId = settingIdToWidgetId(setting.id);
142
-
143
119
  if (!this.setting.get().includes(widgetId)) {
144
120
  return;
145
121
  }
146
-
147
122
  const prevWidgets = this.getWidgets();
148
-
149
123
  this._pushHistory();
150
-
151
124
  this._emit(prevWidgets, this.getWidgets());
152
125
  }
153
-
154
126
  _createWidget(widget) {
155
127
  const widgetModel = wp.customize.Widgets.availableWidgets.findWhere({
156
128
  id_base: widget.idBase
157
129
  });
158
130
  let number = widget.number;
159
-
160
131
  if (widgetModel.get('is_multi') && !number) {
161
132
  widgetModel.set('multi_number', widgetModel.get('multi_number') + 1);
162
133
  number = widgetModel.get('multi_number');
163
134
  }
164
-
165
135
  const settingId = number ? `widget_${widget.idBase}[${number}]` : `widget_${widget.idBase}`;
166
136
  const settingArgs = {
167
137
  transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get('id_base')] ? 'postMessage' : 'refresh',
@@ -172,61 +142,51 @@ export default class SidebarAdapter {
172
142
  const widgetId = settingIdToWidgetId(settingId);
173
143
  return widgetId;
174
144
  }
175
-
176
145
  _removeWidget(widget) {
177
146
  const settingId = widgetIdToSettingId(widget.id);
178
147
  const setting = this.api(settingId);
179
-
180
148
  if (setting) {
181
149
  const instance = setting.get();
182
150
  this.widgetsCache.delete(instance);
183
151
  }
184
-
185
152
  this.api.remove(settingId);
186
153
  }
187
-
188
154
  _updateWidget(widget) {
189
- const prevWidget = this.getWidget(widget.id); // Bail out update if nothing changed.
155
+ const prevWidget = this.getWidget(widget.id);
190
156
 
157
+ // Bail out update if nothing changed.
191
158
  if (prevWidget === widget) {
192
159
  return widget.id;
193
- } // Update existing setting if only the widget's instance changed.
194
-
160
+ }
195
161
 
162
+ // Update existing setting if only the widget's instance changed.
196
163
  if (prevWidget.idBase && widget.idBase && prevWidget.idBase === widget.idBase) {
197
164
  const settingId = widgetIdToSettingId(widget.id);
198
165
  this.api(settingId).set(widget.instance);
199
166
  return widget.id;
200
- } // Otherwise delete and re-create.
201
-
167
+ }
202
168
 
169
+ // Otherwise delete and re-create.
203
170
  this._removeWidget(widget);
204
-
205
171
  return this._createWidget(widget);
206
172
  }
207
-
208
173
  getWidget(widgetId) {
209
174
  if (!widgetId) {
210
175
  return null;
211
176
  }
212
-
213
177
  const {
214
178
  idBase,
215
179
  number
216
180
  } = parseWidgetId(widgetId);
217
181
  const settingId = widgetIdToSettingId(widgetId);
218
182
  const setting = this.api(settingId);
219
-
220
183
  if (!setting) {
221
184
  return null;
222
185
  }
223
-
224
186
  const instance = setting.get();
225
-
226
187
  if (this.widgetsCache.has(instance)) {
227
188
  return this.widgetsCache.get(instance);
228
189
  }
229
-
230
190
  const widget = {
231
191
  id: widgetId,
232
192
  idBase,
@@ -236,7 +196,6 @@ export default class SidebarAdapter {
236
196
  this.widgetsCache.set(instance, widget);
237
197
  return widget;
238
198
  }
239
-
240
199
  _updateWidgets(nextWidgets) {
241
200
  this.locked = true;
242
201
  const addedWidgetIds = [];
@@ -245,9 +204,7 @@ export default class SidebarAdapter {
245
204
  addedWidgetIds.push(null);
246
205
  return this._updateWidget(nextWidget);
247
206
  }
248
-
249
207
  const widgetId = this._createWidget(nextWidget);
250
-
251
208
  addedWidgetIds.push(widgetId);
252
209
  return widgetId;
253
210
  });
@@ -257,67 +214,50 @@ export default class SidebarAdapter {
257
214
  this.locked = false;
258
215
  return addedWidgetIds;
259
216
  }
260
-
261
217
  setWidgets(nextWidgets) {
262
218
  const addedWidgetIds = this._updateWidgets(nextWidgets);
263
-
264
219
  this._debounceSetHistory();
265
-
266
220
  return addedWidgetIds;
267
221
  }
222
+
268
223
  /**
269
224
  * Undo/Redo related features
270
225
  */
271
-
272
-
273
226
  hasUndo() {
274
227
  return this.historyIndex > 0;
275
228
  }
276
-
277
229
  hasRedo() {
278
230
  return this.historyIndex < this.history.length - 1;
279
231
  }
280
-
281
232
  _seek(historyIndex) {
282
233
  const currentWidgets = this.getWidgets();
283
234
  this.historyIndex = historyIndex;
284
235
  const widgets = this.history[this.historyIndex];
285
-
286
236
  this._updateWidgets(widgets);
287
-
288
237
  this._emit(currentWidgets, this.getWidgets());
289
-
290
238
  this.historySubscribers.forEach(listener => listener());
291
-
292
239
  this._debounceSetHistory.cancel();
293
240
  }
294
-
295
241
  undo() {
296
242
  if (!this.hasUndo()) {
297
243
  return;
298
244
  }
299
-
300
245
  this._seek(this.historyIndex - 1);
301
246
  }
302
-
303
247
  redo() {
304
248
  if (!this.hasRedo()) {
305
249
  return;
306
250
  }
307
-
308
251
  this._seek(this.historyIndex + 1);
309
252
  }
310
-
311
253
  subscribeHistory(listener) {
312
254
  this.historySubscribers.add(listener);
313
255
  return () => {
314
256
  this.historySubscribers.delete(listener);
315
257
  };
316
258
  }
317
-
318
259
  save() {
319
260
  this.api.previewer.save();
320
261
  }
321
-
322
262
  }
323
263
  //# sourceMappingURL=sidebar-adapter.js.map
@@ -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[ 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
+ {"version":3,"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"],"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-adapter.js"],"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"],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  import { createElement } from "@wordpress/element";
2
-
3
2
  /**
4
3
  * WordPress dependencies
5
4
  */
6
5
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
6
+
7
7
  /**
8
8
  * Internal dependencies
9
9
  */
10
-
11
10
  import useSidebarBlockEditor from './use-sidebar-block-editor';
12
11
  import useBlocksFocusControl from '../focus-control/use-blocks-focus-control';
13
12
  import { unlock } from '../../lock-unlock';
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-editor-provider.js"],"names":["privateApis","blockEditorPrivateApis","useSidebarBlockEditor","useBlocksFocusControl","unlock","ExperimentalBlockEditorProvider","SidebarEditorProvider","sidebar","settings","children","blocks","onInput","onChange"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,sBAAxB,QAAsD,yBAAtD;AAEA;AACA;AACA;;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,OAAOC,qBAAP,MAAkC,2CAAlC;AAEA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAsCD,MAAM,CAAEH,sBAAF,CAAlD;AAEA,eAAe,SAASK,qBAAT,CAAgC;AAC9CC,EAAAA,OAD8C;AAE9CC,EAAAA,QAF8C;AAG9CC,EAAAA;AAH8C,CAAhC,EAIX;AACH,QAAM,CAAEC,MAAF,EAAUC,OAAV,EAAmBC,QAAnB,IAAgCV,qBAAqB,CAAEK,OAAF,CAA3D;AAEAJ,EAAAA,qBAAqB,CAAEO,MAAF,CAArB;AAEA,SACC,cAAC,+BAAD;AACC,IAAA,KAAK,EAAGA,MADT;AAEC,IAAA,OAAO,EAAGC,OAFX;AAGC,IAAA,QAAQ,EAAGC,QAHZ;AAIC,IAAA,QAAQ,EAAGJ,QAJZ;AAKC,IAAA,cAAc,EAAG;AALlB,KAOGC,QAPH,CADD;AAWA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useSidebarBlockEditor from './use-sidebar-block-editor';\nimport useBlocksFocusControl from '../focus-control/use-blocks-focus-control';\n\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nexport default function SidebarEditorProvider( {\n\tsidebar,\n\tsettings,\n\tchildren,\n} ) {\n\tconst [ blocks, onInput, onChange ] = useSidebarBlockEditor( sidebar );\n\n\tuseBlocksFocusControl( blocks );\n\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ blocks }\n\t\t\tonInput={ onInput }\n\t\t\tonChange={ onChange }\n\t\t\tsettings={ settings }\n\t\t\tuseSubRegistry={ false }\n\t\t>\n\t\t\t{ children }\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"]}
1
+ {"version":3,"names":["privateApis","blockEditorPrivateApis","useSidebarBlockEditor","useBlocksFocusControl","unlock","ExperimentalBlockEditorProvider","SidebarEditorProvider","sidebar","settings","children","blocks","onInput","onChange","createElement","value","useSubRegistry"],"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-editor-provider.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useSidebarBlockEditor from './use-sidebar-block-editor';\nimport useBlocksFocusControl from '../focus-control/use-blocks-focus-control';\n\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nexport default function SidebarEditorProvider( {\n\tsidebar,\n\tsettings,\n\tchildren,\n} ) {\n\tconst [ blocks, onInput, onChange ] = useSidebarBlockEditor( sidebar );\n\n\tuseBlocksFocusControl( blocks );\n\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ blocks }\n\t\t\tonInput={ onInput }\n\t\t\tonChange={ onChange }\n\t\t\tsettings={ settings }\n\t\t\tuseSubRegistry={ false }\n\t\t>\n\t\t\t{ children }\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,sBAAsB,QAAQ,yBAAyB;;AAE/E;AACA;AACA;AACA,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,qBAAqB,MAAM,2CAA2C;AAE7E,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAgC,CAAC,GAAGD,MAAM,CAAEH,sBAAuB,CAAC;AAE5E,eAAe,SAASK,qBAAqBA,CAAE;EAC9CC,OAAO;EACPC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,MAAM,EAAEC,OAAO,EAAEC,QAAQ,CAAE,GAAGV,qBAAqB,CAAEK,OAAQ,CAAC;EAEtEJ,qBAAqB,CAAEO,MAAO,CAAC;EAE/B,OACCG,aAAA,CAACR,+BAA+B;IAC/BS,KAAK,EAAGJ,MAAQ;IAChBC,OAAO,EAAGA,OAAS;IACnBC,QAAQ,EAAGA,QAAU;IACrBJ,QAAQ,EAAGA,QAAU;IACrBO,cAAc,EAAG;EAAO,GAEtBN,QAC8B,CAAC;AAEpC"}
@@ -2,23 +2,21 @@
2
2
  * External dependencies
3
3
  */
4
4
  import fastDeepEqual from 'fast-deep-equal/es6';
5
+
5
6
  /**
6
7
  * WordPress dependencies
7
8
  */
8
-
9
9
  import { useState, useEffect, useCallback } from '@wordpress/element';
10
10
  import isShallowEqual from '@wordpress/is-shallow-equal';
11
11
  import { getWidgetIdFromBlock, addWidgetIdToBlock } from '@wordpress/widgets';
12
+
12
13
  /**
13
14
  * Internal dependencies
14
15
  */
15
-
16
16
  import { blockToWidget, widgetToBlock } from '../../utils';
17
-
18
17
  function widgetsToBlocks(widgets) {
19
18
  return widgets.map(widget => widgetToBlock(widget));
20
19
  }
21
-
22
20
  export default function useSidebarBlockEditor(sidebar) {
23
21
  const [blocks, setBlocks] = useState(() => widgetsToBlocks(sidebar.getWidgets()));
24
22
  useEffect(() => {
@@ -27,19 +25,19 @@ export default function useSidebarBlockEditor(sidebar) {
27
25
  const prevWidgetsMap = new Map(prevWidgets.map(widget => [widget.id, widget]));
28
26
  const prevBlocksMap = new Map(prevBlocks.map(block => [getWidgetIdFromBlock(block), block]));
29
27
  const nextBlocks = nextWidgets.map(nextWidget => {
30
- const prevWidget = prevWidgetsMap.get(nextWidget.id); // Bail out updates.
28
+ const prevWidget = prevWidgetsMap.get(nextWidget.id);
31
29
 
30
+ // Bail out updates.
32
31
  if (prevWidget && prevWidget === nextWidget) {
33
32
  return prevBlocksMap.get(nextWidget.id);
34
33
  }
35
-
36
34
  return widgetToBlock(nextWidget);
37
- }); // Bail out updates.
35
+ });
38
36
 
37
+ // Bail out updates.
39
38
  if (isShallowEqual(prevBlocks, nextBlocks)) {
40
39
  return prevBlocks;
41
40
  }
42
-
43
41
  return nextBlocks;
44
42
  });
45
43
  });
@@ -49,45 +47,42 @@ export default function useSidebarBlockEditor(sidebar) {
49
47
  if (isShallowEqual(prevBlocks, nextBlocks)) {
50
48
  return prevBlocks;
51
49
  }
52
-
53
50
  const prevBlocksMap = new Map(prevBlocks.map(block => [getWidgetIdFromBlock(block), block]));
54
51
  const nextWidgets = nextBlocks.map(nextBlock => {
55
- const widgetId = getWidgetIdFromBlock(nextBlock); // Update existing widgets.
52
+ const widgetId = getWidgetIdFromBlock(nextBlock);
56
53
 
54
+ // Update existing widgets.
57
55
  if (widgetId && prevBlocksMap.has(widgetId)) {
58
56
  const prevBlock = prevBlocksMap.get(widgetId);
59
- const prevWidget = sidebar.getWidget(widgetId); // Bail out updates by returning the previous widgets.
60
- // Deep equality is necessary until the block editor's internals changes.
57
+ const prevWidget = sidebar.getWidget(widgetId);
61
58
 
59
+ // Bail out updates by returning the previous widgets.
60
+ // Deep equality is necessary until the block editor's internals changes.
62
61
  if (fastDeepEqual(nextBlock, prevBlock) && prevWidget) {
63
62
  return prevWidget;
64
63
  }
65
-
66
64
  return blockToWidget(nextBlock, prevWidget);
67
- } // Add a new widget.
68
-
65
+ }
69
66
 
67
+ // Add a new widget.
70
68
  return blockToWidget(nextBlock);
71
- }); // Bail out updates if the updated widgets are the same.
69
+ });
72
70
 
71
+ // Bail out updates if the updated widgets are the same.
73
72
  if (isShallowEqual(sidebar.getWidgets(), nextWidgets)) {
74
73
  return prevBlocks;
75
74
  }
76
-
77
75
  const addedWidgetIds = sidebar.setWidgets(nextWidgets);
78
76
  return nextBlocks.reduce((updatedNextBlocks, nextBlock, index) => {
79
77
  const addedWidgetId = addedWidgetIds[index];
80
-
81
78
  if (addedWidgetId !== null) {
82
79
  // Only create a new instance if necessary to prevent
83
80
  // the whole editor from re-rendering on every edit.
84
81
  if (updatedNextBlocks === nextBlocks) {
85
82
  updatedNextBlocks = nextBlocks.slice();
86
83
  }
87
-
88
84
  updatedNextBlocks[index] = addWidgetIdToBlock(nextBlock, addedWidgetId);
89
85
  }
90
-
91
86
  return updatedNextBlocks;
92
87
  }, nextBlocks);
93
88
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/use-sidebar-block-editor.js"],"names":["fastDeepEqual","useState","useEffect","useCallback","isShallowEqual","getWidgetIdFromBlock","addWidgetIdToBlock","blockToWidget","widgetToBlock","widgetsToBlocks","widgets","map","widget","useSidebarBlockEditor","sidebar","blocks","setBlocks","getWidgets","subscribe","prevWidgets","nextWidgets","prevBlocks","prevWidgetsMap","Map","id","prevBlocksMap","block","nextBlocks","nextWidget","prevWidget","get","onChangeBlocks","nextBlock","widgetId","has","prevBlock","getWidget","addedWidgetIds","setWidgets","reduce","updatedNextBlocks","index","addedWidgetId","slice"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { getWidgetIdFromBlock, addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { blockToWidget, widgetToBlock } from '../../utils';\n\nfunction widgetsToBlocks( widgets ) {\n\treturn widgets.map( ( widget ) => widgetToBlock( widget ) );\n}\n\nexport default function useSidebarBlockEditor( sidebar ) {\n\tconst [ blocks, setBlocks ] = useState( () =>\n\t\twidgetsToBlocks( sidebar.getWidgets() )\n\t);\n\n\tuseEffect( () => {\n\t\treturn sidebar.subscribe( ( prevWidgets, nextWidgets ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tconst prevWidgetsMap = new Map(\n\t\t\t\t\tprevWidgets.map( ( widget ) => [ widget.id, widget ] )\n\t\t\t\t);\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextBlocks = nextWidgets.map( ( nextWidget ) => {\n\t\t\t\t\tconst prevWidget = prevWidgetsMap.get( nextWidget.id );\n\n\t\t\t\t\t// Bail out updates.\n\t\t\t\t\tif ( prevWidget && prevWidget === nextWidget ) {\n\t\t\t\t\t\treturn prevBlocksMap.get( nextWidget.id );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn widgetToBlock( nextWidget );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates.\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\treturn nextBlocks;\n\t\t\t} );\n\t\t} );\n\t}, [ sidebar ] );\n\n\tconst onChangeBlocks = useCallback(\n\t\t( nextBlocks ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextWidgets = nextBlocks.map( ( nextBlock ) => {\n\t\t\t\t\tconst widgetId = getWidgetIdFromBlock( nextBlock );\n\n\t\t\t\t\t// Update existing widgets.\n\t\t\t\t\tif ( widgetId && prevBlocksMap.has( widgetId ) ) {\n\t\t\t\t\t\tconst prevBlock = prevBlocksMap.get( widgetId );\n\t\t\t\t\t\tconst prevWidget = sidebar.getWidget( widgetId );\n\n\t\t\t\t\t\t// Bail out updates by returning the previous widgets.\n\t\t\t\t\t\t// Deep equality is necessary until the block editor's internals changes.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tfastDeepEqual( nextBlock, prevBlock ) &&\n\t\t\t\t\t\t\tprevWidget\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn prevWidget;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn blockToWidget( nextBlock, prevWidget );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add a new widget.\n\t\t\t\t\treturn blockToWidget( nextBlock );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates if the updated widgets are the same.\n\t\t\t\tif ( isShallowEqual( sidebar.getWidgets(), nextWidgets ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst addedWidgetIds = sidebar.setWidgets( nextWidgets );\n\n\t\t\t\treturn nextBlocks.reduce(\n\t\t\t\t\t( updatedNextBlocks, nextBlock, index ) => {\n\t\t\t\t\t\tconst addedWidgetId = addedWidgetIds[ index ];\n\n\t\t\t\t\t\tif ( addedWidgetId !== null ) {\n\t\t\t\t\t\t\t// Only create a new instance if necessary to prevent\n\t\t\t\t\t\t\t// the whole editor from re-rendering on every edit.\n\t\t\t\t\t\t\tif ( updatedNextBlocks === nextBlocks ) {\n\t\t\t\t\t\t\t\tupdatedNextBlocks = nextBlocks.slice();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tupdatedNextBlocks[ index ] = addWidgetIdToBlock(\n\t\t\t\t\t\t\t\tnextBlock,\n\t\t\t\t\t\t\t\taddedWidgetId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn updatedNextBlocks;\n\t\t\t\t\t},\n\t\t\t\t\tnextBlocks\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ sidebar ]\n\t);\n\n\treturn [ blocks, onChangeBlocks, onChangeBlocks ];\n}\n"]}
1
+ {"version":3,"names":["fastDeepEqual","useState","useEffect","useCallback","isShallowEqual","getWidgetIdFromBlock","addWidgetIdToBlock","blockToWidget","widgetToBlock","widgetsToBlocks","widgets","map","widget","useSidebarBlockEditor","sidebar","blocks","setBlocks","getWidgets","subscribe","prevWidgets","nextWidgets","prevBlocks","prevWidgetsMap","Map","id","prevBlocksMap","block","nextBlocks","nextWidget","prevWidget","get","onChangeBlocks","nextBlock","widgetId","has","prevBlock","getWidget","addedWidgetIds","setWidgets","reduce","updatedNextBlocks","index","addedWidgetId","slice"],"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/use-sidebar-block-editor.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { getWidgetIdFromBlock, addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { blockToWidget, widgetToBlock } from '../../utils';\n\nfunction widgetsToBlocks( widgets ) {\n\treturn widgets.map( ( widget ) => widgetToBlock( widget ) );\n}\n\nexport default function useSidebarBlockEditor( sidebar ) {\n\tconst [ blocks, setBlocks ] = useState( () =>\n\t\twidgetsToBlocks( sidebar.getWidgets() )\n\t);\n\n\tuseEffect( () => {\n\t\treturn sidebar.subscribe( ( prevWidgets, nextWidgets ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tconst prevWidgetsMap = new Map(\n\t\t\t\t\tprevWidgets.map( ( widget ) => [ widget.id, widget ] )\n\t\t\t\t);\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextBlocks = nextWidgets.map( ( nextWidget ) => {\n\t\t\t\t\tconst prevWidget = prevWidgetsMap.get( nextWidget.id );\n\n\t\t\t\t\t// Bail out updates.\n\t\t\t\t\tif ( prevWidget && prevWidget === nextWidget ) {\n\t\t\t\t\t\treturn prevBlocksMap.get( nextWidget.id );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn widgetToBlock( nextWidget );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates.\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\treturn nextBlocks;\n\t\t\t} );\n\t\t} );\n\t}, [ sidebar ] );\n\n\tconst onChangeBlocks = useCallback(\n\t\t( nextBlocks ) => {\n\t\t\tsetBlocks( ( prevBlocks ) => {\n\t\t\t\tif ( isShallowEqual( prevBlocks, nextBlocks ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst prevBlocksMap = new Map(\n\t\t\t\t\tprevBlocks.map( ( block ) => [\n\t\t\t\t\t\tgetWidgetIdFromBlock( block ),\n\t\t\t\t\t\tblock,\n\t\t\t\t\t] )\n\t\t\t\t);\n\n\t\t\t\tconst nextWidgets = nextBlocks.map( ( nextBlock ) => {\n\t\t\t\t\tconst widgetId = getWidgetIdFromBlock( nextBlock );\n\n\t\t\t\t\t// Update existing widgets.\n\t\t\t\t\tif ( widgetId && prevBlocksMap.has( widgetId ) ) {\n\t\t\t\t\t\tconst prevBlock = prevBlocksMap.get( widgetId );\n\t\t\t\t\t\tconst prevWidget = sidebar.getWidget( widgetId );\n\n\t\t\t\t\t\t// Bail out updates by returning the previous widgets.\n\t\t\t\t\t\t// Deep equality is necessary until the block editor's internals changes.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tfastDeepEqual( nextBlock, prevBlock ) &&\n\t\t\t\t\t\t\tprevWidget\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn prevWidget;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn blockToWidget( nextBlock, prevWidget );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add a new widget.\n\t\t\t\t\treturn blockToWidget( nextBlock );\n\t\t\t\t} );\n\n\t\t\t\t// Bail out updates if the updated widgets are the same.\n\t\t\t\tif ( isShallowEqual( sidebar.getWidgets(), nextWidgets ) ) {\n\t\t\t\t\treturn prevBlocks;\n\t\t\t\t}\n\n\t\t\t\tconst addedWidgetIds = sidebar.setWidgets( nextWidgets );\n\n\t\t\t\treturn nextBlocks.reduce(\n\t\t\t\t\t( updatedNextBlocks, nextBlock, index ) => {\n\t\t\t\t\t\tconst addedWidgetId = addedWidgetIds[ index ];\n\n\t\t\t\t\t\tif ( addedWidgetId !== null ) {\n\t\t\t\t\t\t\t// Only create a new instance if necessary to prevent\n\t\t\t\t\t\t\t// the whole editor from re-rendering on every edit.\n\t\t\t\t\t\t\tif ( updatedNextBlocks === nextBlocks ) {\n\t\t\t\t\t\t\t\tupdatedNextBlocks = nextBlocks.slice();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tupdatedNextBlocks[ index ] = addWidgetIdToBlock(\n\t\t\t\t\t\t\t\tnextBlock,\n\t\t\t\t\t\t\t\taddedWidgetId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn updatedNextBlocks;\n\t\t\t\t\t},\n\t\t\t\t\tnextBlocks\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t[ sidebar ]\n\t);\n\n\treturn [ blocks, onChangeBlocks, onChangeBlocks ];\n}\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { createElement } from "@wordpress/element";
2
-
3
2
  /**
4
3
  * WordPress dependencies
5
4
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/customize-widgets/src/components/sidebar-controls/index.js"],"names":["createContext","useMemo","useContext","SidebarControlsContext","SidebarControls","sidebarControls","activeSidebarControl","children","context","useSidebarControls","useActiveSidebarControl"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,aAAT,EAAwBC,OAAxB,EAAiCC,UAAjC,QAAmD,oBAAnD;AAEA,OAAO,MAAMC,sBAAsB,GAAGH,aAAa,EAA5C;AAEP,eAAe,SAASI,eAAT,CAA0B;AACxCC,EAAAA,eADwC;AAExCC,EAAAA,oBAFwC;AAGxCC,EAAAA;AAHwC,CAA1B,EAIX;AACH,QAAMC,OAAO,GAAGP,OAAO,CACtB,OAAQ;AACPI,IAAAA,eADO;AAEPC,IAAAA;AAFO,GAAR,CADsB,EAKtB,CAAED,eAAF,EAAmBC,oBAAnB,CALsB,CAAvB;AAQA,SACC,cAAC,sBAAD,CAAwB,QAAxB;AAAiC,IAAA,KAAK,EAAGE;AAAzC,KACGD,QADH,CADD;AAKA;AAED,OAAO,SAASE,kBAAT,GAA8B;AACpC,QAAM;AAAEJ,IAAAA;AAAF,MAAsBH,UAAU,CAAEC,sBAAF,CAAtC;AAEA,SAAOE,eAAP;AACA;AAED,OAAO,SAASK,uBAAT,GAAmC;AACzC,QAAM;AAAEJ,IAAAA;AAAF,MAA2BJ,UAAU,CAAEC,sBAAF,CAA3C;AAEA,SAAOG,oBAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useMemo, useContext } from '@wordpress/element';\n\nexport const SidebarControlsContext = createContext();\n\nexport default function SidebarControls( {\n\tsidebarControls,\n\tactiveSidebarControl,\n\tchildren,\n} ) {\n\tconst context = useMemo(\n\t\t() => ( {\n\t\t\tsidebarControls,\n\t\t\tactiveSidebarControl,\n\t\t} ),\n\t\t[ sidebarControls, activeSidebarControl ]\n\t);\n\n\treturn (\n\t\t<SidebarControlsContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</SidebarControlsContext.Provider>\n\t);\n}\n\nexport function useSidebarControls() {\n\tconst { sidebarControls } = useContext( SidebarControlsContext );\n\n\treturn sidebarControls;\n}\n\nexport function useActiveSidebarControl() {\n\tconst { activeSidebarControl } = useContext( SidebarControlsContext );\n\n\treturn activeSidebarControl;\n}\n"]}
1
+ {"version":3,"names":["createContext","useMemo","useContext","SidebarControlsContext","SidebarControls","sidebarControls","activeSidebarControl","children","context","createElement","Provider","value","useSidebarControls","useActiveSidebarControl"],"sources":["@wordpress/customize-widgets/src/components/sidebar-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useMemo, useContext } from '@wordpress/element';\n\nexport const SidebarControlsContext = createContext();\n\nexport default function SidebarControls( {\n\tsidebarControls,\n\tactiveSidebarControl,\n\tchildren,\n} ) {\n\tconst context = useMemo(\n\t\t() => ( {\n\t\t\tsidebarControls,\n\t\t\tactiveSidebarControl,\n\t\t} ),\n\t\t[ sidebarControls, activeSidebarControl ]\n\t);\n\n\treturn (\n\t\t<SidebarControlsContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</SidebarControlsContext.Provider>\n\t);\n}\n\nexport function useSidebarControls() {\n\tconst { sidebarControls } = useContext( SidebarControlsContext );\n\n\treturn sidebarControls;\n}\n\nexport function useActiveSidebarControl() {\n\tconst { activeSidebarControl } = useContext( SidebarControlsContext );\n\n\treturn activeSidebarControl;\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,aAAa,EAAEC,OAAO,EAAEC,UAAU,QAAQ,oBAAoB;AAEvE,OAAO,MAAMC,sBAAsB,GAAGH,aAAa,CAAC,CAAC;AAErD,eAAe,SAASI,eAAeA,CAAE;EACxCC,eAAe;EACfC,oBAAoB;EACpBC;AACD,CAAC,EAAG;EACH,MAAMC,OAAO,GAAGP,OAAO,CACtB,OAAQ;IACPI,eAAe;IACfC;EACD,CAAC,CAAE,EACH,CAAED,eAAe,EAAEC,oBAAoB,CACxC,CAAC;EAED,OACCG,aAAA,CAACN,sBAAsB,CAACO,QAAQ;IAACC,KAAK,EAAGH;EAAS,GAC/CD,QAC8B,CAAC;AAEpC;AAEA,OAAO,SAASK,kBAAkBA,CAAA,EAAG;EACpC,MAAM;IAAEP;EAAgB,CAAC,GAAGH,UAAU,CAAEC,sBAAuB,CAAC;EAEhE,OAAOE,eAAe;AACvB;AAEA,OAAO,SAASQ,uBAAuBA,CAAA,EAAG;EACzC,MAAM;IAAEP;EAAqB,CAAC,GAAGJ,UAAU,CAAEC,sBAAuB,CAAC;EAErE,OAAOG,oBAAoB;AAC5B"}
@@ -1,5 +1,4 @@
1
1
  import { createElement } from "@wordpress/element";
2
-
3
2
  /**
4
3
  * WordPress dependencies
5
4
  */