@wordpress/edit-widgets 6.31.1-next.f56bd8138.0 → 6.32.1-next.47f435fc9.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.
Files changed (203) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/blocks/widget-area/block.json +26 -0
  3. package/build/blocks/widget-area/edit/index.js +94 -87
  4. package/build/blocks/widget-area/edit/index.js.map +7 -1
  5. package/build/blocks/widget-area/edit/inner-blocks.js +68 -50
  6. package/build/blocks/widget-area/edit/inner-blocks.js.map +7 -1
  7. package/build/blocks/widget-area/edit/use-is-dragging-within.js +34 -40
  8. package/build/blocks/widget-area/edit/use-is-dragging-within.js.map +7 -1
  9. package/build/blocks/widget-area/index.js +49 -52
  10. package/build/blocks/widget-area/index.js.map +7 -1
  11. package/build/components/error-boundary/index.js +49 -51
  12. package/build/components/error-boundary/index.js.map +7 -1
  13. package/build/components/header/document-tools/index.js +104 -74
  14. package/build/components/header/document-tools/index.js.map +7 -1
  15. package/build/components/header/index.js +81 -62
  16. package/build/components/header/index.js.map +7 -1
  17. package/build/components/header/undo-redo/redo.js +50 -38
  18. package/build/components/header/undo-redo/redo.js.map +7 -1
  19. package/build/components/header/undo-redo/undo.js +49 -37
  20. package/build/components/header/undo-redo/undo.js.map +7 -1
  21. package/build/components/keyboard-shortcut-help-modal/config.js +74 -71
  22. package/build/components/keyboard-shortcut-help-modal/config.js.map +7 -1
  23. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +61 -44
  24. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +7 -1
  25. package/build/components/keyboard-shortcut-help-modal/index.js +154 -103
  26. package/build/components/keyboard-shortcut-help-modal/index.js.map +7 -1
  27. package/build/components/keyboard-shortcut-help-modal/shortcut.js +74 -56
  28. package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +7 -1
  29. package/build/components/keyboard-shortcuts/index.js +89 -82
  30. package/build/components/keyboard-shortcuts/index.js.map +7 -1
  31. package/build/components/layout/index.js +75 -49
  32. package/build/components/layout/index.js.map +7 -1
  33. package/build/components/layout/interface.js +89 -75
  34. package/build/components/layout/interface.js.map +7 -1
  35. package/build/components/layout/unsaved-changes-warning.js +35 -42
  36. package/build/components/layout/unsaved-changes-warning.js.map +7 -1
  37. package/build/components/more-menu/index.js +189 -108
  38. package/build/components/more-menu/index.js.map +7 -1
  39. package/build/components/more-menu/tools-more-menu-group.js +29 -23
  40. package/build/components/more-menu/tools-more-menu-group.js.map +7 -1
  41. package/build/components/notices/index.js +62 -48
  42. package/build/components/notices/index.js.map +7 -1
  43. package/build/components/save-button/index.js +55 -47
  44. package/build/components/save-button/index.js.map +7 -1
  45. package/build/components/secondary-sidebar/index.js +41 -34
  46. package/build/components/secondary-sidebar/index.js.map +7 -1
  47. package/build/components/secondary-sidebar/inserter-sidebar.js +55 -46
  48. package/build/components/secondary-sidebar/inserter-sidebar.js.map +7 -1
  49. package/build/components/secondary-sidebar/list-view-sidebar.js +76 -67
  50. package/build/components/secondary-sidebar/list-view-sidebar.js.map +7 -1
  51. package/build/components/sidebar/index.js +149 -138
  52. package/build/components/sidebar/index.js.map +7 -1
  53. package/build/components/sidebar/widget-areas.js +73 -57
  54. package/build/components/sidebar/widget-areas.js.map +7 -1
  55. package/build/components/welcome-guide/index.js +182 -137
  56. package/build/components/welcome-guide/index.js.map +7 -1
  57. package/build/components/widget-areas-block-editor-content/index.js +64 -43
  58. package/build/components/widget-areas-block-editor-content/index.js.map +7 -1
  59. package/build/components/widget-areas-block-editor-provider/index.js +115 -92
  60. package/build/components/widget-areas-block-editor-provider/index.js.map +7 -1
  61. package/build/constants.js +30 -8
  62. package/build/constants.js.map +7 -1
  63. package/build/filters/index.js +3 -5
  64. package/build/filters/index.js.map +7 -1
  65. package/build/filters/move-to-widget-area.js +52 -59
  66. package/build/filters/move-to-widget-area.js.map +7 -1
  67. package/build/filters/replace-media-upload.js +9 -11
  68. package/build/filters/replace-media-upload.js.map +7 -1
  69. package/build/hooks/use-last-selected-widget-area.js +38 -44
  70. package/build/hooks/use-last-selected-widget-area.js.map +7 -1
  71. package/build/hooks/use-widget-library-insertion-point.js +60 -55
  72. package/build/hooks/use-widget-library-insertion-point.js.map +7 -1
  73. package/build/index.js +86 -93
  74. package/build/index.js.map +7 -1
  75. package/build/lock-unlock.js +31 -15
  76. package/build/lock-unlock.js.map +7 -1
  77. package/build/store/actions.js +181 -313
  78. package/build/store/actions.js.map +7 -1
  79. package/build/store/constants.js +27 -10
  80. package/build/store/constants.js.map +7 -1
  81. package/build/store/index.js +51 -51
  82. package/build/store/index.js.map +7 -1
  83. package/build/store/private-selectors.js +28 -7
  84. package/build/store/private-selectors.js.map +7 -1
  85. package/build/store/reducer.js +65 -118
  86. package/build/store/reducer.js.map +7 -1
  87. package/build/store/resolvers.js +64 -63
  88. package/build/store/resolvers.js.map +7 -1
  89. package/build/store/selectors.js +194 -231
  90. package/build/store/selectors.js.map +7 -1
  91. package/build/store/transformers.js +47 -41
  92. package/build/store/transformers.js.map +7 -1
  93. package/build/store/utils.js +47 -70
  94. package/build/store/utils.js.map +7 -1
  95. package/build-module/blocks/widget-area/block.json +26 -0
  96. package/build-module/blocks/widget-area/edit/index.js +63 -75
  97. package/build-module/blocks/widget-area/edit/index.js.map +7 -1
  98. package/build-module/blocks/widget-area/edit/inner-blocks.js +38 -41
  99. package/build-module/blocks/widget-area/edit/inner-blocks.js.map +7 -1
  100. package/build-module/blocks/widget-area/edit/use-is-dragging-within.js +14 -33
  101. package/build-module/blocks/widget-area/edit/use-is-dragging-within.js.map +7 -1
  102. package/build-module/blocks/widget-area/index.js +14 -46
  103. package/build-module/blocks/widget-area/index.js.map +7 -1
  104. package/build-module/components/error-boundary/index.js +30 -43
  105. package/build-module/components/error-boundary/index.js.map +7 -1
  106. package/build-module/components/header/document-tools/index.js +75 -66
  107. package/build-module/components/header/document-tools/index.js.map +7 -1
  108. package/build-module/components/header/index.js +52 -54
  109. package/build-module/components/header/index.js.map +7 -1
  110. package/build-module/components/header/undo-redo/redo.js +32 -32
  111. package/build-module/components/header/undo-redo/redo.js.map +7 -1
  112. package/build-module/components/header/undo-redo/undo.js +31 -31
  113. package/build-module/components/header/undo-redo/undo.js.map +7 -1
  114. package/build-module/components/keyboard-shortcut-help-modal/config.js +62 -75
  115. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +7 -1
  116. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +33 -37
  117. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +7 -1
  118. package/build-module/components/keyboard-shortcut-help-modal/index.js +130 -97
  119. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +7 -1
  120. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +56 -50
  121. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +7 -1
  122. package/build-module/components/keyboard-shortcuts/index.js +73 -75
  123. package/build-module/components/keyboard-shortcuts/index.js.map +7 -1
  124. package/build-module/components/layout/index.js +46 -41
  125. package/build-module/components/layout/index.js.map +7 -1
  126. package/build-module/components/layout/interface.js +63 -66
  127. package/build-module/components/layout/interface.js.map +7 -1
  128. package/build-module/components/layout/unsaved-changes-warning.js +17 -37
  129. package/build-module/components/layout/unsaved-changes-warning.js.map +7 -1
  130. package/build-module/components/more-menu/index.js +167 -102
  131. package/build-module/components/more-menu/index.js.map +7 -1
  132. package/build-module/components/more-menu/tools-more-menu-group.js +11 -17
  133. package/build-module/components/more-menu/tools-more-menu-group.js.map +7 -1
  134. package/build-module/components/notices/index.js +43 -42
  135. package/build-module/components/notices/index.js.map +7 -1
  136. package/build-module/components/save-button/index.js +37 -41
  137. package/build-module/components/save-button/index.js.map +7 -1
  138. package/build-module/components/secondary-sidebar/index.js +14 -27
  139. package/build-module/components/secondary-sidebar/index.js.map +7 -1
  140. package/build-module/components/secondary-sidebar/inserter-sidebar.js +26 -38
  141. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +7 -1
  142. package/build-module/components/secondary-sidebar/list-view-sidebar.js +57 -60
  143. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +7 -1
  144. package/build-module/components/sidebar/index.js +129 -127
  145. package/build-module/components/sidebar/index.js.map +7 -1
  146. package/build-module/components/sidebar/widget-areas.js +53 -49
  147. package/build-module/components/sidebar/widget-areas.js.map +7 -1
  148. package/build-module/components/welcome-guide/index.js +165 -132
  149. package/build-module/components/welcome-guide/index.js.map +7 -1
  150. package/build-module/components/widget-areas-block-editor-content/index.js +43 -36
  151. package/build-module/components/widget-areas-block-editor-content/index.js.map +7 -1
  152. package/build-module/components/widget-areas-block-editor-provider/index.js +85 -83
  153. package/build-module/components/widget-areas-block-editor-provider/index.js.map +7 -1
  154. package/build-module/constants.js +7 -3
  155. package/build-module/constants.js.map +7 -1
  156. package/build-module/filters/index.js +3 -6
  157. package/build-module/filters/index.js.map +7 -1
  158. package/build-module/filters/move-to-widget-area.js +52 -57
  159. package/build-module/filters/move-to-widget-area.js.map +7 -1
  160. package/build-module/filters/replace-media-upload.js +8 -7
  161. package/build-module/filters/replace-media-upload.js.map +7 -1
  162. package/build-module/hooks/use-last-selected-widget-area.js +20 -39
  163. package/build-module/hooks/use-last-selected-widget-area.js.map +7 -1
  164. package/build-module/hooks/use-widget-library-insertion-point.js +42 -49
  165. package/build-module/hooks/use-widget-library-insertion-point.js.map +7 -1
  166. package/build-module/index.js +60 -72
  167. package/build-module/index.js.map +7 -1
  168. package/build-module/lock-unlock.js +8 -7
  169. package/build-module/lock-unlock.js.map +7 -1
  170. package/build-module/store/actions.js +153 -293
  171. package/build-module/store/actions.js.map +7 -1
  172. package/build-module/store/constants.js +5 -5
  173. package/build-module/store/constants.js.map +7 -1
  174. package/build-module/store/index.js +16 -40
  175. package/build-module/store/index.js.map +7 -1
  176. package/build-module/store/private-selectors.js +7 -3
  177. package/build-module/store/private-selectors.js.map +7 -1
  178. package/build-module/store/reducer.js +42 -111
  179. package/build-module/store/reducer.js.map +7 -1
  180. package/build-module/store/resolvers.js +43 -51
  181. package/build-module/store/resolvers.js.map +7 -1
  182. package/build-module/store/selectors.js +171 -224
  183. package/build-module/store/selectors.js.map +7 -1
  184. package/build-module/store/transformers.js +23 -34
  185. package/build-module/store/transformers.js.map +7 -1
  186. package/build-module/store/utils.js +22 -63
  187. package/build-module/store/utils.js.map +7 -1
  188. package/build-style/style-rtl.css +216 -88
  189. package/build-style/style.css +216 -88
  190. package/package.json +36 -29
  191. package/src/blocks/widget-area/editor.scss +3 -0
  192. package/src/components/customizer-edit-widgets-initializer/style.scss +3 -0
  193. package/src/components/error-boundary/style.scss +2 -0
  194. package/src/components/header/style.scss +5 -0
  195. package/src/components/keyboard-shortcut-help-modal/style.scss +2 -0
  196. package/src/components/layout/style.scss +3 -0
  197. package/src/components/more-menu/style.scss +2 -0
  198. package/src/components/notices/style.scss +3 -0
  199. package/src/components/secondary-sidebar/style.scss +4 -0
  200. package/src/components/sidebar/style.scss +2 -0
  201. package/src/components/welcome-guide/style.scss +2 -0
  202. package/src/components/widget-areas-block-editor-content/style.scss +2 -0
  203. package/src/style.scss +16 -13
