@wordpress/patterns 2.13.1-next.cd6172eb0.0 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/LICENSE.md +1 -1
- package/build/api/index.js +1 -0
- package/build/api/index.js.map +1 -1
- package/build/components/category-selector.js +1 -0
- package/build/components/category-selector.js.map +1 -1
- package/build/components/create-pattern-modal.js +1 -0
- package/build/components/create-pattern-modal.js.map +1 -1
- package/build/components/overrides-panel.js +1 -0
- package/build/components/overrides-panel.js.map +1 -1
- package/build/components/pattern-convert-button.js +1 -0
- package/build/components/pattern-convert-button.js.map +1 -1
- package/build/components/pattern-overrides-block-controls.js +1 -0
- package/build/components/pattern-overrides-block-controls.js.map +1 -1
- package/build/components/rename-pattern-category-modal.js +1 -0
- package/build/components/rename-pattern-category-modal.js.map +1 -1
- package/build/private-hooks.js +1 -0
- package/build/private-hooks.js.map +1 -1
- package/build/store/actions.js +1 -0
- package/build/store/actions.js.map +1 -1
- package/build-module/api/index.js +1 -0
- package/build-module/api/index.js.map +1 -1
- package/build-module/components/category-selector.js +1 -0
- package/build-module/components/category-selector.js.map +1 -1
- package/build-module/components/create-pattern-modal.js +1 -0
- package/build-module/components/create-pattern-modal.js.map +1 -1
- package/build-module/components/overrides-panel.js +1 -0
- package/build-module/components/overrides-panel.js.map +1 -1
- package/build-module/components/pattern-convert-button.js +1 -0
- package/build-module/components/pattern-convert-button.js.map +1 -1
- package/build-module/components/pattern-overrides-block-controls.js +1 -0
- package/build-module/components/pattern-overrides-block-controls.js.map +1 -1
- package/build-module/components/rename-pattern-category-modal.js +1 -0
- package/build-module/components/rename-pattern-category-modal.js.map +1 -1
- package/build-module/private-hooks.js +1 -0
- package/build-module/private-hooks.js.map +1 -1
- package/build-module/store/actions.js +1 -0
- package/build-module/store/actions.js.map +1 -1
- package/package.json +16 -16
package/CHANGELOG.md
CHANGED
package/LICENSE.md
CHANGED
package/build/api/index.js
CHANGED
package/build/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","isOverridableBlock","block","Object","keys","PARTIAL_SYNCING_SUPPORTED_BLOCKS","includes","name","attributes","metadata","bindings","values","some","binding","source","hasOverridableBlocks","blocks","innerBlocks"],"sources":["@wordpress/patterns/src/api/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { PARTIAL_SYNCING_SUPPORTED_BLOCKS } from '../constants';\n\n/**\n * Determines whether a block is overridable.\n *\n * @param {WPBlock} block The block to test.\n *\n * @return {boolean} `true` if a block is overridable, `false` otherwise.\n */\nexport function isOverridableBlock( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.name &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\n/**\n * Determines whether the blocks list has overridable blocks.\n *\n * @param {WPBlock[]} blocks The blocks list.\n *\n * @return {boolean} `true` if the list has overridable blocks, `false` otherwise.\n */\nexport function hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_constants","require","isOverridableBlock","block","Object","keys","PARTIAL_SYNCING_SUPPORTED_BLOCKS","includes","name","attributes","metadata","bindings","values","some","binding","source","hasOverridableBlocks","blocks","innerBlocks"],"sources":["@wordpress/patterns/src/api/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { PARTIAL_SYNCING_SUPPORTED_BLOCKS } from '../constants';\n\n/**\n * Determines whether a block is overridable.\n *\n * @param {WPBlock} block The block to test.\n *\n * @return {boolean} `true` if a block is overridable, `false` otherwise.\n */\nexport function isOverridableBlock( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.name &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\n/**\n * Determines whether the blocks list has overridable blocks.\n *\n * @param {WPBlock[]} blocks The blocks list.\n *\n * @return {boolean} `true` if the list has overridable blocks, `false` otherwise.\n */\nexport function hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAAEC,KAAK,EAAG;EAC3C,OACCC,MAAM,CAACC,IAAI,CAAEC,2CAAiC,CAAC,CAACC,QAAQ,CACvDJ,KAAK,CAACK,IACP,CAAC,IACD,CAAC,CAAEL,KAAK,CAACM,UAAU,CAACC,QAAQ,EAAEF,IAAI,IAClC,CAAC,CAAEL,KAAK,CAACM,UAAU,CAACC,QAAQ,EAAEC,QAAQ,IACtCP,MAAM,CAACQ,MAAM,CAAET,KAAK,CAACM,UAAU,CAACC,QAAQ,CAACC,QAAS,CAAC,CAACE,IAAI,CACrDC,OAAO,IAAMA,OAAO,CAACC,MAAM,KAAK,wBACnC,CAAC;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,oBAAoBA,CAAEC,MAAM,EAAG;EAC9C,OAAOA,MAAM,CAACJ,IAAI,CAAIV,KAAK,IAAM;IAChC,IAAKD,kBAAkB,CAAEC,KAAM,CAAC,EAAG;MAClC,OAAO,IAAI;IACZ;IACA,OAAOa,oBAAoB,CAAEb,KAAK,CAACe,WAAY,CAAC;EACjD,CAAE,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_element","_components","_compose","_htmlEntities","_jsxRuntime","unescapeString","arg","decodeEntities","CATEGORY_SLUG","exports","CategorySelector","categoryTerms","onChange","categoryMap","search","setSearch","useState","debouncedSearch","useDebounce","suggestions","useMemo","Array","from","values","map","category","label","filter","toLowerCase","includes","sort","a","b","localeCompare","handleChange","termNames","uniqueTerms","reduce","terms","newTerm","some","term","push","jsx","FormTokenField","className","value","onInputChange","__","tokenizeOnBlur","__experimentalExpandOnFocus","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/patterns/src/components/category-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { FormTokenField } from '@wordpress/components';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst unescapeString = ( arg ) => {\n\treturn decodeEntities( arg );\n};\n\nexport const CATEGORY_SLUG = 'wp_pattern_category';\n\nexport default function CategorySelector( {\n\tcategoryTerms,\n\tonChange,\n\tcategoryMap,\n} ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn Array.from( categoryMap.values() )\n\t\t\t.map( ( category ) => unescapeString( category.label ) )\n\t\t\t.filter( ( category ) => {\n\t\t\t\tif ( search !== '' ) {\n\t\t\t\t\treturn category\n\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t.includes( search.toLowerCase() );\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t} )\n\t\t\t.sort( ( a, b ) => a.localeCompare( b ) );\n\t}, [ search, categoryMap ] );\n\n\tfunction handleChange( termNames ) {\n\t\tconst uniqueTerms = termNames.reduce( ( terms, newTerm ) => {\n\t\t\tif (\n\t\t\t\t! terms.some(\n\t\t\t\t\t( term ) => term.toLowerCase() === newTerm.toLowerCase()\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tterms.push( newTerm );\n\t\t\t}\n\t\t\treturn terms;\n\t\t}, [] );\n\n\t\tonChange( uniqueTerms );\n\t}\n\n\treturn (\n\t\t<FormTokenField\n\t\t\tclassName=\"patterns-menu-items__convert-modal-categories\"\n\t\t\tvalue={ categoryTerms }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ handleChange }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tlabel={ __( 'Categories' ) }\n\t\t\ttokenizeOnBlur\n\t\t\t__experimentalExpandOnFocus\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_i18n","require","_element","_components","_compose","_htmlEntities","_jsxRuntime","unescapeString","arg","decodeEntities","CATEGORY_SLUG","exports","CategorySelector","categoryTerms","onChange","categoryMap","search","setSearch","useState","debouncedSearch","useDebounce","suggestions","useMemo","Array","from","values","map","category","label","filter","toLowerCase","includes","sort","a","b","localeCompare","handleChange","termNames","uniqueTerms","reduce","terms","newTerm","some","term","push","jsx","FormTokenField","className","value","onInputChange","__","tokenizeOnBlur","__experimentalExpandOnFocus","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/patterns/src/components/category-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { FormTokenField } from '@wordpress/components';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst unescapeString = ( arg ) => {\n\treturn decodeEntities( arg );\n};\n\nexport const CATEGORY_SLUG = 'wp_pattern_category';\n\nexport default function CategorySelector( {\n\tcategoryTerms,\n\tonChange,\n\tcategoryMap,\n} ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn Array.from( categoryMap.values() )\n\t\t\t.map( ( category ) => unescapeString( category.label ) )\n\t\t\t.filter( ( category ) => {\n\t\t\t\tif ( search !== '' ) {\n\t\t\t\t\treturn category\n\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t.includes( search.toLowerCase() );\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t} )\n\t\t\t.sort( ( a, b ) => a.localeCompare( b ) );\n\t}, [ search, categoryMap ] );\n\n\tfunction handleChange( termNames ) {\n\t\tconst uniqueTerms = termNames.reduce( ( terms, newTerm ) => {\n\t\t\tif (\n\t\t\t\t! terms.some(\n\t\t\t\t\t( term ) => term.toLowerCase() === newTerm.toLowerCase()\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tterms.push( newTerm );\n\t\t\t}\n\t\t\treturn terms;\n\t\t}, [] );\n\n\t\tonChange( uniqueTerms );\n\t}\n\n\treturn (\n\t\t<FormTokenField\n\t\t\tclassName=\"patterns-menu-items__convert-modal-categories\"\n\t\t\tvalue={ categoryTerms }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ handleChange }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tlabel={ __( 'Categories' ) }\n\t\t\ttokenizeOnBlur\n\t\t\t__experimentalExpandOnFocus\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAA0D,IAAAK,WAAA,GAAAL,OAAA;AAP1D;AACA;AACA;;AAOA,MAAMM,cAAc,GAAKC,GAAG,IAAM;EACjC,OAAO,IAAAC,4BAAc,EAAED,GAAI,CAAC;AAC7B,CAAC;AAEM,MAAME,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,qBAAqB;AAEnC,SAASE,gBAAgBA,CAAE;EACzCC,aAAa;EACbC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,MAAM,EAAEC,SAAS,CAAE,GAAG,IAAAC,iBAAQ,EAAE,EAAG,CAAC;EAC5C,MAAMC,eAAe,GAAG,IAAAC,oBAAW,EAAEH,SAAS,EAAE,GAAI,CAAC;EAErD,MAAMI,WAAW,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAClC,OAAOC,KAAK,CAACC,IAAI,CAAET,WAAW,CAACU,MAAM,CAAC,CAAE,CAAC,CACvCC,GAAG,CAAIC,QAAQ,IAAMpB,cAAc,CAAEoB,QAAQ,CAACC,KAAM,CAAE,CAAC,CACvDC,MAAM,CAAIF,QAAQ,IAAM;MACxB,IAAKX,MAAM,KAAK,EAAE,EAAG;QACpB,OAAOW,QAAQ,CACbG,WAAW,CAAC,CAAC,CACbC,QAAQ,CAAEf,MAAM,CAACc,WAAW,CAAC,CAAE,CAAC;MACnC;MACA,OAAO,IAAI;IACZ,CAAE,CAAC,CACFE,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAMD,CAAC,CAACE,aAAa,CAAED,CAAE,CAAE,CAAC;EAC3C,CAAC,EAAE,CAAElB,MAAM,EAAED,WAAW,CAAG,CAAC;EAE5B,SAASqB,YAAYA,CAAEC,SAAS,EAAG;IAClC,MAAMC,WAAW,GAAGD,SAAS,CAACE,MAAM,CAAE,CAAEC,KAAK,EAAEC,OAAO,KAAM;MAC3D,IACC,CAAED,KAAK,CAACE,IAAI,CACTC,IAAI,IAAMA,IAAI,CAACb,WAAW,CAAC,CAAC,KAAKW,OAAO,CAACX,WAAW,CAAC,CACxD,CAAC,EACA;QACDU,KAAK,CAACI,IAAI,CAAEH,OAAQ,CAAC;MACtB;MACA,OAAOD,KAAK;IACb,CAAC,EAAE,EAAG,CAAC;IAEP1B,QAAQ,CAAEwB,WAAY,CAAC;EACxB;EAEA,oBACC,IAAAhC,WAAA,CAAAuC,GAAA,EAAC1C,WAAA,CAAA2C,cAAc;IACdC,SAAS,EAAC,+CAA+C;IACzDC,KAAK,EAAGnC,aAAe;IACvBQ,WAAW,EAAGA,WAAa;IAC3BP,QAAQ,EAAGsB,YAAc;IACzBa,aAAa,EAAG9B,eAAiB;IACjCS,KAAK,EAAG,IAAAsB,QAAE,EAAE,YAAa,CAAG;IAC5BC,cAAc;IACdC,2BAA2B;IAC3BC,qBAAqB;IACrBC,uBAAuB;EAAA,CACvB,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_data","_notices","_coreData","_constants","_store","_categorySelector","_interopRequireDefault","_privateHooks","_lockUnlock","_jsxRuntime","CreatePatternModal","className","modalTitle","restProps","defaultModalTitle","useSelect","select","coreStore","getPostType","PATTERN_TYPES","user","labels","add_new_item","jsx","Modal","title","onRequestClose","onClose","overlayClassName","focusOnMount","size","children","CreatePatternModalContents","confirmLabel","__","defaultCategories","content","onError","onSuccess","defaultSyncType","PATTERN_SYNC_TYPES","full","defaultTitle","syncType","setSyncType","useState","categoryTerms","setCategoryTerms","setTitle","isSaving","setIsSaving","createPattern","unlock","useDispatch","patternsStore","createErrorNotice","noticesStore","categoryMap","findOrCreateTerm","useAddPatternCategory","onCreate","patternTitle","sync","categories","Promise","all","map","termName","newPattern","pattern","categoryId","PATTERN_DEFAULT_CATEGORY","error","message","type","id","onSubmit","event","preventDefault","jsxs","__experimentalVStack","spacing","TextControl","label","value","onChange","placeholder","__nextHasNoMarginBottom","__next40pxDefaultSize","default","ToggleControl","_x","help","checked","unsynced","__experimentalHStack","justify","Button","variant","onClick","isBusy"],"sources":["@wordpress/patterns/src/components/create-pattern-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_TYPES,\n} from '../constants';\nimport { store as patternsStore } from '../store';\nimport CategorySelector from './category-selector';\nimport { useAddPatternCategory } from '../private-hooks';\nimport { unlock } from '../lock-unlock';\n\nexport default function CreatePatternModal( {\n\tclassName = 'patterns-menu-items__convert-modal',\n\tmodalTitle,\n\t...restProps\n} ) {\n\tconst defaultModalTitle = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t[]\n\t);\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle || defaultModalTitle }\n\t\t\tonRequestClose={ restProps.onClose }\n\t\t\toverlayClassName={ className }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<CreatePatternModalContents { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nexport function CreatePatternModalContents( {\n\tconfirmLabel = __( 'Add' ),\n\tdefaultCategories = [],\n\tcontent,\n\tonClose,\n\tonError,\n\tonSuccess,\n\tdefaultSyncType = PATTERN_SYNC_TYPES.full,\n\tdefaultTitle = '',\n} ) {\n\tconst [ syncType, setSyncType ] = useState( defaultSyncType );\n\tconst [ categoryTerms, setCategoryTerms ] = useState( defaultCategories );\n\tconst [ title, setTitle ] = useState( defaultTitle );\n\n\tconst [ isSaving, setIsSaving ] = useState( false );\n\tconst { createPattern } = unlock( useDispatch( patternsStore ) );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\n\tasync function onCreate( patternTitle, sync ) {\n\t\tif ( ! title || isSaving ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSaving( true );\n\t\t\tconst categories = await Promise.all(\n\t\t\t\tcategoryTerms.map( ( termName ) =>\n\t\t\t\t\tfindOrCreateTerm( termName )\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tconst newPattern = await createPattern(\n\t\t\t\tpatternTitle,\n\t\t\t\tsync,\n\t\t\t\ttypeof content === 'function' ? content() : content,\n\t\t\t\tcategories\n\t\t\t);\n\t\t\tonSuccess( {\n\t\t\t\tpattern: newPattern,\n\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-create',\n\t\t\t} );\n\t\t\tonError?.();\n\t\t} finally {\n\t\t\tsetIsSaving( false );\n\t\t\tsetCategoryTerms( [] );\n\t\t\tsetTitle( '' );\n\t\t}\n\t}\n\n\treturn (\n\t\t<form\n\t\t\tonSubmit={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonCreate( title, syncType );\n\t\t\t} }\n\t\t>\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ __( 'My pattern' ) }\n\t\t\t\t\tclassName=\"patterns-create-modal__name-input\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t\t<CategorySelector\n\t\t\t\t\tcategoryTerms={ categoryTerms }\n\t\t\t\t\tonChange={ setCategoryTerms }\n\t\t\t\t\tcategoryMap={ categoryMap }\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ _x( 'Synced', 'pattern (singular)' ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Sync this pattern across multiple locations.'\n\t\t\t\t\t) }\n\t\t\t\t\tchecked={ syncType === PATTERN_SYNC_TYPES.full }\n\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\tsyncType === PATTERN_SYNC_TYPES.full\n\t\t\t\t\t\t\t\t? PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t\t\t: PATTERN_SYNC_TYPES.full\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\taria-disabled={ ! title || isSaving }\n\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ confirmLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_data","_notices","_coreData","_constants","_store","_categorySelector","_interopRequireDefault","_privateHooks","_lockUnlock","_jsxRuntime","CreatePatternModal","className","modalTitle","restProps","defaultModalTitle","useSelect","select","coreStore","getPostType","PATTERN_TYPES","user","labels","add_new_item","jsx","Modal","title","onRequestClose","onClose","overlayClassName","focusOnMount","size","children","CreatePatternModalContents","confirmLabel","__","defaultCategories","content","onError","onSuccess","defaultSyncType","PATTERN_SYNC_TYPES","full","defaultTitle","syncType","setSyncType","useState","categoryTerms","setCategoryTerms","setTitle","isSaving","setIsSaving","createPattern","unlock","useDispatch","patternsStore","createErrorNotice","noticesStore","categoryMap","findOrCreateTerm","useAddPatternCategory","onCreate","patternTitle","sync","categories","Promise","all","map","termName","newPattern","pattern","categoryId","PATTERN_DEFAULT_CATEGORY","error","message","type","id","onSubmit","event","preventDefault","jsxs","__experimentalVStack","spacing","TextControl","label","value","onChange","placeholder","__nextHasNoMarginBottom","__next40pxDefaultSize","default","ToggleControl","_x","help","checked","unsynced","__experimentalHStack","justify","Button","variant","onClick","isBusy"],"sources":["@wordpress/patterns/src/components/create-pattern-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_TYPES,\n} from '../constants';\nimport { store as patternsStore } from '../store';\nimport CategorySelector from './category-selector';\nimport { useAddPatternCategory } from '../private-hooks';\nimport { unlock } from '../lock-unlock';\n\nexport default function CreatePatternModal( {\n\tclassName = 'patterns-menu-items__convert-modal',\n\tmodalTitle,\n\t...restProps\n} ) {\n\tconst defaultModalTitle = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t[]\n\t);\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle || defaultModalTitle }\n\t\t\tonRequestClose={ restProps.onClose }\n\t\t\toverlayClassName={ className }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<CreatePatternModalContents { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nexport function CreatePatternModalContents( {\n\tconfirmLabel = __( 'Add' ),\n\tdefaultCategories = [],\n\tcontent,\n\tonClose,\n\tonError,\n\tonSuccess,\n\tdefaultSyncType = PATTERN_SYNC_TYPES.full,\n\tdefaultTitle = '',\n} ) {\n\tconst [ syncType, setSyncType ] = useState( defaultSyncType );\n\tconst [ categoryTerms, setCategoryTerms ] = useState( defaultCategories );\n\tconst [ title, setTitle ] = useState( defaultTitle );\n\n\tconst [ isSaving, setIsSaving ] = useState( false );\n\tconst { createPattern } = unlock( useDispatch( patternsStore ) );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\n\tasync function onCreate( patternTitle, sync ) {\n\t\tif ( ! title || isSaving ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSaving( true );\n\t\t\tconst categories = await Promise.all(\n\t\t\t\tcategoryTerms.map( ( termName ) =>\n\t\t\t\t\tfindOrCreateTerm( termName )\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tconst newPattern = await createPattern(\n\t\t\t\tpatternTitle,\n\t\t\t\tsync,\n\t\t\t\ttypeof content === 'function' ? content() : content,\n\t\t\t\tcategories\n\t\t\t);\n\t\t\tonSuccess( {\n\t\t\t\tpattern: newPattern,\n\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-create',\n\t\t\t} );\n\t\t\tonError?.();\n\t\t} finally {\n\t\t\tsetIsSaving( false );\n\t\t\tsetCategoryTerms( [] );\n\t\t\tsetTitle( '' );\n\t\t}\n\t}\n\n\treturn (\n\t\t<form\n\t\t\tonSubmit={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonCreate( title, syncType );\n\t\t\t} }\n\t\t>\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ __( 'My pattern' ) }\n\t\t\t\t\tclassName=\"patterns-create-modal__name-input\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t\t<CategorySelector\n\t\t\t\t\tcategoryTerms={ categoryTerms }\n\t\t\t\t\tonChange={ setCategoryTerms }\n\t\t\t\t\tcategoryMap={ categoryMap }\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ _x( 'Synced', 'pattern (singular)' ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Sync this pattern across multiple locations.'\n\t\t\t\t\t) }\n\t\t\t\t\tchecked={ syncType === PATTERN_SYNC_TYPES.full }\n\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\tsyncType === PATTERN_SYNC_TYPES.full\n\t\t\t\t\t\t\t\t? PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t\t\t: PATTERN_SYNC_TYPES.full\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\taria-disabled={ ! title || isSaving }\n\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ confirmLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blockEditor","require","_components","_data","_element","_i18n","_api","_lockUnlock","_jsxRuntime","BlockQuickNavigation","unlock","blockEditorPrivateApis","OverridesPanel","allClientIds","useSelect","select","blockEditorStore","getClientIdsWithDescendants","getBlock","clientIdsWithOverrides","useMemo","filter","clientId","block","isOverridableBlock","length","jsx","PanelBody","title","__","children","clientIds"],"sources":["@wordpress/patterns/src/components/overrides-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PanelBody } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isOverridableBlock } from '../api';\nimport { unlock } from '../lock-unlock';\n\nconst { BlockQuickNavigation } = unlock( blockEditorPrivateApis );\n\nexport default function OverridesPanel() {\n\tconst allClientIds = useSelect(\n\t\t( select ) => select( blockEditorStore ).getClientIdsWithDescendants(),\n\t\t[]\n\t);\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst clientIdsWithOverrides = useMemo(\n\t\t() =>\n\t\t\tallClientIds.filter( ( clientId ) => {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\treturn isOverridableBlock( block );\n\t\t\t} ),\n\t\t[ allClientIds, getBlock ]\n\t);\n\n\tif ( ! clientIdsWithOverrides?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Overrides' ) }>\n\t\t\t<BlockQuickNavigation clientIds={ clientIdsWithOverrides } />\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_blockEditor","require","_components","_data","_element","_i18n","_api","_lockUnlock","_jsxRuntime","BlockQuickNavigation","unlock","blockEditorPrivateApis","OverridesPanel","allClientIds","useSelect","select","blockEditorStore","getClientIdsWithDescendants","getBlock","clientIdsWithOverrides","useMemo","filter","clientId","block","isOverridableBlock","length","jsx","PanelBody","title","__","children","clientIds"],"sources":["@wordpress/patterns/src/components/overrides-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PanelBody } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isOverridableBlock } from '../api';\nimport { unlock } from '../lock-unlock';\n\nconst { BlockQuickNavigation } = unlock( blockEditorPrivateApis );\n\nexport default function OverridesPanel() {\n\tconst allClientIds = useSelect(\n\t\t( select ) => select( blockEditorStore ).getClientIdsWithDescendants(),\n\t\t[]\n\t);\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst clientIdsWithOverrides = useMemo(\n\t\t() =>\n\t\t\tallClientIds.filter( ( clientId ) => {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\treturn isOverridableBlock( block );\n\t\t\t} ),\n\t\t[ allClientIds, getBlock ]\n\t);\n\n\tif ( ! clientIdsWithOverrides?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Overrides' ) }>\n\t\t\t<BlockQuickNavigation clientIds={ clientIdsWithOverrides } />\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAIA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAKA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAAwC,IAAAO,WAAA,GAAAP,OAAA;AAhBxC;AACA;AACA;;AAUA;AACA;AACA;;AAIA,MAAM;EAAEQ;AAAqB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,wBAAuB,CAAC;AAElD,SAASC,cAAcA,CAAA,EAAG;EACxC,MAAMC,YAAY,GAAG,IAAAC,eAAS,EAC3BC,MAAM,IAAMA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,2BAA2B,CAAC,CAAC,EACtE,EACD,CAAC;EACD,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAJ,eAAS,EAAEE,kBAAiB,CAAC;EAClD,MAAMG,sBAAsB,GAAG,IAAAC,gBAAO,EACrC,MACCP,YAAY,CAACQ,MAAM,CAAIC,QAAQ,IAAM;IACpC,MAAMC,KAAK,GAAGL,QAAQ,CAAEI,QAAS,CAAC;IAClC,OAAO,IAAAE,uBAAkB,EAAED,KAAM,CAAC;EACnC,CAAE,CAAC,EACJ,CAAEV,YAAY,EAAEK,QAAQ,CACzB,CAAC;EAED,IAAK,CAAEC,sBAAsB,EAAEM,MAAM,EAAG;IACvC,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAjB,WAAA,CAAAkB,GAAA,EAACxB,WAAA,CAAAyB,SAAS;IAACC,KAAK,EAAG,IAAAC,QAAE,EAAE,WAAY,CAAG;IAAAC,QAAA,eACrC,IAAAtB,WAAA,CAAAkB,GAAA,EAACjB,oBAAoB;MAACsB,SAAS,EAAGZ;IAAwB,CAAE;EAAC,CACnD,CAAC;AAEd","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_blockEditor","_element","_components","_icons","_data","_coreData","_i18n","_notices","_store","_createPatternModal","_interopRequireDefault","_lockUnlock","_constants","_jsxRuntime","PatternConvertButton","clientIds","rootClientId","closeBlockSettingsMenu","createSuccessNotice","useDispatch","noticesStore","replaceBlocks","blockEditorStore","setEditingPattern","unlock","patternsStore","isModalOpen","setIsModalOpen","useState","canConvert","useSelect","select","_getBlocksByClientId","canUser","coreStore","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","rootId","length","undefined","blocks","hasReusableBlockSupport","blockName","blockType","getBlockType","hasParent","hasBlockSupport","isReusable","isReusableBlock","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","kind","getContent","useCallback","serialize","handleSuccess","pattern","wp_pattern_sync_status","PATTERN_SYNC_TYPES","unsynced","newBlock","createBlock","id","clientId","sprintf","__","title","raw","type","jsxs","Fragment","children","jsx","MenuItem","icon","symbol","onClick","default","content","onSuccess","onError","onClose"],"sources":["@wordpress/patterns/src/components/pattern-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tisReusableBlock,\n\tcreateBlock,\n\tserialize,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState, useCallback } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport CreatePatternModal from './create-pattern-modal';\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Menu control to convert block(s) to a pattern block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.closeBlockSettingsMenu Callback to close the block settings menu dropdown.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function PatternConvertButton( {\n\tclientIds,\n\trootClientId,\n\tcloseBlockSettingsMenu,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { setEditingPattern } = unlock( useDispatch( patternsStore ) );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\t// Check if the block has reusable support defined.\n\t\t\tconst hasReusableBlockSupport = ( blockName ) => {\n\t\t\t\tconst blockType = getBlockType( blockName );\n\t\t\t\tconst hasParent = blockType && 'parent' in blockType;\n\n\t\t\t\t// If the block has a parent, check with false as default, otherwise with true.\n\t\t\t\treturn hasBlockSupport( blockName, 'reusable', ! hasParent );\n\t\t\t};\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a synced pattern.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when patterns are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made into a pattern.\n\t\t\t\t\t\thasReusableBlockSupport( block.name )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst getContent = useCallback(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t[ getBlocksByClientId, clientIds ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tif ( pattern.wp_pattern_sync_status !== PATTERN_SYNC_TYPES.unsynced ) {\n\t\t\tconst newBlock = createBlock( 'core/block', {\n\t\t\t\tref: pattern.id,\n\t\t\t} );\n\n\t\t\treplaceBlocks( clientIds, newBlock );\n\t\t\tsetEditingPattern( newBlock.clientId, true );\n\t\t\tcloseBlockSettingsMenu();\n\t\t}\n\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbol }\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tcontent={ getContent }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_blocks","require","_blockEditor","_element","_components","_icons","_data","_coreData","_i18n","_notices","_store","_createPatternModal","_interopRequireDefault","_lockUnlock","_constants","_jsxRuntime","PatternConvertButton","clientIds","rootClientId","closeBlockSettingsMenu","createSuccessNotice","useDispatch","noticesStore","replaceBlocks","blockEditorStore","setEditingPattern","unlock","patternsStore","isModalOpen","setIsModalOpen","useState","canConvert","useSelect","select","_getBlocksByClientId","canUser","coreStore","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","rootId","length","undefined","blocks","hasReusableBlockSupport","blockName","blockType","getBlockType","hasParent","hasBlockSupport","isReusable","isReusableBlock","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","kind","getContent","useCallback","serialize","handleSuccess","pattern","wp_pattern_sync_status","PATTERN_SYNC_TYPES","unsynced","newBlock","createBlock","id","clientId","sprintf","__","title","raw","type","jsxs","Fragment","children","jsx","MenuItem","icon","symbol","onClick","default","content","onSuccess","onError","onClose"],"sources":["@wordpress/patterns/src/components/pattern-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tisReusableBlock,\n\tcreateBlock,\n\tserialize,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState, useCallback } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport CreatePatternModal from './create-pattern-modal';\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Menu control to convert block(s) to a pattern block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.closeBlockSettingsMenu Callback to close the block settings menu dropdown.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function PatternConvertButton( {\n\tclientIds,\n\trootClientId,\n\tcloseBlockSettingsMenu,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { setEditingPattern } = unlock( useDispatch( patternsStore ) );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\t// Check if the block has reusable support defined.\n\t\t\tconst hasReusableBlockSupport = ( blockName ) => {\n\t\t\t\tconst blockType = getBlockType( blockName );\n\t\t\t\tconst hasParent = blockType && 'parent' in blockType;\n\n\t\t\t\t// If the block has a parent, check with false as default, otherwise with true.\n\t\t\t\treturn hasBlockSupport( blockName, 'reusable', ! hasParent );\n\t\t\t};\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a synced pattern.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when patterns are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made into a pattern.\n\t\t\t\t\t\thasReusableBlockSupport( block.name )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst getContent = useCallback(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t[ getBlocksByClientId, clientIds ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tif ( pattern.wp_pattern_sync_status !== PATTERN_SYNC_TYPES.unsynced ) {\n\t\t\tconst newBlock = createBlock( 'core/block', {\n\t\t\t\tref: pattern.id,\n\t\t\t} );\n\n\t\t\treplaceBlocks( clientIds, newBlock );\n\t\t\tsetEditingPattern( newBlock.clientId, true );\n\t\t\tcloseBlockSettingsMenu();\n\t\t}\n\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbol }\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tcontent={ getContent }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_i18n","_components","_blocks","_data","_icons","_blockEditor","_lockUnlock","_constants","_jsxRuntime","useBlockDisplayTitle","unlock","blockEditorPrivateApis","PatternOverridesToolbarIndicator","clientIds","isSingleBlockSelected","length","icon","firstBlockName","useSelect","select","getBlockAttributes","getBlockNamesByClientId","blockEditorStore","getBlockType","getActiveBlockVariation","blocksStore","blockTypeNames","_firstBlockTypeName","firstBlockType","_icon","match","isSelectionOfSameType","Set","size","copy","metadata","name","firstBlockTitle","clientId","maximumLength","blockDescription","sprintf","__","toLowerCase","descriptionId","useId","jsx","ToolbarItem","children","toggleProps","DropdownMenu","className","label","popoverProps","placement","Fragment","BlockIcon","showColors","description","menuProps","orientation","__experimentalText","id","PatternOverridesBlockControls","hasPatternOverrides","hasParentPattern","getSelectedBlockClientIds","getBlockParentsByBlockName","selectedClientIds","_hasPatternOverrides","every","_getBlockAttributes$m","Object","values","bindings","some","binding","source","PATTERN_OVERRIDES_BINDING_SOURCE","_hasParentPattern","BlockControls","group"],"sources":["@wordpress/patterns/src/components/pattern-overrides-block-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useId } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarItem,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\nimport {\n\tstore as blockEditorStore,\n\tBlockIcon,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockControls,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_OVERRIDES_BINDING_SOURCE } from '../constants';\n\nconst { useBlockDisplayTitle } = unlock( blockEditorPrivateApis );\n\nfunction PatternOverridesToolbarIndicator( { clientIds } ) {\n\tconst isSingleBlockSelected = clientIds.length === 1;\n\tconst { icon, firstBlockName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, getBlockNamesByClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst blockTypeNames = getBlockNamesByClientId( clientIds );\n\t\t\tconst _firstBlockTypeName = blockTypeNames[ 0 ];\n\t\t\tconst firstBlockType = getBlockType( _firstBlockTypeName );\n\t\t\tlet _icon;\n\t\t\tif ( isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\t_firstBlockTypeName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || firstBlockType.icon;\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( blockTypeNames ).size === 1;\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? firstBlockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ticon: _icon,\n\t\t\t\tfirstBlockName: getBlockAttributes( clientIds[ 0 ] ).metadata\n\t\t\t\t\t.name,\n\t\t\t};\n\t\t},\n\t\t[ clientIds, isSingleBlockSelected ]\n\t);\n\tconst firstBlockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\n\tconst blockDescription = isSingleBlockSelected\n\t\t? sprintf(\n\t\t\t\t/* translators: 1: The block type's name. 2: The block's user-provided name (the same as the override name). */\n\t\t\t\t__( 'This %1$s is editable using the \"%2$s\" override.' ),\n\t\t\t\tfirstBlockTitle.toLowerCase(),\n\t\t\t\tfirstBlockName\n\t\t )\n\t\t: __( 'These blocks are editable using overrides.' );\n\n\tconst descriptionId = useId();\n\n\treturn (\n\t\t<ToolbarItem>\n\t\t\t{ ( toggleProps ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tclassName=\"patterns-pattern-overrides-toolbar-indicator\"\n\t\t\t\t\tlabel={ firstBlockTitle }\n\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'patterns-pattern-overrides-toolbar-indicator__popover',\n\t\t\t\t\t} }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tclassName=\"patterns-pattern-overrides-toolbar-indicator-icon\"\n\t\t\t\t\t\t\t\tshowColors\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\ttoggleProps={ {\n\t\t\t\t\t\tdescription: blockDescription,\n\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t} }\n\t\t\t\t\tmenuProps={ {\n\t\t\t\t\t\torientation: 'both',\n\t\t\t\t\t\t'aria-describedby': descriptionId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ () => (\n\t\t\t\t\t\t<Text id={ descriptionId }>{ blockDescription }</Text>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</ToolbarItem>\n\t);\n}\n\nexport default function PatternOverridesBlockControls() {\n\tconst { clientIds, hasPatternOverrides, hasParentPattern } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedClientIds = getSelectedBlockClientIds();\n\t\t\tconst _hasPatternOverrides = selectedClientIds.every(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tObject.values(\n\t\t\t\t\t\tgetBlockAttributes( clientId )?.metadata?.bindings ?? {}\n\t\t\t\t\t).some(\n\t\t\t\t\t\t( binding ) =>\n\t\t\t\t\t\t\tbinding?.source === PATTERN_OVERRIDES_BINDING_SOURCE\n\t\t\t\t\t)\n\t\t\t);\n\t\t\tconst _hasParentPattern = selectedClientIds.every(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block', true )\n\t\t\t\t\t\t.length > 0\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tclientIds: selectedClientIds,\n\t\t\t\thasPatternOverrides: _hasPatternOverrides,\n\t\t\t\thasParentPattern: _hasParentPattern,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\treturn hasPatternOverrides && hasParentPattern ? (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<PatternOverridesToolbarIndicator clientIds={ clientIds } />\n\t\t</BlockControls>\n\t) : null;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_components","_blocks","_data","_icons","_blockEditor","_lockUnlock","_constants","_jsxRuntime","useBlockDisplayTitle","unlock","blockEditorPrivateApis","PatternOverridesToolbarIndicator","clientIds","isSingleBlockSelected","length","icon","firstBlockName","useSelect","select","getBlockAttributes","getBlockNamesByClientId","blockEditorStore","getBlockType","getActiveBlockVariation","blocksStore","blockTypeNames","_firstBlockTypeName","firstBlockType","_icon","match","isSelectionOfSameType","Set","size","copy","metadata","name","firstBlockTitle","clientId","maximumLength","blockDescription","sprintf","__","toLowerCase","descriptionId","useId","jsx","ToolbarItem","children","toggleProps","DropdownMenu","className","label","popoverProps","placement","Fragment","BlockIcon","showColors","description","menuProps","orientation","__experimentalText","id","PatternOverridesBlockControls","hasPatternOverrides","hasParentPattern","getSelectedBlockClientIds","getBlockParentsByBlockName","selectedClientIds","_hasPatternOverrides","every","_getBlockAttributes$m","Object","values","bindings","some","binding","source","PATTERN_OVERRIDES_BINDING_SOURCE","_hasParentPattern","BlockControls","group"],"sources":["@wordpress/patterns/src/components/pattern-overrides-block-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useId } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarItem,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\nimport {\n\tstore as blockEditorStore,\n\tBlockIcon,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockControls,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_OVERRIDES_BINDING_SOURCE } from '../constants';\n\nconst { useBlockDisplayTitle } = unlock( blockEditorPrivateApis );\n\nfunction PatternOverridesToolbarIndicator( { clientIds } ) {\n\tconst isSingleBlockSelected = clientIds.length === 1;\n\tconst { icon, firstBlockName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, getBlockNamesByClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst blockTypeNames = getBlockNamesByClientId( clientIds );\n\t\t\tconst _firstBlockTypeName = blockTypeNames[ 0 ];\n\t\t\tconst firstBlockType = getBlockType( _firstBlockTypeName );\n\t\t\tlet _icon;\n\t\t\tif ( isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\t_firstBlockTypeName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || firstBlockType.icon;\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( blockTypeNames ).size === 1;\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? firstBlockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ticon: _icon,\n\t\t\t\tfirstBlockName: getBlockAttributes( clientIds[ 0 ] ).metadata\n\t\t\t\t\t.name,\n\t\t\t};\n\t\t},\n\t\t[ clientIds, isSingleBlockSelected ]\n\t);\n\tconst firstBlockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\n\tconst blockDescription = isSingleBlockSelected\n\t\t? sprintf(\n\t\t\t\t/* translators: 1: The block type's name. 2: The block's user-provided name (the same as the override name). */\n\t\t\t\t__( 'This %1$s is editable using the \"%2$s\" override.' ),\n\t\t\t\tfirstBlockTitle.toLowerCase(),\n\t\t\t\tfirstBlockName\n\t\t )\n\t\t: __( 'These blocks are editable using overrides.' );\n\n\tconst descriptionId = useId();\n\n\treturn (\n\t\t<ToolbarItem>\n\t\t\t{ ( toggleProps ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tclassName=\"patterns-pattern-overrides-toolbar-indicator\"\n\t\t\t\t\tlabel={ firstBlockTitle }\n\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'patterns-pattern-overrides-toolbar-indicator__popover',\n\t\t\t\t\t} }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tclassName=\"patterns-pattern-overrides-toolbar-indicator-icon\"\n\t\t\t\t\t\t\t\tshowColors\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\ttoggleProps={ {\n\t\t\t\t\t\tdescription: blockDescription,\n\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t} }\n\t\t\t\t\tmenuProps={ {\n\t\t\t\t\t\torientation: 'both',\n\t\t\t\t\t\t'aria-describedby': descriptionId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ () => (\n\t\t\t\t\t\t<Text id={ descriptionId }>{ blockDescription }</Text>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</ToolbarItem>\n\t);\n}\n\nexport default function PatternOverridesBlockControls() {\n\tconst { clientIds, hasPatternOverrides, hasParentPattern } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedClientIds = getSelectedBlockClientIds();\n\t\t\tconst _hasPatternOverrides = selectedClientIds.every(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tObject.values(\n\t\t\t\t\t\tgetBlockAttributes( clientId )?.metadata?.bindings ?? {}\n\t\t\t\t\t).some(\n\t\t\t\t\t\t( binding ) =>\n\t\t\t\t\t\t\tbinding?.source === PATTERN_OVERRIDES_BINDING_SOURCE\n\t\t\t\t\t)\n\t\t\t);\n\t\t\tconst _hasParentPattern = selectedClientIds.every(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block', true )\n\t\t\t\t\t\t.length > 0\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tclientIds: selectedClientIds,\n\t\t\t\thasPatternOverrides: _hasPatternOverrides,\n\t\t\t\thasParentPattern: _hasParentPattern,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\treturn hasPatternOverrides && hasParentPattern ? (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<PatternOverridesToolbarIndicator clientIds={ clientIds } />\n\t\t</BlockControls>\n\t) : null;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_coreData","_data","_element","_htmlEntities","_i18n","_notices","_a11y","_categorySelector","_jsxRuntime","RenamePatternCategoryModal","category","existingCategories","onClose","onError","onSuccess","props","id","useId","textControlRef","useRef","name","setName","useState","decodeEntities","isSaving","setIsSaving","validationMessage","setValidationMessage","validationMessageId","undefined","saveEntityRecord","invalidateResolution","useDispatch","coreStore","createErrorNotice","createSuccessNotice","noticesStore","onChange","newName","onSave","event","preventDefault","message","__","speak","current","focus","patternCategories","find","existingCategory","label","toLowerCase","savedRecord","CATEGORY_SLUG","slug","type","error","onRequestClose","jsx","Modal","title","children","onSubmit","jsxs","__experimentalVStack","spacing","TextControl","ref","__nextHasNoMarginBottom","__next40pxDefaultSize","value","required","className","__experimentalHStack","justify","Button","variant","onClick","isBusy"],"sources":["@wordpress/patterns/src/components/rename-pattern-category-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useId, useRef, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { CATEGORY_SLUG } from './category-selector';\n\nexport default function RenamePatternCategoryModal( {\n\tcategory,\n\texistingCategories,\n\tonClose,\n\tonError,\n\tonSuccess,\n\t...props\n} ) {\n\tconst id = useId();\n\tconst textControlRef = useRef();\n\tconst [ name, setName ] = useState( decodeEntities( category.name ) );\n\tconst [ isSaving, setIsSaving ] = useState( false );\n\tconst [ validationMessage, setValidationMessage ] = useState( false );\n\tconst validationMessageId = validationMessage\n\t\t? `patterns-rename-pattern-category-modal__validation-message-${ id }`\n\t\t: undefined;\n\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst onChange = ( newName ) => {\n\t\tif ( validationMessage ) {\n\t\t\tsetValidationMessage( undefined );\n\t\t}\n\t\tsetName( newName );\n\t};\n\n\tconst onSave = async ( event ) => {\n\t\tevent.preventDefault();\n\n\t\tif ( isSaving ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! name || name === category.name ) {\n\t\t\tconst message = __( 'Please enter a new name for this category.' );\n\t\t\tspeak( message, 'assertive' );\n\t\t\tsetValidationMessage( message );\n\t\t\ttextControlRef.current?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\t// Check existing categories to avoid creating duplicates.\n\t\tif (\n\t\t\texistingCategories.patternCategories.find( ( existingCategory ) => {\n\t\t\t\t// Compare the id so that the we don't disallow the user changing the case of their current category\n\t\t\t\t// (i.e. renaming 'test' to 'Test').\n\t\t\t\treturn (\n\t\t\t\t\texistingCategory.id !== category.id &&\n\t\t\t\t\texistingCategory.label.toLowerCase() === name.toLowerCase()\n\t\t\t\t);\n\t\t\t} )\n\t\t) {\n\t\t\tconst message = __(\n\t\t\t\t'This category already exists. Please use a different name.'\n\t\t\t);\n\t\t\tspeak( message, 'assertive' );\n\t\t\tsetValidationMessage( message );\n\t\t\ttextControlRef.current?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSaving( true );\n\n\t\t\t// User pattern category properties may differ as they can be\n\t\t\t// normalized for use alongside template part areas, core pattern\n\t\t\t// categories etc. As a result we won't just destructure the passed\n\t\t\t// category object.\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\tCATEGORY_SLUG,\n\t\t\t\t{\n\t\t\t\t\tid: category.id,\n\t\t\t\t\tslug: category.slug,\n\t\t\t\t\tname,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\tonSuccess?.( savedRecord );\n\t\t\tonClose();\n\n\t\t\tcreateSuccessNotice( __( 'Pattern category renamed.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-update',\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tonError?.();\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-update',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSaving( false );\n\t\t\tsetName( '' );\n\t\t}\n\t};\n\n\tconst onRequestClose = () => {\n\t\tonClose();\n\t\tsetName( '' );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<form onSubmit={ onSave }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<VStack spacing=\"2\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tref={ textControlRef }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\tvalue={ name }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\taria-describedby={ validationMessageId }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ validationMessage && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"patterns-rename-pattern-category-modal__validation-message\"\n\t\t\t\t\t\t\t\tid={ validationMessageId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ validationMessage }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\taria-disabled={\n\t\t\t\t\t\t\t\t! name || name === category.name || isSaving\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_coreData","_data","_element","_htmlEntities","_i18n","_notices","_a11y","_categorySelector","_jsxRuntime","RenamePatternCategoryModal","category","existingCategories","onClose","onError","onSuccess","props","id","useId","textControlRef","useRef","name","setName","useState","decodeEntities","isSaving","setIsSaving","validationMessage","setValidationMessage","validationMessageId","undefined","saveEntityRecord","invalidateResolution","useDispatch","coreStore","createErrorNotice","createSuccessNotice","noticesStore","onChange","newName","onSave","event","preventDefault","message","__","speak","current","focus","patternCategories","find","existingCategory","label","toLowerCase","savedRecord","CATEGORY_SLUG","slug","type","error","onRequestClose","jsx","Modal","title","children","onSubmit","jsxs","__experimentalVStack","spacing","TextControl","ref","__nextHasNoMarginBottom","__next40pxDefaultSize","value","required","className","__experimentalHStack","justify","Button","variant","onClick","isBusy"],"sources":["@wordpress/patterns/src/components/rename-pattern-category-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useId, useRef, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { CATEGORY_SLUG } from './category-selector';\n\nexport default function RenamePatternCategoryModal( {\n\tcategory,\n\texistingCategories,\n\tonClose,\n\tonError,\n\tonSuccess,\n\t...props\n} ) {\n\tconst id = useId();\n\tconst textControlRef = useRef();\n\tconst [ name, setName ] = useState( decodeEntities( category.name ) );\n\tconst [ isSaving, setIsSaving ] = useState( false );\n\tconst [ validationMessage, setValidationMessage ] = useState( false );\n\tconst validationMessageId = validationMessage\n\t\t? `patterns-rename-pattern-category-modal__validation-message-${ id }`\n\t\t: undefined;\n\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst onChange = ( newName ) => {\n\t\tif ( validationMessage ) {\n\t\t\tsetValidationMessage( undefined );\n\t\t}\n\t\tsetName( newName );\n\t};\n\n\tconst onSave = async ( event ) => {\n\t\tevent.preventDefault();\n\n\t\tif ( isSaving ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! name || name === category.name ) {\n\t\t\tconst message = __( 'Please enter a new name for this category.' );\n\t\t\tspeak( message, 'assertive' );\n\t\t\tsetValidationMessage( message );\n\t\t\ttextControlRef.current?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\t// Check existing categories to avoid creating duplicates.\n\t\tif (\n\t\t\texistingCategories.patternCategories.find( ( existingCategory ) => {\n\t\t\t\t// Compare the id so that the we don't disallow the user changing the case of their current category\n\t\t\t\t// (i.e. renaming 'test' to 'Test').\n\t\t\t\treturn (\n\t\t\t\t\texistingCategory.id !== category.id &&\n\t\t\t\t\texistingCategory.label.toLowerCase() === name.toLowerCase()\n\t\t\t\t);\n\t\t\t} )\n\t\t) {\n\t\t\tconst message = __(\n\t\t\t\t'This category already exists. Please use a different name.'\n\t\t\t);\n\t\t\tspeak( message, 'assertive' );\n\t\t\tsetValidationMessage( message );\n\t\t\ttextControlRef.current?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSaving( true );\n\n\t\t\t// User pattern category properties may differ as they can be\n\t\t\t// normalized for use alongside template part areas, core pattern\n\t\t\t// categories etc. As a result we won't just destructure the passed\n\t\t\t// category object.\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\tCATEGORY_SLUG,\n\t\t\t\t{\n\t\t\t\t\tid: category.id,\n\t\t\t\t\tslug: category.slug,\n\t\t\t\t\tname,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\tonSuccess?.( savedRecord );\n\t\t\tonClose();\n\n\t\t\tcreateSuccessNotice( __( 'Pattern category renamed.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-update',\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tonError?.();\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-update',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSaving( false );\n\t\t\tsetName( '' );\n\t\t}\n\t};\n\n\tconst onRequestClose = () => {\n\t\tonClose();\n\t\tsetName( '' );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<form onSubmit={ onSave }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<VStack spacing=\"2\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tref={ textControlRef }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\tvalue={ name }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\taria-describedby={ validationMessageId }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ validationMessage && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"patterns-rename-pattern-category-modal__validation-message\"\n\t\t\t\t\t\t\t\tid={ validationMessageId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ validationMessage }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\taria-disabled={\n\t\t\t\t\t\t\t\t! name || name === category.name || isSaving\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/private-hooks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_coreData","_element","_categorySelector","useAddPatternCategory","saveEntityRecord","invalidateResolution","useDispatch","coreStore","corePatternCategories","userPatternCategories","useSelect","select","getUserPatternCategories","getBlockPatternCategories","categoryMap","useMemo","uniqueCategories","Map","forEach","category","set","label","toLowerCase","name","id","has","findOrCreateTerm","term","existingTerm","get","termData","slug","newTerm","CATEGORY_SLUG","throwOnError","error","code","data","term_id"],"sources":["@wordpress/patterns/src/private-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { CATEGORY_SLUG } from './components/category-selector';\n\n/**\n * Helper hook that creates a Map with the core and user patterns categories\n * and removes any duplicates. It's used when we need to create new user\n * categories when creating or importing patterns.\n * This hook also provides a function to find or create a pattern category.\n *\n * @return {Object} The merged categories map and the callback function to find or create a category.\n */\nexport function useAddPatternCategory() {\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { corePatternCategories, userPatternCategories } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUserPatternCategories, getBlockPatternCategories } =\n\t\t\t\tselect( coreStore );\n\n\t\t\treturn {\n\t\t\t\tcorePatternCategories: getBlockPatternCategories(),\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst categoryMap = useMemo( () => {\n\t\t// Merge the user and core pattern categories and remove any duplicates.\n\t\tconst uniqueCategories = new Map();\n\t\tuserPatternCategories.forEach( ( category ) => {\n\t\t\tuniqueCategories.set( category.label.toLowerCase(), {\n\t\t\t\tlabel: category.label,\n\t\t\t\tname: category.name,\n\t\t\t\tid: category.id,\n\t\t\t} );\n\t\t} );\n\n\t\tcorePatternCategories.forEach( ( category ) => {\n\t\t\tif (\n\t\t\t\t! uniqueCategories.has( category.label.toLowerCase() ) &&\n\t\t\t\t// There are two core categories with `Post` label so explicitly remove the one with\n\t\t\t\t// the `query` slug to avoid any confusion.\n\t\t\t\tcategory.name !== 'query'\n\t\t\t) {\n\t\t\t\tuniqueCategories.set( category.label.toLowerCase(), {\n\t\t\t\t\tlabel: category.label,\n\t\t\t\t\tname: category.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t\treturn uniqueCategories;\n\t}, [ userPatternCategories, corePatternCategories ] );\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst existingTerm = categoryMap.get( term.toLowerCase() );\n\t\t\tif ( existingTerm?.id ) {\n\t\t\t\treturn existingTerm.id;\n\t\t\t}\n\t\t\t// If we have an existing core category we need to match the new user category to the\n\t\t\t// correct slug rather than autogenerating it to prevent duplicates, eg. the core `Headers`\n\t\t\t// category uses the singular `header` as the slug.\n\t\t\tconst termData = existingTerm\n\t\t\t\t? { name: existingTerm.label, slug: existingTerm.name }\n\t\t\t\t: { name: term };\n\t\t\tconst newTerm = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\tCATEGORY_SLUG,\n\t\t\t\ttermData,\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn newTerm.id;\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn error.data.term_id;\n\t\t}\n\t}\n\n\treturn { categoryMap, findOrCreateTerm };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_data","require","_coreData","_element","_categorySelector","useAddPatternCategory","saveEntityRecord","invalidateResolution","useDispatch","coreStore","corePatternCategories","userPatternCategories","useSelect","select","getUserPatternCategories","getBlockPatternCategories","categoryMap","useMemo","uniqueCategories","Map","forEach","category","set","label","toLowerCase","name","id","has","findOrCreateTerm","term","existingTerm","get","termData","slug","newTerm","CATEGORY_SLUG","throwOnError","error","code","data","term_id"],"sources":["@wordpress/patterns/src/private-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { CATEGORY_SLUG } from './components/category-selector';\n\n/**\n * Helper hook that creates a Map with the core and user patterns categories\n * and removes any duplicates. It's used when we need to create new user\n * categories when creating or importing patterns.\n * This hook also provides a function to find or create a pattern category.\n *\n * @return {Object} The merged categories map and the callback function to find or create a category.\n */\nexport function useAddPatternCategory() {\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { corePatternCategories, userPatternCategories } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUserPatternCategories, getBlockPatternCategories } =\n\t\t\t\tselect( coreStore );\n\n\t\t\treturn {\n\t\t\t\tcorePatternCategories: getBlockPatternCategories(),\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst categoryMap = useMemo( () => {\n\t\t// Merge the user and core pattern categories and remove any duplicates.\n\t\tconst uniqueCategories = new Map();\n\t\tuserPatternCategories.forEach( ( category ) => {\n\t\t\tuniqueCategories.set( category.label.toLowerCase(), {\n\t\t\t\tlabel: category.label,\n\t\t\t\tname: category.name,\n\t\t\t\tid: category.id,\n\t\t\t} );\n\t\t} );\n\n\t\tcorePatternCategories.forEach( ( category ) => {\n\t\t\tif (\n\t\t\t\t! uniqueCategories.has( category.label.toLowerCase() ) &&\n\t\t\t\t// There are two core categories with `Post` label so explicitly remove the one with\n\t\t\t\t// the `query` slug to avoid any confusion.\n\t\t\t\tcategory.name !== 'query'\n\t\t\t) {\n\t\t\t\tuniqueCategories.set( category.label.toLowerCase(), {\n\t\t\t\t\tlabel: category.label,\n\t\t\t\t\tname: category.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t\treturn uniqueCategories;\n\t}, [ userPatternCategories, corePatternCategories ] );\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst existingTerm = categoryMap.get( term.toLowerCase() );\n\t\t\tif ( existingTerm?.id ) {\n\t\t\t\treturn existingTerm.id;\n\t\t\t}\n\t\t\t// If we have an existing core category we need to match the new user category to the\n\t\t\t// correct slug rather than autogenerating it to prevent duplicates, eg. the core `Headers`\n\t\t\t// category uses the singular `header` as the slug.\n\t\t\tconst termData = existingTerm\n\t\t\t\t? { name: existingTerm.label, slug: existingTerm.name }\n\t\t\t\t: { name: term };\n\t\t\tconst newTerm = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\tCATEGORY_SLUG,\n\t\t\t\ttermData,\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn newTerm.id;\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn error.data.term_id;\n\t\t}\n\t}\n\n\treturn { categoryMap, findOrCreateTerm };\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,iBAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAKA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,qBAAqBA,CAAA,EAAG;EACvC,MAAM;IAAEC,gBAAgB;IAAEC;EAAqB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,eAAU,CAAC;EAC3E,MAAM;IAAEC,qBAAqB;IAAEC;EAAsB,CAAC,GAAG,IAAAC,eAAS,EAC/DC,MAAM,IAAM;IACb,MAAM;MAAEC,wBAAwB;MAAEC;IAA0B,CAAC,GAC5DF,MAAM,CAAEJ,eAAU,CAAC;IAEpB,OAAO;MACNC,qBAAqB,EAAEK,yBAAyB,CAAC,CAAC;MAClDJ,qBAAqB,EAAEG,wBAAwB,CAAC;IACjD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EACD,MAAME,WAAW,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAClC;IACA,MAAMC,gBAAgB,GAAG,IAAIC,GAAG,CAAC,CAAC;IAClCR,qBAAqB,CAACS,OAAO,CAAIC,QAAQ,IAAM;MAC9CH,gBAAgB,CAACI,GAAG,CAAED,QAAQ,CAACE,KAAK,CAACC,WAAW,CAAC,CAAC,EAAE;QACnDD,KAAK,EAAEF,QAAQ,CAACE,KAAK;QACrBE,IAAI,EAAEJ,QAAQ,CAACI,IAAI;QACnBC,EAAE,EAAEL,QAAQ,CAACK;MACd,CAAE,CAAC;IACJ,CAAE,CAAC;IAEHhB,qBAAqB,CAACU,OAAO,CAAIC,QAAQ,IAAM;MAC9C,IACC,CAAEH,gBAAgB,CAACS,GAAG,CAAEN,QAAQ,CAACE,KAAK,CAACC,WAAW,CAAC,CAAE,CAAC;MACtD;MACA;MACAH,QAAQ,CAACI,IAAI,KAAK,OAAO,EACxB;QACDP,gBAAgB,CAACI,GAAG,CAAED,QAAQ,CAACE,KAAK,CAACC,WAAW,CAAC,CAAC,EAAE;UACnDD,KAAK,EAAEF,QAAQ,CAACE,KAAK;UACrBE,IAAI,EAAEJ,QAAQ,CAACI;QAChB,CAAE,CAAC;MACJ;IACD,CAAE,CAAC;IACH,OAAOP,gBAAgB;EACxB,CAAC,EAAE,CAAEP,qBAAqB,EAAED,qBAAqB,CAAG,CAAC;EAErD,eAAekB,gBAAgBA,CAAEC,IAAI,EAAG;IACvC,IAAI;MACH,MAAMC,YAAY,GAAGd,WAAW,CAACe,GAAG,CAAEF,IAAI,CAACL,WAAW,CAAC,CAAE,CAAC;MAC1D,IAAKM,YAAY,EAAEJ,EAAE,EAAG;QACvB,OAAOI,YAAY,CAACJ,EAAE;MACvB;MACA;MACA;MACA;MACA,MAAMM,QAAQ,GAAGF,YAAY,GAC1B;QAAEL,IAAI,EAAEK,YAAY,CAACP,KAAK;QAAEU,IAAI,EAAEH,YAAY,CAACL;MAAK,CAAC,GACrD;QAAEA,IAAI,EAAEI;MAAK,CAAC;MACjB,MAAMK,OAAO,GAAG,MAAM5B,gBAAgB,CACrC,UAAU,EACV6B,+BAAa,EACbH,QAAQ,EACR;QAAEI,YAAY,EAAE;MAAK,CACtB,CAAC;MACD7B,oBAAoB,CAAE,0BAA2B,CAAC;MAClD,OAAO2B,OAAO,CAACR,EAAE;IAClB,CAAC,CAAC,OAAQW,KAAK,EAAG;MACjB,IAAKA,KAAK,CAACC,IAAI,KAAK,aAAa,EAAG;QACnC,MAAMD,KAAK;MACZ;MACA,OAAOA,KAAK,CAACE,IAAI,CAACC,OAAO;IAC1B;EACD;EAEA,OAAO;IAAExB,WAAW;IAAEY;EAAiB,CAAC;AACzC","ignoreList":[]}
|
package/build/store/actions.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_coreData","_blockEditor","_constants","createPattern","title","syncType","content","categories","registry","meta","PATTERN_SYNC_TYPES","unsynced","wp_pattern_sync_status","undefined","reusableBlock","status","wp_pattern_category","updatedRecord","dispatch","coreStore","saveEntityRecord","exports","createPatternFromFile","file","fileContent","text","parsedContent","JSON","parse","e","Error","__file","syncStatus","pattern","convertSyncedPatternToStatic","clientId","patternBlock","select","blockEditorStore","getBlock","existingOverrides","attributes","cloneBlocksAndRemoveBindings","blocks","map","block","metadata","id","bindings","name","attributeName","value","Object","entries","getBlockType","cloneBlock","keys","length","innerBlocks","patternInnerBlocks","getBlocks","replaceBlocks","setEditingPattern","isEditing","type"],"sources":["@wordpress/patterns/src/store/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { getBlockType, cloneBlock } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Returns a generator converting one or more static blocks into a pattern, or creating a new empty pattern.\n *\n * @param {string} title Pattern title.\n * @param {'full'|'unsynced'} syncType They way block is synced, 'full' or 'unsynced'.\n * @param {string|undefined} [content] Optional serialized content of blocks to convert to pattern.\n * @param {number[]|undefined} [categories] Ids of any selected categories.\n */\nexport const createPattern =\n\t( title, syncType, content, categories ) =>\n\tasync ( { registry } ) => {\n\t\tconst meta =\n\t\t\tsyncType === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? {\n\t\t\t\t\t\twp_pattern_sync_status: syncType,\n\t\t\t\t }\n\t\t\t\t: undefined;\n\n\t\tconst reusableBlock = {\n\t\t\ttitle,\n\t\t\tcontent,\n\t\t\tstatus: 'publish',\n\t\t\tmeta,\n\t\t\twp_pattern_category: categories,\n\t\t};\n\n\t\tconst updatedRecord = await registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEntityRecord( 'postType', 'wp_block', reusableBlock );\n\n\t\treturn updatedRecord;\n\t};\n\n/**\n * Create a pattern from a JSON file.\n * @param {File} file The JSON file instance of the pattern.\n * @param {number[]|undefined} [categories] Ids of any selected categories.\n */\nexport const createPatternFromFile =\n\t( file, categories ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst fileContent = await file.text();\n\t\t/** @type {import('./types').PatternJSON} */\n\t\tlet parsedContent;\n\t\ttry {\n\t\t\tparsedContent = JSON.parse( fileContent );\n\t\t} catch ( e ) {\n\t\t\tthrow new Error( 'Invalid JSON file' );\n\t\t}\n\t\tif (\n\t\t\tparsedContent.__file !== 'wp_block' ||\n\t\t\t! parsedContent.title ||\n\t\t\t! parsedContent.content ||\n\t\t\ttypeof parsedContent.title !== 'string' ||\n\t\t\ttypeof parsedContent.content !== 'string' ||\n\t\t\t( parsedContent.syncStatus &&\n\t\t\t\ttypeof parsedContent.syncStatus !== 'string' )\n\t\t) {\n\t\t\tthrow new Error( 'Invalid pattern JSON file' );\n\t\t}\n\n\t\tconst pattern = await dispatch.createPattern(\n\t\t\tparsedContent.title,\n\t\t\tparsedContent.syncStatus,\n\t\t\tparsedContent.content,\n\t\t\tcategories\n\t\t);\n\n\t\treturn pattern;\n\t};\n\n/**\n * Returns a generator converting a synced pattern block into a static block.\n *\n * @param {string} clientId The client ID of the block to attach.\n */\nexport const convertSyncedPatternToStatic =\n\t( clientId ) =>\n\t( { registry } ) => {\n\t\tconst patternBlock = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlock( clientId );\n\t\tconst existingOverrides = patternBlock.attributes?.content;\n\n\t\tfunction cloneBlocksAndRemoveBindings( blocks ) {\n\t\t\treturn blocks.map( ( block ) => {\n\t\t\t\tlet metadata = block.attributes.metadata;\n\t\t\t\tif ( metadata ) {\n\t\t\t\t\tmetadata = { ...metadata };\n\t\t\t\t\tdelete metadata.id;\n\t\t\t\t\tdelete metadata.bindings;\n\t\t\t\t\t// Use overridden values of the pattern block if they exist.\n\t\t\t\t\tif ( existingOverrides?.[ metadata.name ] ) {\n\t\t\t\t\t\t// Iterate over each overriden attribute.\n\t\t\t\t\t\tfor ( const [ attributeName, value ] of Object.entries(\n\t\t\t\t\t\t\texistingOverrides[ metadata.name ]\n\t\t\t\t\t\t) ) {\n\t\t\t\t\t\t\t// Skip if the attribute does not exist in the block type.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t! getBlockType( block.name )?.attributes[\n\t\t\t\t\t\t\t\t\tattributeName\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\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Update the block attribute with the override value.\n\t\t\t\t\t\t\tblock.attributes[ attributeName ] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn cloneBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t{\n\t\t\t\t\t\tmetadata:\n\t\t\t\t\t\t\tmetadata && Object.keys( metadata ).length > 0\n\t\t\t\t\t\t\t\t? metadata\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t},\n\t\t\t\t\tcloneBlocksAndRemoveBindings( block.innerBlocks )\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tconst patternInnerBlocks = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlocks( patternBlock.clientId );\n\n\t\tregistry\n\t\t\t.dispatch( blockEditorStore )\n\t\t\t.replaceBlocks(\n\t\t\t\tpatternBlock.clientId,\n\t\t\t\tcloneBlocksAndRemoveBindings( patternInnerBlocks )\n\t\t\t);\n\t};\n\n/**\n * Returns an action descriptor for SET_EDITING_PATTERN action.\n *\n * @param {string} clientId The clientID of the pattern to target.\n * @param {boolean} isEditing Whether the block should be in editing state.\n * @return {Object} Action descriptor.\n */\nexport function setEditingPattern( clientId, isEditing ) {\n\treturn {\n\t\ttype: 'SET_EDITING_PATTERN',\n\t\tclientId,\n\t\tisEditing,\n\t};\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_blocks","require","_coreData","_blockEditor","_constants","createPattern","title","syncType","content","categories","registry","meta","PATTERN_SYNC_TYPES","unsynced","wp_pattern_sync_status","undefined","reusableBlock","status","wp_pattern_category","updatedRecord","dispatch","coreStore","saveEntityRecord","exports","createPatternFromFile","file","fileContent","text","parsedContent","JSON","parse","e","Error","__file","syncStatus","pattern","convertSyncedPatternToStatic","clientId","patternBlock","select","blockEditorStore","getBlock","existingOverrides","attributes","cloneBlocksAndRemoveBindings","blocks","map","block","metadata","id","bindings","name","attributeName","value","Object","entries","getBlockType","cloneBlock","keys","length","innerBlocks","patternInnerBlocks","getBlocks","replaceBlocks","setEditingPattern","isEditing","type"],"sources":["@wordpress/patterns/src/store/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { getBlockType, cloneBlock } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Returns a generator converting one or more static blocks into a pattern, or creating a new empty pattern.\n *\n * @param {string} title Pattern title.\n * @param {'full'|'unsynced'} syncType They way block is synced, 'full' or 'unsynced'.\n * @param {string|undefined} [content] Optional serialized content of blocks to convert to pattern.\n * @param {number[]|undefined} [categories] Ids of any selected categories.\n */\nexport const createPattern =\n\t( title, syncType, content, categories ) =>\n\tasync ( { registry } ) => {\n\t\tconst meta =\n\t\t\tsyncType === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? {\n\t\t\t\t\t\twp_pattern_sync_status: syncType,\n\t\t\t\t }\n\t\t\t\t: undefined;\n\n\t\tconst reusableBlock = {\n\t\t\ttitle,\n\t\t\tcontent,\n\t\t\tstatus: 'publish',\n\t\t\tmeta,\n\t\t\twp_pattern_category: categories,\n\t\t};\n\n\t\tconst updatedRecord = await registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEntityRecord( 'postType', 'wp_block', reusableBlock );\n\n\t\treturn updatedRecord;\n\t};\n\n/**\n * Create a pattern from a JSON file.\n * @param {File} file The JSON file instance of the pattern.\n * @param {number[]|undefined} [categories] Ids of any selected categories.\n */\nexport const createPatternFromFile =\n\t( file, categories ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst fileContent = await file.text();\n\t\t/** @type {import('./types').PatternJSON} */\n\t\tlet parsedContent;\n\t\ttry {\n\t\t\tparsedContent = JSON.parse( fileContent );\n\t\t} catch ( e ) {\n\t\t\tthrow new Error( 'Invalid JSON file' );\n\t\t}\n\t\tif (\n\t\t\tparsedContent.__file !== 'wp_block' ||\n\t\t\t! parsedContent.title ||\n\t\t\t! parsedContent.content ||\n\t\t\ttypeof parsedContent.title !== 'string' ||\n\t\t\ttypeof parsedContent.content !== 'string' ||\n\t\t\t( parsedContent.syncStatus &&\n\t\t\t\ttypeof parsedContent.syncStatus !== 'string' )\n\t\t) {\n\t\t\tthrow new Error( 'Invalid pattern JSON file' );\n\t\t}\n\n\t\tconst pattern = await dispatch.createPattern(\n\t\t\tparsedContent.title,\n\t\t\tparsedContent.syncStatus,\n\t\t\tparsedContent.content,\n\t\t\tcategories\n\t\t);\n\n\t\treturn pattern;\n\t};\n\n/**\n * Returns a generator converting a synced pattern block into a static block.\n *\n * @param {string} clientId The client ID of the block to attach.\n */\nexport const convertSyncedPatternToStatic =\n\t( clientId ) =>\n\t( { registry } ) => {\n\t\tconst patternBlock = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlock( clientId );\n\t\tconst existingOverrides = patternBlock.attributes?.content;\n\n\t\tfunction cloneBlocksAndRemoveBindings( blocks ) {\n\t\t\treturn blocks.map( ( block ) => {\n\t\t\t\tlet metadata = block.attributes.metadata;\n\t\t\t\tif ( metadata ) {\n\t\t\t\t\tmetadata = { ...metadata };\n\t\t\t\t\tdelete metadata.id;\n\t\t\t\t\tdelete metadata.bindings;\n\t\t\t\t\t// Use overridden values of the pattern block if they exist.\n\t\t\t\t\tif ( existingOverrides?.[ metadata.name ] ) {\n\t\t\t\t\t\t// Iterate over each overriden attribute.\n\t\t\t\t\t\tfor ( const [ attributeName, value ] of Object.entries(\n\t\t\t\t\t\t\texistingOverrides[ metadata.name ]\n\t\t\t\t\t\t) ) {\n\t\t\t\t\t\t\t// Skip if the attribute does not exist in the block type.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t! getBlockType( block.name )?.attributes[\n\t\t\t\t\t\t\t\t\tattributeName\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\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Update the block attribute with the override value.\n\t\t\t\t\t\t\tblock.attributes[ attributeName ] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn cloneBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t{\n\t\t\t\t\t\tmetadata:\n\t\t\t\t\t\t\tmetadata && Object.keys( metadata ).length > 0\n\t\t\t\t\t\t\t\t? metadata\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t},\n\t\t\t\t\tcloneBlocksAndRemoveBindings( block.innerBlocks )\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tconst patternInnerBlocks = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlocks( patternBlock.clientId );\n\n\t\tregistry\n\t\t\t.dispatch( blockEditorStore )\n\t\t\t.replaceBlocks(\n\t\t\t\tpatternBlock.clientId,\n\t\t\t\tcloneBlocksAndRemoveBindings( patternInnerBlocks )\n\t\t\t);\n\t};\n\n/**\n * Returns an action descriptor for SET_EDITING_PATTERN action.\n *\n * @param {string} clientId The clientID of the pattern to target.\n * @param {boolean} isEditing Whether the block should be in editing state.\n * @return {Object} Action descriptor.\n */\nexport function setEditingPattern( clientId, isEditing ) {\n\treturn {\n\t\ttype: 'SET_EDITING_PATTERN',\n\t\tclientId,\n\t\tisEditing,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PARTIAL_SYNCING_SUPPORTED_BLOCKS","isOverridableBlock","block","Object","keys","includes","name","attributes","metadata","bindings","values","some","binding","source","hasOverridableBlocks","blocks","innerBlocks"],"sources":["@wordpress/patterns/src/api/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { PARTIAL_SYNCING_SUPPORTED_BLOCKS } from '../constants';\n\n/**\n * Determines whether a block is overridable.\n *\n * @param {WPBlock} block The block to test.\n *\n * @return {boolean} `true` if a block is overridable, `false` otherwise.\n */\nexport function isOverridableBlock( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.name &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\n/**\n * Determines whether the blocks list has overridable blocks.\n *\n * @param {WPBlock[]} blocks The blocks list.\n *\n * @return {boolean} `true` if the list has overridable blocks, `false` otherwise.\n */\nexport function hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gCAAgC,QAAQ,cAAc;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAEC,KAAK,EAAG;EAC3C,OACCC,MAAM,CAACC,IAAI,CAAEJ,gCAAiC,CAAC,CAACK,QAAQ,CACvDH,KAAK,CAACI,IACP,CAAC,IACD,CAAC,CAAEJ,KAAK,CAACK,UAAU,CAACC,QAAQ,EAAEF,IAAI,IAClC,CAAC,CAAEJ,KAAK,CAACK,UAAU,CAACC,QAAQ,EAAEC,QAAQ,IACtCN,MAAM,CAACO,MAAM,CAAER,KAAK,CAACK,UAAU,CAACC,QAAQ,CAACC,QAAS,CAAC,CAACE,IAAI,CACrDC,OAAO,IAAMA,OAAO,CAACC,MAAM,KAAK,wBACnC,CAAC;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAAEC,MAAM,EAAG;EAC9C,OAAOA,MAAM,CAACJ,IAAI,CAAIT,KAAK,IAAM;IAChC,IAAKD,kBAAkB,CAAEC,KAAM,CAAC,EAAG;MAClC,OAAO,IAAI;IACZ;IACA,OAAOY,oBAAoB,CAAEZ,KAAK,CAACc,WAAY,CAAC;EACjD,CAAE,CAAC;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["PARTIAL_SYNCING_SUPPORTED_BLOCKS","isOverridableBlock","block","Object","keys","includes","name","attributes","metadata","bindings","values","some","binding","source","hasOverridableBlocks","blocks","innerBlocks"],"sources":["@wordpress/patterns/src/api/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { PARTIAL_SYNCING_SUPPORTED_BLOCKS } from '../constants';\n\n/**\n * Determines whether a block is overridable.\n *\n * @param {WPBlock} block The block to test.\n *\n * @return {boolean} `true` if a block is overridable, `false` otherwise.\n */\nexport function isOverridableBlock( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.name &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\n/**\n * Determines whether the blocks list has overridable blocks.\n *\n * @param {WPBlock[]} blocks The blocks list.\n *\n * @return {boolean} `true` if the list has overridable blocks, `false` otherwise.\n */\nexport function hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,gCAAgC,QAAQ,cAAc;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAEC,KAAK,EAAG;EAC3C,OACCC,MAAM,CAACC,IAAI,CAAEJ,gCAAiC,CAAC,CAACK,QAAQ,CACvDH,KAAK,CAACI,IACP,CAAC,IACD,CAAC,CAAEJ,KAAK,CAACK,UAAU,CAACC,QAAQ,EAAEF,IAAI,IAClC,CAAC,CAAEJ,KAAK,CAACK,UAAU,CAACC,QAAQ,EAAEC,QAAQ,IACtCN,MAAM,CAACO,MAAM,CAAER,KAAK,CAACK,UAAU,CAACC,QAAQ,CAACC,QAAS,CAAC,CAACE,IAAI,CACrDC,OAAO,IAAMA,OAAO,CAACC,MAAM,KAAK,wBACnC,CAAC;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAAEC,MAAM,EAAG;EAC9C,OAAOA,MAAM,CAACJ,IAAI,CAAIT,KAAK,IAAM;IAChC,IAAKD,kBAAkB,CAAEC,KAAM,CAAC,EAAG;MAClC,OAAO,IAAI;IACZ;IACA,OAAOY,oBAAoB,CAAEZ,KAAK,CAACc,WAAY,CAAC;EACjD,CAAE,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","useMemo","useState","FormTokenField","useDebounce","decodeEntities","jsx","_jsx","unescapeString","arg","CATEGORY_SLUG","CategorySelector","categoryTerms","onChange","categoryMap","search","setSearch","debouncedSearch","suggestions","Array","from","values","map","category","label","filter","toLowerCase","includes","sort","a","b","localeCompare","handleChange","termNames","uniqueTerms","reduce","terms","newTerm","some","term","push","className","value","onInputChange","tokenizeOnBlur","__experimentalExpandOnFocus","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/patterns/src/components/category-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { FormTokenField } from '@wordpress/components';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst unescapeString = ( arg ) => {\n\treturn decodeEntities( arg );\n};\n\nexport const CATEGORY_SLUG = 'wp_pattern_category';\n\nexport default function CategorySelector( {\n\tcategoryTerms,\n\tonChange,\n\tcategoryMap,\n} ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn Array.from( categoryMap.values() )\n\t\t\t.map( ( category ) => unescapeString( category.label ) )\n\t\t\t.filter( ( category ) => {\n\t\t\t\tif ( search !== '' ) {\n\t\t\t\t\treturn category\n\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t.includes( search.toLowerCase() );\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t} )\n\t\t\t.sort( ( a, b ) => a.localeCompare( b ) );\n\t}, [ search, categoryMap ] );\n\n\tfunction handleChange( termNames ) {\n\t\tconst uniqueTerms = termNames.reduce( ( terms, newTerm ) => {\n\t\t\tif (\n\t\t\t\t! terms.some(\n\t\t\t\t\t( term ) => term.toLowerCase() === newTerm.toLowerCase()\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tterms.push( newTerm );\n\t\t\t}\n\t\t\treturn terms;\n\t\t}, [] );\n\n\t\tonChange( uniqueTerms );\n\t}\n\n\treturn (\n\t\t<FormTokenField\n\t\t\tclassName=\"patterns-menu-items__convert-modal-categories\"\n\t\t\tvalue={ categoryTerms }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ handleChange }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tlabel={ __( 'Categories' ) }\n\t\t\ttokenizeOnBlur\n\t\t\t__experimentalExpandOnFocus\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AACtD,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAASC,cAAc,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1D,MAAMC,cAAc,GAAKC,GAAG,IAAM;EACjC,OAAOJ,cAAc,CAAEI,GAAI,CAAC;AAC7B,CAAC;AAED,OAAO,MAAMC,aAAa,GAAG,qBAAqB;AAElD,eAAe,SAASC,gBAAgBA,CAAE;EACzCC,aAAa;EACbC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,MAAM,EAAEC,SAAS,CAAE,GAAGd,QAAQ,CAAE,EAAG,CAAC;EAC5C,MAAMe,eAAe,GAAGb,WAAW,CAAEY,SAAS,EAAE,GAAI,CAAC;EAErD,MAAME,WAAW,GAAGjB,OAAO,CAAE,MAAM;IAClC,OAAOkB,KAAK,CAACC,IAAI,CAAEN,WAAW,CAACO,MAAM,CAAC,CAAE,CAAC,CACvCC,GAAG,CAAIC,QAAQ,IAAMf,cAAc,CAAEe,QAAQ,CAACC,KAAM,CAAE,CAAC,CACvDC,MAAM,CAAIF,QAAQ,IAAM;MACxB,IAAKR,MAAM,KAAK,EAAE,EAAG;QACpB,OAAOQ,QAAQ,CACbG,WAAW,CAAC,CAAC,CACbC,QAAQ,CAAEZ,MAAM,CAACW,WAAW,CAAC,CAAE,CAAC;MACnC;MACA,OAAO,IAAI;IACZ,CAAE,CAAC,CACFE,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAMD,CAAC,CAACE,aAAa,CAAED,CAAE,CAAE,CAAC;EAC3C,CAAC,EAAE,CAAEf,MAAM,EAAED,WAAW,CAAG,CAAC;EAE5B,SAASkB,YAAYA,CAAEC,SAAS,EAAG;IAClC,MAAMC,WAAW,GAAGD,SAAS,CAACE,MAAM,CAAE,CAAEC,KAAK,EAAEC,OAAO,KAAM;MAC3D,IACC,CAAED,KAAK,CAACE,IAAI,CACTC,IAAI,IAAMA,IAAI,CAACb,WAAW,CAAC,CAAC,KAAKW,OAAO,CAACX,WAAW,CAAC,CACxD,CAAC,EACA;QACDU,KAAK,CAACI,IAAI,CAAEH,OAAQ,CAAC;MACtB;MACA,OAAOD,KAAK;IACb,CAAC,EAAE,EAAG,CAAC;IAEPvB,QAAQ,CAAEqB,WAAY,CAAC;EACxB;EAEA,oBACC3B,IAAA,CAACJ,cAAc;IACdsC,SAAS,EAAC,+CAA+C;IACzDC,KAAK,EAAG9B,aAAe;IACvBM,WAAW,EAAGA,WAAa;IAC3BL,QAAQ,EAAGmB,YAAc;IACzBW,aAAa,EAAG1B,eAAiB;IACjCO,KAAK,EAAGxB,EAAE,CAAE,YAAa,CAAG;IAC5B4C,cAAc;IACdC,2BAA2B;IAC3BC,qBAAqB;IACrBC,uBAAuB;EAAA,CACvB,CAAC;AAEJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","useMemo","useState","FormTokenField","useDebounce","decodeEntities","jsx","_jsx","unescapeString","arg","CATEGORY_SLUG","CategorySelector","categoryTerms","onChange","categoryMap","search","setSearch","debouncedSearch","suggestions","Array","from","values","map","category","label","filter","toLowerCase","includes","sort","a","b","localeCompare","handleChange","termNames","uniqueTerms","reduce","terms","newTerm","some","term","push","className","value","onInputChange","tokenizeOnBlur","__experimentalExpandOnFocus","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/patterns/src/components/category-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { FormTokenField } from '@wordpress/components';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst unescapeString = ( arg ) => {\n\treturn decodeEntities( arg );\n};\n\nexport const CATEGORY_SLUG = 'wp_pattern_category';\n\nexport default function CategorySelector( {\n\tcategoryTerms,\n\tonChange,\n\tcategoryMap,\n} ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn Array.from( categoryMap.values() )\n\t\t\t.map( ( category ) => unescapeString( category.label ) )\n\t\t\t.filter( ( category ) => {\n\t\t\t\tif ( search !== '' ) {\n\t\t\t\t\treturn category\n\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t.includes( search.toLowerCase() );\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t} )\n\t\t\t.sort( ( a, b ) => a.localeCompare( b ) );\n\t}, [ search, categoryMap ] );\n\n\tfunction handleChange( termNames ) {\n\t\tconst uniqueTerms = termNames.reduce( ( terms, newTerm ) => {\n\t\t\tif (\n\t\t\t\t! terms.some(\n\t\t\t\t\t( term ) => term.toLowerCase() === newTerm.toLowerCase()\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tterms.push( newTerm );\n\t\t\t}\n\t\t\treturn terms;\n\t\t}, [] );\n\n\t\tonChange( uniqueTerms );\n\t}\n\n\treturn (\n\t\t<FormTokenField\n\t\t\tclassName=\"patterns-menu-items__convert-modal-categories\"\n\t\t\tvalue={ categoryTerms }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ handleChange }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tlabel={ __( 'Categories' ) }\n\t\t\ttokenizeOnBlur\n\t\t\t__experimentalExpandOnFocus\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AACtD,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAASC,cAAc,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1D,MAAMC,cAAc,GAAKC,GAAG,IAAM;EACjC,OAAOJ,cAAc,CAAEI,GAAI,CAAC;AAC7B,CAAC;AAED,OAAO,MAAMC,aAAa,GAAG,qBAAqB;AAElD,eAAe,SAASC,gBAAgBA,CAAE;EACzCC,aAAa;EACbC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,MAAM,EAAEC,SAAS,CAAE,GAAGd,QAAQ,CAAE,EAAG,CAAC;EAC5C,MAAMe,eAAe,GAAGb,WAAW,CAAEY,SAAS,EAAE,GAAI,CAAC;EAErD,MAAME,WAAW,GAAGjB,OAAO,CAAE,MAAM;IAClC,OAAOkB,KAAK,CAACC,IAAI,CAAEN,WAAW,CAACO,MAAM,CAAC,CAAE,CAAC,CACvCC,GAAG,CAAIC,QAAQ,IAAMf,cAAc,CAAEe,QAAQ,CAACC,KAAM,CAAE,CAAC,CACvDC,MAAM,CAAIF,QAAQ,IAAM;MACxB,IAAKR,MAAM,KAAK,EAAE,EAAG;QACpB,OAAOQ,QAAQ,CACbG,WAAW,CAAC,CAAC,CACbC,QAAQ,CAAEZ,MAAM,CAACW,WAAW,CAAC,CAAE,CAAC;MACnC;MACA,OAAO,IAAI;IACZ,CAAE,CAAC,CACFE,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAMD,CAAC,CAACE,aAAa,CAAED,CAAE,CAAE,CAAC;EAC3C,CAAC,EAAE,CAAEf,MAAM,EAAED,WAAW,CAAG,CAAC;EAE5B,SAASkB,YAAYA,CAAEC,SAAS,EAAG;IAClC,MAAMC,WAAW,GAAGD,SAAS,CAACE,MAAM,CAAE,CAAEC,KAAK,EAAEC,OAAO,KAAM;MAC3D,IACC,CAAED,KAAK,CAACE,IAAI,CACTC,IAAI,IAAMA,IAAI,CAACb,WAAW,CAAC,CAAC,KAAKW,OAAO,CAACX,WAAW,CAAC,CACxD,CAAC,EACA;QACDU,KAAK,CAACI,IAAI,CAAEH,OAAQ,CAAC;MACtB;MACA,OAAOD,KAAK;IACb,CAAC,EAAE,EAAG,CAAC;IAEPvB,QAAQ,CAAEqB,WAAY,CAAC;EACxB;EAEA,oBACC3B,IAAA,CAACJ,cAAc;IACdsC,SAAS,EAAC,+CAA+C;IACzDC,KAAK,EAAG9B,aAAe;IACvBM,WAAW,EAAGA,WAAa;IAC3BL,QAAQ,EAAGmB,YAAc;IACzBW,aAAa,EAAG1B,eAAiB;IACjCO,KAAK,EAAGxB,EAAE,CAAE,YAAa,CAAG;IAC5B4C,cAAc;IACdC,2BAA2B;IAC3BC,qBAAqB;IACrBC,uBAAuB;EAAA,CACvB,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Modal","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","ToggleControl","__","_x","useState","useDispatch","useSelect","store","noticesStore","coreStore","PATTERN_DEFAULT_CATEGORY","PATTERN_SYNC_TYPES","PATTERN_TYPES","patternsStore","CategorySelector","useAddPatternCategory","unlock","jsx","_jsx","jsxs","_jsxs","CreatePatternModal","className","modalTitle","restProps","defaultModalTitle","select","getPostType","user","labels","add_new_item","title","onRequestClose","onClose","overlayClassName","focusOnMount","size","children","CreatePatternModalContents","confirmLabel","defaultCategories","content","onError","onSuccess","defaultSyncType","full","defaultTitle","syncType","setSyncType","categoryTerms","setCategoryTerms","setTitle","isSaving","setIsSaving","createPattern","createErrorNotice","categoryMap","findOrCreateTerm","onCreate","patternTitle","sync","categories","Promise","all","map","termName","newPattern","pattern","categoryId","error","message","type","id","onSubmit","event","preventDefault","spacing","label","value","onChange","placeholder","__nextHasNoMarginBottom","__next40pxDefaultSize","help","checked","unsynced","justify","variant","onClick","isBusy"],"sources":["@wordpress/patterns/src/components/create-pattern-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_TYPES,\n} from '../constants';\nimport { store as patternsStore } from '../store';\nimport CategorySelector from './category-selector';\nimport { useAddPatternCategory } from '../private-hooks';\nimport { unlock } from '../lock-unlock';\n\nexport default function CreatePatternModal( {\n\tclassName = 'patterns-menu-items__convert-modal',\n\tmodalTitle,\n\t...restProps\n} ) {\n\tconst defaultModalTitle = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t[]\n\t);\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle || defaultModalTitle }\n\t\t\tonRequestClose={ restProps.onClose }\n\t\t\toverlayClassName={ className }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<CreatePatternModalContents { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nexport function CreatePatternModalContents( {\n\tconfirmLabel = __( 'Add' ),\n\tdefaultCategories = [],\n\tcontent,\n\tonClose,\n\tonError,\n\tonSuccess,\n\tdefaultSyncType = PATTERN_SYNC_TYPES.full,\n\tdefaultTitle = '',\n} ) {\n\tconst [ syncType, setSyncType ] = useState( defaultSyncType );\n\tconst [ categoryTerms, setCategoryTerms ] = useState( defaultCategories );\n\tconst [ title, setTitle ] = useState( defaultTitle );\n\n\tconst [ isSaving, setIsSaving ] = useState( false );\n\tconst { createPattern } = unlock( useDispatch( patternsStore ) );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\n\tasync function onCreate( patternTitle, sync ) {\n\t\tif ( ! title || isSaving ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSaving( true );\n\t\t\tconst categories = await Promise.all(\n\t\t\t\tcategoryTerms.map( ( termName ) =>\n\t\t\t\t\tfindOrCreateTerm( termName )\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tconst newPattern = await createPattern(\n\t\t\t\tpatternTitle,\n\t\t\t\tsync,\n\t\t\t\ttypeof content === 'function' ? content() : content,\n\t\t\t\tcategories\n\t\t\t);\n\t\t\tonSuccess( {\n\t\t\t\tpattern: newPattern,\n\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-create',\n\t\t\t} );\n\t\t\tonError?.();\n\t\t} finally {\n\t\t\tsetIsSaving( false );\n\t\t\tsetCategoryTerms( [] );\n\t\t\tsetTitle( '' );\n\t\t}\n\t}\n\n\treturn (\n\t\t<form\n\t\t\tonSubmit={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonCreate( title, syncType );\n\t\t\t} }\n\t\t>\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ __( 'My pattern' ) }\n\t\t\t\t\tclassName=\"patterns-create-modal__name-input\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t\t<CategorySelector\n\t\t\t\t\tcategoryTerms={ categoryTerms }\n\t\t\t\t\tonChange={ setCategoryTerms }\n\t\t\t\t\tcategoryMap={ categoryMap }\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ _x( 'Synced', 'pattern (singular)' ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Sync this pattern across multiple locations.'\n\t\t\t\t\t) }\n\t\t\t\t\tchecked={ syncType === PATTERN_SYNC_TYPES.full }\n\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\tsyncType === PATTERN_SYNC_TYPES.full\n\t\t\t\t\t\t\t\t? PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t\t\t: PATTERN_SYNC_TYPES.full\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\taria-disabled={ ! title || isSaving }\n\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ confirmLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,KAAK,EACLC,MAAM,EACNC,WAAW,EACXC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,aAAa,QACP,uBAAuB;AAC9B,SAASC,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;AACxC,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;AAC1D,SAASD,KAAK,IAAIE,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SACCC,wBAAwB,EACxBC,kBAAkB,EAClBC,aAAa,QACP,cAAc;AACrB,SAASL,KAAK,IAAIM,aAAa,QAAQ,UAAU;AACjD,OAAOC,gBAAgB,MAAM,qBAAqB;AAClD,SAASC,qBAAqB,QAAQ,kBAAkB;AACxD,SAASC,MAAM,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAExC,eAAe,SAASC,kBAAkBA,CAAE;EAC3CC,SAAS,GAAG,oCAAoC;EAChDC,UAAU;EACV,GAAGC;AACJ,CAAC,EAAG;EACH,MAAMC,iBAAiB,GAAGnB,SAAS,CAChCoB,MAAM,IACPA,MAAM,CAAEjB,SAAU,CAAC,CAACkB,WAAW,CAAEf,aAAa,CAACgB,IAAK,CAAC,EAAEC,MAAM,EAC1DC,YAAY,EAChB,EACD,CAAC;EACD,oBACCZ,IAAA,CAACxB,KAAK;IACLqC,KAAK,EAAGR,UAAU,IAAIE,iBAAmB;IACzCO,cAAc,EAAGR,SAAS,CAACS,OAAS;IACpCC,gBAAgB,EAAGZ,SAAW;IAC9Ba,YAAY,EAAC,qBAAqB;IAClCC,IAAI,EAAC,OAAO;IAAAC,QAAA,eAEZnB,IAAA,CAACoB,0BAA0B;MAAA,GAAMd;IAAS,CAAI;EAAC,CACzC,CAAC;AAEV;AAEA,OAAO,SAASc,0BAA0BA,CAAE;EAC3CC,YAAY,GAAGrC,EAAE,CAAE,KAAM,CAAC;EAC1BsC,iBAAiB,GAAG,EAAE;EACtBC,OAAO;EACPR,OAAO;EACPS,OAAO;EACPC,SAAS;EACTC,eAAe,GAAGjC,kBAAkB,CAACkC,IAAI;EACzCC,YAAY,GAAG;AAChB,CAAC,EAAG;EACH,MAAM,CAAEC,QAAQ,EAAEC,WAAW,CAAE,GAAG5C,QAAQ,CAAEwC,eAAgB,CAAC;EAC7D,MAAM,CAAEK,aAAa,EAAEC,gBAAgB,CAAE,GAAG9C,QAAQ,CAAEoC,iBAAkB,CAAC;EACzE,MAAM,CAAET,KAAK,EAAEoB,QAAQ,CAAE,GAAG/C,QAAQ,CAAE0C,YAAa,CAAC;EAEpD,MAAM,CAAEM,QAAQ,EAAEC,WAAW,CAAE,GAAGjD,QAAQ,CAAE,KAAM,CAAC;EACnD,MAAM;IAAEkD;EAAc,CAAC,GAAGtC,MAAM,CAAEX,WAAW,CAAEQ,aAAc,CAAE,CAAC;EAChE,MAAM;IAAE0C;EAAkB,CAAC,GAAGlD,WAAW,CAAEG,YAAa,CAAC;EAEzD,MAAM;IAAEgD,WAAW;IAAEC;EAAiB,CAAC,GAAG1C,qBAAqB,CAAC,CAAC;EAEjE,eAAe2C,QAAQA,CAAEC,YAAY,EAAEC,IAAI,EAAG;IAC7C,IAAK,CAAE7B,KAAK,IAAIqB,QAAQ,EAAG;MAC1B;IACD;IAEA,IAAI;MACHC,WAAW,CAAE,IAAK,CAAC;MACnB,MAAMQ,UAAU,GAAG,MAAMC,OAAO,CAACC,GAAG,CACnCd,aAAa,CAACe,GAAG,CAAIC,QAAQ,IAC5BR,gBAAgB,CAAEQ,QAAS,CAC5B,CACD,CAAC;MAED,MAAMC,UAAU,GAAG,MAAMZ,aAAa,CACrCK,YAAY,EACZC,IAAI,EACJ,OAAOnB,OAAO,KAAK,UAAU,GAAGA,OAAO,CAAC,CAAC,GAAGA,OAAO,EACnDoB,UACD,CAAC;MACDlB,SAAS,CAAE;QACVwB,OAAO,EAAED,UAAU;QACnBE,UAAU,EAAE1D;MACb,CAAE,CAAC;IACJ,CAAC,CAAC,OAAQ2D,KAAK,EAAG;MACjBd,iBAAiB,CAAEc,KAAK,CAACC,OAAO,EAAE;QACjCC,IAAI,EAAE,UAAU;QAChBC,EAAE,EAAE;MACL,CAAE,CAAC;MACH9B,OAAO,GAAG,CAAC;IACZ,CAAC,SAAS;MACTW,WAAW,CAAE,KAAM,CAAC;MACpBH,gBAAgB,CAAE,EAAG,CAAC;MACtBC,QAAQ,CAAE,EAAG,CAAC;IACf;EACD;EAEA,oBACCjC,IAAA;IACCuD,QAAQ,EAAKC,KAAK,IAAM;MACvBA,KAAK,CAACC,cAAc,CAAC,CAAC;MACtBjB,QAAQ,CAAE3B,KAAK,EAAEgB,QAAS,CAAC;IAC5B,CAAG;IAAAV,QAAA,eAEHjB,KAAA,CAACpB,MAAM;MAAC4E,OAAO,EAAC,GAAG;MAAAvC,QAAA,gBAClBnB,IAAA,CAACtB,WAAW;QACXiF,KAAK,EAAG3E,EAAE,CAAE,MAAO,CAAG;QACtB4E,KAAK,EAAG/C,KAAO;QACfgD,QAAQ,EAAG5B,QAAU;QACrB6B,WAAW,EAAG9E,EAAE,CAAE,YAAa,CAAG;QAClCoB,SAAS,EAAC,mCAAmC;QAC7C2D,uBAAuB;QACvBC,qBAAqB;MAAA,CACrB,CAAC,eACFhE,IAAA,CAACJ,gBAAgB;QAChBmC,aAAa,EAAGA,aAAe;QAC/B8B,QAAQ,EAAG7B,gBAAkB;QAC7BM,WAAW,EAAGA;MAAa,CAC3B,CAAC,eACFtC,IAAA,CAACjB,aAAa;QACbgF,uBAAuB;QACvBJ,KAAK,EAAG1E,EAAE,CAAE,QAAQ,EAAE,oBAAqB,CAAG;QAC9CgF,IAAI,EAAGjF,EAAE,CACR,8CACD,CAAG;QACHkF,OAAO,EAAGrC,QAAQ,KAAKpC,kBAAkB,CAACkC,IAAM;QAChDkC,QAAQ,EAAGA,CAAA,KAAM;UAChB/B,WAAW,CACVD,QAAQ,KAAKpC,kBAAkB,CAACkC,IAAI,GACjClC,kBAAkB,CAAC0E,QAAQ,GAC3B1E,kBAAkB,CAACkC,IACvB,CAAC;QACF;MAAG,CACH,CAAC,eACFzB,KAAA,CAACtB,MAAM;QAACwF,OAAO,EAAC,OAAO;QAAAjD,QAAA,gBACtBnB,IAAA,CAACvB,MAAM;UACNuF,qBAAqB;UACrBK,OAAO,EAAC,UAAU;UAClBC,OAAO,EAAGA,CAAA,KAAM;YACfvD,OAAO,CAAC,CAAC;YACTkB,QAAQ,CAAE,EAAG,CAAC;UACf,CAAG;UAAAd,QAAA,EAEDnC,EAAE,CAAE,QAAS;QAAC,CACT,CAAC,eAETgB,IAAA,CAACvB,MAAM;UACNuF,qBAAqB;UACrBK,OAAO,EAAC,SAAS;UACjBhB,IAAI,EAAC,QAAQ;UACb,iBAAgB,CAAExC,KAAK,IAAIqB,QAAU;UACrCqC,MAAM,EAAGrC,QAAU;UAAAf,QAAA,EAEjBE;QAAY,CACP,CAAC;MAAA,CACF,CAAC;IAAA,CACF;EAAC,CACJ,CAAC;AAET","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Modal","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","ToggleControl","__","_x","useState","useDispatch","useSelect","store","noticesStore","coreStore","PATTERN_DEFAULT_CATEGORY","PATTERN_SYNC_TYPES","PATTERN_TYPES","patternsStore","CategorySelector","useAddPatternCategory","unlock","jsx","_jsx","jsxs","_jsxs","CreatePatternModal","className","modalTitle","restProps","defaultModalTitle","select","getPostType","user","labels","add_new_item","title","onRequestClose","onClose","overlayClassName","focusOnMount","size","children","CreatePatternModalContents","confirmLabel","defaultCategories","content","onError","onSuccess","defaultSyncType","full","defaultTitle","syncType","setSyncType","categoryTerms","setCategoryTerms","setTitle","isSaving","setIsSaving","createPattern","createErrorNotice","categoryMap","findOrCreateTerm","onCreate","patternTitle","sync","categories","Promise","all","map","termName","newPattern","pattern","categoryId","error","message","type","id","onSubmit","event","preventDefault","spacing","label","value","onChange","placeholder","__nextHasNoMarginBottom","__next40pxDefaultSize","help","checked","unsynced","justify","variant","onClick","isBusy"],"sources":["@wordpress/patterns/src/components/create-pattern-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_TYPES,\n} from '../constants';\nimport { store as patternsStore } from '../store';\nimport CategorySelector from './category-selector';\nimport { useAddPatternCategory } from '../private-hooks';\nimport { unlock } from '../lock-unlock';\n\nexport default function CreatePatternModal( {\n\tclassName = 'patterns-menu-items__convert-modal',\n\tmodalTitle,\n\t...restProps\n} ) {\n\tconst defaultModalTitle = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t[]\n\t);\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle || defaultModalTitle }\n\t\t\tonRequestClose={ restProps.onClose }\n\t\t\toverlayClassName={ className }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<CreatePatternModalContents { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nexport function CreatePatternModalContents( {\n\tconfirmLabel = __( 'Add' ),\n\tdefaultCategories = [],\n\tcontent,\n\tonClose,\n\tonError,\n\tonSuccess,\n\tdefaultSyncType = PATTERN_SYNC_TYPES.full,\n\tdefaultTitle = '',\n} ) {\n\tconst [ syncType, setSyncType ] = useState( defaultSyncType );\n\tconst [ categoryTerms, setCategoryTerms ] = useState( defaultCategories );\n\tconst [ title, setTitle ] = useState( defaultTitle );\n\n\tconst [ isSaving, setIsSaving ] = useState( false );\n\tconst { createPattern } = unlock( useDispatch( patternsStore ) );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\n\tasync function onCreate( patternTitle, sync ) {\n\t\tif ( ! title || isSaving ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSaving( true );\n\t\t\tconst categories = await Promise.all(\n\t\t\t\tcategoryTerms.map( ( termName ) =>\n\t\t\t\t\tfindOrCreateTerm( termName )\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tconst newPattern = await createPattern(\n\t\t\t\tpatternTitle,\n\t\t\t\tsync,\n\t\t\t\ttypeof content === 'function' ? content() : content,\n\t\t\t\tcategories\n\t\t\t);\n\t\t\tonSuccess( {\n\t\t\t\tpattern: newPattern,\n\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-create',\n\t\t\t} );\n\t\t\tonError?.();\n\t\t} finally {\n\t\t\tsetIsSaving( false );\n\t\t\tsetCategoryTerms( [] );\n\t\t\tsetTitle( '' );\n\t\t}\n\t}\n\n\treturn (\n\t\t<form\n\t\t\tonSubmit={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonCreate( title, syncType );\n\t\t\t} }\n\t\t>\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ __( 'My pattern' ) }\n\t\t\t\t\tclassName=\"patterns-create-modal__name-input\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t\t<CategorySelector\n\t\t\t\t\tcategoryTerms={ categoryTerms }\n\t\t\t\t\tonChange={ setCategoryTerms }\n\t\t\t\t\tcategoryMap={ categoryMap }\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ _x( 'Synced', 'pattern (singular)' ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Sync this pattern across multiple locations.'\n\t\t\t\t\t) }\n\t\t\t\t\tchecked={ syncType === PATTERN_SYNC_TYPES.full }\n\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\tsyncType === PATTERN_SYNC_TYPES.full\n\t\t\t\t\t\t\t\t? PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t\t\t: PATTERN_SYNC_TYPES.full\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\taria-disabled={ ! title || isSaving }\n\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ confirmLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["privateApis","blockEditorPrivateApis","store","blockEditorStore","PanelBody","useSelect","useMemo","__","isOverridableBlock","unlock","jsx","_jsx","BlockQuickNavigation","OverridesPanel","allClientIds","select","getClientIdsWithDescendants","getBlock","clientIdsWithOverrides","filter","clientId","block","length","title","children","clientIds"],"sources":["@wordpress/patterns/src/components/overrides-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PanelBody } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isOverridableBlock } from '../api';\nimport { unlock } from '../lock-unlock';\n\nconst { BlockQuickNavigation } = unlock( blockEditorPrivateApis );\n\nexport default function OverridesPanel() {\n\tconst allClientIds = useSelect(\n\t\t( select ) => select( blockEditorStore ).getClientIdsWithDescendants(),\n\t\t[]\n\t);\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst clientIdsWithOverrides = useMemo(\n\t\t() =>\n\t\t\tallClientIds.filter( ( clientId ) => {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\treturn isOverridableBlock( block );\n\t\t\t} ),\n\t\t[ allClientIds, getBlock ]\n\t);\n\n\tif ( ! clientIdsWithOverrides?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Overrides' ) }>\n\t\t\t<BlockQuickNavigation clientIds={ clientIdsWithOverrides } />\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,WAAW,IAAIC,sBAAsB,EACrCC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASC,kBAAkB,QAAQ,QAAQ;AAC3C,SAASC,MAAM,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,MAAM;EAAEC;AAAqB,CAAC,GAAGH,MAAM,CAAER,sBAAuB,CAAC;AAEjE,eAAe,SAASY,cAAcA,CAAA,EAAG;EACxC,MAAMC,YAAY,GAAGT,SAAS,CAC3BU,MAAM,IAAMA,MAAM,CAAEZ,gBAAiB,CAAC,CAACa,2BAA2B,CAAC,CAAC,EACtE,EACD,CAAC;EACD,MAAM;IAAEC;EAAS,CAAC,GAAGZ,SAAS,CAAEF,gBAAiB,CAAC;EAClD,MAAMe,sBAAsB,GAAGZ,OAAO,CACrC,MACCQ,YAAY,CAACK,MAAM,CAAIC,QAAQ,IAAM;IACpC,MAAMC,KAAK,GAAGJ,QAAQ,CAAEG,QAAS,CAAC;IAClC,OAAOZ,kBAAkB,CAAEa,KAAM,CAAC;EACnC,CAAE,CAAC,EACJ,CAAEP,YAAY,EAAEG,QAAQ,CACzB,CAAC;EAED,IAAK,CAAEC,sBAAsB,EAAEI,MAAM,EAAG;IACvC,OAAO,IAAI;EACZ;EAEA,oBACCX,IAAA,CAACP,SAAS;IAACmB,KAAK,EAAGhB,EAAE,CAAE,WAAY,CAAG;IAAAiB,QAAA,eACrCb,IAAA,CAACC,oBAAoB;MAACa,SAAS,EAAGP;IAAwB,CAAE;EAAC,CACnD,CAAC;AAEd","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["privateApis","blockEditorPrivateApis","store","blockEditorStore","PanelBody","useSelect","useMemo","__","isOverridableBlock","unlock","jsx","_jsx","BlockQuickNavigation","OverridesPanel","allClientIds","select","getClientIdsWithDescendants","getBlock","clientIdsWithOverrides","filter","clientId","block","length","title","children","clientIds"],"sources":["@wordpress/patterns/src/components/overrides-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PanelBody } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isOverridableBlock } from '../api';\nimport { unlock } from '../lock-unlock';\n\nconst { BlockQuickNavigation } = unlock( blockEditorPrivateApis );\n\nexport default function OverridesPanel() {\n\tconst allClientIds = useSelect(\n\t\t( select ) => select( blockEditorStore ).getClientIdsWithDescendants(),\n\t\t[]\n\t);\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst clientIdsWithOverrides = useMemo(\n\t\t() =>\n\t\t\tallClientIds.filter( ( clientId ) => {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\treturn isOverridableBlock( block );\n\t\t\t} ),\n\t\t[ allClientIds, getBlock ]\n\t);\n\n\tif ( ! clientIdsWithOverrides?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Overrides' ) }>\n\t\t\t<BlockQuickNavigation clientIds={ clientIdsWithOverrides } />\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,WAAW,IAAIC,sBAAsB,EACrCC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASC,kBAAkB,QAAQ,QAAQ;AAC3C,SAASC,MAAM,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,MAAM;EAAEC;AAAqB,CAAC,GAAGH,MAAM,CAAER,sBAAuB,CAAC;AAEjE,eAAe,SAASY,cAAcA,CAAA,EAAG;EACxC,MAAMC,YAAY,GAAGT,SAAS,CAC3BU,MAAM,IAAMA,MAAM,CAAEZ,gBAAiB,CAAC,CAACa,2BAA2B,CAAC,CAAC,EACtE,EACD,CAAC;EACD,MAAM;IAAEC;EAAS,CAAC,GAAGZ,SAAS,CAAEF,gBAAiB,CAAC;EAClD,MAAMe,sBAAsB,GAAGZ,OAAO,CACrC,MACCQ,YAAY,CAACK,MAAM,CAAIC,QAAQ,IAAM;IACpC,MAAMC,KAAK,GAAGJ,QAAQ,CAAEG,QAAS,CAAC;IAClC,OAAOZ,kBAAkB,CAAEa,KAAM,CAAC;EACnC,CAAE,CAAC,EACJ,CAAEP,YAAY,EAAEG,QAAQ,CACzB,CAAC;EAED,IAAK,CAAEC,sBAAsB,EAAEI,MAAM,EAAG;IACvC,OAAO,IAAI;EACZ;EAEA,oBACCX,IAAA,CAACP,SAAS;IAACmB,KAAK,EAAGhB,EAAE,CAAE,WAAY,CAAG;IAAAiB,QAAA,eACrCb,IAAA,CAACC,oBAAoB;MAACa,SAAS,EAAGP;IAAwB,CAAE;EAAC,CACnD,CAAC;AAEd","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hasBlockSupport","isReusableBlock","createBlock","serialize","getBlockType","store","blockEditorStore","useState","useCallback","MenuItem","symbol","useSelect","useDispatch","coreStore","__","sprintf","noticesStore","patternsStore","CreatePatternModal","unlock","PATTERN_SYNC_TYPES","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","PatternConvertButton","clientIds","rootClientId","closeBlockSettingsMenu","createSuccessNotice","replaceBlocks","setEditingPattern","isModalOpen","setIsModalOpen","canConvert","select","_getBlocksByClientId","canUser","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","rootId","length","undefined","blocks","hasReusableBlockSupport","blockName","blockType","hasParent","isReusable","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","kind","getContent","handleSuccess","pattern","wp_pattern_sync_status","unsynced","newBlock","id","clientId","title","raw","type","children","icon","onClick","content","onSuccess","onError","onClose"],"sources":["@wordpress/patterns/src/components/pattern-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tisReusableBlock,\n\tcreateBlock,\n\tserialize,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState, useCallback } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport CreatePatternModal from './create-pattern-modal';\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Menu control to convert block(s) to a pattern block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.closeBlockSettingsMenu Callback to close the block settings menu dropdown.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function PatternConvertButton( {\n\tclientIds,\n\trootClientId,\n\tcloseBlockSettingsMenu,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { setEditingPattern } = unlock( useDispatch( patternsStore ) );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\t// Check if the block has reusable support defined.\n\t\t\tconst hasReusableBlockSupport = ( blockName ) => {\n\t\t\t\tconst blockType = getBlockType( blockName );\n\t\t\t\tconst hasParent = blockType && 'parent' in blockType;\n\n\t\t\t\t// If the block has a parent, check with false as default, otherwise with true.\n\t\t\t\treturn hasBlockSupport( blockName, 'reusable', ! hasParent );\n\t\t\t};\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a synced pattern.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when patterns are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made into a pattern.\n\t\t\t\t\t\thasReusableBlockSupport( block.name )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst getContent = useCallback(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t[ getBlocksByClientId, clientIds ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tif ( pattern.wp_pattern_sync_status !== PATTERN_SYNC_TYPES.unsynced ) {\n\t\t\tconst newBlock = createBlock( 'core/block', {\n\t\t\t\tref: pattern.id,\n\t\t\t} );\n\n\t\t\treplaceBlocks( clientIds, newBlock );\n\t\t\tsetEditingPattern( newBlock.clientId, true );\n\t\t\tcloseBlockSettingsMenu();\n\t\t}\n\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbol }\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tcontent={ getContent }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["hasBlockSupport","isReusableBlock","createBlock","serialize","getBlockType","store","blockEditorStore","useState","useCallback","MenuItem","symbol","useSelect","useDispatch","coreStore","__","sprintf","noticesStore","patternsStore","CreatePatternModal","unlock","PATTERN_SYNC_TYPES","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","PatternConvertButton","clientIds","rootClientId","closeBlockSettingsMenu","createSuccessNotice","replaceBlocks","setEditingPattern","isModalOpen","setIsModalOpen","canConvert","select","_getBlocksByClientId","canUser","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","rootId","length","undefined","blocks","hasReusableBlockSupport","blockName","blockType","hasParent","isReusable","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","kind","getContent","handleSuccess","pattern","wp_pattern_sync_status","unsynced","newBlock","id","clientId","title","raw","type","children","icon","onClick","content","onSuccess","onError","onClose"],"sources":["@wordpress/patterns/src/components/pattern-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tisReusableBlock,\n\tcreateBlock,\n\tserialize,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState, useCallback } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport CreatePatternModal from './create-pattern-modal';\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Menu control to convert block(s) to a pattern block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.closeBlockSettingsMenu Callback to close the block settings menu dropdown.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function PatternConvertButton( {\n\tclientIds,\n\trootClientId,\n\tcloseBlockSettingsMenu,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { setEditingPattern } = unlock( useDispatch( patternsStore ) );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\t// Check if the block has reusable support defined.\n\t\t\tconst hasReusableBlockSupport = ( blockName ) => {\n\t\t\t\tconst blockType = getBlockType( blockName );\n\t\t\t\tconst hasParent = blockType && 'parent' in blockType;\n\n\t\t\t\t// If the block has a parent, check with false as default, otherwise with true.\n\t\t\t\treturn hasBlockSupport( blockName, 'reusable', ! hasParent );\n\t\t\t};\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a synced pattern.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when patterns are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made into a pattern.\n\t\t\t\t\t\thasReusableBlockSupport( block.name )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst getContent = useCallback(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t[ getBlocksByClientId, clientIds ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tif ( pattern.wp_pattern_sync_status !== PATTERN_SYNC_TYPES.unsynced ) {\n\t\t\tconst newBlock = createBlock( 'core/block', {\n\t\t\t\tref: pattern.id,\n\t\t\t} );\n\n\t\t\treplaceBlocks( clientIds, newBlock );\n\t\t\tsetEditingPattern( newBlock.clientId, true );\n\t\t\tcloseBlockSettingsMenu();\n\t\t}\n\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbol }\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tcontent={ getContent }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useId","__","sprintf","DropdownMenu","ToolbarItem","__experimentalText","Text","store","blocksStore","useSelect","copy","blockEditorStore","BlockIcon","privateApis","blockEditorPrivateApis","BlockControls","unlock","PATTERN_OVERRIDES_BINDING_SOURCE","jsx","_jsx","Fragment","_Fragment","useBlockDisplayTitle","PatternOverridesToolbarIndicator","clientIds","isSingleBlockSelected","length","icon","firstBlockName","select","getBlockAttributes","getBlockNamesByClientId","getBlockType","getActiveBlockVariation","blockTypeNames","_firstBlockTypeName","firstBlockType","_icon","match","isSelectionOfSameType","Set","size","metadata","name","firstBlockTitle","clientId","maximumLength","blockDescription","toLowerCase","descriptionId","children","toggleProps","className","label","popoverProps","placement","showColors","description","menuProps","orientation","id","PatternOverridesBlockControls","hasPatternOverrides","hasParentPattern","getSelectedBlockClientIds","getBlockParentsByBlockName","selectedClientIds","_hasPatternOverrides","every","_getBlockAttributes$m","Object","values","bindings","some","binding","source","_hasParentPattern","group"],"sources":["@wordpress/patterns/src/components/pattern-overrides-block-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useId } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarItem,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\nimport {\n\tstore as blockEditorStore,\n\tBlockIcon,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockControls,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_OVERRIDES_BINDING_SOURCE } from '../constants';\n\nconst { useBlockDisplayTitle } = unlock( blockEditorPrivateApis );\n\nfunction PatternOverridesToolbarIndicator( { clientIds } ) {\n\tconst isSingleBlockSelected = clientIds.length === 1;\n\tconst { icon, firstBlockName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, getBlockNamesByClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst blockTypeNames = getBlockNamesByClientId( clientIds );\n\t\t\tconst _firstBlockTypeName = blockTypeNames[ 0 ];\n\t\t\tconst firstBlockType = getBlockType( _firstBlockTypeName );\n\t\t\tlet _icon;\n\t\t\tif ( isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\t_firstBlockTypeName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || firstBlockType.icon;\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( blockTypeNames ).size === 1;\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? firstBlockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ticon: _icon,\n\t\t\t\tfirstBlockName: getBlockAttributes( clientIds[ 0 ] ).metadata\n\t\t\t\t\t.name,\n\t\t\t};\n\t\t},\n\t\t[ clientIds, isSingleBlockSelected ]\n\t);\n\tconst firstBlockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\n\tconst blockDescription = isSingleBlockSelected\n\t\t? sprintf(\n\t\t\t\t/* translators: 1: The block type's name. 2: The block's user-provided name (the same as the override name). */\n\t\t\t\t__( 'This %1$s is editable using the \"%2$s\" override.' ),\n\t\t\t\tfirstBlockTitle.toLowerCase(),\n\t\t\t\tfirstBlockName\n\t\t )\n\t\t: __( 'These blocks are editable using overrides.' );\n\n\tconst descriptionId = useId();\n\n\treturn (\n\t\t<ToolbarItem>\n\t\t\t{ ( toggleProps ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tclassName=\"patterns-pattern-overrides-toolbar-indicator\"\n\t\t\t\t\tlabel={ firstBlockTitle }\n\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'patterns-pattern-overrides-toolbar-indicator__popover',\n\t\t\t\t\t} }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tclassName=\"patterns-pattern-overrides-toolbar-indicator-icon\"\n\t\t\t\t\t\t\t\tshowColors\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\ttoggleProps={ {\n\t\t\t\t\t\tdescription: blockDescription,\n\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t} }\n\t\t\t\t\tmenuProps={ {\n\t\t\t\t\t\torientation: 'both',\n\t\t\t\t\t\t'aria-describedby': descriptionId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ () => (\n\t\t\t\t\t\t<Text id={ descriptionId }>{ blockDescription }</Text>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</ToolbarItem>\n\t);\n}\n\nexport default function PatternOverridesBlockControls() {\n\tconst { clientIds, hasPatternOverrides, hasParentPattern } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedClientIds = getSelectedBlockClientIds();\n\t\t\tconst _hasPatternOverrides = selectedClientIds.every(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tObject.values(\n\t\t\t\t\t\tgetBlockAttributes( clientId )?.metadata?.bindings ?? {}\n\t\t\t\t\t).some(\n\t\t\t\t\t\t( binding ) =>\n\t\t\t\t\t\t\tbinding?.source === PATTERN_OVERRIDES_BINDING_SOURCE\n\t\t\t\t\t)\n\t\t\t);\n\t\t\tconst _hasParentPattern = selectedClientIds.every(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block', true )\n\t\t\t\t\t\t.length > 0\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tclientIds: selectedClientIds,\n\t\t\t\thasPatternOverrides: _hasPatternOverrides,\n\t\t\t\thasParentPattern: _hasParentPattern,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\treturn hasPatternOverrides && hasParentPattern ? (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<PatternOverridesToolbarIndicator clientIds={ clientIds } />\n\t\t</BlockControls>\n\t) : null;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useId","__","sprintf","DropdownMenu","ToolbarItem","__experimentalText","Text","store","blocksStore","useSelect","copy","blockEditorStore","BlockIcon","privateApis","blockEditorPrivateApis","BlockControls","unlock","PATTERN_OVERRIDES_BINDING_SOURCE","jsx","_jsx","Fragment","_Fragment","useBlockDisplayTitle","PatternOverridesToolbarIndicator","clientIds","isSingleBlockSelected","length","icon","firstBlockName","select","getBlockAttributes","getBlockNamesByClientId","getBlockType","getActiveBlockVariation","blockTypeNames","_firstBlockTypeName","firstBlockType","_icon","match","isSelectionOfSameType","Set","size","metadata","name","firstBlockTitle","clientId","maximumLength","blockDescription","toLowerCase","descriptionId","children","toggleProps","className","label","popoverProps","placement","showColors","description","menuProps","orientation","id","PatternOverridesBlockControls","hasPatternOverrides","hasParentPattern","getSelectedBlockClientIds","getBlockParentsByBlockName","selectedClientIds","_hasPatternOverrides","every","_getBlockAttributes$m","Object","values","bindings","some","binding","source","_hasParentPattern","group"],"sources":["@wordpress/patterns/src/components/pattern-overrides-block-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useId } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarItem,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\nimport {\n\tstore as blockEditorStore,\n\tBlockIcon,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockControls,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_OVERRIDES_BINDING_SOURCE } from '../constants';\n\nconst { useBlockDisplayTitle } = unlock( blockEditorPrivateApis );\n\nfunction PatternOverridesToolbarIndicator( { clientIds } ) {\n\tconst isSingleBlockSelected = clientIds.length === 1;\n\tconst { icon, firstBlockName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, getBlockNamesByClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst blockTypeNames = getBlockNamesByClientId( clientIds );\n\t\t\tconst _firstBlockTypeName = blockTypeNames[ 0 ];\n\t\t\tconst firstBlockType = getBlockType( _firstBlockTypeName );\n\t\t\tlet _icon;\n\t\t\tif ( isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\t_firstBlockTypeName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || firstBlockType.icon;\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( blockTypeNames ).size === 1;\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? firstBlockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ticon: _icon,\n\t\t\t\tfirstBlockName: getBlockAttributes( clientIds[ 0 ] ).metadata\n\t\t\t\t\t.name,\n\t\t\t};\n\t\t},\n\t\t[ clientIds, isSingleBlockSelected ]\n\t);\n\tconst firstBlockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\n\tconst blockDescription = isSingleBlockSelected\n\t\t? sprintf(\n\t\t\t\t/* translators: 1: The block type's name. 2: The block's user-provided name (the same as the override name). */\n\t\t\t\t__( 'This %1$s is editable using the \"%2$s\" override.' ),\n\t\t\t\tfirstBlockTitle.toLowerCase(),\n\t\t\t\tfirstBlockName\n\t\t )\n\t\t: __( 'These blocks are editable using overrides.' );\n\n\tconst descriptionId = useId();\n\n\treturn (\n\t\t<ToolbarItem>\n\t\t\t{ ( toggleProps ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tclassName=\"patterns-pattern-overrides-toolbar-indicator\"\n\t\t\t\t\tlabel={ firstBlockTitle }\n\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'patterns-pattern-overrides-toolbar-indicator__popover',\n\t\t\t\t\t} }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tclassName=\"patterns-pattern-overrides-toolbar-indicator-icon\"\n\t\t\t\t\t\t\t\tshowColors\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\ttoggleProps={ {\n\t\t\t\t\t\tdescription: blockDescription,\n\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t} }\n\t\t\t\t\tmenuProps={ {\n\t\t\t\t\t\torientation: 'both',\n\t\t\t\t\t\t'aria-describedby': descriptionId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ () => (\n\t\t\t\t\t\t<Text id={ descriptionId }>{ blockDescription }</Text>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</ToolbarItem>\n\t);\n}\n\nexport default function PatternOverridesBlockControls() {\n\tconst { clientIds, hasPatternOverrides, hasParentPattern } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedClientIds = getSelectedBlockClientIds();\n\t\t\tconst _hasPatternOverrides = selectedClientIds.every(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tObject.values(\n\t\t\t\t\t\tgetBlockAttributes( clientId )?.metadata?.bindings ?? {}\n\t\t\t\t\t).some(\n\t\t\t\t\t\t( binding ) =>\n\t\t\t\t\t\t\tbinding?.source === PATTERN_OVERRIDES_BINDING_SOURCE\n\t\t\t\t\t)\n\t\t\t);\n\t\t\tconst _hasParentPattern = selectedClientIds.every(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block', true )\n\t\t\t\t\t\t.length > 0\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tclientIds: selectedClientIds,\n\t\t\t\thasPatternOverrides: _hasPatternOverrides,\n\t\t\t\thasParentPattern: _hasParentPattern,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\treturn hasPatternOverrides && hasParentPattern ? (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<PatternOverridesToolbarIndicator clientIds={ clientIds } />\n\t\t</BlockControls>\n\t) : null;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Modal","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","store","coreStore","useDispatch","useId","useRef","useState","decodeEntities","__","noticesStore","speak","CATEGORY_SLUG","jsx","_jsx","jsxs","_jsxs","RenamePatternCategoryModal","category","existingCategories","onClose","onError","onSuccess","props","id","textControlRef","name","setName","isSaving","setIsSaving","validationMessage","setValidationMessage","validationMessageId","undefined","saveEntityRecord","invalidateResolution","createErrorNotice","createSuccessNotice","onChange","newName","onSave","event","preventDefault","message","current","focus","patternCategories","find","existingCategory","label","toLowerCase","savedRecord","slug","type","error","onRequestClose","title","children","onSubmit","spacing","ref","__nextHasNoMarginBottom","__next40pxDefaultSize","value","required","className","justify","variant","onClick","isBusy"],"sources":["@wordpress/patterns/src/components/rename-pattern-category-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useId, useRef, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { CATEGORY_SLUG } from './category-selector';\n\nexport default function RenamePatternCategoryModal( {\n\tcategory,\n\texistingCategories,\n\tonClose,\n\tonError,\n\tonSuccess,\n\t...props\n} ) {\n\tconst id = useId();\n\tconst textControlRef = useRef();\n\tconst [ name, setName ] = useState( decodeEntities( category.name ) );\n\tconst [ isSaving, setIsSaving ] = useState( false );\n\tconst [ validationMessage, setValidationMessage ] = useState( false );\n\tconst validationMessageId = validationMessage\n\t\t? `patterns-rename-pattern-category-modal__validation-message-${ id }`\n\t\t: undefined;\n\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst onChange = ( newName ) => {\n\t\tif ( validationMessage ) {\n\t\t\tsetValidationMessage( undefined );\n\t\t}\n\t\tsetName( newName );\n\t};\n\n\tconst onSave = async ( event ) => {\n\t\tevent.preventDefault();\n\n\t\tif ( isSaving ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! name || name === category.name ) {\n\t\t\tconst message = __( 'Please enter a new name for this category.' );\n\t\t\tspeak( message, 'assertive' );\n\t\t\tsetValidationMessage( message );\n\t\t\ttextControlRef.current?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\t// Check existing categories to avoid creating duplicates.\n\t\tif (\n\t\t\texistingCategories.patternCategories.find( ( existingCategory ) => {\n\t\t\t\t// Compare the id so that the we don't disallow the user changing the case of their current category\n\t\t\t\t// (i.e. renaming 'test' to 'Test').\n\t\t\t\treturn (\n\t\t\t\t\texistingCategory.id !== category.id &&\n\t\t\t\t\texistingCategory.label.toLowerCase() === name.toLowerCase()\n\t\t\t\t);\n\t\t\t} )\n\t\t) {\n\t\t\tconst message = __(\n\t\t\t\t'This category already exists. Please use a different name.'\n\t\t\t);\n\t\t\tspeak( message, 'assertive' );\n\t\t\tsetValidationMessage( message );\n\t\t\ttextControlRef.current?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSaving( true );\n\n\t\t\t// User pattern category properties may differ as they can be\n\t\t\t// normalized for use alongside template part areas, core pattern\n\t\t\t// categories etc. As a result we won't just destructure the passed\n\t\t\t// category object.\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\tCATEGORY_SLUG,\n\t\t\t\t{\n\t\t\t\t\tid: category.id,\n\t\t\t\t\tslug: category.slug,\n\t\t\t\t\tname,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\tonSuccess?.( savedRecord );\n\t\t\tonClose();\n\n\t\t\tcreateSuccessNotice( __( 'Pattern category renamed.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-update',\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tonError?.();\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-update',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSaving( false );\n\t\t\tsetName( '' );\n\t\t}\n\t};\n\n\tconst onRequestClose = () => {\n\t\tonClose();\n\t\tsetName( '' );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<form onSubmit={ onSave }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<VStack spacing=\"2\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tref={ textControlRef }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\tvalue={ name }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\taria-describedby={ validationMessageId }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ validationMessage && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"patterns-rename-pattern-category-modal__validation-message\"\n\t\t\t\t\t\t\t\tid={ validationMessageId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ validationMessage }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\taria-disabled={\n\t\t\t\t\t\t\t\t! name || name === category.name || isSaving\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,KAAK,EACLC,MAAM,EACNC,WAAW,EACXC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,oBAAoB;AAC5D,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASP,KAAK,IAAIQ,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,KAAK,QAAQ,iBAAiB;;AAEvC;AACA;AACA;AACA,SAASC,aAAa,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpD,eAAe,SAASC,0BAA0BA,CAAE;EACnDC,QAAQ;EACRC,kBAAkB;EAClBC,OAAO;EACPC,OAAO;EACPC,SAAS;EACT,GAAGC;AACJ,CAAC,EAAG;EACH,MAAMC,EAAE,GAAGnB,KAAK,CAAC,CAAC;EAClB,MAAMoB,cAAc,GAAGnB,MAAM,CAAC,CAAC;EAC/B,MAAM,CAAEoB,IAAI,EAAEC,OAAO,CAAE,GAAGpB,QAAQ,CAAEC,cAAc,CAAEU,QAAQ,CAACQ,IAAK,CAAE,CAAC;EACrE,MAAM,CAAEE,QAAQ,EAAEC,WAAW,CAAE,GAAGtB,QAAQ,CAAE,KAAM,CAAC;EACnD,MAAM,CAAEuB,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGxB,QAAQ,CAAE,KAAM,CAAC;EACrE,MAAMyB,mBAAmB,GAAGF,iBAAiB,GAC1C,8DAA+DN,EAAE,EAAG,GACpES,SAAS;EAEZ,MAAM;IAAEC,gBAAgB;IAAEC;EAAqB,CAAC,GAAG/B,WAAW,CAAED,SAAU,CAAC;EAC3E,MAAM;IAAEiC,iBAAiB;IAAEC;EAAoB,CAAC,GAC/CjC,WAAW,CAAEM,YAAa,CAAC;EAE5B,MAAM4B,QAAQ,GAAKC,OAAO,IAAM;IAC/B,IAAKT,iBAAiB,EAAG;MACxBC,oBAAoB,CAAEE,SAAU,CAAC;IAClC;IACAN,OAAO,CAAEY,OAAQ,CAAC;EACnB,CAAC;EAED,MAAMC,MAAM,GAAG,MAAQC,KAAK,IAAM;IACjCA,KAAK,CAACC,cAAc,CAAC,CAAC;IAEtB,IAAKd,QAAQ,EAAG;MACf;IACD;IAEA,IAAK,CAAEF,IAAI,IAAIA,IAAI,KAAKR,QAAQ,CAACQ,IAAI,EAAG;MACvC,MAAMiB,OAAO,GAAGlC,EAAE,CAAE,4CAA6C,CAAC;MAClEE,KAAK,CAAEgC,OAAO,EAAE,WAAY,CAAC;MAC7BZ,oBAAoB,CAAEY,OAAQ,CAAC;MAC/BlB,cAAc,CAACmB,OAAO,EAAEC,KAAK,CAAC,CAAC;MAC/B;IACD;;IAEA;IACA,IACC1B,kBAAkB,CAAC2B,iBAAiB,CAACC,IAAI,CAAIC,gBAAgB,IAAM;MAClE;MACA;MACA,OACCA,gBAAgB,CAACxB,EAAE,KAAKN,QAAQ,CAACM,EAAE,IACnCwB,gBAAgB,CAACC,KAAK,CAACC,WAAW,CAAC,CAAC,KAAKxB,IAAI,CAACwB,WAAW,CAAC,CAAC;IAE7D,CAAE,CAAC,EACF;MACD,MAAMP,OAAO,GAAGlC,EAAE,CACjB,4DACD,CAAC;MACDE,KAAK,CAAEgC,OAAO,EAAE,WAAY,CAAC;MAC7BZ,oBAAoB,CAAEY,OAAQ,CAAC;MAC/BlB,cAAc,CAACmB,OAAO,EAAEC,KAAK,CAAC,CAAC;MAC/B;IACD;IAEA,IAAI;MACHhB,WAAW,CAAE,IAAK,CAAC;;MAEnB;MACA;MACA;MACA;MACA,MAAMsB,WAAW,GAAG,MAAMjB,gBAAgB,CACzC,UAAU,EACVtB,aAAa,EACb;QACCY,EAAE,EAAEN,QAAQ,CAACM,EAAE;QACf4B,IAAI,EAAElC,QAAQ,CAACkC,IAAI;QACnB1B;MACD,CACD,CAAC;MAEDS,oBAAoB,CAAE,0BAA2B,CAAC;MAClDb,SAAS,GAAI6B,WAAY,CAAC;MAC1B/B,OAAO,CAAC,CAAC;MAETiB,mBAAmB,CAAE5B,EAAE,CAAE,2BAA4B,CAAC,EAAE;QACvD4C,IAAI,EAAE,UAAU;QAChB7B,EAAE,EAAE;MACL,CAAE,CAAC;IACJ,CAAC,CAAC,OAAQ8B,KAAK,EAAG;MACjBjC,OAAO,GAAG,CAAC;MACXe,iBAAiB,CAAEkB,KAAK,CAACX,OAAO,EAAE;QACjCU,IAAI,EAAE,UAAU;QAChB7B,EAAE,EAAE;MACL,CAAE,CAAC;IACJ,CAAC,SAAS;MACTK,WAAW,CAAE,KAAM,CAAC;MACpBF,OAAO,CAAE,EAAG,CAAC;IACd;EACD,CAAC;EAED,MAAM4B,cAAc,GAAGA,CAAA,KAAM;IAC5BnC,OAAO,CAAC,CAAC;IACTO,OAAO,CAAE,EAAG,CAAC;EACd,CAAC;EAED,oBACCb,IAAA,CAACnB,KAAK;IACL6D,KAAK,EAAG/C,EAAE,CAAE,QAAS,CAAG;IACxB8C,cAAc,EAAGA,cAAgB;IAAA,GAC5BhC,KAAK;IAAAkC,QAAA,eAEV3C,IAAA;MAAM4C,QAAQ,EAAGlB,MAAQ;MAAAiB,QAAA,eACxBzC,KAAA,CAACf,MAAM;QAAC0D,OAAO,EAAC,GAAG;QAAAF,QAAA,gBAClBzC,KAAA,CAACf,MAAM;UAAC0D,OAAO,EAAC,GAAG;UAAAF,QAAA,gBAClB3C,IAAA,CAACjB,WAAW;YACX+D,GAAG,EAAGnC,cAAgB;YACtBoC,uBAAuB;YACvBC,qBAAqB;YACrBb,KAAK,EAAGxC,EAAE,CAAE,MAAO,CAAG;YACtBsD,KAAK,EAAGrC,IAAM;YACdY,QAAQ,EAAGA,QAAU;YACrB,oBAAmBN,mBAAqB;YACxCgC,QAAQ;UAAA,CACR,CAAC,EACAlC,iBAAiB,iBAClBhB,IAAA;YACCmD,SAAS,EAAC,4DAA4D;YACtEzC,EAAE,EAAGQ,mBAAqB;YAAAyB,QAAA,EAExB3B;UAAiB,CACd,CACN;QAAA,CACM,CAAC,eACTd,KAAA,CAACjB,MAAM;UAACmE,OAAO,EAAC,OAAO;UAAAT,QAAA,gBACtB3C,IAAA,CAAClB,MAAM;YACNkE,qBAAqB;YACrBK,OAAO,EAAC,UAAU;YAClBC,OAAO,EAAGb,cAAgB;YAAAE,QAAA,EAExBhD,EAAE,CAAE,QAAS;UAAC,CACT,CAAC,eACTK,IAAA,CAAClB,MAAM;YACNkE,qBAAqB;YACrBK,OAAO,EAAC,SAAS;YACjBd,IAAI,EAAC,QAAQ;YACb,iBACC,CAAE3B,IAAI,IAAIA,IAAI,KAAKR,QAAQ,CAACQ,IAAI,IAAIE,QACpC;YACDyC,MAAM,EAAGzC,QAAU;YAAA6B,QAAA,EAEjBhD,EAAE,CAAE,MAAO;UAAC,CACP,CAAC;QAAA,CACF,CAAC;MAAA,CACF;IAAC,CACJ;EAAC,CACD,CAAC;AAEV","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Modal","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","store","coreStore","useDispatch","useId","useRef","useState","decodeEntities","__","noticesStore","speak","CATEGORY_SLUG","jsx","_jsx","jsxs","_jsxs","RenamePatternCategoryModal","category","existingCategories","onClose","onError","onSuccess","props","id","textControlRef","name","setName","isSaving","setIsSaving","validationMessage","setValidationMessage","validationMessageId","undefined","saveEntityRecord","invalidateResolution","createErrorNotice","createSuccessNotice","onChange","newName","onSave","event","preventDefault","message","current","focus","patternCategories","find","existingCategory","label","toLowerCase","savedRecord","slug","type","error","onRequestClose","title","children","onSubmit","spacing","ref","__nextHasNoMarginBottom","__next40pxDefaultSize","value","required","className","justify","variant","onClick","isBusy"],"sources":["@wordpress/patterns/src/components/rename-pattern-category-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tModal,\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useId, useRef, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { CATEGORY_SLUG } from './category-selector';\n\nexport default function RenamePatternCategoryModal( {\n\tcategory,\n\texistingCategories,\n\tonClose,\n\tonError,\n\tonSuccess,\n\t...props\n} ) {\n\tconst id = useId();\n\tconst textControlRef = useRef();\n\tconst [ name, setName ] = useState( decodeEntities( category.name ) );\n\tconst [ isSaving, setIsSaving ] = useState( false );\n\tconst [ validationMessage, setValidationMessage ] = useState( false );\n\tconst validationMessageId = validationMessage\n\t\t? `patterns-rename-pattern-category-modal__validation-message-${ id }`\n\t\t: undefined;\n\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst onChange = ( newName ) => {\n\t\tif ( validationMessage ) {\n\t\t\tsetValidationMessage( undefined );\n\t\t}\n\t\tsetName( newName );\n\t};\n\n\tconst onSave = async ( event ) => {\n\t\tevent.preventDefault();\n\n\t\tif ( isSaving ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! name || name === category.name ) {\n\t\t\tconst message = __( 'Please enter a new name for this category.' );\n\t\t\tspeak( message, 'assertive' );\n\t\t\tsetValidationMessage( message );\n\t\t\ttextControlRef.current?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\t// Check existing categories to avoid creating duplicates.\n\t\tif (\n\t\t\texistingCategories.patternCategories.find( ( existingCategory ) => {\n\t\t\t\t// Compare the id so that the we don't disallow the user changing the case of their current category\n\t\t\t\t// (i.e. renaming 'test' to 'Test').\n\t\t\t\treturn (\n\t\t\t\t\texistingCategory.id !== category.id &&\n\t\t\t\t\texistingCategory.label.toLowerCase() === name.toLowerCase()\n\t\t\t\t);\n\t\t\t} )\n\t\t) {\n\t\t\tconst message = __(\n\t\t\t\t'This category already exists. Please use a different name.'\n\t\t\t);\n\t\t\tspeak( message, 'assertive' );\n\t\t\tsetValidationMessage( message );\n\t\t\ttextControlRef.current?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSaving( true );\n\n\t\t\t// User pattern category properties may differ as they can be\n\t\t\t// normalized for use alongside template part areas, core pattern\n\t\t\t// categories etc. As a result we won't just destructure the passed\n\t\t\t// category object.\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\tCATEGORY_SLUG,\n\t\t\t\t{\n\t\t\t\t\tid: category.id,\n\t\t\t\t\tslug: category.slug,\n\t\t\t\t\tname,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\tonSuccess?.( savedRecord );\n\t\t\tonClose();\n\n\t\t\tcreateSuccessNotice( __( 'Pattern category renamed.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-update',\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tonError?.();\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-update',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSaving( false );\n\t\t\tsetName( '' );\n\t\t}\n\t};\n\n\tconst onRequestClose = () => {\n\t\tonClose();\n\t\tsetName( '' );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<form onSubmit={ onSave }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<VStack spacing=\"2\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tref={ textControlRef }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\tvalue={ name }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\taria-describedby={ validationMessageId }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ validationMessage && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"patterns-rename-pattern-category-modal__validation-message\"\n\t\t\t\t\t\t\t\tid={ validationMessageId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ validationMessage }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\taria-disabled={\n\t\t\t\t\t\t\t\t! name || name === category.name || isSaving\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","useDispatch","store","coreStore","useMemo","CATEGORY_SLUG","useAddPatternCategory","saveEntityRecord","invalidateResolution","corePatternCategories","userPatternCategories","select","getUserPatternCategories","getBlockPatternCategories","categoryMap","uniqueCategories","Map","forEach","category","set","label","toLowerCase","name","id","has","findOrCreateTerm","term","existingTerm","get","termData","slug","newTerm","throwOnError","error","code","data","term_id"],"sources":["@wordpress/patterns/src/private-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { CATEGORY_SLUG } from './components/category-selector';\n\n/**\n * Helper hook that creates a Map with the core and user patterns categories\n * and removes any duplicates. It's used when we need to create new user\n * categories when creating or importing patterns.\n * This hook also provides a function to find or create a pattern category.\n *\n * @return {Object} The merged categories map and the callback function to find or create a category.\n */\nexport function useAddPatternCategory() {\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { corePatternCategories, userPatternCategories } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUserPatternCategories, getBlockPatternCategories } =\n\t\t\t\tselect( coreStore );\n\n\t\t\treturn {\n\t\t\t\tcorePatternCategories: getBlockPatternCategories(),\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst categoryMap = useMemo( () => {\n\t\t// Merge the user and core pattern categories and remove any duplicates.\n\t\tconst uniqueCategories = new Map();\n\t\tuserPatternCategories.forEach( ( category ) => {\n\t\t\tuniqueCategories.set( category.label.toLowerCase(), {\n\t\t\t\tlabel: category.label,\n\t\t\t\tname: category.name,\n\t\t\t\tid: category.id,\n\t\t\t} );\n\t\t} );\n\n\t\tcorePatternCategories.forEach( ( category ) => {\n\t\t\tif (\n\t\t\t\t! uniqueCategories.has( category.label.toLowerCase() ) &&\n\t\t\t\t// There are two core categories with `Post` label so explicitly remove the one with\n\t\t\t\t// the `query` slug to avoid any confusion.\n\t\t\t\tcategory.name !== 'query'\n\t\t\t) {\n\t\t\t\tuniqueCategories.set( category.label.toLowerCase(), {\n\t\t\t\t\tlabel: category.label,\n\t\t\t\t\tname: category.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t\treturn uniqueCategories;\n\t}, [ userPatternCategories, corePatternCategories ] );\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst existingTerm = categoryMap.get( term.toLowerCase() );\n\t\t\tif ( existingTerm?.id ) {\n\t\t\t\treturn existingTerm.id;\n\t\t\t}\n\t\t\t// If we have an existing core category we need to match the new user category to the\n\t\t\t// correct slug rather than autogenerating it to prevent duplicates, eg. the core `Headers`\n\t\t\t// category uses the singular `header` as the slug.\n\t\t\tconst termData = existingTerm\n\t\t\t\t? { name: existingTerm.label, slug: existingTerm.name }\n\t\t\t\t: { name: term };\n\t\t\tconst newTerm = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\tCATEGORY_SLUG,\n\t\t\t\ttermData,\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn newTerm.id;\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn error.data.term_id;\n\t\t}\n\t}\n\n\treturn { categoryMap, findOrCreateTerm };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useSelect","useDispatch","store","coreStore","useMemo","CATEGORY_SLUG","useAddPatternCategory","saveEntityRecord","invalidateResolution","corePatternCategories","userPatternCategories","select","getUserPatternCategories","getBlockPatternCategories","categoryMap","uniqueCategories","Map","forEach","category","set","label","toLowerCase","name","id","has","findOrCreateTerm","term","existingTerm","get","termData","slug","newTerm","throwOnError","error","code","data","term_id"],"sources":["@wordpress/patterns/src/private-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { CATEGORY_SLUG } from './components/category-selector';\n\n/**\n * Helper hook that creates a Map with the core and user patterns categories\n * and removes any duplicates. It's used when we need to create new user\n * categories when creating or importing patterns.\n * This hook also provides a function to find or create a pattern category.\n *\n * @return {Object} The merged categories map and the callback function to find or create a category.\n */\nexport function useAddPatternCategory() {\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { corePatternCategories, userPatternCategories } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUserPatternCategories, getBlockPatternCategories } =\n\t\t\t\tselect( coreStore );\n\n\t\t\treturn {\n\t\t\t\tcorePatternCategories: getBlockPatternCategories(),\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst categoryMap = useMemo( () => {\n\t\t// Merge the user and core pattern categories and remove any duplicates.\n\t\tconst uniqueCategories = new Map();\n\t\tuserPatternCategories.forEach( ( category ) => {\n\t\t\tuniqueCategories.set( category.label.toLowerCase(), {\n\t\t\t\tlabel: category.label,\n\t\t\t\tname: category.name,\n\t\t\t\tid: category.id,\n\t\t\t} );\n\t\t} );\n\n\t\tcorePatternCategories.forEach( ( category ) => {\n\t\t\tif (\n\t\t\t\t! uniqueCategories.has( category.label.toLowerCase() ) &&\n\t\t\t\t// There are two core categories with `Post` label so explicitly remove the one with\n\t\t\t\t// the `query` slug to avoid any confusion.\n\t\t\t\tcategory.name !== 'query'\n\t\t\t) {\n\t\t\t\tuniqueCategories.set( category.label.toLowerCase(), {\n\t\t\t\t\tlabel: category.label,\n\t\t\t\t\tname: category.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t\treturn uniqueCategories;\n\t}, [ userPatternCategories, corePatternCategories ] );\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst existingTerm = categoryMap.get( term.toLowerCase() );\n\t\t\tif ( existingTerm?.id ) {\n\t\t\t\treturn existingTerm.id;\n\t\t\t}\n\t\t\t// If we have an existing core category we need to match the new user category to the\n\t\t\t// correct slug rather than autogenerating it to prevent duplicates, eg. the core `Headers`\n\t\t\t// category uses the singular `header` as the slug.\n\t\t\tconst termData = existingTerm\n\t\t\t\t? { name: existingTerm.label, slug: existingTerm.name }\n\t\t\t\t: { name: term };\n\t\t\tconst newTerm = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\tCATEGORY_SLUG,\n\t\t\t\ttermData,\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn newTerm.id;\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn error.data.term_id;\n\t\t}\n\t}\n\n\treturn { categoryMap, findOrCreateTerm };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getBlockType","cloneBlock","store","coreStore","blockEditorStore","PATTERN_SYNC_TYPES","createPattern","title","syncType","content","categories","registry","meta","unsynced","wp_pattern_sync_status","undefined","reusableBlock","status","wp_pattern_category","updatedRecord","dispatch","saveEntityRecord","createPatternFromFile","file","fileContent","text","parsedContent","JSON","parse","e","Error","__file","syncStatus","pattern","convertSyncedPatternToStatic","clientId","patternBlock","select","getBlock","existingOverrides","attributes","cloneBlocksAndRemoveBindings","blocks","map","block","metadata","id","bindings","name","attributeName","value","Object","entries","keys","length","innerBlocks","patternInnerBlocks","getBlocks","replaceBlocks","setEditingPattern","isEditing","type"],"sources":["@wordpress/patterns/src/store/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { getBlockType, cloneBlock } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Returns a generator converting one or more static blocks into a pattern, or creating a new empty pattern.\n *\n * @param {string} title Pattern title.\n * @param {'full'|'unsynced'} syncType They way block is synced, 'full' or 'unsynced'.\n * @param {string|undefined} [content] Optional serialized content of blocks to convert to pattern.\n * @param {number[]|undefined} [categories] Ids of any selected categories.\n */\nexport const createPattern =\n\t( title, syncType, content, categories ) =>\n\tasync ( { registry } ) => {\n\t\tconst meta =\n\t\t\tsyncType === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? {\n\t\t\t\t\t\twp_pattern_sync_status: syncType,\n\t\t\t\t }\n\t\t\t\t: undefined;\n\n\t\tconst reusableBlock = {\n\t\t\ttitle,\n\t\t\tcontent,\n\t\t\tstatus: 'publish',\n\t\t\tmeta,\n\t\t\twp_pattern_category: categories,\n\t\t};\n\n\t\tconst updatedRecord = await registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEntityRecord( 'postType', 'wp_block', reusableBlock );\n\n\t\treturn updatedRecord;\n\t};\n\n/**\n * Create a pattern from a JSON file.\n * @param {File} file The JSON file instance of the pattern.\n * @param {number[]|undefined} [categories] Ids of any selected categories.\n */\nexport const createPatternFromFile =\n\t( file, categories ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst fileContent = await file.text();\n\t\t/** @type {import('./types').PatternJSON} */\n\t\tlet parsedContent;\n\t\ttry {\n\t\t\tparsedContent = JSON.parse( fileContent );\n\t\t} catch ( e ) {\n\t\t\tthrow new Error( 'Invalid JSON file' );\n\t\t}\n\t\tif (\n\t\t\tparsedContent.__file !== 'wp_block' ||\n\t\t\t! parsedContent.title ||\n\t\t\t! parsedContent.content ||\n\t\t\ttypeof parsedContent.title !== 'string' ||\n\t\t\ttypeof parsedContent.content !== 'string' ||\n\t\t\t( parsedContent.syncStatus &&\n\t\t\t\ttypeof parsedContent.syncStatus !== 'string' )\n\t\t) {\n\t\t\tthrow new Error( 'Invalid pattern JSON file' );\n\t\t}\n\n\t\tconst pattern = await dispatch.createPattern(\n\t\t\tparsedContent.title,\n\t\t\tparsedContent.syncStatus,\n\t\t\tparsedContent.content,\n\t\t\tcategories\n\t\t);\n\n\t\treturn pattern;\n\t};\n\n/**\n * Returns a generator converting a synced pattern block into a static block.\n *\n * @param {string} clientId The client ID of the block to attach.\n */\nexport const convertSyncedPatternToStatic =\n\t( clientId ) =>\n\t( { registry } ) => {\n\t\tconst patternBlock = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlock( clientId );\n\t\tconst existingOverrides = patternBlock.attributes?.content;\n\n\t\tfunction cloneBlocksAndRemoveBindings( blocks ) {\n\t\t\treturn blocks.map( ( block ) => {\n\t\t\t\tlet metadata = block.attributes.metadata;\n\t\t\t\tif ( metadata ) {\n\t\t\t\t\tmetadata = { ...metadata };\n\t\t\t\t\tdelete metadata.id;\n\t\t\t\t\tdelete metadata.bindings;\n\t\t\t\t\t// Use overridden values of the pattern block if they exist.\n\t\t\t\t\tif ( existingOverrides?.[ metadata.name ] ) {\n\t\t\t\t\t\t// Iterate over each overriden attribute.\n\t\t\t\t\t\tfor ( const [ attributeName, value ] of Object.entries(\n\t\t\t\t\t\t\texistingOverrides[ metadata.name ]\n\t\t\t\t\t\t) ) {\n\t\t\t\t\t\t\t// Skip if the attribute does not exist in the block type.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t! getBlockType( block.name )?.attributes[\n\t\t\t\t\t\t\t\t\tattributeName\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\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Update the block attribute with the override value.\n\t\t\t\t\t\t\tblock.attributes[ attributeName ] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn cloneBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t{\n\t\t\t\t\t\tmetadata:\n\t\t\t\t\t\t\tmetadata && Object.keys( metadata ).length > 0\n\t\t\t\t\t\t\t\t? metadata\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t},\n\t\t\t\t\tcloneBlocksAndRemoveBindings( block.innerBlocks )\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tconst patternInnerBlocks = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlocks( patternBlock.clientId );\n\n\t\tregistry\n\t\t\t.dispatch( blockEditorStore )\n\t\t\t.replaceBlocks(\n\t\t\t\tpatternBlock.clientId,\n\t\t\t\tcloneBlocksAndRemoveBindings( patternInnerBlocks )\n\t\t\t);\n\t};\n\n/**\n * Returns an action descriptor for SET_EDITING_PATTERN action.\n *\n * @param {string} clientId The clientID of the pattern to target.\n * @param {boolean} isEditing Whether the block should be in editing state.\n * @return {Object} Action descriptor.\n */\nexport function setEditingPattern( clientId, isEditing ) {\n\treturn {\n\t\ttype: 'SET_EDITING_PATTERN',\n\t\tclientId,\n\t\tisEditing,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["getBlockType","cloneBlock","store","coreStore","blockEditorStore","PATTERN_SYNC_TYPES","createPattern","title","syncType","content","categories","registry","meta","unsynced","wp_pattern_sync_status","undefined","reusableBlock","status","wp_pattern_category","updatedRecord","dispatch","saveEntityRecord","createPatternFromFile","file","fileContent","text","parsedContent","JSON","parse","e","Error","__file","syncStatus","pattern","convertSyncedPatternToStatic","clientId","patternBlock","select","getBlock","existingOverrides","attributes","cloneBlocksAndRemoveBindings","blocks","map","block","metadata","id","bindings","name","attributeName","value","Object","entries","keys","length","innerBlocks","patternInnerBlocks","getBlocks","replaceBlocks","setEditingPattern","isEditing","type"],"sources":["@wordpress/patterns/src/store/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { getBlockType, cloneBlock } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Returns a generator converting one or more static blocks into a pattern, or creating a new empty pattern.\n *\n * @param {string} title Pattern title.\n * @param {'full'|'unsynced'} syncType They way block is synced, 'full' or 'unsynced'.\n * @param {string|undefined} [content] Optional serialized content of blocks to convert to pattern.\n * @param {number[]|undefined} [categories] Ids of any selected categories.\n */\nexport const createPattern =\n\t( title, syncType, content, categories ) =>\n\tasync ( { registry } ) => {\n\t\tconst meta =\n\t\t\tsyncType === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? {\n\t\t\t\t\t\twp_pattern_sync_status: syncType,\n\t\t\t\t }\n\t\t\t\t: undefined;\n\n\t\tconst reusableBlock = {\n\t\t\ttitle,\n\t\t\tcontent,\n\t\t\tstatus: 'publish',\n\t\t\tmeta,\n\t\t\twp_pattern_category: categories,\n\t\t};\n\n\t\tconst updatedRecord = await registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEntityRecord( 'postType', 'wp_block', reusableBlock );\n\n\t\treturn updatedRecord;\n\t};\n\n/**\n * Create a pattern from a JSON file.\n * @param {File} file The JSON file instance of the pattern.\n * @param {number[]|undefined} [categories] Ids of any selected categories.\n */\nexport const createPatternFromFile =\n\t( file, categories ) =>\n\tasync ( { dispatch } ) => {\n\t\tconst fileContent = await file.text();\n\t\t/** @type {import('./types').PatternJSON} */\n\t\tlet parsedContent;\n\t\ttry {\n\t\t\tparsedContent = JSON.parse( fileContent );\n\t\t} catch ( e ) {\n\t\t\tthrow new Error( 'Invalid JSON file' );\n\t\t}\n\t\tif (\n\t\t\tparsedContent.__file !== 'wp_block' ||\n\t\t\t! parsedContent.title ||\n\t\t\t! parsedContent.content ||\n\t\t\ttypeof parsedContent.title !== 'string' ||\n\t\t\ttypeof parsedContent.content !== 'string' ||\n\t\t\t( parsedContent.syncStatus &&\n\t\t\t\ttypeof parsedContent.syncStatus !== 'string' )\n\t\t) {\n\t\t\tthrow new Error( 'Invalid pattern JSON file' );\n\t\t}\n\n\t\tconst pattern = await dispatch.createPattern(\n\t\t\tparsedContent.title,\n\t\t\tparsedContent.syncStatus,\n\t\t\tparsedContent.content,\n\t\t\tcategories\n\t\t);\n\n\t\treturn pattern;\n\t};\n\n/**\n * Returns a generator converting a synced pattern block into a static block.\n *\n * @param {string} clientId The client ID of the block to attach.\n */\nexport const convertSyncedPatternToStatic =\n\t( clientId ) =>\n\t( { registry } ) => {\n\t\tconst patternBlock = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlock( clientId );\n\t\tconst existingOverrides = patternBlock.attributes?.content;\n\n\t\tfunction cloneBlocksAndRemoveBindings( blocks ) {\n\t\t\treturn blocks.map( ( block ) => {\n\t\t\t\tlet metadata = block.attributes.metadata;\n\t\t\t\tif ( metadata ) {\n\t\t\t\t\tmetadata = { ...metadata };\n\t\t\t\t\tdelete metadata.id;\n\t\t\t\t\tdelete metadata.bindings;\n\t\t\t\t\t// Use overridden values of the pattern block if they exist.\n\t\t\t\t\tif ( existingOverrides?.[ metadata.name ] ) {\n\t\t\t\t\t\t// Iterate over each overriden attribute.\n\t\t\t\t\t\tfor ( const [ attributeName, value ] of Object.entries(\n\t\t\t\t\t\t\texistingOverrides[ metadata.name ]\n\t\t\t\t\t\t) ) {\n\t\t\t\t\t\t\t// Skip if the attribute does not exist in the block type.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t! getBlockType( block.name )?.attributes[\n\t\t\t\t\t\t\t\t\tattributeName\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\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Update the block attribute with the override value.\n\t\t\t\t\t\t\tblock.attributes[ attributeName ] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn cloneBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t{\n\t\t\t\t\t\tmetadata:\n\t\t\t\t\t\t\tmetadata && Object.keys( metadata ).length > 0\n\t\t\t\t\t\t\t\t? metadata\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t},\n\t\t\t\t\tcloneBlocksAndRemoveBindings( block.innerBlocks )\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tconst patternInnerBlocks = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlocks( patternBlock.clientId );\n\n\t\tregistry\n\t\t\t.dispatch( blockEditorStore )\n\t\t\t.replaceBlocks(\n\t\t\t\tpatternBlock.clientId,\n\t\t\t\tcloneBlocksAndRemoveBindings( patternInnerBlocks )\n\t\t\t);\n\t};\n\n/**\n * Returns an action descriptor for SET_EDITING_PATTERN action.\n *\n * @param {string} clientId The clientID of the pattern to target.\n * @param {boolean} isEditing Whether the block should be in editing state.\n * @return {Object} Action descriptor.\n */\nexport function setEditingPattern( clientId, isEditing ) {\n\treturn {\n\t\ttype: 'SET_EDITING_PATTERN',\n\t\tclientId,\n\t\tisEditing,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/patterns",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.15.0",
|
|
4
4
|
"description": "Management of user pattern editing.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -33,20 +33,20 @@
|
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@babel/runtime": "7.25.7",
|
|
36
|
-
"@wordpress/a11y": "^4.
|
|
37
|
-
"@wordpress/block-editor": "^14.
|
|
38
|
-
"@wordpress/blocks": "^14.
|
|
39
|
-
"@wordpress/components": "
|
|
40
|
-
"@wordpress/compose": "^7.
|
|
41
|
-
"@wordpress/core-data": "^7.
|
|
42
|
-
"@wordpress/data": "^10.
|
|
43
|
-
"@wordpress/element": "^6.
|
|
44
|
-
"@wordpress/html-entities": "^4.
|
|
45
|
-
"@wordpress/i18n": "^5.
|
|
46
|
-
"@wordpress/icons": "^10.
|
|
47
|
-
"@wordpress/notices": "^5.
|
|
48
|
-
"@wordpress/private-apis": "^1.
|
|
49
|
-
"@wordpress/url": "^4.
|
|
36
|
+
"@wordpress/a11y": "^4.15.0",
|
|
37
|
+
"@wordpress/block-editor": "^14.10.0",
|
|
38
|
+
"@wordpress/blocks": "^14.4.0",
|
|
39
|
+
"@wordpress/components": "^29.1.0",
|
|
40
|
+
"@wordpress/compose": "^7.15.0",
|
|
41
|
+
"@wordpress/core-data": "^7.15.0",
|
|
42
|
+
"@wordpress/data": "^10.15.0",
|
|
43
|
+
"@wordpress/element": "^6.15.0",
|
|
44
|
+
"@wordpress/html-entities": "^4.15.0",
|
|
45
|
+
"@wordpress/i18n": "^5.15.0",
|
|
46
|
+
"@wordpress/icons": "^10.15.0",
|
|
47
|
+
"@wordpress/notices": "^5.15.0",
|
|
48
|
+
"@wordpress/private-apis": "^1.15.0",
|
|
49
|
+
"@wordpress/url": "^4.15.0"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"react": "^18.0.0",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"publishConfig": {
|
|
56
56
|
"access": "public"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "75a65eb8ffc168a92042544052f46d080a71ea45"
|
|
59
59
|
}
|