@wordpress/fields 0.25.5 → 0.26.1-next.2f1c7c01b.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 +2 -0
- package/build/actions/delete-post.js +5 -3
- package/build/actions/delete-post.js.map +1 -1
- package/build/actions/duplicate-pattern.js +5 -3
- package/build/actions/duplicate-pattern.js.map +1 -1
- package/build/actions/duplicate-post.js +4 -2
- package/build/actions/duplicate-post.js.map +1 -1
- package/build/actions/duplicate-template-part.js +4 -2
- package/build/actions/duplicate-template-part.js.map +1 -1
- package/build/actions/export-pattern.js +3 -1
- package/build/actions/export-pattern.js.map +1 -1
- package/build/actions/index.js +2 -0
- package/build/actions/index.js.map +1 -1
- package/build/actions/permanently-delete-post.js +4 -2
- package/build/actions/permanently-delete-post.js.map +1 -1
- package/build/actions/rename-post.js +5 -3
- package/build/actions/rename-post.js.map +1 -1
- package/build/actions/reorder-page.js +4 -2
- package/build/actions/reorder-page.js.map +1 -1
- package/build/actions/reset-post.js +6 -4
- package/build/actions/reset-post.js.map +1 -1
- package/build/actions/restore-post.js +3 -1
- package/build/actions/restore-post.js.map +1 -1
- package/build/actions/trash-post.js +4 -2
- package/build/actions/trash-post.js.map +1 -1
- package/build/actions/utils.js +2 -0
- package/build/actions/utils.js.map +1 -1
- package/build/actions/view-post-revisions.js +3 -1
- package/build/actions/view-post-revisions.js.map +1 -1
- package/build/actions/view-post.js +3 -1
- package/build/actions/view-post.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +4 -2
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/create-template-part-modal/utils.js +5 -3
- package/build/components/create-template-part-modal/utils.js.map +1 -1
- package/build/fields/author/author-view.js +3 -1
- package/build/fields/author/author-view.js.map +1 -1
- package/build/fields/author/index.js +3 -1
- package/build/fields/author/index.js.map +1 -1
- package/build/fields/comment-status/index.js +3 -1
- package/build/fields/comment-status/index.js.map +1 -1
- package/build/fields/date/date-view.js +5 -3
- package/build/fields/date/date-view.js.map +1 -1
- package/build/fields/date/index.js +3 -1
- package/build/fields/date/index.js.map +1 -1
- package/build/fields/discussion/index.js +3 -1
- package/build/fields/discussion/index.js.map +1 -1
- package/build/fields/featured-image/featured-image-edit.js +92 -61
- package/build/fields/featured-image/featured-image-edit.js.map +3 -3
- package/build/fields/featured-image/featured-image-view.js +3 -1
- package/build/fields/featured-image/featured-image-view.js.map +1 -1
- package/build/fields/featured-image/index.js +3 -1
- package/build/fields/featured-image/index.js.map +1 -1
- package/build/fields/index.js +2 -0
- package/build/fields/index.js.map +1 -1
- package/build/fields/order/index.js +3 -1
- package/build/fields/order/index.js.map +1 -1
- package/build/fields/page-title/index.js +3 -1
- package/build/fields/page-title/index.js.map +1 -1
- package/build/fields/page-title/view.js +4 -2
- package/build/fields/page-title/view.js.map +1 -1
- package/build/fields/parent/index.js +3 -1
- package/build/fields/parent/index.js.map +1 -1
- package/build/fields/parent/parent-edit.js +5 -3
- package/build/fields/parent/parent-edit.js.map +1 -1
- package/build/fields/parent/parent-view.js +4 -2
- package/build/fields/parent/parent-view.js.map +1 -1
- package/build/fields/parent/utils.js +2 -0
- package/build/fields/parent/utils.js.map +1 -1
- package/build/fields/password/edit.js +3 -1
- package/build/fields/password/edit.js.map +1 -1
- package/build/fields/password/index.js +3 -1
- package/build/fields/password/index.js.map +1 -1
- package/build/fields/pattern-title/index.js +3 -1
- package/build/fields/pattern-title/index.js.map +1 -1
- package/build/fields/pattern-title/view.js +4 -2
- package/build/fields/pattern-title/view.js.map +1 -1
- package/build/fields/ping-status/index.js +4 -2
- package/build/fields/ping-status/index.js.map +1 -1
- package/build/fields/slug/index.js +3 -1
- package/build/fields/slug/index.js.map +1 -1
- package/build/fields/slug/slug-edit.js +4 -2
- package/build/fields/slug/slug-edit.js.map +1 -1
- package/build/fields/slug/slug-view.js +3 -1
- package/build/fields/slug/slug-view.js.map +1 -1
- package/build/fields/slug/utils.js +3 -1
- package/build/fields/slug/utils.js.map +1 -1
- package/build/fields/status/index.js +4 -2
- package/build/fields/status/index.js.map +1 -1
- package/build/fields/status/status-elements.js +3 -1
- package/build/fields/status/status-elements.js.map +1 -1
- package/build/fields/status/status-view.js +3 -1
- package/build/fields/status/status-view.js.map +1 -1
- package/build/fields/template/index.js +3 -1
- package/build/fields/template/index.js.map +1 -1
- package/build/fields/template/template-edit.js +5 -3
- package/build/fields/template/template-edit.js.map +1 -1
- package/build/fields/template-title/index.js +3 -1
- package/build/fields/template-title/index.js.map +1 -1
- package/build/fields/title/index.js +3 -1
- package/build/fields/title/index.js.map +1 -1
- package/build/fields/title/view.js +3 -1
- package/build/fields/title/view.js.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/lock-unlock.js +3 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/mutation/index.js +4 -2
- package/build/mutation/index.js.map +1 -1
- package/build/types.js +2 -0
- package/build/types.js.map +1 -1
- package/build-module/actions/delete-post.js +4 -3
- package/build-module/actions/delete-post.js.map +1 -1
- package/build-module/actions/duplicate-pattern.js +4 -3
- package/build-module/actions/duplicate-pattern.js.map +1 -1
- package/build-module/actions/duplicate-post.js +3 -2
- package/build-module/actions/duplicate-post.js.map +1 -1
- package/build-module/actions/duplicate-template-part.js +3 -2
- package/build-module/actions/duplicate-template-part.js.map +1 -1
- package/build-module/actions/export-pattern.js +2 -1
- package/build-module/actions/export-pattern.js.map +1 -1
- package/build-module/actions/index.js +1 -0
- package/build-module/actions/index.js.map +1 -1
- package/build-module/actions/permanently-delete-post.js +3 -2
- package/build-module/actions/permanently-delete-post.js.map +1 -1
- package/build-module/actions/rename-post.js +4 -3
- package/build-module/actions/rename-post.js.map +1 -1
- package/build-module/actions/reorder-page.js +3 -2
- package/build-module/actions/reorder-page.js.map +1 -1
- package/build-module/actions/reset-post.js +5 -4
- package/build-module/actions/reset-post.js.map +1 -1
- package/build-module/actions/restore-post.js +2 -1
- package/build-module/actions/restore-post.js.map +1 -1
- package/build-module/actions/trash-post.js +3 -2
- package/build-module/actions/trash-post.js.map +1 -1
- package/build-module/actions/utils.js +1 -0
- package/build-module/actions/utils.js.map +1 -1
- package/build-module/actions/view-post-revisions.js +2 -1
- package/build-module/actions/view-post-revisions.js.map +1 -1
- package/build-module/actions/view-post.js +2 -1
- package/build-module/actions/view-post.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +3 -2
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/create-template-part-modal/utils.js +4 -3
- package/build-module/components/create-template-part-modal/utils.js.map +1 -1
- package/build-module/fields/author/author-view.js +2 -1
- package/build-module/fields/author/author-view.js.map +1 -1
- package/build-module/fields/author/index.js +2 -1
- package/build-module/fields/author/index.js.map +1 -1
- package/build-module/fields/comment-status/index.js +2 -1
- package/build-module/fields/comment-status/index.js.map +1 -1
- package/build-module/fields/date/date-view.js +4 -3
- package/build-module/fields/date/date-view.js.map +1 -1
- package/build-module/fields/date/index.js +2 -1
- package/build-module/fields/date/index.js.map +1 -1
- package/build-module/fields/discussion/index.js +2 -1
- package/build-module/fields/discussion/index.js.map +1 -1
- package/build-module/fields/featured-image/featured-image-edit.js +96 -63
- package/build-module/fields/featured-image/featured-image-edit.js.map +2 -2
- package/build-module/fields/featured-image/featured-image-view.js +2 -1
- package/build-module/fields/featured-image/featured-image-view.js.map +1 -1
- package/build-module/fields/featured-image/index.js +2 -1
- package/build-module/fields/featured-image/index.js.map +1 -1
- package/build-module/fields/index.js +1 -0
- package/build-module/fields/index.js.map +1 -1
- package/build-module/fields/order/index.js +2 -1
- package/build-module/fields/order/index.js.map +1 -1
- package/build-module/fields/page-title/index.js +2 -1
- package/build-module/fields/page-title/index.js.map +1 -1
- package/build-module/fields/page-title/view.js +3 -2
- package/build-module/fields/page-title/view.js.map +1 -1
- package/build-module/fields/parent/index.js +2 -1
- package/build-module/fields/parent/index.js.map +1 -1
- package/build-module/fields/parent/parent-edit.js +4 -3
- package/build-module/fields/parent/parent-edit.js.map +1 -1
- package/build-module/fields/parent/parent-view.js +3 -2
- package/build-module/fields/parent/parent-view.js.map +1 -1
- package/build-module/fields/parent/utils.js +1 -0
- package/build-module/fields/parent/utils.js.map +1 -1
- package/build-module/fields/password/edit.js +2 -1
- package/build-module/fields/password/edit.js.map +1 -1
- package/build-module/fields/password/index.js +2 -1
- package/build-module/fields/password/index.js.map +1 -1
- package/build-module/fields/pattern-title/index.js +2 -1
- package/build-module/fields/pattern-title/index.js.map +1 -1
- package/build-module/fields/pattern-title/view.js +3 -2
- package/build-module/fields/pattern-title/view.js.map +1 -1
- package/build-module/fields/ping-status/index.js +3 -2
- package/build-module/fields/ping-status/index.js.map +1 -1
- package/build-module/fields/slug/index.js +2 -1
- package/build-module/fields/slug/index.js.map +1 -1
- package/build-module/fields/slug/slug-edit.js +3 -2
- package/build-module/fields/slug/slug-edit.js.map +1 -1
- package/build-module/fields/slug/slug-view.js +2 -1
- package/build-module/fields/slug/slug-view.js.map +1 -1
- package/build-module/fields/slug/utils.js +2 -1
- package/build-module/fields/slug/utils.js.map +1 -1
- package/build-module/fields/status/index.js +3 -2
- package/build-module/fields/status/index.js.map +1 -1
- package/build-module/fields/status/status-elements.js +2 -1
- package/build-module/fields/status/status-elements.js.map +1 -1
- package/build-module/fields/status/status-view.js +2 -1
- package/build-module/fields/status/status-view.js.map +1 -1
- package/build-module/fields/template/index.js +2 -1
- package/build-module/fields/template/index.js.map +1 -1
- package/build-module/fields/template/template-edit.js +4 -3
- package/build-module/fields/template/template-edit.js.map +1 -1
- package/build-module/fields/template-title/index.js +2 -1
- package/build-module/fields/template-title/index.js.map +1 -1
- package/build-module/fields/title/index.js +2 -1
- package/build-module/fields/title/index.js.map +1 -1
- package/build-module/fields/title/view.js +2 -1
- package/build-module/fields/title/view.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/lock-unlock.js +2 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/mutation/index.js +3 -2
- package/build-module/mutation/index.js.map +1 -1
- package/build-types/fields/featured-image/featured-image-edit.d.ts.map +1 -1
- package/package.json +26 -26
- package/src/fields/featured-image/featured-image-edit.tsx +113 -66
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/actions/restore-post.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { backup } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport type { Action } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport { getItemTitle, isTemplateOrTemplatePart } from './utils';\nimport type { CoreDataError, PostWithPermissions } from '../types';\n\nconst restorePost: Action< PostWithPermissions > = {\n\tid: 'restore',\n\tlabel: __( 'Restore' ),\n\tisPrimary: true,\n\ticon: backup,\n\tsupportsBulk: true,\n\tisEligible( item ) {\n\t\treturn (\n\t\t\t! isTemplateOrTemplatePart( item ) &&\n\t\t\titem.type !== 'wp_block' &&\n\t\t\titem.status === 'trash' &&\n\t\t\titem.permissions?.update\n\t\t);\n\t},\n\tasync callback( posts, { registry, onActionPerformed } ) {\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tregistry.dispatch( noticesStore );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tregistry.dispatch( coreStore );\n\t\tawait Promise.allSettled(\n\t\t\tposts.map( ( post ) => {\n\t\t\t\treturn editEntityRecord( 'postType', post.type, post.id, {\n\t\t\t\t\tstatus: 'draft',\n\t\t\t\t} );\n\t\t\t} )\n\t\t);\n\t\tconst promiseResult = await Promise.allSettled(\n\t\t\tposts.map( ( post ) => {\n\t\t\t\treturn saveEditedEntityRecord( 'postType', post.type, post.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t} )\n\t\t);\n\n\t\tif ( promiseResult.every( ( { status } ) => status === 'fulfilled' ) ) {\n\t\t\tlet successMessage;\n\t\t\tif ( posts.length === 1 ) {\n\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t/* translators: %s: The number of posts. */\n\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t);\n\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t/* translators: %d: The number of posts. */\n\t\t\t\t\t__( '%d pages have been restored.' ),\n\t\t\t\t\tposts.length\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t/* translators: %d: The number of posts. */\n\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\tposts.length\n\t\t\t\t);\n\t\t\t}\n\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'restore-post-action',\n\t\t\t} );\n\t\t\tif ( onActionPerformed ) {\n\t\t\t\tonActionPerformed( posts );\n\t\t\t}\n\t\t} else {\n\t\t\t// If there was at lease one failure.\n\t\t\tlet errorMessage;\n\t\t\t// If we were trying to move a single post to the trash.\n\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\tconst typedError = promiseResult[ 0 ] as {\n\t\t\t\t\treason?: CoreDataError;\n\t\t\t\t};\n\t\t\t\tif ( typedError.reason?.message ) {\n\t\t\t\t\terrorMessage = typedError.reason.message;\n\t\t\t\t} else {\n\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t} else {\n\t\t\t\tconst errorMessages = new Set< string >();\n\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t);\n\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\tconst typedError = failedPromise as {\n\t\t\t\t\t\treason?: CoreDataError;\n\t\t\t\t\t};\n\t\t\t\t\tif ( typedError.reason?.message ) {\n\t\t\t\t\t\terrorMessages.add( typedError.reason.message );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t__( 'An error occurred while restoring the posts: %s' ),\n\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Some errors occurred while restoring the posts: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t}\n\t},\n};\n\n/**\n * Restore action for PostWithPermissions.\n */\nexport default restorePost;\n"],
|
|
5
|
-
"mappings": "AAGA,SAAS,cAAc;AACvB,SAAS,SAAS,iBAAiB;AACnC,SAAS,IAAI,eAAe;AAC5B,SAAS,SAAS,oBAAoB;AAMtC,SAAS,cAAc,gCAAgC;AAGvD,
|
|
5
|
+
"mappings": ";AAGA,SAAS,cAAc;AACvB,SAAS,SAAS,iBAAiB;AACnC,SAAS,IAAI,eAAe;AAC5B,SAAS,SAAS,oBAAoB;AAMtC,SAAS,cAAc,gCAAgC;AAGvD,IAAM,cAA6C;AAAA,EAClD,IAAI;AAAA,EACJ,OAAO,GAAI,SAAU;AAAA,EACrB,WAAW;AAAA,EACX,MAAM;AAAA,EACN,cAAc;AAAA,EACd,WAAY,MAAO;AAClB,WACC,CAAE,yBAA0B,IAAK,KACjC,KAAK,SAAS,cACd,KAAK,WAAW,WAChB,KAAK,aAAa;AAAA,EAEpB;AAAA,EACA,MAAM,SAAU,OAAO,EAAE,UAAU,kBAAkB,GAAI;AACxD,UAAM,EAAE,qBAAqB,kBAAkB,IAC9C,SAAS,SAAU,YAAa;AACjC,UAAM,EAAE,kBAAkB,uBAAuB,IAChD,SAAS,SAAU,SAAU;AAC9B,UAAM,QAAQ;AAAA,MACb,MAAM,IAAK,CAAE,SAAU;AACtB,eAAO,iBAAkB,YAAY,KAAK,MAAM,KAAK,IAAI;AAAA,UACxD,QAAQ;AAAA,QACT,CAAE;AAAA,MACH,CAAE;AAAA,IACH;AACA,UAAM,gBAAgB,MAAM,QAAQ;AAAA,MACnC,MAAM,IAAK,CAAE,SAAU;AACtB,eAAO,uBAAwB,YAAY,KAAK,MAAM,KAAK,IAAI;AAAA,UAC9D,cAAc;AAAA,QACf,CAAE;AAAA,MACH,CAAE;AAAA,IACH;AAEA,QAAK,cAAc,MAAO,CAAE,EAAE,OAAO,MAAO,WAAW,WAAY,GAAI;AACtE,UAAI;AACJ,UAAK,MAAM,WAAW,GAAI;AACzB,yBAAiB;AAAA;AAAA,UAEhB,GAAI,yBAA0B;AAAA,UAC9B,aAAc,MAAO,CAAE,CAAE;AAAA,QAC1B;AAAA,MACD,WAAY,MAAO,CAAE,EAAE,SAAS,QAAS;AACxC,yBAAiB;AAAA;AAAA,UAEhB,GAAI,8BAA+B;AAAA,UACnC,MAAM;AAAA,QACP;AAAA,MACD,OAAO;AACN,yBAAiB;AAAA;AAAA,UAEhB,GAAI,8BAA+B;AAAA,UACnC,MAAM;AAAA,QACP;AAAA,MACD;AACA,0BAAqB,gBAAgB;AAAA,QACpC,MAAM;AAAA,QACN,IAAI;AAAA,MACL,CAAE;AACF,UAAK,mBAAoB;AACxB,0BAAmB,KAAM;AAAA,MAC1B;AAAA,IACD,OAAO;AAEN,UAAI;AAEJ,UAAK,cAAc,WAAW,GAAI;AACjC,cAAM,aAAa,cAAe,CAAE;AAGpC,YAAK,WAAW,QAAQ,SAAU;AACjC,yBAAe,WAAW,OAAO;AAAA,QAClC,OAAO;AACN,yBAAe;AAAA,YACd;AAAA,UACD;AAAA,QACD;AAAA,MAED,OAAO;AACN,cAAM,gBAAgB,oBAAI,IAAc;AACxC,cAAM,iBAAiB,cAAc;AAAA,UACpC,CAAE,EAAE,OAAO,MAAO,WAAW;AAAA,QAC9B;AACA,mBAAY,iBAAiB,gBAAiB;AAC7C,gBAAM,aAAa;AAGnB,cAAK,WAAW,QAAQ,SAAU;AACjC,0BAAc,IAAK,WAAW,OAAO,OAAQ;AAAA,UAC9C;AAAA,QACD;AACA,YAAK,cAAc,SAAS,GAAI;AAC/B,yBAAe;AAAA,YACd;AAAA,UACD;AAAA,QACD,WAAY,cAAc,SAAS,GAAI;AACtC,yBAAe;AAAA;AAAA,YAEd,GAAI,iDAAkD;AAAA,YACtD,CAAE,GAAG,aAAc,EAAG,CAAE;AAAA,UACzB;AAAA,QACD,OAAO;AACN,yBAAe;AAAA;AAAA,YAEd;AAAA,cACC;AAAA,YACD;AAAA,YACA,CAAE,GAAG,aAAc,EAAE,KAAM,GAAI;AAAA,UAChC;AAAA,QACD;AAAA,MACD;AACA,wBAAmB,cAAc;AAAA,QAChC,MAAM;AAAA,MACP,CAAE;AAAA,IACH;AAAA,EACD;AACD;AAKA,IAAO,uBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// packages/fields/src/actions/trash-post.tsx
|
|
2
2
|
import { trash } from "@wordpress/icons";
|
|
3
3
|
import { useDispatch } from "@wordpress/data";
|
|
4
4
|
import { store as coreStore } from "@wordpress/core-data";
|
|
@@ -12,7 +12,8 @@ import {
|
|
|
12
12
|
__experimentalVStack as VStack
|
|
13
13
|
} from "@wordpress/components";
|
|
14
14
|
import { getItemTitle } from "./utils";
|
|
15
|
-
|
|
15
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
16
|
+
var trashPost = {
|
|
16
17
|
id: "move-to-trash",
|
|
17
18
|
label: __("Trash"),
|
|
18
19
|
isPrimary: true,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/actions/trash-post.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { trash } from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useState } from '@wordpress/element';\nimport {\n\tButton,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport type { Action } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport { getItemTitle } from './utils';\nimport type { CoreDataError, PostWithPermissions } from '../types';\n\nconst trashPost: Action< PostWithPermissions > = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( item ) {\n\t\tif ( item.type === 'wp_template_part' || item.type === 'wp_block' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Non-database template cannot be trashed.\n\t\tif ( item.type === 'wp_template' && typeof item.id === 'string' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\t!! item.status &&\n\t\t\t! [ 'auto-draft', 'trash' ].includes( item.status ) &&\n\t\t\titem.permissions?.delete\n\t\t);\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tmodalFocusOnMount: 'firstContentElement',\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The item's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move \"%s\" to the trash?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of items (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move %d item to the trash ?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move %d items to the trash ?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\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={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\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\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\titems.map( ( item ) =>\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\t\t\titem.id.toString(),\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t\t\t\t)\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// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\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\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: The item's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to the trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %d: The number of items. */\n\t\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t\t'%d item moved to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t'%d items moved to the trash.',\n\t\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'move-to-trash-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at least one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to delete a single item.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tconst typedError = promiseResult[ 0 ] as {\n\t\t\t\t\t\t\t\t\t\treason?: CoreDataError;\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\tif ( typedError.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\ttypedError.reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the item to the trash.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// If we were trying to delete multiple items.\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set< string >();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tconst typedError = failedPromise as {\n\t\t\t\t\t\t\t\t\t\t\treason?: CoreDataError;\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tif ( typedError.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\ttypedError.reason.message\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the items to the trash.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the item to the trash: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'Some errors occurred while moving the items to the trash: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal?.();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ _x( 'Trash', 'verb' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\n/**\n * Trash action for PostWithPermissions.\n */\nexport default trashPost;\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAGA,SAAS,aAAa;AACtB,SAAS,mBAAmB;AAC5B,SAAS,SAAS,iBAAiB;AACnC,SAAS,IAAI,IAAI,SAAS,UAAU;AACpC,SAAS,SAAS,oBAAoB;AACtC,SAAS,gBAAgB;AACzB;AAAA,EACC;AAAA,EACA,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,OAClB;AAMP,SAAS,oBAAoB;AAkCzB,cAmBA,YAnBA;AA/BJ,IAAM,YAA2C;AAAA,EAChD,IAAI;AAAA,EACJ,OAAO,GAAI,OAAQ;AAAA,EACnB,WAAW;AAAA,EACX,MAAM;AAAA,EACN,WAAY,MAAO;AAClB,QAAK,KAAK,SAAS,sBAAsB,KAAK,SAAS,YAAa;AACnE,aAAO;AAAA,IACR;AAGA,QAAK,KAAK,SAAS,iBAAiB,OAAO,KAAK,OAAO,UAAW;AACjE,aAAO;AAAA,IACR;AAEA,WACC,CAAC,CAAE,KAAK,UACR,CAAE,CAAE,cAAc,OAAQ,EAAE,SAAU,KAAK,MAAO,KAClD,KAAK,aAAa;AAAA,EAEpB;AAAA,EACA,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,aAAa,CAAE,EAAE,OAAO,YAAY,kBAAkB,MAAO;AAC5D,UAAM,CAAE,QAAQ,SAAU,IAAI,SAAU,KAAM;AAC9C,UAAM,EAAE,qBAAqB,kBAAkB,IAC9C,YAAa,YAAa;AAC3B,UAAM,EAAE,mBAAmB,IAAI,YAAa,SAAU;AACtD,WACC,qBAAC,UAAO,SAAQ,KACf;AAAA,0BAAC,QACE,gBAAM,WAAW,IAChB;AAAA;AAAA,QAEA;AAAA,UACC;AAAA,QACD;AAAA,QACA,aAAc,MAAO,CAAE,CAAE;AAAA,MACzB,IACA;AAAA;AAAA,QAEA;AAAA,UACC;AAAA,UACA;AAAA,UACA,MAAM;AAAA,QACP;AAAA,QACA,MAAM;AAAA,MACN,GACJ;AAAA,MACA,qBAAC,UAAO,SAAQ,SACf;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,uBAAqB;AAAA,YACrB,SAAQ;AAAA,YACR,SAAU;AAAA,YACV,UAAW;AAAA,YACX,wBAAsB;AAAA,YAEpB,aAAI,QAAS;AAAA;AAAA,QAChB;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACA,uBAAqB;AAAA,YACrB,SAAQ;AAAA,YACR,SAAU,YAAY;AACrB,wBAAW,IAAK;AAChB,oBAAM,gBAAgB,MAAM,QAAQ;AAAA,gBACnC,MAAM;AAAA,kBAAK,CAAE,SACZ;AAAA,oBACC;AAAA,oBACA,KAAK;AAAA,oBACL,KAAK,GAAG,SAAS;AAAA,oBACjB,CAAC;AAAA,oBACD,EAAE,cAAc,KAAK;AAAA,kBACtB;AAAA,gBACD;AAAA,cACD;AAEA,kBACC,cAAc;AAAA,gBACb,CAAE,EAAE,OAAO,MAAO,WAAW;AAAA,cAC9B,GACC;AACD,oBAAI;AACJ,oBAAK,cAAc,WAAW,GAAI;AACjC,mCAAiB;AAAA;AAAA,oBAEhB,GAAI,0BAA2B;AAAA,oBAC/B,aAAc,MAAO,CAAE,CAAE;AAAA,kBAC1B;AAAA,gBACD,OAAO;AACN,mCAAiB;AAAA;AAAA,oBAEhB;AAAA,sBACC;AAAA,sBACA;AAAA,sBACA,MAAM;AAAA,oBACP;AAAA,oBACA,MAAM;AAAA,kBACP;AAAA,gBACD;AACA,oCAAqB,gBAAgB;AAAA,kBACpC,MAAM;AAAA,kBACN,IAAI;AAAA,gBACL,CAAE;AAAA,cACH,OAAO;AAEN,oBAAI;AAEJ,oBAAK,cAAc,WAAW,GAAI;AACjC,wBAAM,aAAa,cAAe,CAAE;AAGpC,sBAAK,WAAW,QAAQ,SAAU;AACjC,mCACC,WAAW,OAAO;AAAA,kBACpB,OAAO;AACN,mCAAe;AAAA,sBACd;AAAA,oBACD;AAAA,kBACD;AAAA,gBAED,OAAO;AACN,wBAAM,gBAAgB,oBAAI,IAAc;AACxC,wBAAM,iBAAiB,cAAc;AAAA,oBACpC,CAAE,EAAE,OAAO,MAAO,WAAW;AAAA,kBAC9B;AACA,6BAAY,iBAAiB,gBAAiB;AAC7C,0BAAM,aAAa;AAGnB,wBAAK,WAAW,QAAQ,SAAU;AACjC,oCAAc;AAAA,wBACb,WAAW,OAAO;AAAA,sBACnB;AAAA,oBACD;AAAA,kBACD;AACA,sBAAK,cAAc,SAAS,GAAI;AAC/B,mCAAe;AAAA,sBACd;AAAA,oBACD;AAAA,kBACD,WAAY,cAAc,SAAS,GAAI;AACtC,mCAAe;AAAA;AAAA,sBAEd;AAAA,wBACC;AAAA,sBACD;AAAA,sBACA,CAAE,GAAG,aAAc,EAAG,CAAE;AAAA,oBACzB;AAAA,kBACD,OAAO;AACN,mCAAe;AAAA;AAAA,sBAEd;AAAA,wBACC;AAAA,sBACD;AAAA,sBACA,CAAE,GAAG,aAAc,EAAE,KAAM,GAAI;AAAA,oBAChC;AAAA,kBACD;AAAA,gBACD;AACA,kCAAmB,cAAc;AAAA,kBAChC,MAAM;AAAA,gBACP,CAAE;AAAA,cACH;AACA,kBAAK,mBAAoB;AACxB,kCAAmB,KAAM;AAAA,cAC1B;AACA,wBAAW,KAAM;AACjB,2BAAa;AAAA,YACd;AAAA,YACA;AAAA,YACA,UAAW;AAAA,YACX,wBAAsB;AAAA,YAEpB,aAAI,SAAS,MAAO;AAAA;AAAA,QACvB;AAAA,SACD;AAAA,OACD;AAAA,EAEF;AACD;AAKA,IAAO,qBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/actions/utils.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { Post, TemplatePart, Template } from '../types';\n\nexport function isTemplate( post: Post ): post is Template {\n\treturn post.type === 'wp_template';\n}\n\nexport function isTemplatePart( post: Post ): post is TemplatePart {\n\treturn post.type === 'wp_template_part';\n}\n\nexport function isTemplateOrTemplatePart(\n\tp: Post\n): p is Template | TemplatePart {\n\treturn p.type === 'wp_template' || p.type === 'wp_template_part';\n}\n\nexport function getItemTitle(\n\titem: {\n\t\ttitle: string | { rendered: string } | { raw: string };\n\t},\n\tfallback: string = __( '(no title)' )\n) {\n\tlet title = '';\n\tif ( typeof item.title === 'string' ) {\n\t\ttitle = decodeEntities( item.title );\n\t} else if ( item.title && 'rendered' in item.title ) {\n\t\ttitle = decodeEntities( item.title.rendered );\n\t} else if ( item.title && 'raw' in item.title ) {\n\t\ttitle = decodeEntities( item.title.raw );\n\t}\n\treturn title || fallback;\n}\n\n/**\n * Check if a template is removable.\n *\n * @param template The template entity to check.\n * @return Whether the template is removable.\n */\nexport function isTemplateRemovable( template: Template | TemplatePart ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t// In patterns list page we map the templates parts to a different object\n\t// than the one returned from the endpoint. This is why we need to check for\n\t// two props whether is custom or has a theme file.\n\treturn (\n\t\t[ template.source, template.source ].includes( 'custom' ) &&\n\t\t! Boolean( template.type === 'wp_template' && template?.plugin ) &&\n\t\t! template.has_theme_file\n\t);\n}\n"],
|
|
5
|
-
"mappings": "AAGA,SAAS,sBAAsB;AAC/B,SAAS,UAAU;AAOZ,SAAS,WAAY,MAA+B;AAC1D,SAAO,KAAK,SAAS;AACtB;AAEO,SAAS,eAAgB,MAAmC;AAClE,SAAO,KAAK,SAAS;AACtB;AAEO,SAAS,yBACf,GAC+B;AAC/B,SAAO,EAAE,SAAS,iBAAiB,EAAE,SAAS;AAC/C;AAEO,SAAS,aACf,MAGA,WAAmB,GAAI,YAAa,GACnC;AACD,MAAI,QAAQ;AACZ,MAAK,OAAO,KAAK,UAAU,UAAW;AACrC,YAAQ,eAAgB,KAAK,KAAM;AAAA,EACpC,WAAY,KAAK,SAAS,cAAc,KAAK,OAAQ;AACpD,YAAQ,eAAgB,KAAK,MAAM,QAAS;AAAA,EAC7C,WAAY,KAAK,SAAS,SAAS,KAAK,OAAQ;AAC/C,YAAQ,eAAgB,KAAK,MAAM,GAAI;AAAA,EACxC;AACA,SAAO,SAAS;AACjB;AAQO,SAAS,oBAAqB,UAAoC;AACxE,MAAK,CAAE,UAAW;AACjB,WAAO;AAAA,EACR;AAIA,SACC,CAAE,SAAS,QAAQ,SAAS,MAAO,EAAE,SAAU,QAAS,KACxD,CAAE,QAAS,SAAS,SAAS,iBAAiB,UAAU,MAAO,KAC/D,CAAE,SAAS;AAEb;",
|
|
5
|
+
"mappings": ";AAGA,SAAS,sBAAsB;AAC/B,SAAS,UAAU;AAOZ,SAAS,WAAY,MAA+B;AAC1D,SAAO,KAAK,SAAS;AACtB;AAEO,SAAS,eAAgB,MAAmC;AAClE,SAAO,KAAK,SAAS;AACtB;AAEO,SAAS,yBACf,GAC+B;AAC/B,SAAO,EAAE,SAAS,iBAAiB,EAAE,SAAS;AAC/C;AAEO,SAAS,aACf,MAGA,WAAmB,GAAI,YAAa,GACnC;AACD,MAAI,QAAQ;AACZ,MAAK,OAAO,KAAK,UAAU,UAAW;AACrC,YAAQ,eAAgB,KAAK,KAAM;AAAA,EACpC,WAAY,KAAK,SAAS,cAAc,KAAK,OAAQ;AACpD,YAAQ,eAAgB,KAAK,MAAM,QAAS;AAAA,EAC7C,WAAY,KAAK,SAAS,SAAS,KAAK,OAAQ;AAC/C,YAAQ,eAAgB,KAAK,MAAM,GAAI;AAAA,EACxC;AACA,SAAO,SAAS;AACjB;AAQO,SAAS,oBAAqB,UAAoC;AACxE,MAAK,CAAE,UAAW;AACjB,WAAO;AAAA,EACR;AAIA,SACC,CAAE,SAAS,QAAQ,SAAS,MAAO,EAAE,SAAU,QAAS,KACxD,CAAE,QAAS,SAAS,SAAS,iBAAiB,UAAU,MAAO,KAC/D,CAAE,SAAS;AAEb;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
// packages/fields/src/actions/view-post-revisions.tsx
|
|
1
2
|
import { addQueryArgs } from "@wordpress/url";
|
|
2
3
|
import { __, sprintf } from "@wordpress/i18n";
|
|
3
|
-
|
|
4
|
+
var viewPostRevisions = {
|
|
4
5
|
id: "view-post-revisions",
|
|
5
6
|
context: "list",
|
|
6
7
|
label(items) {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/actions/view-post-revisions.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\nimport { __, sprintf } from '@wordpress/i18n';\nimport type { Action } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport type { Post } from '../types';\n\nconst viewPostRevisions: Action< Post > = {\n\tid: 'view-post-revisions',\n\tcontext: 'list',\n\tlabel( items ) {\n\t\tconst revisionsCount =\n\t\t\titems[ 0 ]._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn sprintf(\n\t\t\t/* translators: %d: number of revisions. */\n\t\t\t__( 'View revisions (%d)' ),\n\t\t\trevisionsCount\n\t\t);\n\t},\n\tisEligible( post ) {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn !! lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( posts, { onActionPerformed } ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\n/**\n * View post revisions action for Post.\n */\nexport default viewPostRevisions;\n"],
|
|
5
|
-
"mappings": "AAGA,SAAS,oBAAoB;AAC7B,SAAS,IAAI,eAAe;AAQ5B,
|
|
5
|
+
"mappings": ";AAGA,SAAS,oBAAoB;AAC7B,SAAS,IAAI,eAAe;AAQ5B,IAAM,oBAAoC;AAAA,EACzC,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,MAAO,OAAQ;AACd,UAAM,iBACL,MAAO,CAAE,EAAE,SAAU,iBAAkB,IAAK,CAAE,GAAG,SAAS;AAC3D,WAAO;AAAA;AAAA,MAEN,GAAI,qBAAsB;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AAAA,EACA,WAAY,MAAO;AAClB,QAAK,KAAK,WAAW,SAAU;AAC9B,aAAO;AAAA,IACR;AACA,UAAM,iBACL,MAAM,SAAU,qBAAsB,IAAK,CAAE,GAAG,MAAM;AACvD,UAAM,iBACL,MAAM,SAAU,iBAAkB,IAAK,CAAE,GAAG,SAAS;AACtD,WAAO,CAAC,CAAE,kBAAkB,iBAAiB;AAAA,EAC9C;AAAA,EACA,SAAU,OAAO,EAAE,kBAAkB,GAAI;AACxC,UAAM,OAAO,MAAO,CAAE;AACtB,UAAM,OAAO,aAAc,gBAAgB;AAAA,MAC1C,UAAU,MAAM,SAAU,qBAAsB,IAAK,CAAE,GAAG;AAAA,IAC3D,CAAE;AACF,aAAS,SAAS,OAAO;AACzB,QAAK,mBAAoB;AACxB,wBAAmB,KAAM;AAAA,IAC1B;AAAA,EACD;AACD;AAKA,IAAO,8BAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/actions/view-post.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { external } from '@wordpress/icons';\nimport { _x } from '@wordpress/i18n';\nimport type { Action } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../types';\n\nconst viewPost: Action< BasePost > = {\n\tid: 'view-post',\n\tlabel: _x( 'View', 'verb' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( posts, { onActionPerformed } ) {\n\t\tconst post = posts[ 0 ];\n\t\twindow.open( post?.link, '_blank' );\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\n/**\n * View post action for BasePost.\n */\nexport default viewPost;\n"],
|
|
5
|
-
"mappings": "AAGA,SAAS,gBAAgB;AACzB,SAAS,UAAU;AAQnB,
|
|
5
|
+
"mappings": ";AAGA,SAAS,gBAAgB;AACzB,SAAS,UAAU;AAQnB,IAAM,WAA+B;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO,GAAI,QAAQ,MAAO;AAAA,EAC1B,WAAW;AAAA,EACX,MAAM;AAAA,EACN,WAAY,MAAO;AAClB,WAAO,KAAK,WAAW;AAAA,EACxB;AAAA,EACA,SAAU,OAAO,EAAE,kBAAkB,GAAI;AACxC,UAAM,OAAO,MAAO,CAAE;AACtB,WAAO,KAAM,MAAM,MAAM,QAAS;AAClC,QAAK,mBAAoB;AACxB,wBAAmB,KAAM;AAAA,IAC1B;AAAA,EACD;AACD;AAKA,IAAO,oBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// packages/fields/src/components/create-template-part-modal/index.tsx
|
|
2
2
|
import {
|
|
3
3
|
Icon,
|
|
4
4
|
BaseControl,
|
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
getUniqueTemplatePartTitle,
|
|
28
28
|
useExistingTemplateParts
|
|
29
29
|
} from "./utils";
|
|
30
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
30
31
|
function getAreaRadioId(value, instanceId) {
|
|
31
32
|
return `fields-create-template-part-modal__area-option-${value}-${instanceId}`;
|
|
32
33
|
}
|
|
@@ -53,7 +54,7 @@ function CreateTemplatePartModal({
|
|
|
53
54
|
}
|
|
54
55
|
);
|
|
55
56
|
}
|
|
56
|
-
|
|
57
|
+
var getTemplatePartIcon = (iconName) => {
|
|
57
58
|
if ("header" === iconName) {
|
|
58
59
|
return headerIcon;
|
|
59
60
|
} else if ("footer" === iconName) {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/create-template-part-modal/index.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\tBaseControl,\n\tTextControl,\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport type { TemplatePartArea } from '@wordpress/core-data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcheck,\n\tfooter as footerIcon,\n\theader as headerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n// @ts-expect-error serialize is not typed\nimport { serialize } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetCleanTemplatePartSlug,\n\tgetUniqueTemplatePartTitle,\n\tuseExistingTemplateParts,\n} from './utils';\n\nfunction getAreaRadioId( value: string, instanceId: number ) {\n\treturn `fields-create-template-part-modal__area-option-${ value }-${ instanceId }`;\n}\nfunction getAreaRadioDescriptionId( value: string, instanceId: number ) {\n\treturn `fields-create-template-part-modal__area-option-description-${ value }-${ instanceId }`;\n}\n\ntype CreateTemplatePartModalContentsProps = {\n\tdefaultArea?: string;\n\tblocks: any[];\n\tconfirmLabel?: string;\n\tcloseModal: () => void;\n\tonCreate: ( templatePart: any ) => void;\n\tonError?: () => void;\n\tdefaultTitle?: string;\n};\n\n/**\n * A React component that renders a modal for creating a template part. The modal displays a title and the contents for creating the template part.\n * This component should not live in this package, it should be moved to a dedicated package responsible for managing template.\n * @param {Object} props The component props.\n * @param props.modalTitle\n */\nexport default function CreateTemplatePartModal( {\n\tmodalTitle,\n\t...restProps\n}: {\n\tmodalTitle: string;\n} & CreateTemplatePartModalContentsProps ) {\n\tconst defaultModalTitle = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getPostType( 'wp_template_part' )?.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.closeModal }\n\t\t\toverlayClassName=\"fields-create-template-part-modal\"\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t<CreateTemplatePartModalContents { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nconst getTemplatePartIcon = ( iconName: string ) => {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n};\n\n/**\n * A React component that renders the content of a model for creating a template part.\n * This component should not live in this package; it should be moved to a dedicated package responsible for managing template.\n *\n * @param {Object} props - The component props.\n * @param {string} [props.defaultArea=uncategorized] - The default area for the template part.\n * @param {Array} [props.blocks=[]] - The blocks to be included in the template part.\n * @param {string} [props.confirmLabel='Add'] - The label for the confirm button.\n * @param {Function} props.closeModal - Function to close the modal.\n * @param {Function} props.onCreate - Function to call when the template part is successfully created.\n * @param {Function} [props.onError] - Function to call when there is an error creating the template part.\n * @param {string} [props.defaultTitle=''] - The default title for the template part.\n */\nexport function CreateTemplatePartModalContents( {\n\tdefaultArea = 'uncategorized',\n\tblocks = [],\n\tconfirmLabel = __( 'Add' ),\n\tcloseModal,\n\tonCreate,\n\tonError,\n\tdefaultTitle = '',\n}: CreateTemplatePartModalContentsProps ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst existingTemplateParts = useExistingTemplateParts();\n\n\tconst [ title, setTitle ] = useState( defaultTitle );\n\tconst [ area, setArea ] = useState( defaultArea );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst instanceId = useInstanceId( CreateTemplatePartModal );\n\n\tconst defaultTemplatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getCurrentTheme()?.default_template_part_areas,\n\t\t[]\n\t);\n\n\tasync function createTemplatePart() {\n\t\tif ( ! title || isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSubmitting( true );\n\t\t\tconst uniqueTitle = getUniqueTemplatePartTitle(\n\t\t\t\ttitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst cleanSlug = getCleanTemplatePartSlug( uniqueTitle );\n\n\t\t\tconst templatePart = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t{\n\t\t\t\t\tslug: cleanSlug,\n\t\t\t\t\ttitle: uniqueTitle,\n\t\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\t\tarea,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tawait onCreate( templatePart );\n\n\t\t\t// TODO: Add a success notice?\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror instanceof Error &&\n\t\t\t\t'code' in error &&\n\t\t\t\terror.message &&\n\t\t\t\terror.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\n\t\t\tonError?.();\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\treturn (\n\t\t<form\n\t\t\tonSubmit={ async ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tawait createTemplatePart();\n\t\t\t} }\n\t\t>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\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\trequired\n\t\t\t\t/>\n\t\t\t\t<fieldset className=\"fields-create-template-part-modal__area-fieldset\">\n\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t{ __( 'Area' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<div className=\"fields-create-template-part-modal__area-radio-group\">\n\t\t\t\t\t\t{ ( defaultTemplatePartAreas ?? [] ).map(\n\t\t\t\t\t\t\t( item: TemplatePartArea ) => {\n\t\t\t\t\t\t\t\tconst icon = getTemplatePartIcon( item.icon );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={ item.area }\n\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-wrapper\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\tid={ getAreaRadioId(\n\t\t\t\t\t\t\t\t\t\t\t\titem.area,\n\t\t\t\t\t\t\t\t\t\t\t\tinstanceId\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tname={ `fields-create-template-part-modal__area-${ instanceId }` }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ item.area }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ area === item.area }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetArea( item.area );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\taria-describedby={ getAreaRadioDescriptionId(\n\t\t\t\t\t\t\t\t\t\t\t\titem.area,\n\t\t\t\t\t\t\t\t\t\t\t\tinstanceId\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-icon\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\t\t\thtmlFor={ getAreaRadioId(\n\t\t\t\t\t\t\t\t\t\t\t\titem.area,\n\t\t\t\t\t\t\t\t\t\t\t\tinstanceId\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-label\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={ check }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-checkmark\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-description\"\n\t\t\t\t\t\t\t\t\t\t\tid={ getAreaRadioDescriptionId(\n\t\t\t\t\t\t\t\t\t\t\t\titem.area,\n\t\t\t\t\t\t\t\t\t\t\t\tinstanceId\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ item.description }\n\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</fieldset>\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\tcloseModal();\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\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 || isSubmitting }\n\t\t\t\t\t\tisBusy={ isSubmitting }\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"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
// packages/fields/src/components/create-template-part-modal/utils.js
|
|
1
2
|
import { paramCase as kebabCase } from "change-case";
|
|
2
3
|
import { useSelect } from "@wordpress/data";
|
|
3
4
|
import { store as coreStore } from "@wordpress/core-data";
|
|
4
|
-
|
|
5
|
+
var useExistingTemplateParts = () => {
|
|
5
6
|
return useSelect(
|
|
6
7
|
(select) => select(coreStore).getEntityRecords(
|
|
7
8
|
"postType",
|
|
@@ -13,7 +14,7 @@ const useExistingTemplateParts = () => {
|
|
|
13
14
|
[]
|
|
14
15
|
) ?? [];
|
|
15
16
|
};
|
|
16
|
-
|
|
17
|
+
var getUniqueTemplatePartTitle = (title, templateParts) => {
|
|
17
18
|
const lowercaseTitle = title.toLowerCase();
|
|
18
19
|
const existingTitles = templateParts.map(
|
|
19
20
|
(templatePart) => templatePart.title.rendered.toLowerCase()
|
|
@@ -27,7 +28,7 @@ const getUniqueTemplatePartTitle = (title, templateParts) => {
|
|
|
27
28
|
}
|
|
28
29
|
return `${title} ${suffix}`;
|
|
29
30
|
};
|
|
30
|
-
|
|
31
|
+
var getCleanTemplatePartSlug = (title) => {
|
|
31
32
|
return kebabCase(title).replace(/[^\w-]+/g, "") || "wp-custom-part";
|
|
32
33
|
};
|
|
33
34
|
export {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/create-template-part-modal/utils.js"],
|
|
4
4
|
"sourcesContent": ["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\n\nexport const useExistingTemplateParts = () => {\n\treturn (\n\t\tuseSelect(\n\t\t\t( select ) =>\n\t\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template_part',\n\t\t\t\t\t{\n\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t[]\n\t\t) ?? []\n\t);\n};\n\n/**\n * Return a unique template part title based on\n * the given title and existing template parts.\n *\n * @param {string} title The original template part title.\n * @param {Object} templateParts The array of template part entities.\n * @return {string} A unique template part title.\n */\nexport const getUniqueTemplatePartTitle = ( title, templateParts ) => {\n\tconst lowercaseTitle = title.toLowerCase();\n\tconst existingTitles = templateParts.map( ( templatePart ) =>\n\t\ttemplatePart.title.rendered.toLowerCase()\n\t);\n\n\tif ( ! existingTitles.includes( lowercaseTitle ) ) {\n\t\treturn title;\n\t}\n\n\tlet suffix = 2;\n\twhile ( existingTitles.includes( `${ lowercaseTitle } ${ suffix }` ) ) {\n\t\tsuffix++;\n\t}\n\n\treturn `${ title } ${ suffix }`;\n};\n\n/**\n * Get a valid slug for a template part.\n * Currently template parts only allow latin chars.\n * The fallback slug will receive suffix by default.\n *\n * @param {string} title The template part title.\n * @return {string} A valid template part slug.\n */\nexport const getCleanTemplatePartSlug = ( title ) => {\n\treturn kebabCase( title ).replace( /[^\\w-]+/g, '' ) || 'wp-custom-part';\n};\n"],
|
|
5
|
-
"mappings": "AAGA,SAAS,aAAa,iBAAiB;AAKvC,SAAS,iBAAiB;AAC1B,SAAS,SAAS,iBAAiB;AAM5B,
|
|
5
|
+
"mappings": ";AAGA,SAAS,aAAa,iBAAiB;AAKvC,SAAS,iBAAiB;AAC1B,SAAS,SAAS,iBAAiB;AAM5B,IAAM,2BAA2B,MAAM;AAC7C,SACC;AAAA,IACC,CAAE,WACD,OAAQ,SAAU,EAAE;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,QACC,UAAU;AAAA,MACX;AAAA,IACD;AAAA,IACD,CAAC;AAAA,EACF,KAAK,CAAC;AAER;AAUO,IAAM,6BAA6B,CAAE,OAAO,kBAAmB;AACrE,QAAM,iBAAiB,MAAM,YAAY;AACzC,QAAM,iBAAiB,cAAc;AAAA,IAAK,CAAE,iBAC3C,aAAa,MAAM,SAAS,YAAY;AAAA,EACzC;AAEA,MAAK,CAAE,eAAe,SAAU,cAAe,GAAI;AAClD,WAAO;AAAA,EACR;AAEA,MAAI,SAAS;AACb,SAAQ,eAAe,SAAU,GAAI,cAAe,IAAK,MAAO,EAAG,GAAI;AACtE;AAAA,EACD;AAEA,SAAO,GAAI,KAAM,IAAK,MAAO;AAC9B;AAUO,IAAM,2BAA2B,CAAE,UAAW;AACpD,SAAO,UAAW,KAAM,EAAE,QAAS,YAAY,EAAG,KAAK;AACxD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
// packages/fields/src/fields/author/author-view.tsx
|
|
2
2
|
import clsx from "clsx";
|
|
3
3
|
import { __ } from "@wordpress/i18n";
|
|
4
4
|
import { useState } from "@wordpress/element";
|
|
5
5
|
import { commentAuthorAvatar as authorIcon } from "@wordpress/icons";
|
|
6
6
|
import { __experimentalHStack as HStack, Icon } from "@wordpress/components";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
8
|
function AuthorView({ item }) {
|
|
8
9
|
const text = item?._embedded?.author?.[0]?.name;
|
|
9
10
|
const imageUrl = item?._embedded?.author?.[0]?.avatar_urls?.[48];
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fields/author/author-view.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { commentAuthorAvatar as authorIcon } from '@wordpress/icons';\nimport { __experimentalHStack as HStack, Icon } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { BasePostWithEmbeddedAuthor } from '../../types';\n\nfunction AuthorView( { item }: { item: BasePostWithEmbeddedAuthor } ) {\n\tconst text = item?._embedded?.author?.[ 0 ]?.name;\n\tconst imageUrl = item?._embedded?.author?.[ 0 ]?.avatar_urls?.[ 48 ];\n\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 0 }>\n\t\t\t{ !! imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( 'page-templates-author-field__avatar', {\n\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt={ __( 'Author avatar' ) }\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ authorIcon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span className=\"page-templates-author-field__name\">{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nexport default AuthorView;\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,UAAU;AACnB,SAAS,gBAAgB;AACzB,SAAS,uBAAuB,kBAAkB;AAClD,SAAS,wBAAwB,QAAQ,YAAY;AAanD,SAOG,KAPH;AANF,SAAS,WAAY,EAAE,KAAK,GAA0C;AACrE,QAAM,OAAO,MAAM,WAAW,SAAU,CAAE,GAAG;AAC7C,QAAM,WAAW,MAAM,WAAW,SAAU,CAAE,GAAG,cAAe,EAAG;AAEnE,QAAM,CAAE,eAAe,gBAAiB,IAAI,SAAU,KAAM;AAC5D,SACC,qBAAC,UAAO,WAAU,QAAO,SAAU,GAChC;AAAA,KAAC,CAAE,YACJ;AAAA,MAAC;AAAA;AAAA,QACA,WAAY,KAAM,uCAAuC;AAAA,UACxD,aAAa;AAAA,QACd,CAAE;AAAA,QAEF;AAAA,UAAC;AAAA;AAAA,YACA,QAAS,MAAM,iBAAkB,IAAK;AAAA,YACtC,KAAM,GAAI,eAAgB;AAAA,YAC1B,KAAM;AAAA;AAAA,QACP;AAAA;AAAA,IACD;AAAA,IAEC,CAAE,YACH,oBAAC,SAAI,WAAU,qCACd,8BAAC,QAAK,MAAO,YAAa,GAC3B;AAAA,IAED,oBAAC,UAAK,WAAU,qCAAsC,gBAAM;AAAA,KAC7D;AAEF;AAEA,IAAO,sBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
// packages/fields/src/fields/author/index.tsx
|
|
1
2
|
import { __ } from "@wordpress/i18n";
|
|
2
3
|
import { resolveSelect } from "@wordpress/data";
|
|
3
4
|
import { store as coreDataStore } from "@wordpress/core-data";
|
|
4
5
|
import AuthorView from "./author-view";
|
|
5
|
-
|
|
6
|
+
var authorField = {
|
|
6
7
|
label: __("Author"),
|
|
7
8
|
id: "author",
|
|
8
9
|
type: "integer",
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fields/author/index.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport type { Field } from '@wordpress/dataviews';\nimport { __ } from '@wordpress/i18n';\nimport { resolveSelect } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport type { BasePostWithEmbeddedAuthor } from '../../types';\nimport AuthorView from './author-view';\n\ninterface Author {\n\tid: number;\n\tname: string;\n}\n\nconst authorField: Field< BasePostWithEmbeddedAuthor > = {\n\tlabel: __( 'Author' ),\n\tid: 'author',\n\ttype: 'integer',\n\tgetElements: async () => {\n\t\tconst authors: Author[] =\n\t\t\t( await resolveSelect( coreDataStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'user',\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t) ) ?? [];\n\t\treturn authors.map( ( { id, name } ) => ( {\n\t\t\tvalue: id,\n\t\t\tlabel: name,\n\t\t} ) );\n\t},\n\trender: AuthorView,\n\tsort: ( a, b, direction ) => {\n\t\tconst nameA = a._embedded?.author?.[ 0 ]?.name || '';\n\t\tconst nameB = b._embedded?.author?.[ 0 ]?.name || '';\n\n\t\treturn direction === 'asc'\n\t\t\t? nameA.localeCompare( nameB )\n\t\t\t: nameB.localeCompare( nameA );\n\t},\n\n\tfilterBy: {\n\t\toperators: [ 'isAny', 'isNone' ],\n\t},\n};\n\n/**\n * Author field for BasePost.\n */\nexport default authorField;\n"],
|
|
5
|
-
"mappings": "AAIA,SAAS,UAAU;AACnB,SAAS,qBAAqB;AAC9B,SAAS,SAAS,qBAAqB;AAMvC,OAAO,gBAAgB;AAOvB,
|
|
5
|
+
"mappings": ";AAIA,SAAS,UAAU;AACnB,SAAS,qBAAqB;AAC9B,SAAS,SAAS,qBAAqB;AAMvC,OAAO,gBAAgB;AAOvB,IAAM,cAAmD;AAAA,EACxD,OAAO,GAAI,QAAS;AAAA,EACpB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa,YAAY;AACxB,UAAM,UACH,MAAM,cAAe,aAAc,EAAE;AAAA,MACtC;AAAA,MACA;AAAA,MACA;AAAA,QACC,UAAU;AAAA,MACX;AAAA,IACD,KAAO,CAAC;AACT,WAAO,QAAQ,IAAK,CAAE,EAAE,IAAI,KAAK,OAAS;AAAA,MACzC,OAAO;AAAA,MACP,OAAO;AAAA,IACR,EAAI;AAAA,EACL;AAAA,EACA,QAAQ;AAAA,EACR,MAAM,CAAE,GAAG,GAAG,cAAe;AAC5B,UAAM,QAAQ,EAAE,WAAW,SAAU,CAAE,GAAG,QAAQ;AAClD,UAAM,QAAQ,EAAE,WAAW,SAAU,CAAE,GAAG,QAAQ;AAElD,WAAO,cAAc,QAClB,MAAM,cAAe,KAAM,IAC3B,MAAM,cAAe,KAAM;AAAA,EAC/B;AAAA,EAEA,UAAU;AAAA,IACT,WAAW,CAAE,SAAS,QAAS;AAAA,EAChC;AACD;AAKA,IAAO,iBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fields/comment-status/index.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport type { Field } from '@wordpress/dataviews';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\n\nconst commentStatusField: Field< BasePost > = {\n\tid: 'comment_status',\n\tlabel: __( 'Comments' ),\n\ttype: 'text',\n\tEdit: 'radio',\n\tenableSorting: false,\n\tenableHiding: false,\n\tfilterBy: false,\n\telements: [\n\t\t{\n\t\t\tvalue: 'open',\n\t\t\tlabel: __( 'Open' ),\n\t\t\tdescription: __( 'Visitors can add new comments and replies.' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'closed',\n\t\t\tlabel: __( 'Closed' ),\n\t\t\tdescription: __(\n\t\t\t\t'Visitors cannot add new comments or replies. Existing comments remain visible.'\n\t\t\t),\n\t\t},\n\t],\n};\n\n/**\n * Comment status field for BasePost.\n */\nexport default commentStatusField;\n"],
|
|
5
|
-
"mappings": "AAIA,SAAS,UAAU;AAOnB,
|
|
5
|
+
"mappings": ";AAIA,SAAS,UAAU;AAOnB,IAAM,qBAAwC;AAAA,EAC7C,IAAI;AAAA,EACJ,OAAO,GAAI,UAAW;AAAA,EACtB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,eAAe;AAAA,EACf,cAAc;AAAA,EACd,UAAU;AAAA,EACV,UAAU;AAAA,IACT;AAAA,MACC,OAAO;AAAA,MACP,OAAO,GAAI,MAAO;AAAA,MAClB,aAAa,GAAI,4CAA6C;AAAA,IAC/D;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,OAAO,GAAI,QAAS;AAAA,MACpB,aAAa;AAAA,QACZ;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAKA,IAAO,yBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
// packages/fields/src/fields/date/date-view.tsx
|
|
2
2
|
import { __, sprintf } from "@wordpress/i18n";
|
|
3
3
|
import { createInterpolateElement } from "@wordpress/element";
|
|
4
4
|
import { dateI18n, getDate, getSettings } from "@wordpress/date";
|
|
5
|
-
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
var getFormattedDate = (dateToDisplay) => dateI18n(
|
|
6
7
|
getSettings().formats.datetimeAbbreviated,
|
|
7
8
|
getDate(dateToDisplay)
|
|
8
9
|
);
|
|
9
|
-
|
|
10
|
+
var DateView = ({ item }) => {
|
|
10
11
|
const isDraftOrPrivate = ["draft", "private"].includes(
|
|
11
12
|
item.status ?? ""
|
|
12
13
|
);
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fields/date/date-view.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\n\nconst getFormattedDate = ( dateToDisplay: string | null ) =>\n\tdateI18n(\n\t\tgetSettings().formats.datetimeAbbreviated,\n\t\tgetDate( dateToDisplay )\n\t);\n\nconst DateView = ( { item }: { item: BasePost } ) => {\n\tconst isDraftOrPrivate = [ 'draft', 'private' ].includes(\n\t\titem.status ?? ''\n\t);\n\tif ( isDraftOrPrivate ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: page creation or modification date. */\n\t\t\t\t__( '<span>Modified: <time>%s</time></span>' ),\n\t\t\t\tgetFormattedDate( item.date ?? null )\n\t\t\t),\n\t\t\t{\n\t\t\t\tspan: <span />,\n\t\t\t\ttime: <time />,\n\t\t\t}\n\t\t);\n\t}\n\n\tconst isScheduled = item.status === 'future';\n\tif ( isScheduled ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: page creation date */\n\t\t\t\t__( '<span>Scheduled: <time>%s</time></span>' ),\n\t\t\t\tgetFormattedDate( item.date ?? null )\n\t\t\t),\n\t\t\t{\n\t\t\t\tspan: <span />,\n\t\t\t\ttime: <time />,\n\t\t\t}\n\t\t);\n\t}\n\n\tconst isPublished = item.status === 'publish';\n\tif ( isPublished ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: page creation time */\n\t\t\t\t__( '<span>Published: <time>%s</time></span>' ),\n\t\t\t\tgetFormattedDate( item.date ?? null )\n\t\t\t),\n\t\t\t{\n\t\t\t\tspan: <span />,\n\t\t\t\ttime: <time />,\n\t\t\t}\n\t\t);\n\t}\n\n\t// Pending posts show the modified date if it's newer.\n\tconst dateToDisplay =\n\t\tgetDate( item.modified ?? null ) > getDate( item.date ?? null )\n\t\t\t? item.modified\n\t\t\t: item.date;\n\n\tconst isPending = item.status === 'pending';\n\tif ( isPending ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: page creation or modification date. */\n\t\t\t\t__( '<span>Modified: <time>%s</time></span>' ),\n\t\t\t\tgetFormattedDate( dateToDisplay ?? null )\n\t\t\t),\n\t\t\t{\n\t\t\t\tspan: <span />,\n\t\t\t\ttime: <time />,\n\t\t\t}\n\t\t);\n\t}\n\n\t// Unknow status.\n\treturn <time>{ getFormattedDate( item.date ?? null ) }</time>;\n};\n\nexport default DateView;\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAGA,SAAS,IAAI,eAAe;AAC5B,SAAS,gCAAgC;AACzC,SAAS,UAAU,SAAS,mBAAmB;AAyBrC;AAlBV,IAAM,mBAAmB,CAAE,kBAC1B;AAAA,EACC,YAAY,EAAE,QAAQ;AAAA,EACtB,QAAS,aAAc;AACxB;AAED,IAAM,WAAW,CAAE,EAAE,KAAK,MAA2B;AACpD,QAAM,mBAAmB,CAAE,SAAS,SAAU,EAAE;AAAA,IAC/C,KAAK,UAAU;AAAA,EAChB;AACA,MAAK,kBAAmB;AACvB,WAAO;AAAA,MACN;AAAA;AAAA,QAEC,GAAI,wCAAyC;AAAA,QAC7C,iBAAkB,KAAK,QAAQ,IAAK;AAAA,MACrC;AAAA,MACA;AAAA,QACC,MAAM,oBAAC,UAAK;AAAA,QACZ,MAAM,oBAAC,UAAK;AAAA,MACb;AAAA,IACD;AAAA,EACD;AAEA,QAAM,cAAc,KAAK,WAAW;AACpC,MAAK,aAAc;AAClB,WAAO;AAAA,MACN;AAAA;AAAA,QAEC,GAAI,yCAA0C;AAAA,QAC9C,iBAAkB,KAAK,QAAQ,IAAK;AAAA,MACrC;AAAA,MACA;AAAA,QACC,MAAM,oBAAC,UAAK;AAAA,QACZ,MAAM,oBAAC,UAAK;AAAA,MACb;AAAA,IACD;AAAA,EACD;AAEA,QAAM,cAAc,KAAK,WAAW;AACpC,MAAK,aAAc;AAClB,WAAO;AAAA,MACN;AAAA;AAAA,QAEC,GAAI,yCAA0C;AAAA,QAC9C,iBAAkB,KAAK,QAAQ,IAAK;AAAA,MACrC;AAAA,MACA;AAAA,QACC,MAAM,oBAAC,UAAK;AAAA,QACZ,MAAM,oBAAC,UAAK;AAAA,MACb;AAAA,IACD;AAAA,EACD;AAGA,QAAM,gBACL,QAAS,KAAK,YAAY,IAAK,IAAI,QAAS,KAAK,QAAQ,IAAK,IAC3D,KAAK,WACL,KAAK;AAET,QAAM,YAAY,KAAK,WAAW;AAClC,MAAK,WAAY;AAChB,WAAO;AAAA,MACN;AAAA;AAAA,QAEC,GAAI,wCAAyC;AAAA,QAC7C,iBAAkB,iBAAiB,IAAK;AAAA,MACzC;AAAA,MACA;AAAA,QACC,MAAM,oBAAC,UAAK;AAAA,QACZ,MAAM,oBAAC,UAAK;AAAA,MACb;AAAA,IACD;AAAA,EACD;AAGA,SAAO,oBAAC,UAAO,2BAAkB,KAAK,QAAQ,IAAK,GAAG;AACvD;AAEA,IAAO,oBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fields/date/index.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport type { Field } from '@wordpress/dataviews';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\nimport DateView from './date-view';\n\nconst dateField: Field< BasePost > = {\n\tid: 'date',\n\ttype: 'datetime',\n\tlabel: __( 'Date' ),\n\trender: DateView,\n\tfilterBy: false,\n};\n\n/**\n * Date field for BasePost.\n */\nexport default dateField;\n"],
|
|
5
|
-
"mappings": "AAIA,SAAS,UAAU;AAMnB,OAAO,cAAc;AAErB,
|
|
5
|
+
"mappings": ";AAIA,SAAS,UAAU;AAMnB,OAAO,cAAc;AAErB,IAAM,YAA+B;AAAA,EACpC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO,GAAI,MAAO;AAAA,EAClB,QAAQ;AAAA,EACR,UAAU;AACX;AAKA,IAAO,eAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fields/discussion/index.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport type { Field } from '@wordpress/dataviews';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\n\nconst discussionField: Field< BasePost > = {\n\tid: 'discussion',\n\tlabel: __( 'Discussion' ),\n\ttype: 'text',\n\trender: ( { item } ) => {\n\t\tconst commentsOpen = item.comment_status === 'open';\n\t\tconst pingsOpen = item.ping_status === 'open';\n\n\t\tif ( commentsOpen && pingsOpen ) {\n\t\t\treturn __( 'Open' );\n\t\t}\n\t\tif ( commentsOpen && ! pingsOpen ) {\n\t\t\treturn __( 'Comments only' );\n\t\t}\n\t\tif ( ! commentsOpen && pingsOpen ) {\n\t\t\treturn __( 'Pings only' );\n\t\t}\n\t\treturn __( 'Closed' );\n\t},\n\tfilterBy: false,\n};\n\n/**\n * Discussion field for BasePost with custom render logic.\n */\nexport default discussionField;\n"],
|
|
5
|
-
"mappings": "AAIA,SAAS,UAAU;AAOnB,
|
|
5
|
+
"mappings": ";AAIA,SAAS,UAAU;AAOnB,IAAM,kBAAqC;AAAA,EAC1C,IAAI;AAAA,EACJ,OAAO,GAAI,YAAa;AAAA,EACxB,MAAM;AAAA,EACN,QAAQ,CAAE,EAAE,KAAK,MAAO;AACvB,UAAM,eAAe,KAAK,mBAAmB;AAC7C,UAAM,YAAY,KAAK,gBAAgB;AAEvC,QAAK,gBAAgB,WAAY;AAChC,aAAO,GAAI,MAAO;AAAA,IACnB;AACA,QAAK,gBAAgB,CAAE,WAAY;AAClC,aAAO,GAAI,eAAgB;AAAA,IAC5B;AACA,QAAK,CAAE,gBAAgB,WAAY;AAClC,aAAO,GAAI,YAAa;AAAA,IACzB;AACA,WAAO,GAAI,QAAS;AAAA,EACrB;AAAA,EACA,UAAU;AACX;AAKA,IAAO,qBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,12 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
// packages/fields/src/fields/featured-image/featured-image-edit.tsx
|
|
2
2
|
import { Button, __experimentalGrid as Grid } from "@wordpress/components";
|
|
3
3
|
import { useSelect } from "@wordpress/data";
|
|
4
|
-
import { useCallback, useRef } from "@wordpress/element";
|
|
5
|
-
import {
|
|
4
|
+
import { useCallback, useRef, useState } from "@wordpress/element";
|
|
5
|
+
import {
|
|
6
|
+
privateApis as mediaUtilsPrivateApis,
|
|
7
|
+
MediaUpload
|
|
8
|
+
} from "@wordpress/media-utils";
|
|
6
9
|
import { lineSolid } from "@wordpress/icons";
|
|
7
10
|
import { store as coreStore } from "@wordpress/core-data";
|
|
8
11
|
import { __ } from "@wordpress/i18n";
|
|
9
|
-
|
|
12
|
+
import { unlock } from "../../lock-unlock";
|
|
13
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
var { MediaUploadModal } = unlock(mediaUtilsPrivateApis);
|
|
15
|
+
function ConditionalMediaUpload({ render, ...props }) {
|
|
16
|
+
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
17
|
+
if (window.__experimentalDataViewsMediaModal) {
|
|
18
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
19
|
+
render && render({ open: () => setIsModalOpen(true) }),
|
|
20
|
+
/* @__PURE__ */ jsx(
|
|
21
|
+
MediaUploadModal,
|
|
22
|
+
{
|
|
23
|
+
...props,
|
|
24
|
+
isOpen: isModalOpen,
|
|
25
|
+
onClose: () => {
|
|
26
|
+
setIsModalOpen(false);
|
|
27
|
+
props.onClose?.();
|
|
28
|
+
},
|
|
29
|
+
onSelect: (media) => {
|
|
30
|
+
setIsModalOpen(false);
|
|
31
|
+
props.onSelect?.(media);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
] });
|
|
36
|
+
}
|
|
37
|
+
return /* @__PURE__ */ jsx(MediaUpload, { ...props, render });
|
|
38
|
+
}
|
|
39
|
+
var FeaturedImageEdit = ({
|
|
10
40
|
data,
|
|
11
41
|
field,
|
|
12
42
|
onChange
|
|
@@ -30,74 +60,77 @@ const FeaturedImageEdit = ({
|
|
|
30
60
|
const title = media?.title?.rendered;
|
|
31
61
|
const ref = useRef(null);
|
|
32
62
|
return /* @__PURE__ */ jsx("fieldset", { className: "fields-controls__featured-image", children: /* @__PURE__ */ jsx("div", { className: "fields-controls__featured-image-container", children: /* @__PURE__ */ jsx(
|
|
33
|
-
|
|
63
|
+
ConditionalMediaUpload,
|
|
34
64
|
{
|
|
35
65
|
onSelect: (selectedMedia) => {
|
|
36
66
|
onChangeControl(selectedMedia.id);
|
|
37
67
|
},
|
|
38
68
|
allowedTypes: ["image"],
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
69
|
+
value,
|
|
70
|
+
title: __("Select Featured Image"),
|
|
71
|
+
render: ({ open }) => /* @__PURE__ */ jsx(
|
|
72
|
+
"div",
|
|
73
|
+
{
|
|
74
|
+
ref,
|
|
75
|
+
role: "button",
|
|
76
|
+
tabIndex: -1,
|
|
77
|
+
onClick: open,
|
|
78
|
+
onKeyDown: (event) => {
|
|
79
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
80
|
+
event.preventDefault();
|
|
47
81
|
open();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
className: "fields-controls__featured-image-image",
|
|
62
|
-
alt: "",
|
|
63
|
-
width: 24,
|
|
64
|
-
height: 24,
|
|
65
|
-
src: url
|
|
66
|
-
}
|
|
67
|
-
),
|
|
68
|
-
/* @__PURE__ */ jsx("span", { className: "fields-controls__featured-image-title", children: title })
|
|
69
|
-
] }),
|
|
70
|
-
!url && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
71
|
-
/* @__PURE__ */ jsx(
|
|
72
|
-
"span",
|
|
73
|
-
{
|
|
74
|
-
className: "fields-controls__featured-image-placeholder",
|
|
75
|
-
style: {
|
|
76
|
-
width: "24px",
|
|
77
|
-
height: "24px"
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
),
|
|
81
|
-
/* @__PURE__ */ jsx("span", { className: "fields-controls__featured-image-title", children: __("Choose an image\u2026") })
|
|
82
|
-
] }),
|
|
83
|
-
url && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
84
|
-
Button,
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
children: /* @__PURE__ */ jsxs(
|
|
85
|
+
Grid,
|
|
86
|
+
{
|
|
87
|
+
rowGap: 0,
|
|
88
|
+
columnGap: 8,
|
|
89
|
+
templateColumns: "24px 1fr 24px",
|
|
90
|
+
children: [
|
|
91
|
+
url && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
92
|
+
/* @__PURE__ */ jsx(
|
|
93
|
+
"img",
|
|
85
94
|
{
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
className: "fields-controls__featured-image-image",
|
|
96
|
+
alt: "",
|
|
97
|
+
width: 24,
|
|
98
|
+
height: 24,
|
|
99
|
+
src: url
|
|
100
|
+
}
|
|
101
|
+
),
|
|
102
|
+
/* @__PURE__ */ jsx("span", { className: "fields-controls__featured-image-title", children: title })
|
|
103
|
+
] }),
|
|
104
|
+
!url && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
105
|
+
/* @__PURE__ */ jsx(
|
|
106
|
+
"span",
|
|
107
|
+
{
|
|
108
|
+
className: "fields-controls__featured-image-placeholder",
|
|
109
|
+
style: {
|
|
110
|
+
width: "24px",
|
|
111
|
+
height: "24px"
|
|
92
112
|
}
|
|
93
113
|
}
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
114
|
+
),
|
|
115
|
+
/* @__PURE__ */ jsx("span", { className: "fields-controls__featured-image-title", children: __("Choose an image\u2026") })
|
|
116
|
+
] }),
|
|
117
|
+
url && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
118
|
+
Button,
|
|
119
|
+
{
|
|
120
|
+
size: "small",
|
|
121
|
+
className: "fields-controls__featured-image-remove-button",
|
|
122
|
+
icon: lineSolid,
|
|
123
|
+
onClick: (event) => {
|
|
124
|
+
event.stopPropagation();
|
|
125
|
+
onChangeControl(0);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
) })
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
)
|
|
132
|
+
}
|
|
133
|
+
)
|
|
101
134
|
}
|
|
102
135
|
) }) });
|
|
103
136
|
};
|