@@ -1 +1,7 @@
1
- {"version":3,"names":["_data","require","_widgets","_coreData","_blockEditor","_utils","_constants","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","getWidgets","exports","createRegistrySelector","select","createSelector","_widgets$reduce","widgets","coreStore","getEntityRecords","buildWidgetsQuery","reduce","allWidgets","widget","id","getWidget","state","editWidgetsStoreName","getWidgetAreas","query","buildWidgetAreasQuery","KIND","WIDGET_AREA_ENTITY_TYPE","getWidgetAreaForWidgetId","widgetId","widgetAreas","find","widgetArea","post","getEditedEntityRecord","POST_TYPE","buildWidgetAreaPostId","blockWidgetIds","blocks","map","block","getWidgetIdFromBlock","includes","getParentWidgetAreaBlock","clientId","getBlock","getBlockName","getBlockParents","blockEditorStore","blockParents","widgetAreaClientId","parentClientId","getEditedWidgetAreas","ids","filter","hasEditsForEntityRecord","getReferenceWidgetBlocks","referenceWidgetName","results","_widgetArea","name","attributes","push","isSavingWidgetAreas","widgetAreasIds","isSaving","isSavingEntityRecord","widgetIds","Object","keys","getIsWidgetAreaOpen","widgetAreasOpenState","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","canInsertBlockInWidgetArea","blockName","getBlocks","firstWidgetArea","canInsertBlockType","isListViewOpened","listViewPanel","isWidgetSavingLocked","widgetSavingLock","length"],"sources":["@wordpress/edit-widgets/src/store/selectors.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport { getWidgetIdFromBlock } from '@wordpress/widgets';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n};\n\n/**\n * Returns all API widgets.\n *\n * @return {Object[]} API List of widgets.\n */\nexport const getWidgets = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t() => {\n\t\t\tconst widgets = select( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t// Key widgets by their ID.\n\t\t\t\twidgets?.reduce(\n\t\t\t\t\t( allWidgets, widget ) => ( {\n\t\t\t\t\t\t...allWidgets,\n\t\t\t\t\t\t[ widget.id ]: widget,\n\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\t() => [\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t),\n\t\t]\n\t)\n);\n\n/**\n * Returns API widget data for a particular widget ID.\n *\n * @param {number} id Widget ID.\n *\n * @return {Object} API widget data for a particular widget ID.\n */\nexport const getWidget = createRegistrySelector(\n\t( select ) => ( state, id ) => {\n\t\tconst widgets = select( editWidgetsStoreName ).getWidgets();\n\t\treturn widgets[ id ];\n\t}\n);\n\n/**\n * Returns all API widget areas.\n *\n * @return {Object[]} API List of widget areas.\n */\nexport const getWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst query = buildWidgetAreasQuery();\n\treturn select( coreStore ).getEntityRecords(\n\t\tKIND,\n\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\tquery\n\t);\n} );\n\n/**\n * Returns widgetArea containing a block identify by given widgetId\n *\n * @param {string} widgetId The ID of the widget.\n * @return {Object} Containing widget area.\n */\nexport const getWidgetAreaForWidgetId = createRegistrySelector(\n\t( select ) => ( state, widgetId ) => {\n\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\treturn widgetAreas.find( ( widgetArea ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tbuildWidgetAreaPostId( widgetArea.id )\n\t\t\t);\n\t\t\tconst blockWidgetIds = post.blocks.map( ( block ) =>\n\t\t\t\tgetWidgetIdFromBlock( block )\n\t\t\t);\n\t\t\treturn blockWidgetIds.includes( widgetId );\n\t\t} );\n\t}\n);\n\n/**\n * Given a child client id, returns the parent widget area block.\n *\n * @param {string} clientId The client id of a block in a widget area.\n *\n * @return {WPBlock} The widget area block.\n */\nexport const getParentWidgetAreaBlock = createRegistrySelector(\n\t( select ) => ( state, clientId ) => {\n\t\tconst { getBlock, getBlockName, getBlockParents } =\n\t\t\tselect( blockEditorStore );\n\t\tconst blockParents = getBlockParents( clientId );\n\t\tconst widgetAreaClientId = blockParents.find(\n\t\t\t( parentClientId ) =>\n\t\t\t\tgetBlockName( parentClientId ) === 'core/widget-area'\n\t\t);\n\t\treturn getBlock( widgetAreaClientId );\n\t}\n);\n\n/**\n * Returns all edited widget area entity records.\n *\n * @return {Object[]} List of edited widget area entity records.\n */\nexport const getEditedWidgetAreas = createRegistrySelector(\n\t( select ) => ( state, ids ) => {\n\t\tlet widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\tif ( ! widgetAreas ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ids ) {\n\t\t\twidgetAreas = widgetAreas.filter( ( { id } ) =>\n\t\t\t\tids.includes( id )\n\t\t\t);\n\t\t}\n\t\treturn widgetAreas\n\t\t\t.filter( ( { id } ) =>\n\t\t\t\tselect( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( id )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.map( ( { id } ) =>\n\t\t\t\tselect( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\t\tid\n\t\t\t\t)\n\t\t\t);\n\t}\n);\n\n/**\n * Returns all blocks representing reference widgets.\n *\n * @param {string} referenceWidgetName Optional. If given, only reference widgets with this name will be returned.\n * @return {Array} List of all blocks representing reference widgets\n */\nexport const getReferenceWidgetBlocks = createRegistrySelector(\n\t( select ) =>\n\t\t( state, referenceWidgetName = null ) => {\n\t\t\tconst results = [];\n\t\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\t\tfor ( const _widgetArea of widgetAreas ) {\n\t\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( _widgetArea.id )\n\t\t\t\t);\n\t\t\t\tfor ( const block of post.blocks ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblock.name === 'core/legacy-widget' &&\n\t\t\t\t\t\t( ! referenceWidgetName ||\n\t\t\t\t\t\t\tblock.attributes?.referenceWidgetName ===\n\t\t\t\t\t\t\t\treferenceWidgetName )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresults.push( block );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t}\n);\n\n/**\n * Returns true if any widget area is currently being saved.\n *\n * @return {boolean} True if any widget area is currently being saved. False otherwise.\n */\nexport const isSavingWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst widgetAreasIds = select( editWidgetsStoreName )\n\t\t.getWidgetAreas()\n\t\t?.map( ( { id } ) => id );\n\tif ( ! widgetAreasIds ) {\n\t\treturn false;\n\t}\n\n\tfor ( const id of widgetAreasIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\tKIND,\n\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tconst widgetIds = [\n\t\t...Object.keys( select( editWidgetsStoreName ).getWidgets() ),\n\t\tundefined, // account for new widgets without an ID\n\t];\n\tfor ( const id of widgetIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\t'root',\n\t\t\t'widget',\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n} );\n\n/**\n * Gets whether the widget area is opened.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} clientId The clientId of the widget area.\n *\n * @return {boolean} True if the widget area is open.\n */\nexport const getIsWidgetAreaOpen = ( state, clientId ) => {\n\tconst { widgetAreasOpenState } = state;\n\treturn !! widgetAreasOpenState[ clientId ];\n};\n\n/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID and index to insert at.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tif ( typeof state.blockInserterPanel === 'boolean' ) {\n\t\treturn EMPTY_INSERTION_POINT;\n\t}\n\n\treturn state.blockInserterPanel;\n}\n\n/**\n * Returns true if a block can be inserted into a widget area.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} blockName The name of the block being inserted.\n *\n * @return {boolean} True if the block can be inserted in a widget area.\n */\nexport const canInsertBlockInWidgetArea = createRegistrySelector(\n\t( select ) => ( state, blockName ) => {\n\t\t// Widget areas are always top-level blocks, which getBlocks will return.\n\t\tconst widgetAreas = select( blockEditorStore ).getBlocks();\n\n\t\t// Makes an assumption that a block that can be inserted into one\n\t\t// widget area can be inserted into any widget area. Uses the first\n\t\t// widget area for testing whether the block can be inserted.\n\t\tconst [ firstWidgetArea ] = widgetAreas;\n\t\treturn select( blockEditorStore ).canInsertBlockType(\n\t\t\tblockName,\n\t\t\tfirstWidgetArea.clientId\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n\n/**\n * Returns whether widget saving is locked.\n *\n * @param {Object} state Global application state.\n *\n * @example\n * ```jsx\n * import { __ } from '@wordpress/i18n';\n * import { store as widgetStore } from '@wordpress/edit-widgets';\n * import { useSelect } from '@wordpress/data';\n *\n * const ExampleComponent = () => {\n * \tconst isSavingLocked = useSelect(\n * \t\t( select ) => select( widgetStore ).isWidgetSavingLocked(),\n * \t\t[]\n * \t);\n *\n * \treturn isSavingLocked ? (\n * \t\t<p>{ __( 'Widget saving is locked' ) }</p>\n * \t) : (\n * \t\t<p>{ __( 'Widget saving is not locked' ) }</p>\n * \t);\n * };\n * ```\n *\n * @return {boolean} Is locked.\n */\nexport function isWidgetSavingLocked( state ) {\n\treturn Object.keys( state.widgetSavingLock ).length > 0;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/store/selectors.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport { getWidgetIdFromBlock } from '@wordpress/widgets';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n};\n\n/**\n * Returns all API widgets.\n *\n * @return {Object[]} API List of widgets.\n */\nexport const getWidgets = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t() => {\n\t\t\tconst widgets = select( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t// Key widgets by their ID.\n\t\t\t\twidgets?.reduce(\n\t\t\t\t\t( allWidgets, widget ) => ( {\n\t\t\t\t\t\t...allWidgets,\n\t\t\t\t\t\t[ widget.id ]: widget,\n\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\t() => [\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t),\n\t\t]\n\t)\n);\n\n/**\n * Returns API widget data for a particular widget ID.\n *\n * @param {number} id Widget ID.\n *\n * @return {Object} API widget data for a particular widget ID.\n */\nexport const getWidget = createRegistrySelector(\n\t( select ) => ( state, id ) => {\n\t\tconst widgets = select( editWidgetsStoreName ).getWidgets();\n\t\treturn widgets[ id ];\n\t}\n);\n\n/**\n * Returns all API widget areas.\n *\n * @return {Object[]} API List of widget areas.\n */\nexport const getWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst query = buildWidgetAreasQuery();\n\treturn select( coreStore ).getEntityRecords(\n\t\tKIND,\n\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\tquery\n\t);\n} );\n\n/**\n * Returns widgetArea containing a block identify by given widgetId\n *\n * @param {string} widgetId The ID of the widget.\n * @return {Object} Containing widget area.\n */\nexport const getWidgetAreaForWidgetId = createRegistrySelector(\n\t( select ) => ( state, widgetId ) => {\n\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\treturn widgetAreas.find( ( widgetArea ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tbuildWidgetAreaPostId( widgetArea.id )\n\t\t\t);\n\t\t\tconst blockWidgetIds = post.blocks.map( ( block ) =>\n\t\t\t\tgetWidgetIdFromBlock( block )\n\t\t\t);\n\t\t\treturn blockWidgetIds.includes( widgetId );\n\t\t} );\n\t}\n);\n\n/**\n * Given a child client id, returns the parent widget area block.\n *\n * @param {string} clientId The client id of a block in a widget area.\n *\n * @return {WPBlock} The widget area block.\n */\nexport const getParentWidgetAreaBlock = createRegistrySelector(\n\t( select ) => ( state, clientId ) => {\n\t\tconst { getBlock, getBlockName, getBlockParents } =\n\t\t\tselect( blockEditorStore );\n\t\tconst blockParents = getBlockParents( clientId );\n\t\tconst widgetAreaClientId = blockParents.find(\n\t\t\t( parentClientId ) =>\n\t\t\t\tgetBlockName( parentClientId ) === 'core/widget-area'\n\t\t);\n\t\treturn getBlock( widgetAreaClientId );\n\t}\n);\n\n/**\n * Returns all edited widget area entity records.\n *\n * @return {Object[]} List of edited widget area entity records.\n */\nexport const getEditedWidgetAreas = createRegistrySelector(\n\t( select ) => ( state, ids ) => {\n\t\tlet widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\tif ( ! widgetAreas ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ids ) {\n\t\t\twidgetAreas = widgetAreas.filter( ( { id } ) =>\n\t\t\t\tids.includes( id )\n\t\t\t);\n\t\t}\n\t\treturn widgetAreas\n\t\t\t.filter( ( { id } ) =>\n\t\t\t\tselect( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( id )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.map( ( { id } ) =>\n\t\t\t\tselect( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\t\tid\n\t\t\t\t)\n\t\t\t);\n\t}\n);\n\n/**\n * Returns all blocks representing reference widgets.\n *\n * @param {string} referenceWidgetName Optional. If given, only reference widgets with this name will be returned.\n * @return {Array} List of all blocks representing reference widgets\n */\nexport const getReferenceWidgetBlocks = createRegistrySelector(\n\t( select ) =>\n\t\t( state, referenceWidgetName = null ) => {\n\t\t\tconst results = [];\n\t\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\t\tfor ( const _widgetArea of widgetAreas ) {\n\t\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( _widgetArea.id )\n\t\t\t\t);\n\t\t\t\tfor ( const block of post.blocks ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblock.name === 'core/legacy-widget' &&\n\t\t\t\t\t\t( ! referenceWidgetName ||\n\t\t\t\t\t\t\tblock.attributes?.referenceWidgetName ===\n\t\t\t\t\t\t\t\treferenceWidgetName )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresults.push( block );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t}\n);\n\n/**\n * Returns true if any widget area is currently being saved.\n *\n * @return {boolean} True if any widget area is currently being saved. False otherwise.\n */\nexport const isSavingWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst widgetAreasIds = select( editWidgetsStoreName )\n\t\t.getWidgetAreas()\n\t\t?.map( ( { id } ) => id );\n\tif ( ! widgetAreasIds ) {\n\t\treturn false;\n\t}\n\n\tfor ( const id of widgetAreasIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\tKIND,\n\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tconst widgetIds = [\n\t\t...Object.keys( select( editWidgetsStoreName ).getWidgets() ),\n\t\tundefined, // account for new widgets without an ID\n\t];\n\tfor ( const id of widgetIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\t'root',\n\t\t\t'widget',\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n} );\n\n/**\n * Gets whether the widget area is opened.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} clientId The clientId of the widget area.\n *\n * @return {boolean} True if the widget area is open.\n */\nexport const getIsWidgetAreaOpen = ( state, clientId ) => {\n\tconst { widgetAreasOpenState } = state;\n\treturn !! widgetAreasOpenState[ clientId ];\n};\n\n/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID and index to insert at.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tif ( typeof state.blockInserterPanel === 'boolean' ) {\n\t\treturn EMPTY_INSERTION_POINT;\n\t}\n\n\treturn state.blockInserterPanel;\n}\n\n/**\n * Returns true if a block can be inserted into a widget area.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} blockName The name of the block being inserted.\n *\n * @return {boolean} True if the block can be inserted in a widget area.\n */\nexport const canInsertBlockInWidgetArea = createRegistrySelector(\n\t( select ) => ( state, blockName ) => {\n\t\t// Widget areas are always top-level blocks, which getBlocks will return.\n\t\tconst widgetAreas = select( blockEditorStore ).getBlocks();\n\n\t\t// Makes an assumption that a block that can be inserted into one\n\t\t// widget area can be inserted into any widget area. Uses the first\n\t\t// widget area for testing whether the block can be inserted.\n\t\tconst [ firstWidgetArea ] = widgetAreas;\n\t\treturn select( blockEditorStore ).canInsertBlockType(\n\t\t\tblockName,\n\t\t\tfirstWidgetArea.clientId\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n\n/**\n * Returns whether widget saving is locked.\n *\n * @param {Object} state Global application state.\n *\n * @example\n * ```jsx\n * import { __ } from '@wordpress/i18n';\n * import { store as widgetStore } from '@wordpress/edit-widgets';\n * import { useSelect } from '@wordpress/data';\n *\n * const ExampleComponent = () => {\n * \tconst isSavingLocked = useSelect(\n * \t\t( select ) => select( widgetStore ).isWidgetSavingLocked(),\n * \t\t[]\n * \t);\n *\n * \treturn isSavingLocked ? (\n * \t\t<p>{ __( 'Widget saving is locked' ) }</p>\n * \t) : (\n * \t\t<p>{ __( 'Widget saving is not locked' ) }</p>\n * \t);\n * };\n * ```\n *\n * @return {boolean} Is locked.\n */\nexport function isWidgetSavingLocked( state ) {\n\treturn Object.keys( state.widgetSavingLock ).length > 0;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["coreStore", "editWidgetsStoreName", "blockEditorStore"]
7
+ }
@@ -1,31 +1,40 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var transformers_exports = {};
19
+ __export(transformers_exports, {
20
+ transformBlockToWidget: () => transformBlockToWidget,
21
+ transformWidgetToBlock: () => transformWidgetToBlock
5
22
  });
6
- exports.transformBlockToWidget = transformBlockToWidget;
7
- exports.transformWidgetToBlock = transformWidgetToBlock;
8
- var _blocks = require("@wordpress/blocks");
9
- var _widgets = require("@wordpress/widgets");
10
- /**
11
- * WordPress dependencies
12
- */
13
-
14
- /**
15
- * Converts a widget entity record into a block.
16
- *
17
- * @param {Object} widget The widget entity record.
18
- * @return {Object} a block (converted from the entity record).
19
- */
23
+ module.exports = __toCommonJS(transformers_exports);
24
+ var import_blocks = require("@wordpress/blocks");
25
+ var import_widgets = require("@wordpress/widgets");
20
26
  function transformWidgetToBlock(widget) {
21
- if (widget.id_base === 'block') {
22
- const parsedBlocks = (0, _blocks.parse)(widget.instance.raw.content, {
27
+ if (widget.id_base === "block") {
28
+ const parsedBlocks = (0, import_blocks.parse)(widget.instance.raw.content, {
23
29
  __unstableSkipAutop: true
24
30
  });
25
31
  if (!parsedBlocks.length) {
26
- return (0, _widgets.addWidgetIdToBlock)((0, _blocks.createBlock)('core/paragraph', {}, []), widget.id);
32
+ return (0, import_widgets.addWidgetIdToBlock)(
33
+ (0, import_blocks.createBlock)("core/paragraph", {}, []),
34
+ widget.id
35
+ );
27
36
  }
28
- return (0, _widgets.addWidgetIdToBlock)(parsedBlocks[0], widget.id);
37
+ return (0, import_widgets.addWidgetIdToBlock)(parsedBlocks[0], widget.id);
29
38
  }
30
39
  let attributes;
31
40
  if (widget._embedded.about[0].is_multi) {
@@ -38,42 +47,39 @@ function transformWidgetToBlock(widget) {
38
47
  id: widget.id
39
48
  };
40
49
  }
41
- return (0, _widgets.addWidgetIdToBlock)((0, _blocks.createBlock)('core/legacy-widget', attributes, []), widget.id);
50
+ return (0, import_widgets.addWidgetIdToBlock)(
51
+ (0, import_blocks.createBlock)("core/legacy-widget", attributes, []),
52
+ widget.id
53
+ );
42
54
  }
43
-
44
- /**
45
- * Converts a block to a widget entity record.
46
- *
47
- * @param {Object} block The block.
48
- * @param {?Object} relatedWidget A related widget entity record from the API (optional).
49
- * @return {Object} the widget object (converted from block).
50
- */
51
55
  function transformBlockToWidget(block, relatedWidget = {}) {
52
56
  let widget;
53
- const isValidLegacyWidgetBlock = block.name === 'core/legacy-widget' && (block.attributes.id || block.attributes.instance);
57
+ const isValidLegacyWidgetBlock = block.name === "core/legacy-widget" && (block.attributes.id || block.attributes.instance);
54
58
  if (isValidLegacyWidgetBlock) {
55
- var _block$attributes$id, _block$attributes$idB, _block$attributes$ins;
56
59
  widget = {
57
60
  ...relatedWidget,
58
- id: (_block$attributes$id = block.attributes.id) !== null && _block$attributes$id !== void 0 ? _block$attributes$id : relatedWidget.id,
59
- id_base: (_block$attributes$idB = block.attributes.idBase) !== null && _block$attributes$idB !== void 0 ? _block$attributes$idB : relatedWidget.id_base,
60
- instance: (_block$attributes$ins = block.attributes.instance) !== null && _block$attributes$ins !== void 0 ? _block$attributes$ins : relatedWidget.instance
61
+ id: block.attributes.id ?? relatedWidget.id,
62
+ id_base: block.attributes.idBase ?? relatedWidget.id_base,
63
+ instance: block.attributes.instance ?? relatedWidget.instance
61
64
  };
62
65
  } else {
63
66
  widget = {
64
67
  ...relatedWidget,
65
- id_base: 'block',
68
+ id_base: "block",
66
69
  instance: {
67
70
  raw: {
68
- content: (0, _blocks.serialize)(block)
71
+ content: (0, import_blocks.serialize)(block)
69
72
  }
70
73
  }
71
74
  };
72
75
  }
73
-
74
- // Delete read-only properties.
75
76
  delete widget.rendered;
76
77
  delete widget.rendered_form;
77
78
  return widget;
78
79
  }
79
- //# sourceMappingURL=transformers.js.map
80
+ // Annotate the CommonJS export names for ESM import in node:
81
+ 0 && (module.exports = {
82
+ transformBlockToWidget,
83
+ transformWidgetToBlock
84
+ });
85
+ //# sourceMappingURL=transformers.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["_blocks","require","_widgets","transformWidgetToBlock","widget","id_base","parsedBlocks","parse","instance","raw","content","__unstableSkipAutop","length","addWidgetIdToBlock","createBlock","id","attributes","_embedded","about","is_multi","idBase","transformBlockToWidget","block","relatedWidget","isValidLegacyWidgetBlock","name","_block$attributes$id","_block$attributes$idB","_block$attributes$ins","serialize","rendered","rendered_form"],"sources":["@wordpress/edit-widgets/src/store/transformers.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, parse, serialize } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base === 'block' ) {\n\t\tconst parsedBlocks = parse( widget.instance.raw.content, {\n\t\t\t__unstableSkipAutop: true,\n\t\t} );\n\t\tif ( ! parsedBlocks.length ) {\n\t\t\treturn addWidgetIdToBlock(\n\t\t\t\tcreateBlock( 'core/paragraph', {}, [] ),\n\t\t\t\twidget.id\n\t\t\t);\n\t\t}\n\t\treturn addWidgetIdToBlock( parsedBlocks[ 0 ], widget.id );\n\t}\n\n\tlet attributes;\n\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\tattributes = {\n\t\t\tidBase: widget.id_base,\n\t\t\tinstance: widget.instance,\n\t\t};\n\t} else {\n\t\tattributes = {\n\t\t\tid: widget.id,\n\t\t};\n\t}\n\n\treturn addWidgetIdToBlock(\n\t\tcreateBlock( 'core/legacy-widget', attributes, [] ),\n\t\twidget.id\n\t);\n}\n\n/**\n * Converts a block to a widget entity record.\n *\n * @param {Object} block The block.\n * @param {?Object} relatedWidget A related widget entity record from the API (optional).\n * @return {Object} the widget object (converted from block).\n */\nexport function transformBlockToWidget( block, relatedWidget = {} ) {\n\tlet widget;\n\n\tconst isValidLegacyWidgetBlock =\n\t\tblock.name === 'core/legacy-widget' &&\n\t\t( block.attributes.id || block.attributes.instance );\n\n\tif ( isValidLegacyWidgetBlock ) {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid: block.attributes.id ?? relatedWidget.id,\n\t\t\tid_base: block.attributes.idBase ?? relatedWidget.id_base,\n\t\t\tinstance: block.attributes.instance ?? relatedWidget.instance,\n\t\t};\n\t} else {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid_base: 'block',\n\t\t\tinstance: {\n\t\t\t\traw: {\n\t\t\t\t\tcontent: serialize( block ),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t// Delete read-only properties.\n\tdelete widget.rendered;\n\tdelete widget.rendered_form;\n\n\treturn widget;\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAAEC,MAAM,EAAG;EAChD,IAAKA,MAAM,CAACC,OAAO,KAAK,OAAO,EAAG;IACjC,MAAMC,YAAY,GAAG,IAAAC,aAAK,EAAEH,MAAM,CAACI,QAAQ,CAACC,GAAG,CAACC,OAAO,EAAE;MACxDC,mBAAmB,EAAE;IACtB,CAAE,CAAC;IACH,IAAK,CAAEL,YAAY,CAACM,MAAM,EAAG;MAC5B,OAAO,IAAAC,2BAAkB,EACxB,IAAAC,mBAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAG,CAAC,EACvCV,MAAM,CAACW,EACR,CAAC;IACF;IACA,OAAO,IAAAF,2BAAkB,EAAEP,YAAY,CAAE,CAAC,CAAE,EAAEF,MAAM,CAACW,EAAG,CAAC;EAC1D;EAEA,IAAIC,UAAU;EACd,IAAKZ,MAAM,CAACa,SAAS,CAACC,KAAK,CAAE,CAAC,CAAE,CAACC,QAAQ,EAAG;IAC3CH,UAAU,GAAG;MACZI,MAAM,EAAEhB,MAAM,CAACC,OAAO;MACtBG,QAAQ,EAAEJ,MAAM,CAACI;IAClB,CAAC;EACF,CAAC,MAAM;IACNQ,UAAU,GAAG;MACZD,EAAE,EAAEX,MAAM,CAACW;IACZ,CAAC;EACF;EAEA,OAAO,IAAAF,2BAAkB,EACxB,IAAAC,mBAAW,EAAE,oBAAoB,EAAEE,UAAU,EAAE,EAAG,CAAC,EACnDZ,MAAM,CAACW,EACR,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,sBAAsBA,CAAEC,KAAK,EAAEC,aAAa,GAAG,CAAC,CAAC,EAAG;EACnE,IAAInB,MAAM;EAEV,MAAMoB,wBAAwB,GAC7BF,KAAK,CAACG,IAAI,KAAK,oBAAoB,KACjCH,KAAK,CAACN,UAAU,CAACD,EAAE,IAAIO,KAAK,CAACN,UAAU,CAACR,QAAQ,CAAE;EAErD,IAAKgB,wBAAwB,EAAG;IAAA,IAAAE,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA;IAC/BxB,MAAM,GAAG;MACR,GAAGmB,aAAa;MAChBR,EAAE,GAAAW,oBAAA,GAAEJ,KAAK,CAACN,UAAU,CAACD,EAAE,cAAAW,oBAAA,cAAAA,oBAAA,GAAIH,aAAa,CAACR,EAAE;MAC3CV,OAAO,GAAAsB,qBAAA,GAAEL,KAAK,CAACN,UAAU,CAACI,MAAM,cAAAO,qBAAA,cAAAA,qBAAA,GAAIJ,aAAa,CAAClB,OAAO;MACzDG,QAAQ,GAAAoB,qBAAA,GAAEN,KAAK,CAACN,UAAU,CAACR,QAAQ,cAAAoB,qBAAA,cAAAA,qBAAA,GAAIL,aAAa,CAACf;IACtD,CAAC;EACF,CAAC,MAAM;IACNJ,MAAM,GAAG;MACR,GAAGmB,aAAa;MAChBlB,OAAO,EAAE,OAAO;MAChBG,QAAQ,EAAE;QACTC,GAAG,EAAE;UACJC,OAAO,EAAE,IAAAmB,iBAAS,EAAEP,KAAM;QAC3B;MACD;IACD,CAAC;EACF;;EAEA;EACA,OAAOlB,MAAM,CAAC0B,QAAQ;EACtB,OAAO1B,MAAM,CAAC2B,aAAa;EAE3B,OAAO3B,MAAM;AACd","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/store/transformers.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock, parse, serialize } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base === 'block' ) {\n\t\tconst parsedBlocks = parse( widget.instance.raw.content, {\n\t\t\t__unstableSkipAutop: true,\n\t\t} );\n\t\tif ( ! parsedBlocks.length ) {\n\t\t\treturn addWidgetIdToBlock(\n\t\t\t\tcreateBlock( 'core/paragraph', {}, [] ),\n\t\t\t\twidget.id\n\t\t\t);\n\t\t}\n\t\treturn addWidgetIdToBlock( parsedBlocks[ 0 ], widget.id );\n\t}\n\n\tlet attributes;\n\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\tattributes = {\n\t\t\tidBase: widget.id_base,\n\t\t\tinstance: widget.instance,\n\t\t};\n\t} else {\n\t\tattributes = {\n\t\t\tid: widget.id,\n\t\t};\n\t}\n\n\treturn addWidgetIdToBlock(\n\t\tcreateBlock( 'core/legacy-widget', attributes, [] ),\n\t\twidget.id\n\t);\n}\n\n/**\n * Converts a block to a widget entity record.\n *\n * @param {Object} block The block.\n * @param {?Object} relatedWidget A related widget entity record from the API (optional).\n * @return {Object} the widget object (converted from block).\n */\nexport function transformBlockToWidget( block, relatedWidget = {} ) {\n\tlet widget;\n\n\tconst isValidLegacyWidgetBlock =\n\t\tblock.name === 'core/legacy-widget' &&\n\t\t( block.attributes.id || block.attributes.instance );\n\n\tif ( isValidLegacyWidgetBlock ) {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid: block.attributes.id ?? relatedWidget.id,\n\t\t\tid_base: block.attributes.idBase ?? relatedWidget.id_base,\n\t\t\tinstance: block.attributes.instance ?? relatedWidget.instance,\n\t\t};\n\t} else {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid_base: 'block',\n\t\t\tinstance: {\n\t\t\t\traw: {\n\t\t\t\t\tcontent: serialize( block ),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t// Delete read-only properties.\n\tdelete widget.rendered;\n\tdelete widget.rendered_form;\n\n\treturn widget;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAA8C;AAC9C,qBAAmC;AAQ5B,SAAS,uBAAwB,QAAS;AAChD,MAAK,OAAO,YAAY,SAAU;AACjC,UAAM,mBAAe,qBAAO,OAAO,SAAS,IAAI,SAAS;AAAA,MACxD,qBAAqB;AAAA,IACtB,CAAE;AACF,QAAK,CAAE,aAAa,QAAS;AAC5B,iBAAO;AAAA,YACN,2BAAa,kBAAkB,CAAC,GAAG,CAAC,CAAE;AAAA,QACtC,OAAO;AAAA,MACR;AAAA,IACD;AACA,eAAO,mCAAoB,aAAc,CAAE,GAAG,OAAO,EAAG;AAAA,EACzD;AAEA,MAAI;AACJ,MAAK,OAAO,UAAU,MAAO,CAAE,EAAE,UAAW;AAC3C,iBAAa;AAAA,MACZ,QAAQ,OAAO;AAAA,MACf,UAAU,OAAO;AAAA,IAClB;AAAA,EACD,OAAO;AACN,iBAAa;AAAA,MACZ,IAAI,OAAO;AAAA,IACZ;AAAA,EACD;AAEA,aAAO;AAAA,QACN,2BAAa,sBAAsB,YAAY,CAAC,CAAE;AAAA,IAClD,OAAO;AAAA,EACR;AACD;AASO,SAAS,uBAAwB,OAAO,gBAAgB,CAAC,GAAI;AACnE,MAAI;AAEJ,QAAM,2BACL,MAAM,SAAS,yBACb,MAAM,WAAW,MAAM,MAAM,WAAW;AAE3C,MAAK,0BAA2B;AAC/B,aAAS;AAAA,MACR,GAAG;AAAA,MACH,IAAI,MAAM,WAAW,MAAM,cAAc;AAAA,MACzC,SAAS,MAAM,WAAW,UAAU,cAAc;AAAA,MAClD,UAAU,MAAM,WAAW,YAAY,cAAc;AAAA,IACtD;AAAA,EACD,OAAO;AACN,aAAS;AAAA,MACR,GAAG;AAAA,MACH,SAAS;AAAA,MACT,UAAU;AAAA,QACT,KAAK;AAAA,UACJ,aAAS,yBAAW,KAAM;AAAA,QAC3B;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAGA,SAAO,OAAO;AACd,SAAO,OAAO;AAEd,SAAO;AACR;",
6
+ "names": []
7
+ }
@@ -1,90 +1,67 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var utils_exports = {};
19
+ __export(utils_exports, {
20
+ KIND: () => KIND,
21
+ POST_TYPE: () => POST_TYPE,
22
+ WIDGET_AREA_ENTITY_TYPE: () => WIDGET_AREA_ENTITY_TYPE,
23
+ buildWidgetAreaPostId: () => buildWidgetAreaPostId,
24
+ buildWidgetAreasPostId: () => buildWidgetAreasPostId,
25
+ buildWidgetAreasQuery: () => buildWidgetAreasQuery,
26
+ buildWidgetsQuery: () => buildWidgetsQuery,
27
+ createStubPost: () => createStubPost
5
28
  });
6
- exports.buildWidgetAreasPostId = exports.buildWidgetAreaPostId = exports.WIDGET_AREA_ENTITY_TYPE = exports.POST_TYPE = exports.KIND = void 0;
7
- exports.buildWidgetAreasQuery = buildWidgetAreasQuery;
8
- exports.buildWidgetsQuery = buildWidgetsQuery;
9
- exports.createStubPost = void 0;
10
- /**
11
- * "Kind" of the navigation post.
12
- *
13
- * @type {string}
14
- */
15
- const KIND = exports.KIND = 'root';
16
-
17
- /**
18
- * "post type" of the navigation post.
19
- *
20
- * @type {string}
21
- */
22
- const WIDGET_AREA_ENTITY_TYPE = exports.WIDGET_AREA_ENTITY_TYPE = 'sidebar';
23
-
24
- /**
25
- * "post type" of the widget area post.
26
- *
27
- * @type {string}
28
- */
29
- const POST_TYPE = exports.POST_TYPE = 'postType';
30
-
31
- /**
32
- * Builds an ID for a new widget area post.
33
- *
34
- * @param {number} widgetAreaId Widget area id.
35
- * @return {string} An ID.
36
- */
37
- const buildWidgetAreaPostId = widgetAreaId => `widget-area-${widgetAreaId}`;
38
-
39
- /**
40
- * Builds an ID for a global widget areas post.
41
- *
42
- * @return {string} An ID.
43
- */
44
- exports.buildWidgetAreaPostId = buildWidgetAreaPostId;
29
+ module.exports = __toCommonJS(utils_exports);
30
+ const KIND = "root";
31
+ const WIDGET_AREA_ENTITY_TYPE = "sidebar";
32
+ const POST_TYPE = "postType";
33
+ const buildWidgetAreaPostId = (widgetAreaId) => `widget-area-${widgetAreaId}`;
45
34
  const buildWidgetAreasPostId = () => `widget-areas`;
46
-
47
- /**
48
- * Builds a query to resolve sidebars.
49
- *
50
- * @return {Object} Query.
51
- */
52
- exports.buildWidgetAreasPostId = buildWidgetAreasPostId;
53
35
  function buildWidgetAreasQuery() {
54
36
  return {
55
37
  per_page: -1
56
38
  };
57
39
  }
58
-
59
- /**
60
- * Builds a query to resolve widgets.
61
- *
62
- * @return {Object} Query.
63
- */
64
40
  function buildWidgetsQuery() {
65
41
  return {
66
42
  per_page: -1,
67
- _embed: 'about'
43
+ _embed: "about"
68
44
  };
69
45
  }
70
-
71
- /**
72
- * Creates a stub post with given id and set of blocks. Used as a governing entity records
73
- * for all widget areas.
74
- *
75
- * @param {string} id Post ID.
76
- * @param {Array} blocks The list of blocks.
77
- * @return {Object} A stub post object formatted in compliance with the data layer.
78
- */
79
46
  const createStubPost = (id, blocks) => ({
80
47
  id,
81
48
  slug: id,
82
- status: 'draft',
83
- type: 'page',
49
+ status: "draft",
50
+ type: "page",
84
51
  blocks,
85
52
  meta: {
86
53
  widgetAreaId: id
87
54
  }
88
55
  });
89
- exports.createStubPost = createStubPost;
90
- //# sourceMappingURL=utils.js.map
56
+ // Annotate the CommonJS export names for ESM import in node:
57
+ 0 && (module.exports = {
58
+ KIND,
59
+ POST_TYPE,
60
+ WIDGET_AREA_ENTITY_TYPE,
61
+ buildWidgetAreaPostId,
62
+ buildWidgetAreasPostId,
63
+ buildWidgetAreasQuery,
64
+ buildWidgetsQuery,
65
+ createStubPost
66
+ });
67
+ //# sourceMappingURL=utils.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["KIND","exports","WIDGET_AREA_ENTITY_TYPE","POST_TYPE","buildWidgetAreaPostId","widgetAreaId","buildWidgetAreasPostId","buildWidgetAreasQuery","per_page","buildWidgetsQuery","_embed","createStubPost","id","blocks","slug","status","type","meta"],"sources":["@wordpress/edit-widgets/src/store/utils.js"],"sourcesContent":["/**\n * \"Kind\" of the navigation post.\n *\n * @type {string}\n */\nexport const KIND = 'root';\n\n/**\n * \"post type\" of the navigation post.\n *\n * @type {string}\n */\nexport const WIDGET_AREA_ENTITY_TYPE = 'sidebar';\n\n/**\n * \"post type\" of the widget area post.\n *\n * @type {string}\n */\nexport const POST_TYPE = 'postType';\n\n/**\n * Builds an ID for a new widget area post.\n *\n * @param {number} widgetAreaId Widget area id.\n * @return {string} An ID.\n */\nexport const buildWidgetAreaPostId = ( widgetAreaId ) =>\n\t`widget-area-${ widgetAreaId }`;\n\n/**\n * Builds an ID for a global widget areas post.\n *\n * @return {string} An ID.\n */\nexport const buildWidgetAreasPostId = () => `widget-areas`;\n\n/**\n * Builds a query to resolve sidebars.\n *\n * @return {Object} Query.\n */\nexport function buildWidgetAreasQuery() {\n\treturn {\n\t\tper_page: -1,\n\t};\n}\n\n/**\n * Builds a query to resolve widgets.\n *\n * @return {Object} Query.\n */\nexport function buildWidgetsQuery() {\n\treturn {\n\t\tper_page: -1,\n\t\t_embed: 'about',\n\t};\n}\n\n/**\n * Creates a stub post with given id and set of blocks. Used as a governing entity records\n * for all widget areas.\n *\n * @param {string} id Post ID.\n * @param {Array} blocks The list of blocks.\n * @return {Object} A stub post object formatted in compliance with the data layer.\n */\nexport const createStubPost = ( id, blocks ) => ( {\n\tid,\n\tslug: id,\n\tstatus: 'draft',\n\ttype: 'page',\n\tblocks,\n\tmeta: {\n\t\twidgetAreaId: id,\n\t},\n} );\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG,MAAM;;AAE1B;AACA;AACA;AACA;AACA;AACO,MAAME,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,GAAG,SAAS;;AAEhD;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,GAAAF,OAAA,CAAAE,SAAA,GAAG,UAAU;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,qBAAqB,GAAKC,YAAY,IAClD,eAAgBA,YAAY,EAAG;;AAEhC;AACA;AACA;AACA;AACA;AAJAJ,OAAA,CAAAG,qBAAA,GAAAA,qBAAA;AAKO,MAAME,sBAAsB,GAAGA,CAAA,KAAM,cAAc;;AAE1D;AACA;AACA;AACA;AACA;AAJAL,OAAA,CAAAK,sBAAA,GAAAA,sBAAA;AAKO,SAASC,qBAAqBA,CAAA,EAAG;EACvC,OAAO;IACNC,QAAQ,EAAE,CAAC;EACZ,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAAA,EAAG;EACnC,OAAO;IACND,QAAQ,EAAE,CAAC,CAAC;IACZE,MAAM,EAAE;EACT,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,cAAc,GAAGA,CAAEC,EAAE,EAAEC,MAAM,MAAQ;EACjDD,EAAE;EACFE,IAAI,EAAEF,EAAE;EACRG,MAAM,EAAE,OAAO;EACfC,IAAI,EAAE,MAAM;EACZH,MAAM;EACNI,IAAI,EAAE;IACLZ,YAAY,EAAEO;EACf;AACD,CAAC,CAAE;AAACX,OAAA,CAAAU,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/store/utils.js"],
4
+ "sourcesContent": ["/**\n * \"Kind\" of the navigation post.\n *\n * @type {string}\n */\nexport const KIND = 'root';\n\n/**\n * \"post type\" of the navigation post.\n *\n * @type {string}\n */\nexport const WIDGET_AREA_ENTITY_TYPE = 'sidebar';\n\n/**\n * \"post type\" of the widget area post.\n *\n * @type {string}\n */\nexport const POST_TYPE = 'postType';\n\n/**\n * Builds an ID for a new widget area post.\n *\n * @param {number} widgetAreaId Widget area id.\n * @return {string} An ID.\n */\nexport const buildWidgetAreaPostId = ( widgetAreaId ) =>\n\t`widget-area-${ widgetAreaId }`;\n\n/**\n * Builds an ID for a global widget areas post.\n *\n * @return {string} An ID.\n */\nexport const buildWidgetAreasPostId = () => `widget-areas`;\n\n/**\n * Builds a query to resolve sidebars.\n *\n * @return {Object} Query.\n */\nexport function buildWidgetAreasQuery() {\n\treturn {\n\t\tper_page: -1,\n\t};\n}\n\n/**\n * Builds a query to resolve widgets.\n *\n * @return {Object} Query.\n */\nexport function buildWidgetsQuery() {\n\treturn {\n\t\tper_page: -1,\n\t\t_embed: 'about',\n\t};\n}\n\n/**\n * Creates a stub post with given id and set of blocks. Used as a governing entity records\n * for all widget areas.\n *\n * @param {string} id Post ID.\n * @param {Array} blocks The list of blocks.\n * @return {Object} A stub post object formatted in compliance with the data layer.\n */\nexport const createStubPost = ( id, blocks ) => ( {\n\tid,\n\tslug: id,\n\tstatus: 'draft',\n\ttype: 'page',\n\tblocks,\n\tmeta: {\n\t\twidgetAreaId: id,\n\t},\n} );\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,MAAM,OAAO;AAOb,MAAM,0BAA0B;AAOhC,MAAM,YAAY;AAQlB,MAAM,wBAAwB,CAAE,iBACtC,eAAgB,YAAa;AAOvB,MAAM,yBAAyB,MAAM;AAOrC,SAAS,wBAAwB;AACvC,SAAO;AAAA,IACN,UAAU;AAAA,EACX;AACD;AAOO,SAAS,oBAAoB;AACnC,SAAO;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,EACT;AACD;AAUO,MAAM,iBAAiB,CAAE,IAAI,YAAc;AAAA,EACjD;AAAA,EACA,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,IACL,cAAc;AAAA,EACf;AACD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://schemas.wp.org/trunk/block.json",
3
+ "apiVersion": 3,
4
+ "name": "core/widget-area",
5
+ "title": "Widget Area",
6
+ "category": "widgets",
7
+ "attributes": {
8
+ "id": {
9
+ "type": "string"
10
+ },
11
+ "name": {
12
+ "type": "string"
13
+ }
14
+ },
15
+ "supports": {
16
+ "html": false,
17
+ "inserter": false,
18
+ "customClassName": false,
19
+ "reusable": false,
20
+ "__experimentalToolbar": false,
21
+ "__experimentalParentSelector": false,
22
+ "__experimentalDisableBlockOverlay": true
23
+ },
24
+ "editorStyle": "wp-block-widget-area-editor",
25
+ "style": "wp-block-widget-area"
26
+ }
@@ -1,34 +1,30 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useEffect, useState, useCallback, useRef } from '@wordpress/element';
5
- import { useSelect, useDispatch } from '@wordpress/data';
6
- import { EntityProvider } from '@wordpress/core-data';
7
- import { __unstableDisclosureContent as DisclosureContent, Panel, PanelBody } from '@wordpress/components';
8
- import { useBlockProps } from '@wordpress/block-editor';
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
- import WidgetAreaInnerBlocks from './inner-blocks';
14
- import { store as editWidgetsStore } from '../../../store';
15
- import useIsDraggingWithin from './use-is-dragging-within';
16
-
17
- /** @typedef {import('@wordpress/element').RefObject} RefObject */
18
- import { jsx as _jsx } from "react/jsx-runtime";
19
- export default function WidgetAreaEdit({
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState, useCallback, useRef } from "@wordpress/element";
3
+ import { useSelect, useDispatch } from "@wordpress/data";
4
+ import { EntityProvider } from "@wordpress/core-data";
5
+ import {
6
+ __unstableDisclosureContent as DisclosureContent,
7
+ Panel,
8
+ PanelBody
9
+ } from "@wordpress/components";
10
+ import { useBlockProps } from "@wordpress/block-editor";
11
+ import WidgetAreaInnerBlocks from "./inner-blocks";
12
+ import { store as editWidgetsStore } from "../../../store";
13
+ import useIsDraggingWithin from "./use-is-dragging-within";
14
+ function WidgetAreaEdit({
20
15
  clientId,
21
- attributes: {
22
- id,
23
- name
24
- }
16
+ attributes: { id, name }
25
17
  }) {
26
- const isOpen = useSelect(select => select(editWidgetsStore).getIsWidgetAreaOpen(clientId), [clientId]);
27
- const {
28
- setIsWidgetAreaOpen
29
- } = useDispatch(editWidgetsStore);
18
+ const isOpen = useSelect(
19
+ (select) => select(editWidgetsStore).getIsWidgetAreaOpen(clientId),
20
+ [clientId]
21
+ );
22
+ const { setIsWidgetAreaOpen } = useDispatch(editWidgetsStore);
30
23
  const wrapper = useRef();
31
- const setOpen = useCallback(openState => setIsWidgetAreaOpen(clientId, openState), [clientId]);
24
+ const setOpen = useCallback(
25
+ (openState) => setIsWidgetAreaOpen(clientId, openState),
26
+ [clientId]
27
+ );
32
28
  const isDragging = useIsDragging(wrapper);
33
29
  const isDraggingWithin = useIsDraggingWithin(wrapper);
34
30
  const [openedWhileDragging, setOpenedWhileDragging] = useState(false);
@@ -45,68 +41,60 @@ export default function WidgetAreaEdit({
45
41
  }
46
42
  }, [isOpen, isDragging, isDraggingWithin, openedWhileDragging]);
47
43
  const blockProps = useBlockProps();
48
- return /*#__PURE__*/_jsx("div", {
49
- ...blockProps,
50
- children: /*#__PURE__*/_jsx(Panel, {
51
- ref: wrapper,
52
- children: /*#__PURE__*/_jsx(PanelBody, {
53
- title: name,
54
- opened: isOpen,
55
- onToggle: () => {
56
- setIsWidgetAreaOpen(clientId, !isOpen);
57
- },
58
- scrollAfterOpen: !isDragging,
59
- children: ({
60
- opened
61
- }) =>
62
- /*#__PURE__*/
44
+ return /* @__PURE__ */ jsx("div", { ...blockProps, children: /* @__PURE__ */ jsx(Panel, { ref: wrapper, children: /* @__PURE__ */ jsx(
45
+ PanelBody,
46
+ {
47
+ title: name,
48
+ opened: isOpen,
49
+ onToggle: () => {
50
+ setIsWidgetAreaOpen(clientId, !isOpen);
51
+ },
52
+ scrollAfterOpen: !isDragging,
53
+ children: ({ opened }) => (
63
54
  // This is required to ensure LegacyWidget blocks are not
64
55
  // unmounted when the panel is collapsed. Unmounting legacy
65
56
  // widgets may have unintended consequences (e.g. TinyMCE
66
57
  // not being properly reinitialized)
67
- _jsx(DisclosureContent, {
68
- className: "wp-block-widget-area__panel-body-content",
69
- visible: opened,
70
- children: /*#__PURE__*/_jsx(EntityProvider, {
71
- kind: "root",
72
- type: "postType",
73
- id: `widget-area-${id}`,
74
- children: /*#__PURE__*/_jsx(WidgetAreaInnerBlocks, {
75
- id: id
76
- })
77
- })
78
- })
79
- })
80
- })
81
- });
58
+ /* @__PURE__ */ jsx(
59
+ DisclosureContent,
60
+ {
61
+ className: "wp-block-widget-area__panel-body-content",
62
+ visible: opened,
63
+ children: /* @__PURE__ */ jsx(
64
+ EntityProvider,
65
+ {
66
+ kind: "root",
67
+ type: "postType",
68
+ id: `widget-area-${id}`,
69
+ children: /* @__PURE__ */ jsx(WidgetAreaInnerBlocks, { id })
70
+ }
71
+ )
72
+ }
73
+ )
74
+ )
75
+ }
76
+ ) }) });
82
77
  }
83
-
84
- /**
85
- * A React hook to determine if dragging is active.
86
- *
87
- * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
88
- *
89
- * @return {boolean} Is dragging within the entire document.
90
- */
91
- const useIsDragging = elementRef => {
78
+ const useIsDragging = (elementRef) => {
92
79
  const [isDragging, setIsDragging] = useState(false);
93
80
  useEffect(() => {
94
- const {
95
- ownerDocument
96
- } = elementRef.current;
81
+ const { ownerDocument } = elementRef.current;
97
82
  function handleDragStart() {
98
83
  setIsDragging(true);
99
84
  }
100
85
  function handleDragEnd() {
101
86
  setIsDragging(false);
102
87
  }
103
- ownerDocument.addEventListener('dragstart', handleDragStart);
104
- ownerDocument.addEventListener('dragend', handleDragEnd);
88
+ ownerDocument.addEventListener("dragstart", handleDragStart);
89
+ ownerDocument.addEventListener("dragend", handleDragEnd);
105
90
  return () => {
106
- ownerDocument.removeEventListener('dragstart', handleDragStart);
107
- ownerDocument.removeEventListener('dragend', handleDragEnd);
91
+ ownerDocument.removeEventListener("dragstart", handleDragStart);
92
+ ownerDocument.removeEventListener("dragend", handleDragEnd);
108
93
  };
109
94
  }, []);
110
95
  return isDragging;
111
96
  };
112
- //# sourceMappingURL=index.js.map
97
+ export {
98
+ WidgetAreaEdit as default
99
+ };
100
+ //# sourceMappingURL=index.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["useEffect","useState","useCallback","useRef","useSelect","useDispatch","EntityProvider","__unstableDisclosureContent","DisclosureContent","Panel","PanelBody","useBlockProps","WidgetAreaInnerBlocks","store","editWidgetsStore","useIsDraggingWithin","jsx","_jsx","WidgetAreaEdit","clientId","attributes","id","name","isOpen","select","getIsWidgetAreaOpen","setIsWidgetAreaOpen","wrapper","setOpen","openState","isDragging","useIsDragging","isDraggingWithin","openedWhileDragging","setOpenedWhileDragging","blockProps","children","ref","title","opened","onToggle","scrollAfterOpen","className","visible","kind","type","elementRef","setIsDragging","ownerDocument","current","handleDragStart","handleDragEnd","addEventListener","removeEventListener"],"sources":["@wordpress/edit-widgets/src/blocks/widget-area/edit/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useCallback, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { EntityProvider } from '@wordpress/core-data';\nimport {\n\t__unstableDisclosureContent as DisclosureContent,\n\tPanel,\n\tPanelBody,\n} from '@wordpress/components';\nimport { useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreaInnerBlocks from './inner-blocks';\nimport { store as editWidgetsStore } from '../../../store';\nimport useIsDraggingWithin from './use-is-dragging-within';\n\n/** @typedef {import('@wordpress/element').RefObject} RefObject */\n\nexport default function WidgetAreaEdit( {\n\tclientId,\n\tattributes: { id, name },\n} ) {\n\tconst isOpen = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editWidgetsStore ).getIsWidgetAreaOpen( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { setIsWidgetAreaOpen } = useDispatch( editWidgetsStore );\n\n\tconst wrapper = useRef();\n\tconst setOpen = useCallback(\n\t\t( openState ) => setIsWidgetAreaOpen( clientId, openState ),\n\t\t[ clientId ]\n\t);\n\tconst isDragging = useIsDragging( wrapper );\n\tconst isDraggingWithin = useIsDraggingWithin( wrapper );\n\n\tconst [ openedWhileDragging, setOpenedWhileDragging ] = useState( false );\n\tuseEffect( () => {\n\t\tif ( ! isDragging ) {\n\t\t\tsetOpenedWhileDragging( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isDraggingWithin && ! isOpen ) {\n\t\t\tsetOpen( true );\n\t\t\tsetOpenedWhileDragging( true );\n\t\t} else if ( ! isDraggingWithin && isOpen && openedWhileDragging ) {\n\t\t\tsetOpen( false );\n\t\t}\n\t}, [ isOpen, isDragging, isDraggingWithin, openedWhileDragging ] );\n\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Panel ref={ wrapper }>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ name }\n\t\t\t\t\topened={ isOpen }\n\t\t\t\t\tonToggle={ () => {\n\t\t\t\t\t\tsetIsWidgetAreaOpen( clientId, ! isOpen );\n\t\t\t\t\t} }\n\t\t\t\t\tscrollAfterOpen={ ! isDragging }\n\t\t\t\t>\n\t\t\t\t\t{ ( { opened } ) => (\n\t\t\t\t\t\t// This is required to ensure LegacyWidget blocks are not\n\t\t\t\t\t\t// unmounted when the panel is collapsed. Unmounting legacy\n\t\t\t\t\t\t// widgets may have unintended consequences (e.g. TinyMCE\n\t\t\t\t\t\t// not being properly reinitialized)\n\t\t\t\t\t\t<DisclosureContent\n\t\t\t\t\t\t\tclassName=\"wp-block-widget-area__panel-body-content\"\n\t\t\t\t\t\t\tvisible={ opened }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<EntityProvider\n\t\t\t\t\t\t\t\tkind=\"root\"\n\t\t\t\t\t\t\t\ttype=\"postType\"\n\t\t\t\t\t\t\t\tid={ `widget-area-${ id }` }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<WidgetAreaInnerBlocks id={ id } />\n\t\t\t\t\t\t\t</EntityProvider>\n\t\t\t\t\t\t</DisclosureContent>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</Panel>\n\t\t</div>\n\t);\n}\n\n/**\n * A React hook to determine if dragging is active.\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the entire document.\n */\nconst useIsDragging = ( elementRef ) => {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart() {\n\t\t\tsetIsDragging( true );\n\t\t}\n\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDragging( false );\n\t\t}\n\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t};\n\t}, [] );\n\n\treturn isDragging;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/blocks/widget-area/edit/index.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useCallback, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { EntityProvider } from '@wordpress/core-data';\nimport {\n\t__unstableDisclosureContent as DisclosureContent,\n\tPanel,\n\tPanelBody,\n} from '@wordpress/components';\nimport { useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreaInnerBlocks from './inner-blocks';\nimport { store as editWidgetsStore } from '../../../store';\nimport useIsDraggingWithin from './use-is-dragging-within';\n\n/** @typedef {import('@wordpress/element').RefObject} RefObject */\n\nexport default function WidgetAreaEdit( {\n\tclientId,\n\tattributes: { id, name },\n} ) {\n\tconst isOpen = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editWidgetsStore ).getIsWidgetAreaOpen( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { setIsWidgetAreaOpen } = useDispatch( editWidgetsStore );\n\n\tconst wrapper = useRef();\n\tconst setOpen = useCallback(\n\t\t( openState ) => setIsWidgetAreaOpen( clientId, openState ),\n\t\t[ clientId ]\n\t);\n\tconst isDragging = useIsDragging( wrapper );\n\tconst isDraggingWithin = useIsDraggingWithin( wrapper );\n\n\tconst [ openedWhileDragging, setOpenedWhileDragging ] = useState( false );\n\tuseEffect( () => {\n\t\tif ( ! isDragging ) {\n\t\t\tsetOpenedWhileDragging( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isDraggingWithin && ! isOpen ) {\n\t\t\tsetOpen( true );\n\t\t\tsetOpenedWhileDragging( true );\n\t\t} else if ( ! isDraggingWithin && isOpen && openedWhileDragging ) {\n\t\t\tsetOpen( false );\n\t\t}\n\t}, [ isOpen, isDragging, isDraggingWithin, openedWhileDragging ] );\n\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Panel ref={ wrapper }>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ name }\n\t\t\t\t\topened={ isOpen }\n\t\t\t\t\tonToggle={ () => {\n\t\t\t\t\t\tsetIsWidgetAreaOpen( clientId, ! isOpen );\n\t\t\t\t\t} }\n\t\t\t\t\tscrollAfterOpen={ ! isDragging }\n\t\t\t\t>\n\t\t\t\t\t{ ( { opened } ) => (\n\t\t\t\t\t\t// This is required to ensure LegacyWidget blocks are not\n\t\t\t\t\t\t// unmounted when the panel is collapsed. Unmounting legacy\n\t\t\t\t\t\t// widgets may have unintended consequences (e.g. TinyMCE\n\t\t\t\t\t\t// not being properly reinitialized)\n\t\t\t\t\t\t<DisclosureContent\n\t\t\t\t\t\t\tclassName=\"wp-block-widget-area__panel-body-content\"\n\t\t\t\t\t\t\tvisible={ opened }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<EntityProvider\n\t\t\t\t\t\t\t\tkind=\"root\"\n\t\t\t\t\t\t\t\ttype=\"postType\"\n\t\t\t\t\t\t\t\tid={ `widget-area-${ id }` }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<WidgetAreaInnerBlocks id={ id } />\n\t\t\t\t\t\t\t</EntityProvider>\n\t\t\t\t\t\t</DisclosureContent>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</Panel>\n\t\t</div>\n\t);\n}\n\n/**\n * A React hook to determine if dragging is active.\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the entire document.\n */\nconst useIsDragging = ( elementRef ) => {\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart() {\n\t\t\tsetIsDragging( true );\n\t\t}\n\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDragging( false );\n\t\t}\n\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t};\n\t}, [] );\n\n\treturn isDragging;\n};\n"],
5
+ "mappings": "AAmFQ;AAhFR,SAAS,WAAW,UAAU,aAAa,cAAc;AACzD,SAAS,WAAW,mBAAmB;AACvC,SAAS,sBAAsB;AAC/B;AAAA,EACC,+BAA+B;AAAA,EAC/B;AAAA,EACA;AAAA,OACM;AACP,SAAS,qBAAqB;AAK9B,OAAO,2BAA2B;AAClC,SAAS,SAAS,wBAAwB;AAC1C,OAAO,yBAAyB;AAIjB,SAAR,eAAiC;AAAA,EACvC;AAAA,EACA,YAAY,EAAE,IAAI,KAAK;AACxB,GAAI;AACH,QAAM,SAAS;AAAA,IACd,CAAE,WACD,OAAQ,gBAAiB,EAAE,oBAAqB,QAAS;AAAA,IAC1D,CAAE,QAAS;AAAA,EACZ;AACA,QAAM,EAAE,oBAAoB,IAAI,YAAa,gBAAiB;AAE9D,QAAM,UAAU,OAAO;AACvB,QAAM,UAAU;AAAA,IACf,CAAE,cAAe,oBAAqB,UAAU,SAAU;AAAA,IAC1D,CAAE,QAAS;AAAA,EACZ;AACA,QAAM,aAAa,cAAe,OAAQ;AAC1C,QAAM,mBAAmB,oBAAqB,OAAQ;AAEtD,QAAM,CAAE,qBAAqB,sBAAuB,IAAI,SAAU,KAAM;AACxE,YAAW,MAAM;AAChB,QAAK,CAAE,YAAa;AACnB,6BAAwB,KAAM;AAC9B;AAAA,IACD;AAEA,QAAK,oBAAoB,CAAE,QAAS;AACnC,cAAS,IAAK;AACd,6BAAwB,IAAK;AAAA,IAC9B,WAAY,CAAE,oBAAoB,UAAU,qBAAsB;AACjE,cAAS,KAAM;AAAA,IAChB;AAAA,EACD,GAAG,CAAE,QAAQ,YAAY,kBAAkB,mBAAoB,CAAE;AAEjE,QAAM,aAAa,cAAc;AAEjC,SACC,oBAAC,SAAM,GAAG,YACT,8BAAC,SAAM,KAAM,SACZ;AAAA,IAAC;AAAA;AAAA,MACA,OAAQ;AAAA,MACR,QAAS;AAAA,MACT,UAAW,MAAM;AAChB,4BAAqB,UAAU,CAAE,MAAO;AAAA,MACzC;AAAA,MACA,iBAAkB,CAAE;AAAA,MAElB,WAAE,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,QAKZ;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,SAAU;AAAA,YAEV;AAAA,cAAC;AAAA;AAAA,gBACA,MAAK;AAAA,gBACL,MAAK;AAAA,gBACL,IAAK,eAAgB,EAAG;AAAA,gBAExB,8BAAC,yBAAsB,IAAU;AAAA;AAAA,YAClC;AAAA;AAAA,QACD;AAAA;AAAA;AAAA,EAEF,GACD,GACD;AAEF;AASA,MAAM,gBAAgB,CAAE,eAAgB;AACvC,QAAM,CAAE,YAAY,aAAc,IAAI,SAAU,KAAM;AAEtD,YAAW,MAAM;AAChB,UAAM,EAAE,cAAc,IAAI,WAAW;AAErC,aAAS,kBAAkB;AAC1B,oBAAe,IAAK;AAAA,IACrB;AAEA,aAAS,gBAAgB;AACxB,oBAAe,KAAM;AAAA,IACtB;AAEA,kBAAc,iBAAkB,aAAa,eAAgB;AAC7D,kBAAc,iBAAkB,WAAW,aAAc;AAEzD,WAAO,MAAM;AACZ,oBAAc,oBAAqB,aAAa,eAAgB;AAChE,oBAAc,oBAAqB,WAAW,aAAc;AAAA,IAC7D;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,SAAO;AACR;",
6
+ "names": []
7
+ }