@wordpress/editor 13.2.0 → 13.3.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 (122) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/error-boundary/index.js +24 -30
  3. package/build/components/error-boundary/index.js.map +1 -1
  4. package/build/components/media-categories/index.js +237 -0
  5. package/build/components/media-categories/index.js.map +1 -0
  6. package/build/components/page-attributes/parent.js +1 -1
  7. package/build/components/page-attributes/parent.js.map +1 -1
  8. package/build/components/post-publish-panel/postpublish.js +1 -0
  9. package/build/components/post-publish-panel/postpublish.js.map +1 -1
  10. package/build/components/post-slug/index.js +1 -0
  11. package/build/components/post-slug/index.js.map +1 -1
  12. package/build/components/post-taxonomies/hierarchical-term-selector.js +7 -3
  13. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  14. package/build/components/post-template/index.js +7 -4
  15. package/build/components/post-template/index.js.map +1 -1
  16. package/build/components/post-url/index.js +1 -0
  17. package/build/components/post-url/index.js.map +1 -1
  18. package/build/components/provider/index.js +26 -8
  19. package/build/components/provider/index.js.map +1 -1
  20. package/build/components/provider/index.native.js +21 -14
  21. package/build/components/provider/index.native.js.map +1 -1
  22. package/build/components/provider/use-block-editor-settings.js +7 -4
  23. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  24. package/build/components/provider/use-block-editor-settings.native.js +1 -2
  25. package/build/components/provider/use-block-editor-settings.native.js.map +1 -1
  26. package/build/components/table-of-contents/index.js +3 -1
  27. package/build/components/table-of-contents/index.js.map +1 -1
  28. package/build/components/unsaved-changes-warning/index.js +1 -1
  29. package/build/components/unsaved-changes-warning/index.js.map +1 -1
  30. package/build/experiments.js +20 -0
  31. package/build/experiments.js.map +1 -0
  32. package/build/hooks/default-autocompleters.js +2 -7
  33. package/build/hooks/default-autocompleters.js.map +1 -1
  34. package/build/index.js +14 -0
  35. package/build/index.js.map +1 -1
  36. package/build/index.native.js +14 -0
  37. package/build/index.native.js.map +1 -1
  38. package/build/lockUnlock.js +19 -0
  39. package/build/lockUnlock.js.map +1 -0
  40. package/build/store/defaults.js +1 -2
  41. package/build/store/defaults.js.map +1 -1
  42. package/build/store/selectors.js +1 -1
  43. package/build/store/selectors.js.map +1 -1
  44. package/build/utils/terms.js +9 -5
  45. package/build/utils/terms.js.map +1 -1
  46. package/build-module/components/error-boundary/index.js +24 -30
  47. package/build-module/components/error-boundary/index.js.map +1 -1
  48. package/build-module/components/media-categories/index.js +225 -0
  49. package/build-module/components/media-categories/index.js.map +1 -0
  50. package/build-module/components/page-attributes/parent.js +2 -2
  51. package/build-module/components/page-attributes/parent.js.map +1 -1
  52. package/build-module/components/post-publish-panel/postpublish.js +1 -0
  53. package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
  54. package/build-module/components/post-slug/index.js +1 -0
  55. package/build-module/components/post-slug/index.js.map +1 -1
  56. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +8 -5
  57. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  58. package/build-module/components/post-template/index.js +8 -5
  59. package/build-module/components/post-template/index.js.map +1 -1
  60. package/build-module/components/post-url/index.js +1 -0
  61. package/build-module/components/post-url/index.js.map +1 -1
  62. package/build-module/components/provider/index.js +21 -9
  63. package/build-module/components/provider/index.js.map +1 -1
  64. package/build-module/components/provider/index.native.js +20 -12
  65. package/build-module/components/provider/index.native.js.map +1 -1
  66. package/build-module/components/provider/use-block-editor-settings.js +5 -5
  67. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  68. package/build-module/components/provider/use-block-editor-settings.native.js +1 -2
  69. package/build-module/components/provider/use-block-editor-settings.native.js.map +1 -1
  70. package/build-module/components/table-of-contents/index.js +3 -1
  71. package/build-module/components/table-of-contents/index.js.map +1 -1
  72. package/build-module/components/unsaved-changes-warning/index.js +1 -1
  73. package/build-module/components/unsaved-changes-warning/index.js.map +1 -1
  74. package/build-module/experiments.js +10 -0
  75. package/build-module/experiments.js.map +1 -0
  76. package/build-module/hooks/default-autocompleters.js +2 -6
  77. package/build-module/hooks/default-autocompleters.js.map +1 -1
  78. package/build-module/index.js +1 -0
  79. package/build-module/index.js.map +1 -1
  80. package/build-module/index.native.js +1 -0
  81. package/build-module/index.native.js.map +1 -1
  82. package/build-module/lockUnlock.js +9 -0
  83. package/build-module/lockUnlock.js.map +1 -0
  84. package/build-module/store/defaults.js +1 -2
  85. package/build-module/store/defaults.js.map +1 -1
  86. package/build-module/store/selectors.js +1 -1
  87. package/build-module/store/selectors.js.map +1 -1
  88. package/build-module/utils/terms.js +9 -6
  89. package/build-module/utils/terms.js.map +1 -1
  90. package/build-style/style-rtl.css +0 -3
  91. package/build-style/style.css +0 -3
  92. package/package.json +30 -29
  93. package/src/components/autosave-monitor/test/index.js +8 -2
  94. package/src/components/editor-help/test/index.native.js +5 -5
  95. package/src/components/error-boundary/index.js +24 -37
  96. package/src/components/media-categories/index.js +247 -0
  97. package/src/components/page-attributes/parent.js +2 -2
  98. package/src/components/page-attributes/test/order.js +4 -14
  99. package/src/components/post-preview-button/test/index.js +5 -17
  100. package/src/components/post-publish-button/test/index.js +5 -17
  101. package/src/components/post-publish-panel/postpublish.js +1 -0
  102. package/src/components/post-publish-panel/style.scss +1 -5
  103. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +2 -18
  104. package/src/components/post-saved-state/test/index.js +1 -5
  105. package/src/components/post-slug/index.js +1 -0
  106. package/src/components/post-taxonomies/hierarchical-term-selector.js +23 -17
  107. package/src/components/post-template/index.js +3 -4
  108. package/src/components/post-url/index.js +1 -0
  109. package/src/components/provider/index.js +120 -91
  110. package/src/components/provider/index.native.js +26 -17
  111. package/src/components/provider/use-block-editor-settings.js +60 -49
  112. package/src/components/provider/use-block-editor-settings.native.js +1 -2
  113. package/src/components/table-of-contents/index.js +3 -1
  114. package/src/components/unsaved-changes-warning/index.js +1 -1
  115. package/src/experiments.js +10 -0
  116. package/src/hooks/default-autocompleters.js +1 -6
  117. package/src/index.js +1 -0
  118. package/src/index.native.js +1 -0
  119. package/src/lockUnlock.js +9 -0
  120. package/src/store/defaults.js +0 -1
  121. package/src/store/selectors.js +1 -1
  122. package/src/utils/terms.js +8 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/hierarchical-term-selector.js"],"names":["get","unescape","unescapeString","__","_n","_x","sprintf","useMemo","useState","Button","CheckboxControl","TextControl","TreeSelect","withFilters","useDispatch","useSelect","useDebounce","store","coreStore","speak","buildTermsTree","editorStore","DEFAULT_QUERY","per_page","orderby","order","_fields","context","MIN_TERMS_COUNT_FOR_FILTER","EMPTY_ARRAY","sortBySelected","termsTree","terms","treeHasSelection","termTree","indexOf","id","undefined","children","map","filter","child","length","termOrChildIsSelected","termA","termB","termASelected","termBSelected","newTermTree","sort","findTerm","parent","name","find","term","parseInt","toLowerCase","getFilterMatcher","filterValue","matchTermsForFilter","originalTerm","HierarchicalTermSelector","slug","adding","setAdding","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","select","getCurrentPost","getEditedPostAttribute","getTaxonomy","getEntityRecords","isResolving","_taxonomy","rest_base","editPost","saveEntityRecord","availableTermsTree","addTerm","onUpdateTerms","termIds","onChange","termId","hasTerm","includes","newTerms","onChangeFormName","value","onChangeFormParent","parentId","onToggleForm","onAddTerm","event","preventDefault","existingTerm","some","newTerm","termAddedMessage","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","renderTerms","renderedTerms","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","groupLabel","showFilter"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, unescape as unescapeString } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tTextControl,\n\tTreeSelect,\n\twithFilters,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module Constants\n */\nconst DEFAULT_QUERY = {\n\tper_page: -1,\n\torderby: 'name',\n\torder: 'asc',\n\t_fields: 'id,name,parent',\n\tcontext: 'view',\n};\n\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Sort Terms by Selected.\n *\n * @param {Object[]} termsTree Array of terms in tree format.\n * @param {number[]} terms Selected terms.\n *\n * @return {Object[]} Sorted array of terms.\n */\nexport function sortBySelected( termsTree, terms ) {\n\tconst treeHasSelection = ( termTree ) => {\n\t\tif ( terms.indexOf( termTree.id ) !== -1 ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( undefined === termTree.children ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\ttermTree.children\n\t\t\t\t.map( treeHasSelection )\n\t\t\t\t.filter( ( child ) => child ).length > 0\n\t\t);\n\t};\n\tconst termOrChildIsSelected = ( termA, termB ) => {\n\t\tconst termASelected = treeHasSelection( termA );\n\t\tconst termBSelected = treeHasSelection( termB );\n\n\t\tif ( termASelected === termBSelected ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( termASelected && ! termBSelected ) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif ( ! termASelected && termBSelected ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t};\n\tconst newTermTree = [ ...termsTree ];\n\tnewTermTree.sort( termOrChildIsSelected );\n\treturn newTermTree;\n}\n\n/**\n * Find term by parent id or name.\n *\n * @param {Object[]} terms Array of Terms.\n * @param {number|string} parent id.\n * @param {string} name Term name.\n * @return {Object} Term object.\n */\nexport function findTerm( terms, parent, name ) {\n\treturn terms.find( ( term ) => {\n\t\treturn (\n\t\t\t( ( ! term.parent && ! parent ) ||\n\t\t\t\tparseInt( term.parent ) === parseInt( parent ) ) &&\n\t\t\tterm.name.toLowerCase() === name.toLowerCase()\n\t\t);\n\t} );\n}\n\n/**\n * Get filter matcher function.\n *\n * @param {string} filterValue Filter value.\n * @return {(function(Object): (Object|boolean))} Matcher function.\n */\nexport function getFilterMatcher( filterValue ) {\n\tconst matchTermsForFilter = ( originalTerm ) => {\n\t\tif ( '' === filterValue ) {\n\t\t\treturn originalTerm;\n\t\t}\n\n\t\t// Shallow clone, because we'll be filtering the term's children and\n\t\t// don't want to modify the original term.\n\t\tconst term = { ...originalTerm };\n\n\t\t// Map and filter the children, recursive so we deal with grandchildren\n\t\t// and any deeper levels.\n\t\tif ( term.children.length > 0 ) {\n\t\t\tterm.children = term.children\n\t\t\t\t.map( matchTermsForFilter )\n\t\t\t\t.filter( ( child ) => child );\n\t\t}\n\n\t\t// If the term's name contains the filterValue, or it has children\n\t\t// (i.e. some child matched at some point in the tree) then return it.\n\t\tif (\n\t\t\t-1 !==\n\t\t\t\tterm.name.toLowerCase().indexOf( filterValue.toLowerCase() ) ||\n\t\t\tterm.children.length > 0\n\t\t) {\n\t\t\treturn term;\n\t\t}\n\n\t\t// Otherwise, return false. After mapping, the list of terms will need\n\t\t// to have false values filtered out.\n\t\treturn false;\n\t};\n\treturn matchTermsForFilter;\n}\n\n/**\n * Hierarchical term selector.\n *\n * @param {Object} props Component props.\n * @param {string} props.slug Taxonomy slug.\n * @return {WPElement} Hierarchical term selector component.\n */\nexport function HierarchicalTermSelector( { slug } ) {\n\tconst [ adding, setAdding ] = useState( false );\n\tconst [ formName, setFormName ] = useState( '' );\n\t/**\n\t * @type {[number|'', Function]}\n\t */\n\tconst [ formParent, setFormParent ] = useState( '' );\n\tconst [ showForm, setShowForm ] = useState( false );\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ filteredTermsTree, setFilteredTermsTree ] = useState( [] );\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tconst {\n\t\thasCreateAction,\n\t\thasAssignAction,\n\t\tterms,\n\t\tloading,\n\t\tavailableTerms,\n\t\ttaxonomy,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getTaxonomy, getEntityRecords, isResolving } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? get(\n\t\t\t\t\t\t\tgetCurrentPost(),\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'_links',\n\t\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t )\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? get(\n\t\t\t\t\t\t\tgetCurrentPost(),\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'_links',\n\t\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t )\n\t\t\t\t\t: false,\n\t\t\t\tterms: _taxonomy\n\t\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\tloading: isResolving( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tDEFAULT_QUERY,\n\t\t\t\t] ),\n\t\t\t\tavailableTerms:\n\t\t\t\t\tgetEntityRecords( 'taxonomy', slug, DEFAULT_QUERY ) ||\n\t\t\t\t\tEMPTY_ARRAY,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst availableTermsTree = useMemo(\n\t\t() => sortBySelected( buildTermsTree( availableTerms ), terms ),\n\t\t// Remove `terms` from the dependency list to avoid reordering every time\n\t\t// checking or unchecking a term.\n\t\t[ availableTerms ]\n\t);\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Append new term.\n\t *\n\t * @param {Object} term Term object.\n\t * @return {Promise} A promise that resolves to save term object.\n\t */\n\tconst addTerm = ( term ) => {\n\t\treturn saveEntityRecord( 'taxonomy', slug, term );\n\t};\n\n\t/**\n\t * Update terms for post.\n\t *\n\t * @param {number[]} termIds Term ids.\n\t */\n\tconst onUpdateTerms = ( termIds ) => {\n\t\teditPost( { [ taxonomy.rest_base ]: termIds } );\n\t};\n\n\t/**\n\t * Handler for checking term.\n\t *\n\t * @param {number} termId\n\t */\n\tconst onChange = ( termId ) => {\n\t\tconst hasTerm = terms.includes( termId );\n\t\tconst newTerms = hasTerm\n\t\t\t? terms.filter( ( id ) => id !== termId )\n\t\t\t: [ ...terms, termId ];\n\t\tonUpdateTerms( newTerms );\n\t};\n\n\tconst onChangeFormName = ( value ) => {\n\t\tsetFormName( value );\n\t};\n\n\t/**\n\t * Handler for changing form parent.\n\t *\n\t * @param {number|''} parentId Parent post id.\n\t */\n\tconst onChangeFormParent = ( parentId ) => {\n\t\tsetFormParent( parentId );\n\t};\n\n\tconst onToggleForm = () => {\n\t\tsetShowForm( ! showForm );\n\t};\n\n\tconst onAddTerm = async ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( formName === '' || adding ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the term we are adding already exists.\n\t\tconst existingTerm = findTerm( availableTerms, formParent, formName );\n\t\tif ( existingTerm ) {\n\t\t\t// If the term we are adding exists but is not selected select it.\n\t\t\tif ( ! terms.some( ( term ) => term === existingTerm.id ) ) {\n\t\t\t\tonUpdateTerms( [ ...terms, existingTerm.id ] );\n\t\t\t}\n\n\t\t\tsetFormName( '' );\n\t\t\tsetFormParent( '' );\n\n\t\t\treturn;\n\t\t}\n\t\tsetAdding( true );\n\n\t\tconst newTerm = await addTerm( {\n\t\t\tname: formName,\n\t\t\tparent: formParent ? formParent : undefined,\n\t\t} );\n\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: taxonomy name */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\tget(\n\t\t\t\ttaxonomy,\n\t\t\t\t[ 'labels', 'singular_name' ],\n\t\t\t\tslug === 'category' ? __( 'Category' ) : __( 'Term' )\n\t\t\t)\n\t\t);\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tsetAdding( false );\n\t\tsetFormName( '' );\n\t\tsetFormParent( '' );\n\t\tonUpdateTerms( [ ...terms, newTerm.id ] );\n\t};\n\n\tconst setFilter = ( value ) => {\n\t\tconst newFilteredTermsTree = availableTermsTree\n\t\t\t.map( getFilterMatcher( value ) )\n\t\t\t.filter( ( term ) => term );\n\t\tconst getResultCount = ( termsTree ) => {\n\t\t\tlet count = 0;\n\t\t\tfor ( let i = 0; i < termsTree.length; i++ ) {\n\t\t\t\tcount++;\n\t\t\t\tif ( undefined !== termsTree[ i ].children ) {\n\t\t\t\t\tcount += getResultCount( termsTree[ i ].children );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t};\n\n\t\tsetFilterValue( value );\n\t\tsetFilteredTermsTree( newFilteredTermsTree );\n\n\t\tconst resultCount = getResultCount( newFilteredTermsTree );\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results */\n\t\t\t_n( '%d result found.', '%d results found.', resultCount ),\n\t\t\tresultCount\n\t\t);\n\n\t\tdebouncedSpeak( resultsFoundMessage, 'assertive' );\n\t};\n\n\tconst renderTerms = ( renderedTerms ) => {\n\t\treturn renderedTerms.map( ( term ) => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={ term.id }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-choice\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tchecked={ terms.indexOf( term.id ) !== -1 }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tconst termId = parseInt( term.id, 10 );\n\t\t\t\t\t\t\tonChange( termId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ unescapeString( term.name ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! term.children.length && (\n\t\t\t\t\t\t<div className=\"editor-post-taxonomies__hierarchical-terms-subchoices\">\n\t\t\t\t\t\t\t{ renderTerms( term.children ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\t};\n\n\tconst labelWithFallback = (\n\t\tlabelProperty,\n\t\tfallbackIsCategory,\n\t\tfallbackIsNotCategory\n\t) =>\n\t\tget(\n\t\t\ttaxonomy,\n\t\t\t[ 'labels', labelProperty ],\n\t\t\tslug === 'category' ? fallbackIsCategory : fallbackIsNotCategory\n\t\t);\n\tconst newTermButtonLabel = labelWithFallback(\n\t\t'add_new_item',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst parentSelectLabel = labelWithFallback(\n\t\t'parent_item',\n\t\t__( 'Parent Category' ),\n\t\t__( 'Parent Term' )\n\t);\n\tconst noParentOption = `— ${ parentSelectLabel } —`;\n\tconst newTermSubmitLabel = newTermButtonLabel;\n\tconst filterLabel = get(\n\t\ttaxonomy,\n\t\t[ 'labels', 'search_items' ],\n\t\t__( 'Search Terms' )\n\t);\n\tconst groupLabel = get( taxonomy, [ 'name' ], __( 'Terms' ) );\n\tconst showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n\n\treturn (\n\t\t<>\n\t\t\t{ showFilter && (\n\t\t\t\t<TextControl\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-filter\"\n\t\t\t\t\tlabel={ filterLabel }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ setFilter }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-list\"\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\trole=\"group\"\n\t\t\t\taria-label={ groupLabel }\n\t\t\t>\n\t\t\t\t{ renderTerms(\n\t\t\t\t\t'' !== filterValue ? filteredTermsTree : availableTermsTree\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! loading && hasCreateAction && (\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ onToggleForm }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-add\"\n\t\t\t\t\taria-expanded={ showForm }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t>\n\t\t\t\t\t{ newTermButtonLabel }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ showForm && (\n\t\t\t\t<form onSubmit={ onAddTerm }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-input\"\n\t\t\t\t\t\tlabel={ newTermLabel }\n\t\t\t\t\t\tvalue={ formName }\n\t\t\t\t\t\tonChange={ onChangeFormName }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! availableTerms.length && (\n\t\t\t\t\t\t<TreeSelect\n\t\t\t\t\t\t\tlabel={ parentSelectLabel }\n\t\t\t\t\t\t\tnoOptionLabel={ noParentOption }\n\t\t\t\t\t\t\tonChange={ onChangeFormParent }\n\t\t\t\t\t\t\tselectedId={ formParent }\n\t\t\t\t\t\t\ttree={ availableTermsTree }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-submit\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ newTermSubmitLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</form>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )(\n\tHierarchicalTermSelector\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/hierarchical-term-selector.js"],"names":["get","__","_n","_x","sprintf","useMemo","useState","Button","CheckboxControl","TextControl","TreeSelect","withFilters","__experimentalVStack","VStack","useDispatch","useSelect","useDebounce","store","coreStore","speak","decodeEntities","buildTermsTree","editorStore","DEFAULT_QUERY","per_page","orderby","order","_fields","context","MIN_TERMS_COUNT_FOR_FILTER","EMPTY_ARRAY","sortBySelected","termsTree","terms","treeHasSelection","termTree","indexOf","id","undefined","children","map","filter","child","length","termOrChildIsSelected","termA","termB","termASelected","termBSelected","newTermTree","sort","findTerm","parent","name","find","term","parseInt","toLowerCase","getFilterMatcher","filterValue","matchTermsForFilter","originalTerm","HierarchicalTermSelector","slug","adding","setAdding","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","select","getCurrentPost","getEditedPostAttribute","getTaxonomy","getEntityRecords","isResolving","_taxonomy","rest_base","editPost","saveEntityRecord","availableTermsTree","addTerm","onUpdateTerms","termIds","onChange","termId","hasTerm","includes","newTerms","onChangeFormName","value","onChangeFormParent","parentId","onToggleForm","onAddTerm","event","preventDefault","existingTerm","some","newTerm","termAddedMessage","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","renderTerms","renderedTerms","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","groupLabel","showFilter"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tTextControl,\n\tTreeSelect,\n\twithFilters,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module Constants\n */\nconst DEFAULT_QUERY = {\n\tper_page: -1,\n\torderby: 'name',\n\torder: 'asc',\n\t_fields: 'id,name,parent',\n\tcontext: 'view',\n};\n\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Sort Terms by Selected.\n *\n * @param {Object[]} termsTree Array of terms in tree format.\n * @param {number[]} terms Selected terms.\n *\n * @return {Object[]} Sorted array of terms.\n */\nexport function sortBySelected( termsTree, terms ) {\n\tconst treeHasSelection = ( termTree ) => {\n\t\tif ( terms.indexOf( termTree.id ) !== -1 ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( undefined === termTree.children ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\ttermTree.children\n\t\t\t\t.map( treeHasSelection )\n\t\t\t\t.filter( ( child ) => child ).length > 0\n\t\t);\n\t};\n\tconst termOrChildIsSelected = ( termA, termB ) => {\n\t\tconst termASelected = treeHasSelection( termA );\n\t\tconst termBSelected = treeHasSelection( termB );\n\n\t\tif ( termASelected === termBSelected ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( termASelected && ! termBSelected ) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif ( ! termASelected && termBSelected ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t};\n\tconst newTermTree = [ ...termsTree ];\n\tnewTermTree.sort( termOrChildIsSelected );\n\treturn newTermTree;\n}\n\n/**\n * Find term by parent id or name.\n *\n * @param {Object[]} terms Array of Terms.\n * @param {number|string} parent id.\n * @param {string} name Term name.\n * @return {Object} Term object.\n */\nexport function findTerm( terms, parent, name ) {\n\treturn terms.find( ( term ) => {\n\t\treturn (\n\t\t\t( ( ! term.parent && ! parent ) ||\n\t\t\t\tparseInt( term.parent ) === parseInt( parent ) ) &&\n\t\t\tterm.name.toLowerCase() === name.toLowerCase()\n\t\t);\n\t} );\n}\n\n/**\n * Get filter matcher function.\n *\n * @param {string} filterValue Filter value.\n * @return {(function(Object): (Object|boolean))} Matcher function.\n */\nexport function getFilterMatcher( filterValue ) {\n\tconst matchTermsForFilter = ( originalTerm ) => {\n\t\tif ( '' === filterValue ) {\n\t\t\treturn originalTerm;\n\t\t}\n\n\t\t// Shallow clone, because we'll be filtering the term's children and\n\t\t// don't want to modify the original term.\n\t\tconst term = { ...originalTerm };\n\n\t\t// Map and filter the children, recursive so we deal with grandchildren\n\t\t// and any deeper levels.\n\t\tif ( term.children.length > 0 ) {\n\t\t\tterm.children = term.children\n\t\t\t\t.map( matchTermsForFilter )\n\t\t\t\t.filter( ( child ) => child );\n\t\t}\n\n\t\t// If the term's name contains the filterValue, or it has children\n\t\t// (i.e. some child matched at some point in the tree) then return it.\n\t\tif (\n\t\t\t-1 !==\n\t\t\t\tterm.name.toLowerCase().indexOf( filterValue.toLowerCase() ) ||\n\t\t\tterm.children.length > 0\n\t\t) {\n\t\t\treturn term;\n\t\t}\n\n\t\t// Otherwise, return false. After mapping, the list of terms will need\n\t\t// to have false values filtered out.\n\t\treturn false;\n\t};\n\treturn matchTermsForFilter;\n}\n\n/**\n * Hierarchical term selector.\n *\n * @param {Object} props Component props.\n * @param {string} props.slug Taxonomy slug.\n * @return {WPElement} Hierarchical term selector component.\n */\nexport function HierarchicalTermSelector( { slug } ) {\n\tconst [ adding, setAdding ] = useState( false );\n\tconst [ formName, setFormName ] = useState( '' );\n\t/**\n\t * @type {[number|'', Function]}\n\t */\n\tconst [ formParent, setFormParent ] = useState( '' );\n\tconst [ showForm, setShowForm ] = useState( false );\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ filteredTermsTree, setFilteredTermsTree ] = useState( [] );\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tconst {\n\t\thasCreateAction,\n\t\thasAssignAction,\n\t\tterms,\n\t\tloading,\n\t\tavailableTerms,\n\t\ttaxonomy,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getTaxonomy, getEntityRecords, isResolving } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? get(\n\t\t\t\t\t\t\tgetCurrentPost(),\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'_links',\n\t\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t )\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? get(\n\t\t\t\t\t\t\tgetCurrentPost(),\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'_links',\n\t\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t )\n\t\t\t\t\t: false,\n\t\t\t\tterms: _taxonomy\n\t\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\tloading: isResolving( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tDEFAULT_QUERY,\n\t\t\t\t] ),\n\t\t\t\tavailableTerms:\n\t\t\t\t\tgetEntityRecords( 'taxonomy', slug, DEFAULT_QUERY ) ||\n\t\t\t\t\tEMPTY_ARRAY,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst availableTermsTree = useMemo(\n\t\t() => sortBySelected( buildTermsTree( availableTerms ), terms ),\n\t\t// Remove `terms` from the dependency list to avoid reordering every time\n\t\t// checking or unchecking a term.\n\t\t[ availableTerms ]\n\t);\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Append new term.\n\t *\n\t * @param {Object} term Term object.\n\t * @return {Promise} A promise that resolves to save term object.\n\t */\n\tconst addTerm = ( term ) => {\n\t\treturn saveEntityRecord( 'taxonomy', slug, term );\n\t};\n\n\t/**\n\t * Update terms for post.\n\t *\n\t * @param {number[]} termIds Term ids.\n\t */\n\tconst onUpdateTerms = ( termIds ) => {\n\t\teditPost( { [ taxonomy.rest_base ]: termIds } );\n\t};\n\n\t/**\n\t * Handler for checking term.\n\t *\n\t * @param {number} termId\n\t */\n\tconst onChange = ( termId ) => {\n\t\tconst hasTerm = terms.includes( termId );\n\t\tconst newTerms = hasTerm\n\t\t\t? terms.filter( ( id ) => id !== termId )\n\t\t\t: [ ...terms, termId ];\n\t\tonUpdateTerms( newTerms );\n\t};\n\n\tconst onChangeFormName = ( value ) => {\n\t\tsetFormName( value );\n\t};\n\n\t/**\n\t * Handler for changing form parent.\n\t *\n\t * @param {number|''} parentId Parent post id.\n\t */\n\tconst onChangeFormParent = ( parentId ) => {\n\t\tsetFormParent( parentId );\n\t};\n\n\tconst onToggleForm = () => {\n\t\tsetShowForm( ! showForm );\n\t};\n\n\tconst onAddTerm = async ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( formName === '' || adding ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the term we are adding already exists.\n\t\tconst existingTerm = findTerm( availableTerms, formParent, formName );\n\t\tif ( existingTerm ) {\n\t\t\t// If the term we are adding exists but is not selected select it.\n\t\t\tif ( ! terms.some( ( term ) => term === existingTerm.id ) ) {\n\t\t\t\tonUpdateTerms( [ ...terms, existingTerm.id ] );\n\t\t\t}\n\n\t\t\tsetFormName( '' );\n\t\t\tsetFormParent( '' );\n\n\t\t\treturn;\n\t\t}\n\t\tsetAdding( true );\n\n\t\tconst newTerm = await addTerm( {\n\t\t\tname: formName,\n\t\t\tparent: formParent ? formParent : undefined,\n\t\t} );\n\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: taxonomy name */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\tget(\n\t\t\t\ttaxonomy,\n\t\t\t\t[ 'labels', 'singular_name' ],\n\t\t\t\tslug === 'category' ? __( 'Category' ) : __( 'Term' )\n\t\t\t)\n\t\t);\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tsetAdding( false );\n\t\tsetFormName( '' );\n\t\tsetFormParent( '' );\n\t\tonUpdateTerms( [ ...terms, newTerm.id ] );\n\t};\n\n\tconst setFilter = ( value ) => {\n\t\tconst newFilteredTermsTree = availableTermsTree\n\t\t\t.map( getFilterMatcher( value ) )\n\t\t\t.filter( ( term ) => term );\n\t\tconst getResultCount = ( termsTree ) => {\n\t\t\tlet count = 0;\n\t\t\tfor ( let i = 0; i < termsTree.length; i++ ) {\n\t\t\t\tcount++;\n\t\t\t\tif ( undefined !== termsTree[ i ].children ) {\n\t\t\t\t\tcount += getResultCount( termsTree[ i ].children );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t};\n\n\t\tsetFilterValue( value );\n\t\tsetFilteredTermsTree( newFilteredTermsTree );\n\n\t\tconst resultCount = getResultCount( newFilteredTermsTree );\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results */\n\t\t\t_n( '%d result found.', '%d results found.', resultCount ),\n\t\t\tresultCount\n\t\t);\n\n\t\tdebouncedSpeak( resultsFoundMessage, 'assertive' );\n\t};\n\n\tconst renderTerms = ( renderedTerms ) => {\n\t\treturn renderedTerms.map( ( term ) => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={ term.id }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-choice\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tchecked={ terms.indexOf( term.id ) !== -1 }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tconst termId = parseInt( term.id, 10 );\n\t\t\t\t\t\t\tonChange( termId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ decodeEntities( term.name ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! term.children.length && (\n\t\t\t\t\t\t<div className=\"editor-post-taxonomies__hierarchical-terms-subchoices\">\n\t\t\t\t\t\t\t{ renderTerms( term.children ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\t};\n\n\tconst labelWithFallback = (\n\t\tlabelProperty,\n\t\tfallbackIsCategory,\n\t\tfallbackIsNotCategory\n\t) =>\n\t\tget(\n\t\t\ttaxonomy,\n\t\t\t[ 'labels', labelProperty ],\n\t\t\tslug === 'category' ? fallbackIsCategory : fallbackIsNotCategory\n\t\t);\n\tconst newTermButtonLabel = labelWithFallback(\n\t\t'add_new_item',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst parentSelectLabel = labelWithFallback(\n\t\t'parent_item',\n\t\t__( 'Parent Category' ),\n\t\t__( 'Parent Term' )\n\t);\n\tconst noParentOption = `— ${ parentSelectLabel } —`;\n\tconst newTermSubmitLabel = newTermButtonLabel;\n\tconst filterLabel = get(\n\t\ttaxonomy,\n\t\t[ 'labels', 'search_items' ],\n\t\t__( 'Search Terms' )\n\t);\n\tconst groupLabel = get( taxonomy, [ 'name' ], __( 'Terms' ) );\n\tconst showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n\n\treturn (\n\t\t<>\n\t\t\t{ showFilter && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-filter\"\n\t\t\t\t\tlabel={ filterLabel }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ setFilter }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-list\"\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\trole=\"group\"\n\t\t\t\taria-label={ groupLabel }\n\t\t\t>\n\t\t\t\t{ renderTerms(\n\t\t\t\t\t'' !== filterValue ? filteredTermsTree : availableTermsTree\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! loading && hasCreateAction && (\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ onToggleForm }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-add\"\n\t\t\t\t\taria-expanded={ showForm }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t>\n\t\t\t\t\t{ newTermButtonLabel }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ showForm && (\n\t\t\t\t<form onSubmit={ onAddTerm }>\n\t\t\t\t\t<VStack>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-input\"\n\t\t\t\t\t\t\tlabel={ newTermLabel }\n\t\t\t\t\t\t\tvalue={ formName }\n\t\t\t\t\t\t\tonChange={ onChangeFormName }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ !! availableTerms.length && (\n\t\t\t\t\t\t\t<TreeSelect\n\t\t\t\t\t\t\t\tlabel={ parentSelectLabel }\n\t\t\t\t\t\t\t\tnoOptionLabel={ noParentOption }\n\t\t\t\t\t\t\t\tonChange={ onChangeFormParent }\n\t\t\t\t\t\t\t\tselectedId={ formParent }\n\t\t\t\t\t\t\t\ttree={ availableTermsTree }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-submit\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ newTermSubmitLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</form>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )(\n\tHierarchicalTermSelector\n);\n"]}
@@ -3,7 +3,7 @@ import { createElement } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { isEmpty, map } from 'lodash';
6
+ import { isEmpty } from 'lodash';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
@@ -56,10 +56,13 @@ export function PostTemplate() {
56
56
  template: templateSlug || ''
57
57
  });
58
58
  },
59
- options: map(availableTemplates, (templateName, templateSlug) => ({
60
- value: templateSlug,
61
- label: templateName
62
- }))
59
+ options: Object.entries(availableTemplates !== null && availableTemplates !== void 0 ? availableTemplates : {}).map(_ref => {
60
+ let [templateSlug, templateName] = _ref;
61
+ return {
62
+ value: templateSlug,
63
+ label: templateName
64
+ };
65
+ })
63
66
  });
64
67
  }
65
68
  export default PostTemplate;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-template/index.js"],"names":["isEmpty","map","__","SelectControl","useSelect","useDispatch","store","coreStore","editorStore","PostTemplate","availableTemplates","selectedTemplate","isViewable","select","getEditedPostAttribute","getEditorSettings","getCurrentPostType","getPostType","viewable","editPost","templateSlug","template","templateName","value","label"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,EAAkBC,GAAlB,QAA6B,QAA7B;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,YAAT,GAAwB;AAC9B,QAAM;AAAEC,IAAAA,kBAAF;AAAsBC,IAAAA,gBAAtB;AAAwCC,IAAAA;AAAxC,MAAuDR,SAAS,CACnES,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,sBADK;AAELC,MAAAA,iBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEL,WAAF,CAJV;AAKA,UAAM;AAAES,MAAAA;AAAF,QAAkBJ,MAAM,CAAEN,SAAF,CAA9B;AAEA,WAAO;AACNI,MAAAA,gBAAgB,EAAEG,sBAAsB,CAAE,UAAF,CADlC;AAENJ,MAAAA,kBAAkB,EAAEK,iBAAiB,GAAGL,kBAFlC;AAGNE,MAAAA,UAAU,2CACTK,WAAW,CAAED,kBAAkB,EAApB,CADF,iDACT,aAAqCE,QAD5B,yEACwC;AAJ5C,KAAP;AAMA,GAfoE,EAgBrE,EAhBqE,CAAtE;AAmBA,QAAM;AAAEC,IAAAA;AAAF,MAAed,WAAW,CAAEG,WAAF,CAAhC;;AAEA,MAAK,CAAEI,UAAF,IAAgBZ,OAAO,CAAEU,kBAAF,CAA5B,EAAqD;AACpD,WAAO,IAAP;AACA;;AAED,SACC,cAAC,aAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAGR,EAAE,CAAE,WAAF,CAFX;AAGC,IAAA,KAAK,EAAGS,gBAHT;AAIC,IAAA,QAAQ,EAAKS,YAAF,IAAoB;AAC9BD,MAAAA,QAAQ,CAAE;AACTE,QAAAA,QAAQ,EAAED,YAAY,IAAI;AADjB,OAAF,CAAR;AAGA,KARF;AASC,IAAA,OAAO,EAAGnB,GAAG,CACZS,kBADY,EAEZ,CAAEY,YAAF,EAAgBF,YAAhB,MAAoC;AACnCG,MAAAA,KAAK,EAAEH,YAD4B;AAEnCI,MAAAA,KAAK,EAAEF;AAF4B,KAApC,CAFY;AATd,IADD;AAmBA;AAED,eAAeb,YAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty, map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostTemplate() {\n\tconst { availableTemplates, selectedTemplate, isViewable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetEditorSettings,\n\t\t\t\tgetCurrentPostType,\n\t\t\t} = select( editorStore );\n\t\t\tconst { getPostType } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tselectedTemplate: getEditedPostAttribute( 'template' ),\n\t\t\t\tavailableTemplates: getEditorSettings().availableTemplates,\n\t\t\t\tisViewable:\n\t\t\t\t\tgetPostType( getCurrentPostType() )?.viewable ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tif ( ! isViewable || isEmpty( availableTemplates ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Template:' ) }\n\t\t\tvalue={ selectedTemplate }\n\t\t\tonChange={ ( templateSlug ) => {\n\t\t\t\teditPost( {\n\t\t\t\t\ttemplate: templateSlug || '',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\toptions={ map(\n\t\t\t\tavailableTemplates,\n\t\t\t\t( templateName, templateSlug ) => ( {\n\t\t\t\t\tvalue: templateSlug,\n\t\t\t\t\tlabel: templateName,\n\t\t\t\t} )\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default PostTemplate;\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-template/index.js"],"names":["isEmpty","__","SelectControl","useSelect","useDispatch","store","coreStore","editorStore","PostTemplate","availableTemplates","selectedTemplate","isViewable","select","getEditedPostAttribute","getEditorSettings","getCurrentPostType","getPostType","viewable","editPost","templateSlug","template","Object","entries","map","templateName","value","label"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,QAAxB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,YAAT,GAAwB;AAC9B,QAAM;AAAEC,IAAAA,kBAAF;AAAsBC,IAAAA,gBAAtB;AAAwCC,IAAAA;AAAxC,MAAuDR,SAAS,CACnES,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,sBADK;AAELC,MAAAA,iBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEL,WAAF,CAJV;AAKA,UAAM;AAAES,MAAAA;AAAF,QAAkBJ,MAAM,CAAEN,SAAF,CAA9B;AAEA,WAAO;AACNI,MAAAA,gBAAgB,EAAEG,sBAAsB,CAAE,UAAF,CADlC;AAENJ,MAAAA,kBAAkB,EAAEK,iBAAiB,GAAGL,kBAFlC;AAGNE,MAAAA,UAAU,2CACTK,WAAW,CAAED,kBAAkB,EAApB,CADF,iDACT,aAAqCE,QAD5B,yEACwC;AAJ5C,KAAP;AAMA,GAfoE,EAgBrE,EAhBqE,CAAtE;AAmBA,QAAM;AAAEC,IAAAA;AAAF,MAAed,WAAW,CAAEG,WAAF,CAAhC;;AAEA,MAAK,CAAEI,UAAF,IAAgBX,OAAO,CAAES,kBAAF,CAA5B,EAAqD;AACpD,WAAO,IAAP;AACA;;AAED,SACC,cAAC,aAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAGR,EAAE,CAAE,WAAF,CAFX;AAGC,IAAA,KAAK,EAAGS,gBAHT;AAIC,IAAA,QAAQ,EAAKS,YAAF,IAAoB;AAC9BD,MAAAA,QAAQ,CAAE;AACTE,QAAAA,QAAQ,EAAED,YAAY,IAAI;AADjB,OAAF,CAAR;AAGA,KARF;AASC,IAAA,OAAO,EAAGE,MAAM,CAACC,OAAP,CAAgBb,kBAAhB,aAAgBA,kBAAhB,cAAgBA,kBAAhB,GAAsC,EAAtC,EAA2Cc,GAA3C,CACT;AAAA,UAAE,CAAEJ,YAAF,EAAgBK,YAAhB,CAAF;AAAA,aAAwC;AACvCC,QAAAA,KAAK,EAAEN,YADgC;AAEvCO,QAAAA,KAAK,EAAEF;AAFgC,OAAxC;AAAA,KADS;AATX,IADD;AAkBA;AAED,eAAehB,YAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostTemplate() {\n\tconst { availableTemplates, selectedTemplate, isViewable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetEditorSettings,\n\t\t\t\tgetCurrentPostType,\n\t\t\t} = select( editorStore );\n\t\t\tconst { getPostType } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tselectedTemplate: getEditedPostAttribute( 'template' ),\n\t\t\t\tavailableTemplates: getEditorSettings().availableTemplates,\n\t\t\t\tisViewable:\n\t\t\t\t\tgetPostType( getCurrentPostType() )?.viewable ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tif ( ! isViewable || isEmpty( availableTemplates ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Template:' ) }\n\t\t\tvalue={ selectedTemplate }\n\t\t\tonChange={ ( templateSlug ) => {\n\t\t\t\teditPost( {\n\t\t\t\t\ttemplate: templateSlug || '',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\toptions={ Object.entries( availableTemplates ?? {} ).map(\n\t\t\t\t( [ templateSlug, templateName ] ) => ( {\n\t\t\t\t\tvalue: templateSlug,\n\t\t\t\t\tlabel: templateName,\n\t\t\t\t} )\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default PostTemplate;\n"]}
@@ -53,6 +53,7 @@ export default function PostURL(_ref) {
53
53
  title: __('URL'),
54
54
  onClose: onClose
55
55
  }), isEditable && createElement(TextControl, {
56
+ __nextHasNoMarginBottom: true,
56
57
  label: __('Permalink'),
57
58
  value: forceEmptyField ? '' : postSlug,
58
59
  autoComplete: "off",
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-url/index.js"],"names":["useSelect","useDispatch","safeDecodeURIComponent","cleanForSlug","useState","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","__","TextControl","ExternalLink","store","coreStore","editorStore","PostURL","onClose","isEditable","postSlug","viewPostLabel","postLink","permalinkPrefix","permalinkSuffix","select","post","getCurrentPost","postTypeSlug","getCurrentPostType","postType","getPostType","permalinkParts","getPermalinkParts","hasPublishAction","_links","isPermalinkEditable","getEditedPostSlug","labels","view_item","link","prefix","suffix","editPost","forceEmptyField","setForceEmptyField","newValue","slug","event","target","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';\nimport { useState } from '@wordpress/element';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { TextControl, ExternalLink } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostURL( { onClose } ) {\n\tconst {\n\t\tisEditable,\n\t\tpostSlug,\n\t\tviewPostLabel,\n\t\tpostLink,\n\t\tpermalinkPrefix,\n\t\tpermalinkSuffix,\n\t} = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tconst postTypeSlug = select( editorStore ).getCurrentPostType();\n\t\tconst postType = select( coreStore ).getPostType( postTypeSlug );\n\t\tconst permalinkParts = select( editorStore ).getPermalinkParts();\n\t\tconst hasPublishAction = post?._links?.[ 'wp:action-publish' ] ?? false;\n\n\t\treturn {\n\t\t\tisEditable:\n\t\t\t\tselect( editorStore ).isPermalinkEditable() && hasPublishAction,\n\t\t\tpostSlug: safeDecodeURIComponent(\n\t\t\t\tselect( editorStore ).getEditedPostSlug()\n\t\t\t),\n\t\t\tviewPostLabel: postType?.labels.view_item,\n\t\t\tpostLink: post.link,\n\t\t\tpermalinkPrefix: permalinkParts?.prefix,\n\t\t\tpermalinkSuffix: permalinkParts?.suffix,\n\t\t};\n\t}, [] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst [ forceEmptyField, setForceEmptyField ] = useState( false );\n\n\treturn (\n\t\t<div className=\"editor-post-url\">\n\t\t\t<InspectorPopoverHeader title={ __( 'URL' ) } onClose={ onClose } />\n\t\t\t{ isEditable && (\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Permalink' ) }\n\t\t\t\t\tvalue={ forceEmptyField ? '' : postSlug }\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __( 'The last part of the URL.' ) }{ ' ' }\n\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/settings-sidebar/#permalink'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Learn more.' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\teditPost( { slug: newValue } );\n\t\t\t\t\t\t// When we delete the field the permalink gets\n\t\t\t\t\t\t// reverted to the original value.\n\t\t\t\t\t\t// The forceEmptyField logic allows the user to have\n\t\t\t\t\t\t// the field temporarily empty while typing.\n\t\t\t\t\t\tif ( ! newValue ) {\n\t\t\t\t\t\t\tif ( ! forceEmptyField ) {\n\t\t\t\t\t\t\t\tsetForceEmptyField( true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonBlur={ ( event ) => {\n\t\t\t\t\t\teditPost( {\n\t\t\t\t\t\t\tslug: cleanForSlug( event.target.value ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isEditable && (\n\t\t\t\t<h3 className=\"editor-post-url__link-label\">\n\t\t\t\t\t{ viewPostLabel ?? __( 'View post' ) }\n\t\t\t\t</h3>\n\t\t\t) }\n\t\t\t<p>\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"editor-post-url__link\"\n\t\t\t\t\thref={ postLink }\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t>\n\t\t\t\t\t{ isEditable ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span className=\"editor-post-url__link-prefix\">\n\t\t\t\t\t\t\t\t{ permalinkPrefix }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className=\"editor-post-url__link-slug\">\n\t\t\t\t\t\t\t\t{ postSlug }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className=\"editor-post-url__link-suffix\">\n\t\t\t\t\t\t\t\t{ permalinkSuffix }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tpostLink\n\t\t\t\t\t) }\n\t\t\t\t</ExternalLink>\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-url/index.js"],"names":["useSelect","useDispatch","safeDecodeURIComponent","cleanForSlug","useState","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","__","TextControl","ExternalLink","store","coreStore","editorStore","PostURL","onClose","isEditable","postSlug","viewPostLabel","postLink","permalinkPrefix","permalinkSuffix","select","post","getCurrentPost","postTypeSlug","getCurrentPostType","postType","getPostType","permalinkParts","getPermalinkParts","hasPublishAction","_links","isPermalinkEditable","getEditedPostSlug","labels","view_item","link","prefix","suffix","editPost","forceEmptyField","setForceEmptyField","newValue","slug","event","target","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';\nimport { useState } from '@wordpress/element';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { TextControl, ExternalLink } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostURL( { onClose } ) {\n\tconst {\n\t\tisEditable,\n\t\tpostSlug,\n\t\tviewPostLabel,\n\t\tpostLink,\n\t\tpermalinkPrefix,\n\t\tpermalinkSuffix,\n\t} = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tconst postTypeSlug = select( editorStore ).getCurrentPostType();\n\t\tconst postType = select( coreStore ).getPostType( postTypeSlug );\n\t\tconst permalinkParts = select( editorStore ).getPermalinkParts();\n\t\tconst hasPublishAction = post?._links?.[ 'wp:action-publish' ] ?? false;\n\n\t\treturn {\n\t\t\tisEditable:\n\t\t\t\tselect( editorStore ).isPermalinkEditable() && hasPublishAction,\n\t\t\tpostSlug: safeDecodeURIComponent(\n\t\t\t\tselect( editorStore ).getEditedPostSlug()\n\t\t\t),\n\t\t\tviewPostLabel: postType?.labels.view_item,\n\t\t\tpostLink: post.link,\n\t\t\tpermalinkPrefix: permalinkParts?.prefix,\n\t\t\tpermalinkSuffix: permalinkParts?.suffix,\n\t\t};\n\t}, [] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst [ forceEmptyField, setForceEmptyField ] = useState( false );\n\n\treturn (\n\t\t<div className=\"editor-post-url\">\n\t\t\t<InspectorPopoverHeader title={ __( 'URL' ) } onClose={ onClose } />\n\t\t\t{ isEditable && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Permalink' ) }\n\t\t\t\t\tvalue={ forceEmptyField ? '' : postSlug }\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __( 'The last part of the URL.' ) }{ ' ' }\n\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/settings-sidebar/#permalink'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Learn more.' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\teditPost( { slug: newValue } );\n\t\t\t\t\t\t// When we delete the field the permalink gets\n\t\t\t\t\t\t// reverted to the original value.\n\t\t\t\t\t\t// The forceEmptyField logic allows the user to have\n\t\t\t\t\t\t// the field temporarily empty while typing.\n\t\t\t\t\t\tif ( ! newValue ) {\n\t\t\t\t\t\t\tif ( ! forceEmptyField ) {\n\t\t\t\t\t\t\t\tsetForceEmptyField( true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonBlur={ ( event ) => {\n\t\t\t\t\t\teditPost( {\n\t\t\t\t\t\t\tslug: cleanForSlug( event.target.value ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isEditable && (\n\t\t\t\t<h3 className=\"editor-post-url__link-label\">\n\t\t\t\t\t{ viewPostLabel ?? __( 'View post' ) }\n\t\t\t\t</h3>\n\t\t\t) }\n\t\t\t<p>\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"editor-post-url__link\"\n\t\t\t\t\thref={ postLink }\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t>\n\t\t\t\t\t{ isEditable ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span className=\"editor-post-url__link-prefix\">\n\t\t\t\t\t\t\t\t{ permalinkPrefix }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className=\"editor-post-url__link-slug\">\n\t\t\t\t\t\t\t\t{ postSlug }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className=\"editor-post-url__link-suffix\">\n\t\t\t\t\t\t\t\t{ permalinkSuffix }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tpostLink\n\t\t\t\t\t) }\n\t\t\t\t</ExternalLink>\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import { createElement } from "@wordpress/element";
2
3
 
3
4
  /**
@@ -7,7 +8,7 @@ import { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';
7
8
  import { useDispatch, useSelect } from '@wordpress/data';
8
9
  import { __ } from '@wordpress/i18n';
9
10
  import { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';
10
- import { BlockEditorProvider, BlockContextProvider } from '@wordpress/block-editor';
11
+ import { BlockEditorProvider, BlockContextProvider, experiments as blockEditorExperiments } from '@wordpress/block-editor';
11
12
  import { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';
12
13
  import { store as noticesStore } from '@wordpress/notices';
13
14
  /**
@@ -17,15 +18,19 @@ import { store as noticesStore } from '@wordpress/notices';
17
18
  import withRegistryProvider from './with-registry-provider';
18
19
  import { store as editorStore } from '../../store';
19
20
  import useBlockEditorSettings from './use-block-editor-settings';
20
-
21
- function EditorProvider(_ref) {
21
+ import { unlock } from '../../lockUnlock';
22
+ const {
23
+ ExperimentalBlockEditorProvider
24
+ } = unlock(blockEditorExperiments);
25
+ export const ExperimentalEditorProvider = withRegistryProvider(_ref => {
22
26
  let {
23
27
  __unstableTemplate,
24
28
  post,
25
29
  settings,
26
30
  recovery,
27
31
  initialEdits,
28
- children
32
+ children,
33
+ BlockEditorProviderComponent = ExperimentalBlockEditorProvider
29
34
  } = _ref;
30
35
  const defaultBlockContext = useMemo(() => {
31
36
  if (post.type === 'wp_template') {
@@ -38,14 +43,17 @@ function EditorProvider(_ref) {
38
43
  };
39
44
  }, [post.id, post.type]);
40
45
  const {
46
+ editorSettings,
41
47
  selection,
42
48
  isReady
43
49
  } = useSelect(select => {
44
50
  const {
51
+ getEditorSettings,
45
52
  getEditorSelection,
46
53
  __unstableIsEditorReady
47
54
  } = select(editorStore);
48
55
  return {
56
+ editorSettings: getEditorSettings(),
49
57
  isReady: __unstableIsEditorReady(),
50
58
  selection: getEditorSelection()
51
59
  };
@@ -57,7 +65,7 @@ function EditorProvider(_ref) {
57
65
  const [blocks, onInput, onChange] = useEntityBlockEditor('postType', type, {
58
66
  id
59
67
  });
60
- const editorSettings = useBlockEditorSettings(settings, !!__unstableTemplate);
68
+ const blockEditorSettings = useBlockEditorSettings(editorSettings, !!__unstableTemplate);
61
69
  const {
62
70
  updatePostLock,
63
71
  setupEditor,
@@ -110,15 +118,19 @@ function EditorProvider(_ref) {
110
118
  id: post.id
111
119
  }, createElement(BlockContextProvider, {
112
120
  value: defaultBlockContext
113
- }, createElement(BlockEditorProvider, {
121
+ }, createElement(BlockEditorProviderComponent, {
114
122
  value: blocks,
115
123
  onChange: onChange,
116
124
  onInput: onInput,
117
125
  selection: selection,
118
- settings: editorSettings,
126
+ settings: blockEditorSettings,
119
127
  useSubRegistry: false
120
128
  }, children, createElement(ReusableBlocksMenuItems, null)))));
129
+ });
130
+ export function EditorProvider(props) {
131
+ return createElement(ExperimentalEditorProvider, _extends({}, props, {
132
+ BlockEditorProviderComponent: BlockEditorProvider
133
+ }), props.children);
121
134
  }
122
-
123
- export default withRegistryProvider(EditorProvider);
135
+ export default EditorProvider;
124
136
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/provider/index.js"],"names":["useEffect","useLayoutEffect","useMemo","useDispatch","useSelect","__","EntityProvider","useEntityBlockEditor","BlockEditorProvider","BlockContextProvider","ReusableBlocksMenuItems","store","noticesStore","withRegistryProvider","editorStore","useBlockEditorSettings","EditorProvider","__unstableTemplate","post","settings","recovery","initialEdits","children","defaultBlockContext","type","postId","id","postType","selection","isReady","select","getEditorSelection","__unstableIsEditorReady","blocks","onInput","onChange","editorSettings","updatePostLock","setupEditor","updateEditorSettings","__experimentalTearDownEditor","createWarningNotice","postLock","template","autosave","actions","label","url","editLink"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n} from '@wordpress/block-editor';\nimport { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport useBlockEditorSettings from './use-block-editor-settings';\n\nfunction EditorProvider( {\n\t__unstableTemplate,\n\tpost,\n\tsettings,\n\trecovery,\n\tinitialEdits,\n\tchildren,\n} ) {\n\tconst defaultBlockContext = useMemo( () => {\n\t\tif ( post.type === 'wp_template' ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn { postId: post.id, postType: post.type };\n\t}, [ post.id, post.type ] );\n\tconst { selection, isReady } = useSelect( ( select ) => {\n\t\tconst { getEditorSelection, __unstableIsEditorReady } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\tselection: getEditorSelection(),\n\t\t};\n\t}, [] );\n\tconst { id, type } = __unstableTemplate ?? post;\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\ttype,\n\t\t{ id }\n\t);\n\tconst editorSettings = useBlockEditorSettings(\n\t\tsettings,\n\t\t!! __unstableTemplate\n\t);\n\tconst {\n\t\tupdatePostLock,\n\t\tsetupEditor,\n\t\tupdateEditorSettings,\n\t\t__experimentalTearDownEditor,\n\t} = useDispatch( editorStore );\n\tconst { createWarningNotice } = useDispatch( noticesStore );\n\n\t// Initialize and tear down the editor.\n\t// Ideally this should be synced on each change and not just something you do once.\n\tuseLayoutEffect( () => {\n\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\tif ( recovery ) {\n\t\t\treturn;\n\t\t}\n\n\t\tupdatePostLock( settings.postLock );\n\t\tsetupEditor( post, initialEdits, settings.template );\n\t\tif ( settings.autosave ) {\n\t\t\tcreateWarningNotice(\n\t\t\t\t__(\n\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\turl: settings.autosave.editLink,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn () => {\n\t\t\t__experimentalTearDownEditor();\n\t\t};\n\t}, [] );\n\n\t// Synchronize the editor settings as they change.\n\tuseEffect( () => {\n\t\tupdateEditorSettings( settings );\n\t}, [ settings ] );\n\n\tif ( ! isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t<EntityProvider kind=\"postType\" type={ post.type } id={ post.id }>\n\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t<BlockEditorProvider\n\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t<ReusableBlocksMenuItems />\n\t\t\t\t\t</BlockEditorProvider>\n\t\t\t\t</BlockContextProvider>\n\t\t\t</EntityProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withRegistryProvider( EditorProvider );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/provider/index.js"],"names":["useEffect","useLayoutEffect","useMemo","useDispatch","useSelect","__","EntityProvider","useEntityBlockEditor","BlockEditorProvider","BlockContextProvider","experiments","blockEditorExperiments","ReusableBlocksMenuItems","store","noticesStore","withRegistryProvider","editorStore","useBlockEditorSettings","unlock","ExperimentalBlockEditorProvider","ExperimentalEditorProvider","__unstableTemplate","post","settings","recovery","initialEdits","children","BlockEditorProviderComponent","defaultBlockContext","type","postId","id","postType","editorSettings","selection","isReady","select","getEditorSettings","getEditorSelection","__unstableIsEditorReady","blocks","onInput","onChange","blockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","__experimentalTearDownEditor","createWarningNotice","postLock","template","autosave","actions","label","url","editLink","EditorProvider","props"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n\texperiments as blockEditorExperiments,\n} from '@wordpress/block-editor';\nimport { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport useBlockEditorSettings from './use-block-editor-settings';\nimport { unlock } from '../../lockUnlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorExperiments );\n\nexport const ExperimentalEditorProvider = withRegistryProvider(\n\t( {\n\t\t__unstableTemplate,\n\t\tpost,\n\t\tsettings,\n\t\trecovery,\n\t\tinitialEdits,\n\t\tchildren,\n\t\tBlockEditorProviderComponent = ExperimentalBlockEditorProvider,\n\t} ) => {\n\t\tconst defaultBlockContext = useMemo( () => {\n\t\t\tif ( post.type === 'wp_template' ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\treturn { postId: post.id, postType: post.type };\n\t\t}, [ post.id, post.type ] );\n\t\tconst { editorSettings, selection, isReady } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEditorSettings,\n\t\t\t\t\tgetEditorSelection,\n\t\t\t\t\t__unstableIsEditorReady,\n\t\t\t\t} = select( editorStore );\n\t\t\t\treturn {\n\t\t\t\t\teditorSettings: getEditorSettings(),\n\t\t\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\t\t\tselection: getEditorSelection(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[]\n\t\t);\n\t\tconst { id, type } = __unstableTemplate ?? post;\n\t\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t\t'postType',\n\t\t\ttype,\n\t\t\t{ id }\n\t\t);\n\t\tconst blockEditorSettings = useBlockEditorSettings(\n\t\t\teditorSettings,\n\t\t\t!! __unstableTemplate\n\t\t);\n\t\tconst {\n\t\t\tupdatePostLock,\n\t\t\tsetupEditor,\n\t\t\tupdateEditorSettings,\n\t\t\t__experimentalTearDownEditor,\n\t\t} = useDispatch( editorStore );\n\t\tconst { createWarningNotice } = useDispatch( noticesStore );\n\n\t\t// Initialize and tear down the editor.\n\t\t// Ideally this should be synced on each change and not just something you do once.\n\t\tuseLayoutEffect( () => {\n\t\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\t\tif ( recovery ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdatePostLock( settings.postLock );\n\t\t\tsetupEditor( post, initialEdits, settings.template );\n\t\t\tif ( settings.autosave ) {\n\t\t\t\tcreateWarningNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\t\turl: settings.autosave.editLink,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\t__experimentalTearDownEditor();\n\t\t\t};\n\t\t}, [] );\n\n\t\t// Synchronize the editor settings as they change.\n\t\tuseEffect( () => {\n\t\t\tupdateEditorSettings( settings );\n\t\t}, [ settings ] );\n\n\t\tif ( ! isReady ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ post.type }\n\t\t\t\t\tid={ post.id }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t\t<BlockEditorProviderComponent\n\t\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tsettings={ blockEditorSettings }\n\t\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t<ReusableBlocksMenuItems />\n\t\t\t\t\t\t</BlockEditorProviderComponent>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t);\n\t}\n);\n\nexport function EditorProvider( props ) {\n\treturn (\n\t\t<ExperimentalEditorProvider\n\t\t\t{ ...props }\n\t\t\tBlockEditorProviderComponent={ BlockEditorProvider }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalEditorProvider>\n\t);\n}\n\nexport default EditorProvider;\n"]}
@@ -77,9 +77,11 @@ class NativeEditorProvider extends Component {
77
77
  capabilities,
78
78
  locale,
79
79
  hostAppNamespace,
80
- updateSettings
80
+ updateEditorSettings,
81
+ updateBlockEditorSettings
81
82
  } = this.props;
82
- updateSettings({ ...capabilities,
83
+ updateEditorSettings({
84
+ capabilities,
83
85
  ...this.getThemeColors(this.props),
84
86
  locale,
85
87
  hostAppNamespace
@@ -119,7 +121,7 @@ class NativeEditorProvider extends Component {
119
121
  window.wp.galleryBlockV2Enabled = galleryWithImageBlocks;
120
122
  }
121
123
 
122
- updateSettings(this.getThemeColors(editorSettings));
124
+ updateEditorSettings(this.getThemeColors(editorSettings));
123
125
  });
124
126
  this.subscriptionParentUpdateCapabilities = subscribeUpdateCapabilities(payload => {
125
127
  this.updateCapabilitiesAction(payload);
@@ -138,7 +140,7 @@ class NativeEditorProvider extends Component {
138
140
  ...storedImpressions
139
141
  }; // Persist impressions to JavaScript store.
140
142
 
141
- updateSettings({
143
+ updateBlockEditorSettings({
142
144
  impressions
143
145
  }); // Persist impressions to native store if they do not include latest
144
146
  // `NEW_BLOCK_TYPES` configuration.
@@ -277,7 +279,9 @@ class NativeEditorProvider extends Component {
277
279
  }
278
280
 
279
281
  updateCapabilitiesAction(capabilities) {
280
- this.props.updateSettings(capabilities);
282
+ this.props.updateEditorSettings({
283
+ capabilities
284
+ });
281
285
  }
282
286
 
283
287
  render() {
@@ -306,14 +310,15 @@ class NativeEditorProvider extends Component {
306
310
 
307
311
  }
308
312
 
309
- export default compose([withSelect(select => {
313
+ const ComposedNativeProvider = compose([withSelect(select => {
310
314
  var _settings$colors, _settings$gradients;
311
315
 
312
316
  const {
313
317
  __unstableIsEditorReady: isEditorReady,
314
318
  getEditorBlocks,
315
319
  getEditedPostAttribute,
316
- getEditedPostContent
320
+ getEditedPostContent,
321
+ getEditorSettings
317
322
  } = select(editorStore);
318
323
  const {
319
324
  getEditorMode
@@ -321,10 +326,9 @@ export default compose([withSelect(select => {
321
326
  const {
322
327
  getBlockIndex,
323
328
  getSelectedBlockClientId,
324
- getGlobalBlockCount,
325
- getSettings: getBlockEditorSettings
329
+ getGlobalBlockCount
326
330
  } = select(blockEditorStore);
327
- const settings = getBlockEditorSettings();
331
+ const settings = getEditorSettings();
328
332
  const defaultEditorColors = (_settings$colors = settings === null || settings === void 0 ? void 0 : settings.colors) !== null && _settings$colors !== void 0 ? _settings$colors : [];
329
333
  const defaultEditorGradients = (_settings$gradients = settings === null || settings === void 0 ? void 0 : settings.gradients) !== null && _settings$gradients !== void 0 ? _settings$gradients : [];
330
334
  const selectedBlockClientId = getSelectedBlockClientId();
@@ -343,7 +347,8 @@ export default compose([withSelect(select => {
343
347
  }), withDispatch(dispatch => {
344
348
  const {
345
349
  editPost,
346
- resetEditorBlocks
350
+ resetEditorBlocks,
351
+ updateEditorSettings
347
352
  } = dispatch(editorStore);
348
353
  const {
349
354
  updateSettings,
@@ -362,7 +367,8 @@ export default compose([withSelect(select => {
362
367
  createSuccessNotice
363
368
  } = dispatch(noticesStore);
364
369
  return {
365
- updateSettings,
370
+ updateBlockEditorSettings: updateSettings,
371
+ updateEditorSettings,
366
372
  addEntities,
367
373
  clearSelectedBlock,
368
374
  insertBlock,
@@ -389,4 +395,6 @@ export default compose([withSelect(select => {
389
395
  replaceBlock
390
396
  };
391
397
  })])(NativeEditorProvider);
398
+ export default ComposedNativeProvider;
399
+ export { ComposedNativeProvider as ExperimentalEditorProvider };
392
400
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/provider/index.native.js"],"names":["memize","SafeAreaProvider","RNReactNativeGutenbergBridge","requestBlockTypeImpressions","setBlockTypeImpressions","subscribeParentGetHtml","subscribeParentToggleHTMLMode","subscribeUpdateHtml","subscribeSetTitle","subscribeMediaAppend","subscribeReplaceBlock","subscribeUpdateEditorSettings","subscribeUpdateCapabilities","subscribeShowNotice","subscribeShowEditorHelp","Component","count","wordCount","parse","serialize","getUnregisteredTypeHandlerName","createBlock","withDispatch","withSelect","compose","applyFilters","store","blockEditorStore","getGlobalStyles","getColorsAndGradients","NEW_BLOCK_TYPES","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","EditorHelpTopics","editorStore","noticesStore","coreStore","editPostStore","EditorProvider","NativeEditorProvider","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","getEditorSettings","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","locale","hostAppNamespace","updateSettings","getThemeColors","subscriptionParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","blockName","mediaType","newBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","subscriptionParentUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","setState","storedImpressions","impressions","storedImpressionKeys","Object","keys","storedImpressionsCurrent","every","newKey","includes","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","unsupportedBlockNames","filter","block","attributes","originalName","editorDidMount","mode","hasChanges","raw","content","contentInfo","characterCount","paragraphCount","provideToNative_Html","parsed","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","clearSelectedBlock","render","children","supportSection","select","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","getEditorMode","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","getSettings","getBlockEditorSettings","colors","gradients","selectedBlockClientId","dispatch","editPost","resetEditorBlocks","switchEditorMode","__unstableShouldCreateUndoLevel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport memize from 'memize';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport RNReactNativeGutenbergBridge, {\n\trequestBlockTypeImpressions,\n\tsetBlockTypeImpressions,\n\tsubscribeParentGetHtml,\n\tsubscribeParentToggleHTMLMode,\n\tsubscribeUpdateHtml,\n\tsubscribeSetTitle,\n\tsubscribeMediaAppend,\n\tsubscribeReplaceBlock,\n\tsubscribeUpdateEditorSettings,\n\tsubscribeUpdateCapabilities,\n\tsubscribeShowNotice,\n\tsubscribeShowEditorHelp,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport {\n\tparse,\n\tserialize,\n\tgetUnregisteredTypeHandlerName,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getGlobalStyles, getColorsAndGradients } from '@wordpress/components';\nimport { NEW_BLOCK_TYPES } from '@wordpress/block-library';\n\nconst postTypeEntities = [\n\t{ name: 'post', baseURL: '/wp/v2/posts' },\n\t{ name: 'page', baseURL: '/wp/v2/pages' },\n\t{ name: 'attachment', baseURL: '/wp/v2/media' },\n\t{ name: 'wp_block', baseURL: '/wp/v2/blocks' },\n].map( ( postTypeEntity ) => ( {\n\tkind: 'postType',\n\t...postTypeEntity,\n\ttransientEdits: {\n\t\tblocks: true,\n\t\tselection: true,\n\t},\n\tmergedEdits: {\n\t\tmeta: true,\n\t},\n\trawAttributes: [ 'title', 'excerpt', 'content' ],\n} ) );\nimport { EditorHelpTopics, store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport EditorProvider from './index.js';\n\nclass NativeEditorProvider extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\t// Keep a local reference to `post` to detect changes.\n\t\tthis.post = this.props.post;\n\t\tthis.props.addEntities( postTypeEntities );\n\t\tthis.props.receiveEntityRecords(\n\t\t\t'postType',\n\t\t\tthis.post.type,\n\t\t\tthis.post\n\t\t);\n\n\t\tthis.getEditorSettings = memize(\n\t\t\t( settings, capabilities ) => ( {\n\t\t\t\t...settings,\n\t\t\t\tcapabilities,\n\t\t\t} ),\n\t\t\t{\n\t\t\t\tmaxSize: 1,\n\t\t\t}\n\t\t);\n\t\tthis.state = {\n\t\t\tisHelpVisible: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { capabilities, locale, hostAppNamespace, updateSettings } =\n\t\t\tthis.props;\n\n\t\tupdateSettings( {\n\t\t\t...capabilities,\n\t\t\t...this.getThemeColors( this.props ),\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t} );\n\n\t\tthis.subscriptionParentGetHtml = subscribeParentGetHtml( () => {\n\t\t\tthis.serializeToNativeAction();\n\t\t} );\n\n\t\tthis.subscriptionParentToggleHTMLMode = subscribeParentToggleHTMLMode(\n\t\t\t() => {\n\t\t\t\tthis.toggleMode();\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentSetTitle = subscribeSetTitle( ( payload ) => {\n\t\t\tthis.props.editTitle( payload.title );\n\t\t} );\n\n\t\tthis.subscriptionParentUpdateHtml = subscribeUpdateHtml(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateHtmlAction( payload.html );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentReplaceBlock = subscribeReplaceBlock(\n\t\t\t( payload ) => {\n\t\t\t\tthis.replaceBlockAction( payload.html, payload.clientId );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentMediaAppend = subscribeMediaAppend(\n\t\t\t( payload ) => {\n\t\t\t\tconst blockName = 'core/' + payload.mediaType;\n\t\t\t\tconst newBlock = createBlock( blockName, {\n\t\t\t\t\tid: payload.mediaId,\n\t\t\t\t\t[ payload.mediaType === 'image' ? 'url' : 'src' ]:\n\t\t\t\t\t\tpayload.mediaUrl,\n\t\t\t\t} );\n\n\t\t\t\tconst indexAfterSelected = this.props.selectedBlockIndex + 1;\n\t\t\t\tconst insertionIndex =\n\t\t\t\t\tindexAfterSelected || this.props.blockCount;\n\n\t\t\t\tthis.props.insertBlock( newBlock, insertionIndex );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentUpdateEditorSettings =\n\t\t\tsubscribeUpdateEditorSettings(\n\t\t\t\t( { galleryWithImageBlocks, ...editorSettings } ) => {\n\t\t\t\t\tif ( typeof galleryWithImageBlocks === 'boolean' ) {\n\t\t\t\t\t\twindow.wp.galleryBlockV2Enabled =\n\t\t\t\t\t\t\tgalleryWithImageBlocks;\n\t\t\t\t\t}\n\t\t\t\t\tupdateSettings( this.getThemeColors( editorSettings ) );\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.subscriptionParentUpdateCapabilities = subscribeUpdateCapabilities(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateCapabilitiesAction( payload );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowNotice = subscribeShowNotice(\n\t\t\t( payload ) => {\n\t\t\t\tthis.props.createSuccessNotice( payload.message );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowEditorHelp = subscribeShowEditorHelp( () => {\n\t\t\tthis.setState( { isHelpVisible: true } );\n\t\t} );\n\n\t\t// Request current block impressions from native app.\n\t\trequestBlockTypeImpressions( ( storedImpressions ) => {\n\t\t\tconst impressions = { ...NEW_BLOCK_TYPES, ...storedImpressions };\n\n\t\t\t// Persist impressions to JavaScript store.\n\t\t\tupdateSettings( { impressions } );\n\n\t\t\t// Persist impressions to native store if they do not include latest\n\t\t\t// `NEW_BLOCK_TYPES` configuration.\n\t\t\tconst storedImpressionKeys = Object.keys( storedImpressions );\n\t\t\tconst storedImpressionsCurrent = Object.keys(\n\t\t\t\tNEW_BLOCK_TYPES\n\t\t\t).every( ( newKey ) => storedImpressionKeys.includes( newKey ) );\n\t\t\tif ( ! storedImpressionsCurrent ) {\n\t\t\t\tsetBlockTypeImpressions( impressions );\n\t\t\t}\n\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.subscriptionParentGetHtml ) {\n\t\t\tthis.subscriptionParentGetHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentToggleHTMLMode ) {\n\t\t\tthis.subscriptionParentToggleHTMLMode.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentSetTitle ) {\n\t\t\tthis.subscriptionParentSetTitle.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateHtml ) {\n\t\t\tthis.subscriptionParentUpdateHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentReplaceBlock ) {\n\t\t\tthis.subscriptionParentReplaceBlock.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentMediaAppend ) {\n\t\t\tthis.subscriptionParentMediaAppend.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateEditorSettings ) {\n\t\t\tthis.subscriptionParentUpdateEditorSettings.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateCapabilities ) {\n\t\t\tthis.subscriptionParentUpdateCapabilities.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowNotice ) {\n\t\t\tthis.subscriptionParentShowNotice.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowEditorHelp ) {\n\t\t\tthis.subscriptionParentShowEditorHelp.remove();\n\t\t}\n\t}\n\n\tgetThemeColors( { rawStyles, rawFeatures } ) {\n\t\tconst { defaultEditorColors, defaultEditorGradients } = this.props;\n\n\t\tif ( rawStyles && rawFeatures ) {\n\t\t\treturn getGlobalStyles( rawStyles, rawFeatures );\n\t\t}\n\n\t\treturn getColorsAndGradients(\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\trawFeatures\n\t\t);\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! prevProps.isReady && this.props.isReady ) {\n\t\t\tconst blocks = this.props.blocks;\n\t\t\tconst isUnsupportedBlock = ( { name } ) =>\n\t\t\t\tname === getUnregisteredTypeHandlerName();\n\t\t\tconst unsupportedBlockNames = blocks\n\t\t\t\t.filter( isUnsupportedBlock )\n\t\t\t\t.map( ( block ) => block.attributes.originalName );\n\t\t\tRNReactNativeGutenbergBridge.editorDidMount(\n\t\t\t\tunsupportedBlockNames\n\t\t\t);\n\t\t}\n\t}\n\n\tserializeToNativeAction() {\n\t\tconst title = this.props.title;\n\t\tlet html;\n\n\t\tif ( this.props.mode === 'text' ) {\n\t\t\t// The HTMLTextInput component does not update the store when user is doing changes\n\t\t\t// Let's request the HTML from the component's state directly.\n\t\t\thtml = applyFilters( 'native.persist-html' );\n\t\t} else {\n\t\t\thtml = serialize( this.props.blocks );\n\t\t}\n\n\t\tconst hasChanges =\n\t\t\ttitle !== this.post.title.raw || html !== this.post.content.raw;\n\n\t\t// Variable to store the content structure metrics.\n\t\tconst contentInfo = {};\n\t\tcontentInfo.characterCount = wordCount(\n\t\t\thtml,\n\t\t\t'characters_including_spaces'\n\t\t);\n\t\tcontentInfo.wordCount = wordCount( html, 'words' );\n\t\tcontentInfo.paragraphCount = this.props.paragraphCount;\n\t\tcontentInfo.blockCount = this.props.blockCount;\n\t\tRNReactNativeGutenbergBridge.provideToNative_Html(\n\t\t\thtml,\n\t\t\ttitle,\n\t\t\thasChanges,\n\t\t\tcontentInfo\n\t\t);\n\n\t\tif ( hasChanges ) {\n\t\t\tthis.post.title.raw = title;\n\t\t\tthis.post.content.raw = html;\n\t\t}\n\t}\n\n\tupdateHtmlAction( html ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.resetEditorBlocksWithoutUndoLevel( parsed );\n\t}\n\n\treplaceBlockAction( html, blockClientId ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.replaceBlock( blockClientId, parsed );\n\t}\n\n\ttoggleMode() {\n\t\tconst { mode, switchMode } = this.props;\n\t\t// Refresh html content first.\n\t\tthis.serializeToNativeAction();\n\t\t// Make sure to blur the selected block and dismiss the keyboard.\n\t\tthis.props.clearSelectedBlock();\n\t\tswitchMode( mode === 'visual' ? 'text' : 'visual' );\n\t}\n\n\tupdateCapabilitiesAction( capabilities ) {\n\t\tthis.props.updateSettings( capabilities );\n\t}\n\n\trender() {\n\t\tconst { children, post, capabilities, settings, ...props } = this.props;\n\t\tconst editorSettings = this.getEditorSettings( settings, capabilities );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ this.post }\n\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<SafeAreaProvider>{ children }</SafeAreaProvider>\n\t\t\t\t</EditorProvider>\n\t\t\t\t<EditorHelpTopics\n\t\t\t\t\tisVisible={ this.state.isHelpVisible }\n\t\t\t\t\tonClose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tclose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tshowSupport={ capabilities?.supportSection === true }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\t__unstableIsEditorReady: isEditorReady,\n\t\t\tgetEditorBlocks,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostContent,\n\t\t} = select( editorStore );\n\t\tconst { getEditorMode } = select( editPostStore );\n\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetGlobalBlockCount,\n\t\t\tgetSettings: getBlockEditorSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst settings = getBlockEditorSettings();\n\t\tconst defaultEditorColors = settings?.colors ?? [];\n\t\tconst defaultEditorGradients = settings?.gradients ?? [];\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tmode: getEditorMode(),\n\t\t\tisReady: isEditorReady(),\n\t\t\tblocks: getEditorBlocks(),\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tgetEditedPostContent,\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\tselectedBlockIndex: getBlockIndex( selectedBlockClientId ),\n\t\t\tblockCount: getGlobalBlockCount(),\n\t\t\tparagraphCount: getGlobalBlockCount( 'core/paragraph' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, resetEditorBlocks } = dispatch( editorStore );\n\t\tconst {\n\t\t\tupdateSettings,\n\t\t\tclearSelectedBlock,\n\t\t\tinsertBlock,\n\t\t\treplaceBlock,\n\t\t} = dispatch( blockEditorStore );\n\t\tconst { switchEditorMode } = dispatch( editPostStore );\n\t\tconst { addEntities, receiveEntityRecords } = dispatch( coreStore );\n\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\treturn {\n\t\t\tupdateSettings,\n\t\t\taddEntities,\n\t\t\tclearSelectedBlock,\n\t\t\tinsertBlock,\n\t\t\tcreateSuccessNotice,\n\t\t\teditTitle( title ) {\n\t\t\t\teditPost( { title } );\n\t\t\t},\n\t\t\treceiveEntityRecords,\n\t\t\tresetEditorBlocksWithoutUndoLevel( blocks ) {\n\t\t\t\tresetEditorBlocks( blocks, {\n\t\t\t\t\t__unstableShouldCreateUndoLevel: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tswitchMode( mode ) {\n\t\t\t\tswitchEditorMode( mode );\n\t\t\t},\n\t\t\treplaceBlock,\n\t\t};\n\t} ),\n] )( NativeEditorProvider );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/provider/index.native.js"],"names":["memize","SafeAreaProvider","RNReactNativeGutenbergBridge","requestBlockTypeImpressions","setBlockTypeImpressions","subscribeParentGetHtml","subscribeParentToggleHTMLMode","subscribeUpdateHtml","subscribeSetTitle","subscribeMediaAppend","subscribeReplaceBlock","subscribeUpdateEditorSettings","subscribeUpdateCapabilities","subscribeShowNotice","subscribeShowEditorHelp","Component","count","wordCount","parse","serialize","getUnregisteredTypeHandlerName","createBlock","withDispatch","withSelect","compose","applyFilters","store","blockEditorStore","getGlobalStyles","getColorsAndGradients","NEW_BLOCK_TYPES","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","EditorHelpTopics","editorStore","noticesStore","coreStore","editPostStore","EditorProvider","NativeEditorProvider","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","getEditorSettings","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","locale","hostAppNamespace","updateEditorSettings","updateBlockEditorSettings","getThemeColors","subscriptionParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","blockName","mediaType","newBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","subscriptionParentUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","setState","storedImpressions","impressions","storedImpressionKeys","Object","keys","storedImpressionsCurrent","every","newKey","includes","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","unsupportedBlockNames","filter","block","attributes","originalName","editorDidMount","mode","hasChanges","raw","content","contentInfo","characterCount","paragraphCount","provideToNative_Html","parsed","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","clearSelectedBlock","render","children","supportSection","ComposedNativeProvider","select","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","getEditorMode","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","colors","gradients","selectedBlockClientId","dispatch","editPost","resetEditorBlocks","updateSettings","switchEditorMode","__unstableShouldCreateUndoLevel","ExperimentalEditorProvider"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport memize from 'memize';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport RNReactNativeGutenbergBridge, {\n\trequestBlockTypeImpressions,\n\tsetBlockTypeImpressions,\n\tsubscribeParentGetHtml,\n\tsubscribeParentToggleHTMLMode,\n\tsubscribeUpdateHtml,\n\tsubscribeSetTitle,\n\tsubscribeMediaAppend,\n\tsubscribeReplaceBlock,\n\tsubscribeUpdateEditorSettings,\n\tsubscribeUpdateCapabilities,\n\tsubscribeShowNotice,\n\tsubscribeShowEditorHelp,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport {\n\tparse,\n\tserialize,\n\tgetUnregisteredTypeHandlerName,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getGlobalStyles, getColorsAndGradients } from '@wordpress/components';\nimport { NEW_BLOCK_TYPES } from '@wordpress/block-library';\n\nconst postTypeEntities = [\n\t{ name: 'post', baseURL: '/wp/v2/posts' },\n\t{ name: 'page', baseURL: '/wp/v2/pages' },\n\t{ name: 'attachment', baseURL: '/wp/v2/media' },\n\t{ name: 'wp_block', baseURL: '/wp/v2/blocks' },\n].map( ( postTypeEntity ) => ( {\n\tkind: 'postType',\n\t...postTypeEntity,\n\ttransientEdits: {\n\t\tblocks: true,\n\t\tselection: true,\n\t},\n\tmergedEdits: {\n\t\tmeta: true,\n\t},\n\trawAttributes: [ 'title', 'excerpt', 'content' ],\n} ) );\nimport { EditorHelpTopics, store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport EditorProvider from './index.js';\n\nclass NativeEditorProvider extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\t// Keep a local reference to `post` to detect changes.\n\t\tthis.post = this.props.post;\n\t\tthis.props.addEntities( postTypeEntities );\n\t\tthis.props.receiveEntityRecords(\n\t\t\t'postType',\n\t\t\tthis.post.type,\n\t\t\tthis.post\n\t\t);\n\n\t\tthis.getEditorSettings = memize(\n\t\t\t( settings, capabilities ) => ( {\n\t\t\t\t...settings,\n\t\t\t\tcapabilities,\n\t\t\t} ),\n\t\t\t{\n\t\t\t\tmaxSize: 1,\n\t\t\t}\n\t\t);\n\t\tthis.state = {\n\t\t\tisHelpVisible: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst {\n\t\t\tcapabilities,\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t\tupdateEditorSettings,\n\t\t\tupdateBlockEditorSettings,\n\t\t} = this.props;\n\n\t\tupdateEditorSettings( {\n\t\t\tcapabilities,\n\t\t\t...this.getThemeColors( this.props ),\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t} );\n\n\t\tthis.subscriptionParentGetHtml = subscribeParentGetHtml( () => {\n\t\t\tthis.serializeToNativeAction();\n\t\t} );\n\n\t\tthis.subscriptionParentToggleHTMLMode = subscribeParentToggleHTMLMode(\n\t\t\t() => {\n\t\t\t\tthis.toggleMode();\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentSetTitle = subscribeSetTitle( ( payload ) => {\n\t\t\tthis.props.editTitle( payload.title );\n\t\t} );\n\n\t\tthis.subscriptionParentUpdateHtml = subscribeUpdateHtml(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateHtmlAction( payload.html );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentReplaceBlock = subscribeReplaceBlock(\n\t\t\t( payload ) => {\n\t\t\t\tthis.replaceBlockAction( payload.html, payload.clientId );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentMediaAppend = subscribeMediaAppend(\n\t\t\t( payload ) => {\n\t\t\t\tconst blockName = 'core/' + payload.mediaType;\n\t\t\t\tconst newBlock = createBlock( blockName, {\n\t\t\t\t\tid: payload.mediaId,\n\t\t\t\t\t[ payload.mediaType === 'image' ? 'url' : 'src' ]:\n\t\t\t\t\t\tpayload.mediaUrl,\n\t\t\t\t} );\n\n\t\t\t\tconst indexAfterSelected = this.props.selectedBlockIndex + 1;\n\t\t\t\tconst insertionIndex =\n\t\t\t\t\tindexAfterSelected || this.props.blockCount;\n\n\t\t\t\tthis.props.insertBlock( newBlock, insertionIndex );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentUpdateEditorSettings =\n\t\t\tsubscribeUpdateEditorSettings(\n\t\t\t\t( { galleryWithImageBlocks, ...editorSettings } ) => {\n\t\t\t\t\tif ( typeof galleryWithImageBlocks === 'boolean' ) {\n\t\t\t\t\t\twindow.wp.galleryBlockV2Enabled =\n\t\t\t\t\t\t\tgalleryWithImageBlocks;\n\t\t\t\t\t}\n\t\t\t\t\tupdateEditorSettings(\n\t\t\t\t\t\tthis.getThemeColors( editorSettings )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.subscriptionParentUpdateCapabilities = subscribeUpdateCapabilities(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateCapabilitiesAction( payload );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowNotice = subscribeShowNotice(\n\t\t\t( payload ) => {\n\t\t\t\tthis.props.createSuccessNotice( payload.message );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowEditorHelp = subscribeShowEditorHelp( () => {\n\t\t\tthis.setState( { isHelpVisible: true } );\n\t\t} );\n\n\t\t// Request current block impressions from native app.\n\t\trequestBlockTypeImpressions( ( storedImpressions ) => {\n\t\t\tconst impressions = { ...NEW_BLOCK_TYPES, ...storedImpressions };\n\n\t\t\t// Persist impressions to JavaScript store.\n\t\t\tupdateBlockEditorSettings( { impressions } );\n\n\t\t\t// Persist impressions to native store if they do not include latest\n\t\t\t// `NEW_BLOCK_TYPES` configuration.\n\t\t\tconst storedImpressionKeys = Object.keys( storedImpressions );\n\t\t\tconst storedImpressionsCurrent = Object.keys(\n\t\t\t\tNEW_BLOCK_TYPES\n\t\t\t).every( ( newKey ) => storedImpressionKeys.includes( newKey ) );\n\t\t\tif ( ! storedImpressionsCurrent ) {\n\t\t\t\tsetBlockTypeImpressions( impressions );\n\t\t\t}\n\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.subscriptionParentGetHtml ) {\n\t\t\tthis.subscriptionParentGetHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentToggleHTMLMode ) {\n\t\t\tthis.subscriptionParentToggleHTMLMode.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentSetTitle ) {\n\t\t\tthis.subscriptionParentSetTitle.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateHtml ) {\n\t\t\tthis.subscriptionParentUpdateHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentReplaceBlock ) {\n\t\t\tthis.subscriptionParentReplaceBlock.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentMediaAppend ) {\n\t\t\tthis.subscriptionParentMediaAppend.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateEditorSettings ) {\n\t\t\tthis.subscriptionParentUpdateEditorSettings.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateCapabilities ) {\n\t\t\tthis.subscriptionParentUpdateCapabilities.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowNotice ) {\n\t\t\tthis.subscriptionParentShowNotice.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowEditorHelp ) {\n\t\t\tthis.subscriptionParentShowEditorHelp.remove();\n\t\t}\n\t}\n\n\tgetThemeColors( { rawStyles, rawFeatures } ) {\n\t\tconst { defaultEditorColors, defaultEditorGradients } = this.props;\n\n\t\tif ( rawStyles && rawFeatures ) {\n\t\t\treturn getGlobalStyles( rawStyles, rawFeatures );\n\t\t}\n\n\t\treturn getColorsAndGradients(\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\trawFeatures\n\t\t);\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! prevProps.isReady && this.props.isReady ) {\n\t\t\tconst blocks = this.props.blocks;\n\t\t\tconst isUnsupportedBlock = ( { name } ) =>\n\t\t\t\tname === getUnregisteredTypeHandlerName();\n\t\t\tconst unsupportedBlockNames = blocks\n\t\t\t\t.filter( isUnsupportedBlock )\n\t\t\t\t.map( ( block ) => block.attributes.originalName );\n\t\t\tRNReactNativeGutenbergBridge.editorDidMount(\n\t\t\t\tunsupportedBlockNames\n\t\t\t);\n\t\t}\n\t}\n\n\tserializeToNativeAction() {\n\t\tconst title = this.props.title;\n\t\tlet html;\n\n\t\tif ( this.props.mode === 'text' ) {\n\t\t\t// The HTMLTextInput component does not update the store when user is doing changes\n\t\t\t// Let's request the HTML from the component's state directly.\n\t\t\thtml = applyFilters( 'native.persist-html' );\n\t\t} else {\n\t\t\thtml = serialize( this.props.blocks );\n\t\t}\n\n\t\tconst hasChanges =\n\t\t\ttitle !== this.post.title.raw || html !== this.post.content.raw;\n\n\t\t// Variable to store the content structure metrics.\n\t\tconst contentInfo = {};\n\t\tcontentInfo.characterCount = wordCount(\n\t\t\thtml,\n\t\t\t'characters_including_spaces'\n\t\t);\n\t\tcontentInfo.wordCount = wordCount( html, 'words' );\n\t\tcontentInfo.paragraphCount = this.props.paragraphCount;\n\t\tcontentInfo.blockCount = this.props.blockCount;\n\t\tRNReactNativeGutenbergBridge.provideToNative_Html(\n\t\t\thtml,\n\t\t\ttitle,\n\t\t\thasChanges,\n\t\t\tcontentInfo\n\t\t);\n\n\t\tif ( hasChanges ) {\n\t\t\tthis.post.title.raw = title;\n\t\t\tthis.post.content.raw = html;\n\t\t}\n\t}\n\n\tupdateHtmlAction( html ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.resetEditorBlocksWithoutUndoLevel( parsed );\n\t}\n\n\treplaceBlockAction( html, blockClientId ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.replaceBlock( blockClientId, parsed );\n\t}\n\n\ttoggleMode() {\n\t\tconst { mode, switchMode } = this.props;\n\t\t// Refresh html content first.\n\t\tthis.serializeToNativeAction();\n\t\t// Make sure to blur the selected block and dismiss the keyboard.\n\t\tthis.props.clearSelectedBlock();\n\t\tswitchMode( mode === 'visual' ? 'text' : 'visual' );\n\t}\n\n\tupdateCapabilitiesAction( capabilities ) {\n\t\tthis.props.updateEditorSettings( { capabilities } );\n\t}\n\n\trender() {\n\t\tconst { children, post, capabilities, settings, ...props } = this.props;\n\t\tconst editorSettings = this.getEditorSettings( settings, capabilities );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ this.post }\n\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<SafeAreaProvider>{ children }</SafeAreaProvider>\n\t\t\t\t</EditorProvider>\n\t\t\t\t<EditorHelpTopics\n\t\t\t\t\tisVisible={ this.state.isHelpVisible }\n\t\t\t\t\tonClose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tclose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tshowSupport={ capabilities?.supportSection === true }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nconst ComposedNativeProvider = compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\t__unstableIsEditorReady: isEditorReady,\n\t\t\tgetEditorBlocks,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostContent,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getEditorMode } = select( editPostStore );\n\n\t\tconst { getBlockIndex, getSelectedBlockClientId, getGlobalBlockCount } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst settings = getEditorSettings();\n\t\tconst defaultEditorColors = settings?.colors ?? [];\n\t\tconst defaultEditorGradients = settings?.gradients ?? [];\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tmode: getEditorMode(),\n\t\t\tisReady: isEditorReady(),\n\t\t\tblocks: getEditorBlocks(),\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tgetEditedPostContent,\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\tselectedBlockIndex: getBlockIndex( selectedBlockClientId ),\n\t\t\tblockCount: getGlobalBlockCount(),\n\t\t\tparagraphCount: getGlobalBlockCount( 'core/paragraph' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, resetEditorBlocks, updateEditorSettings } =\n\t\t\tdispatch( editorStore );\n\t\tconst {\n\t\t\tupdateSettings,\n\t\t\tclearSelectedBlock,\n\t\t\tinsertBlock,\n\t\t\treplaceBlock,\n\t\t} = dispatch( blockEditorStore );\n\t\tconst { switchEditorMode } = dispatch( editPostStore );\n\t\tconst { addEntities, receiveEntityRecords } = dispatch( coreStore );\n\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\treturn {\n\t\t\tupdateBlockEditorSettings: updateSettings,\n\t\t\tupdateEditorSettings,\n\t\t\taddEntities,\n\t\t\tclearSelectedBlock,\n\t\t\tinsertBlock,\n\t\t\tcreateSuccessNotice,\n\t\t\teditTitle( title ) {\n\t\t\t\teditPost( { title } );\n\t\t\t},\n\t\t\treceiveEntityRecords,\n\t\t\tresetEditorBlocksWithoutUndoLevel( blocks ) {\n\t\t\t\tresetEditorBlocks( blocks, {\n\t\t\t\t\t__unstableShouldCreateUndoLevel: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tswitchMode( mode ) {\n\t\t\t\tswitchEditorMode( mode );\n\t\t\t},\n\t\t\treplaceBlock,\n\t\t};\n\t} ),\n] )( NativeEditorProvider );\n\nexport default ComposedNativeProvider;\nexport { ComposedNativeProvider as ExperimentalEditorProvider };\n"]}