@wordpress/editor 12.0.15 → 12.0.16
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/build/components/entities-saved-states/index.js +1 -0
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +1 -0
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/package.json +6 -6
- package/src/components/entities-saved-states/index.js +1 -0
|
@@ -44,6 +44,7 @@ const TRANSLATED_SITE_PROPERTIES = {
|
|
|
44
44
|
title: (0, _i18n.__)('Title'),
|
|
45
45
|
description: (0, _i18n.__)('Tagline'),
|
|
46
46
|
site_logo: (0, _i18n.__)('Logo'),
|
|
47
|
+
site_icon: (0, _i18n.__)('Icon'),
|
|
47
48
|
show_on_front: (0, _i18n.__)('Show on front'),
|
|
48
49
|
page_on_front: (0, _i18n.__)('Page on front')
|
|
49
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"names":["TRANSLATED_SITE_PROPERTIES","title","description","site_logo","show_on_front","page_on_front","PUBLISH_ON_SAVE_ENTITIES","kind","name","EntitiesSavedStates","close","saveButtonRef","dirtyEntityRecords","select","dirtyRecords","coreStore","__experimentalGetDirtyEntityRecords","dirtyRecordsWithoutSite","filter","record","siteEdits","getEntityRecordEdits","siteEditsAsEntities","property","push","dirtyRecordsWithSiteItems","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","createSuccessNotice","createErrorNotice","noticesStore","partitionedSavables","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","values","Array","isArray","unselectedEntities","_setUnselectedEntities","setUnselectedEntities","checked","key","elt","saveCheckedEntities","entitiesToSave","siteItemsToSave","pendingSavedRecords","forEach","some","typeToPublish","status","length","undefined","Promise","all","then","value","type","catch","error","dismissPanel","saveDialogRef","saveDialogProps","onClose","closeIcon","map","list"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { some, groupBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState, useCallback, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { close as closeIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\n\nconst TRANSLATED_SITE_PROPERTIES = {\n\ttitle: __( 'Title' ),\n\tdescription: __( 'Tagline' ),\n\tsite_logo: __( 'Logo' ),\n\tshow_on_front: __( 'Show on front' ),\n\tpage_on_front: __( 'Page on front' ),\n};\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nexport default function EntitiesSavedStates( { close } ) {\n\tconst saveButtonRef = useRef();\n\tconst { dirtyEntityRecords } = useSelect( ( select ) => {\n\t\tconst dirtyRecords = select(\n\t\t\tcoreStore\n\t\t).__experimentalGetDirtyEntityRecords();\n\n\t\t// Remove site object and decouple into its edited pieces.\n\t\tconst dirtyRecordsWithoutSite = dirtyRecords.filter(\n\t\t\t( record ) => ! ( record.kind === 'root' && record.name === 'site' )\n\t\t);\n\n\t\tconst siteEdits = select( coreStore ).getEntityRecordEdits(\n\t\t\t'root',\n\t\t\t'site'\n\t\t);\n\n\t\tconst siteEditsAsEntities = [];\n\t\tfor ( const property in siteEdits ) {\n\t\t\tsiteEditsAsEntities.push( {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t\ttitle: TRANSLATED_SITE_PROPERTIES[ property ] || property,\n\t\t\t\tproperty,\n\t\t\t} );\n\t\t}\n\t\tconst dirtyRecordsWithSiteItems = [\n\t\t\t...dirtyRecordsWithoutSite,\n\t\t\t...siteEditsAsEntities,\n\t\t];\n\n\t\treturn {\n\t\t\tdirtyEntityRecords: dirtyRecordsWithSiteItems,\n\t\t};\n\t}, [] );\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { createSuccessNotice, createErrorNotice } = useDispatch(\n\t\tnoticesStore\n\t);\n\n\t// To group entities by type.\n\tconst partitionedSavables = groupBy( dirtyEntityRecords, 'name' );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\t// Unchecked entities to be ignored by save function.\n\tconst [ unselectedEntities, _setUnselectedEntities ] = useState( [] );\n\n\tconst setUnselectedEntities = (\n\t\t{ kind, name, key, property },\n\t\tchecked\n\t) => {\n\t\tif ( checked ) {\n\t\t\t_setUnselectedEntities(\n\t\t\t\tunselectedEntities.filter(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind !== kind ||\n\t\t\t\t\t\telt.name !== name ||\n\t\t\t\t\t\telt.key !== key ||\n\t\t\t\t\t\telt.property !== property\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\t_setUnselectedEntities( [\n\t\t\t\t...unselectedEntities,\n\t\t\t\t{ kind, name, key, property },\n\t\t\t] );\n\t\t}\n\t};\n\n\tconst saveCheckedEntities = () => {\n\t\tconst entitiesToSave = dirtyEntityRecords.filter(\n\t\t\t( { kind, name, key, property } ) => {\n\t\t\t\treturn ! some(\n\t\t\t\t\tunselectedEntities,\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === kind &&\n\t\t\t\t\t\telt.name === name &&\n\t\t\t\t\t\telt.key === key &&\n\t\t\t\t\t\telt.property === property\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\n\t\tclose( entitiesToSave );\n\n\t\tconst siteItemsToSave = [];\n\t\tconst pendingSavedRecords = [];\n\t\tentitiesToSave.forEach( ( { kind, name, key, property } ) => {\n\t\t\tif ( 'root' === kind && 'site' === name ) {\n\t\t\t\tsiteItemsToSave.push( property );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tpendingSavedRecords.push(\n\t\t\t\t\tsaveEditedEntityRecord( kind, name, key )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\tif ( siteItemsToSave.length ) {\n\t\t\tpendingSavedRecords.push(\n\t\t\t\tsaveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'site',\n\t\t\t\t\tundefined,\n\t\t\t\t\tsiteItemsToSave\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tPromise.all( pendingSavedRecords )\n\t\t\t.then( ( values ) => {\n\t\t\t\tif (\n\t\t\t\t\tvalues.some( ( value ) => typeof value === 'undefined' )\n\t\t\t\t) {\n\t\t\t\t\tcreateErrorNotice( __( 'Saving failed.' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) =>\n\t\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` )\n\t\t\t);\n\t};\n\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t>\n\t\t\t<div className=\"entities-saved-states__panel-header\">\n\t\t\t\t<Button\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tdirtyEntityRecords.length -\n\t\t\t\t\t\t\tunselectedEntities.length ===\n\t\t\t\t\t\t0\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ saveCheckedEntities }\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeIcon }\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t\tlabel={ __( 'Close panel' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<strong>{ __( 'Are you ready to save?' ) }</strong>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The following changes have been made to your site, templates, and content.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tclosePanel={ dismissPanel }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"names":["TRANSLATED_SITE_PROPERTIES","title","description","site_logo","site_icon","show_on_front","page_on_front","PUBLISH_ON_SAVE_ENTITIES","kind","name","EntitiesSavedStates","close","saveButtonRef","dirtyEntityRecords","select","dirtyRecords","coreStore","__experimentalGetDirtyEntityRecords","dirtyRecordsWithoutSite","filter","record","siteEdits","getEntityRecordEdits","siteEditsAsEntities","property","push","dirtyRecordsWithSiteItems","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","createSuccessNotice","createErrorNotice","noticesStore","partitionedSavables","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","values","Array","isArray","unselectedEntities","_setUnselectedEntities","setUnselectedEntities","checked","key","elt","saveCheckedEntities","entitiesToSave","siteItemsToSave","pendingSavedRecords","forEach","some","typeToPublish","status","length","undefined","Promise","all","then","value","type","catch","error","dismissPanel","saveDialogRef","saveDialogProps","onClose","closeIcon","map","list"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { some, groupBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState, useCallback, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { close as closeIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\n\nconst TRANSLATED_SITE_PROPERTIES = {\n\ttitle: __( 'Title' ),\n\tdescription: __( 'Tagline' ),\n\tsite_logo: __( 'Logo' ),\n\tsite_icon: __( 'Icon' ),\n\tshow_on_front: __( 'Show on front' ),\n\tpage_on_front: __( 'Page on front' ),\n};\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nexport default function EntitiesSavedStates( { close } ) {\n\tconst saveButtonRef = useRef();\n\tconst { dirtyEntityRecords } = useSelect( ( select ) => {\n\t\tconst dirtyRecords = select(\n\t\t\tcoreStore\n\t\t).__experimentalGetDirtyEntityRecords();\n\n\t\t// Remove site object and decouple into its edited pieces.\n\t\tconst dirtyRecordsWithoutSite = dirtyRecords.filter(\n\t\t\t( record ) => ! ( record.kind === 'root' && record.name === 'site' )\n\t\t);\n\n\t\tconst siteEdits = select( coreStore ).getEntityRecordEdits(\n\t\t\t'root',\n\t\t\t'site'\n\t\t);\n\n\t\tconst siteEditsAsEntities = [];\n\t\tfor ( const property in siteEdits ) {\n\t\t\tsiteEditsAsEntities.push( {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t\ttitle: TRANSLATED_SITE_PROPERTIES[ property ] || property,\n\t\t\t\tproperty,\n\t\t\t} );\n\t\t}\n\t\tconst dirtyRecordsWithSiteItems = [\n\t\t\t...dirtyRecordsWithoutSite,\n\t\t\t...siteEditsAsEntities,\n\t\t];\n\n\t\treturn {\n\t\t\tdirtyEntityRecords: dirtyRecordsWithSiteItems,\n\t\t};\n\t}, [] );\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { createSuccessNotice, createErrorNotice } = useDispatch(\n\t\tnoticesStore\n\t);\n\n\t// To group entities by type.\n\tconst partitionedSavables = groupBy( dirtyEntityRecords, 'name' );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\t// Unchecked entities to be ignored by save function.\n\tconst [ unselectedEntities, _setUnselectedEntities ] = useState( [] );\n\n\tconst setUnselectedEntities = (\n\t\t{ kind, name, key, property },\n\t\tchecked\n\t) => {\n\t\tif ( checked ) {\n\t\t\t_setUnselectedEntities(\n\t\t\t\tunselectedEntities.filter(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind !== kind ||\n\t\t\t\t\t\telt.name !== name ||\n\t\t\t\t\t\telt.key !== key ||\n\t\t\t\t\t\telt.property !== property\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\t_setUnselectedEntities( [\n\t\t\t\t...unselectedEntities,\n\t\t\t\t{ kind, name, key, property },\n\t\t\t] );\n\t\t}\n\t};\n\n\tconst saveCheckedEntities = () => {\n\t\tconst entitiesToSave = dirtyEntityRecords.filter(\n\t\t\t( { kind, name, key, property } ) => {\n\t\t\t\treturn ! some(\n\t\t\t\t\tunselectedEntities,\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === kind &&\n\t\t\t\t\t\telt.name === name &&\n\t\t\t\t\t\telt.key === key &&\n\t\t\t\t\t\telt.property === property\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\n\t\tclose( entitiesToSave );\n\n\t\tconst siteItemsToSave = [];\n\t\tconst pendingSavedRecords = [];\n\t\tentitiesToSave.forEach( ( { kind, name, key, property } ) => {\n\t\t\tif ( 'root' === kind && 'site' === name ) {\n\t\t\t\tsiteItemsToSave.push( property );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tpendingSavedRecords.push(\n\t\t\t\t\tsaveEditedEntityRecord( kind, name, key )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\tif ( siteItemsToSave.length ) {\n\t\t\tpendingSavedRecords.push(\n\t\t\t\tsaveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'site',\n\t\t\t\t\tundefined,\n\t\t\t\t\tsiteItemsToSave\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tPromise.all( pendingSavedRecords )\n\t\t\t.then( ( values ) => {\n\t\t\t\tif (\n\t\t\t\t\tvalues.some( ( value ) => typeof value === 'undefined' )\n\t\t\t\t) {\n\t\t\t\t\tcreateErrorNotice( __( 'Saving failed.' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) =>\n\t\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` )\n\t\t\t);\n\t};\n\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t>\n\t\t\t<div className=\"entities-saved-states__panel-header\">\n\t\t\t\t<Button\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tdirtyEntityRecords.length -\n\t\t\t\t\t\t\tunselectedEntities.length ===\n\t\t\t\t\t\t0\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ saveCheckedEntities }\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeIcon }\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t\tlabel={ __( 'Close panel' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<strong>{ __( 'Are you ready to save?' ) }</strong>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The following changes have been made to your site, templates, and content.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tclosePanel={ dismissPanel }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"names":["some","groupBy","Button","__","useSelect","useDispatch","useState","useCallback","useRef","store","coreStore","__experimentalUseDialog","useDialog","close","closeIcon","noticesStore","EntityTypeList","TRANSLATED_SITE_PROPERTIES","title","description","site_logo","show_on_front","page_on_front","PUBLISH_ON_SAVE_ENTITIES","kind","name","EntitiesSavedStates","saveButtonRef","dirtyEntityRecords","select","dirtyRecords","__experimentalGetDirtyEntityRecords","dirtyRecordsWithoutSite","filter","record","siteEdits","getEntityRecordEdits","siteEditsAsEntities","property","push","dirtyRecordsWithSiteItems","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","createSuccessNotice","createErrorNotice","partitionedSavables","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","values","Array","isArray","unselectedEntities","_setUnselectedEntities","setUnselectedEntities","checked","key","elt","saveCheckedEntities","entitiesToSave","siteItemsToSave","pendingSavedRecords","forEach","typeToPublish","status","length","undefined","Promise","all","then","value","type","catch","error","dismissPanel","saveDialogRef","saveDialogProps","onClose","map","list"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { some, groupBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState, useCallback, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { close as closeIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\n\nconst TRANSLATED_SITE_PROPERTIES = {\n\ttitle: __( 'Title' ),\n\tdescription: __( 'Tagline' ),\n\tsite_logo: __( 'Logo' ),\n\tshow_on_front: __( 'Show on front' ),\n\tpage_on_front: __( 'Page on front' ),\n};\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nexport default function EntitiesSavedStates( { close } ) {\n\tconst saveButtonRef = useRef();\n\tconst { dirtyEntityRecords } = useSelect( ( select ) => {\n\t\tconst dirtyRecords = select(\n\t\t\tcoreStore\n\t\t).__experimentalGetDirtyEntityRecords();\n\n\t\t// Remove site object and decouple into its edited pieces.\n\t\tconst dirtyRecordsWithoutSite = dirtyRecords.filter(\n\t\t\t( record ) => ! ( record.kind === 'root' && record.name === 'site' )\n\t\t);\n\n\t\tconst siteEdits = select( coreStore ).getEntityRecordEdits(\n\t\t\t'root',\n\t\t\t'site'\n\t\t);\n\n\t\tconst siteEditsAsEntities = [];\n\t\tfor ( const property in siteEdits ) {\n\t\t\tsiteEditsAsEntities.push( {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t\ttitle: TRANSLATED_SITE_PROPERTIES[ property ] || property,\n\t\t\t\tproperty,\n\t\t\t} );\n\t\t}\n\t\tconst dirtyRecordsWithSiteItems = [\n\t\t\t...dirtyRecordsWithoutSite,\n\t\t\t...siteEditsAsEntities,\n\t\t];\n\n\t\treturn {\n\t\t\tdirtyEntityRecords: dirtyRecordsWithSiteItems,\n\t\t};\n\t}, [] );\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { createSuccessNotice, createErrorNotice } = useDispatch(\n\t\tnoticesStore\n\t);\n\n\t// To group entities by type.\n\tconst partitionedSavables = groupBy( dirtyEntityRecords, 'name' );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\t// Unchecked entities to be ignored by save function.\n\tconst [ unselectedEntities, _setUnselectedEntities ] = useState( [] );\n\n\tconst setUnselectedEntities = (\n\t\t{ kind, name, key, property },\n\t\tchecked\n\t) => {\n\t\tif ( checked ) {\n\t\t\t_setUnselectedEntities(\n\t\t\t\tunselectedEntities.filter(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind !== kind ||\n\t\t\t\t\t\telt.name !== name ||\n\t\t\t\t\t\telt.key !== key ||\n\t\t\t\t\t\telt.property !== property\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\t_setUnselectedEntities( [\n\t\t\t\t...unselectedEntities,\n\t\t\t\t{ kind, name, key, property },\n\t\t\t] );\n\t\t}\n\t};\n\n\tconst saveCheckedEntities = () => {\n\t\tconst entitiesToSave = dirtyEntityRecords.filter(\n\t\t\t( { kind, name, key, property } ) => {\n\t\t\t\treturn ! some(\n\t\t\t\t\tunselectedEntities,\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === kind &&\n\t\t\t\t\t\telt.name === name &&\n\t\t\t\t\t\telt.key === key &&\n\t\t\t\t\t\telt.property === property\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\n\t\tclose( entitiesToSave );\n\n\t\tconst siteItemsToSave = [];\n\t\tconst pendingSavedRecords = [];\n\t\tentitiesToSave.forEach( ( { kind, name, key, property } ) => {\n\t\t\tif ( 'root' === kind && 'site' === name ) {\n\t\t\t\tsiteItemsToSave.push( property );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tpendingSavedRecords.push(\n\t\t\t\t\tsaveEditedEntityRecord( kind, name, key )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\tif ( siteItemsToSave.length ) {\n\t\t\tpendingSavedRecords.push(\n\t\t\t\tsaveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'site',\n\t\t\t\t\tundefined,\n\t\t\t\t\tsiteItemsToSave\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tPromise.all( pendingSavedRecords )\n\t\t\t.then( ( values ) => {\n\t\t\t\tif (\n\t\t\t\t\tvalues.some( ( value ) => typeof value === 'undefined' )\n\t\t\t\t) {\n\t\t\t\t\tcreateErrorNotice( __( 'Saving failed.' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) =>\n\t\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` )\n\t\t\t);\n\t};\n\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t>\n\t\t\t<div className=\"entities-saved-states__panel-header\">\n\t\t\t\t<Button\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tdirtyEntityRecords.length -\n\t\t\t\t\t\t\tunselectedEntities.length ===\n\t\t\t\t\t\t0\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ saveCheckedEntities }\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeIcon }\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t\tlabel={ __( 'Close panel' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<strong>{ __( 'Are you ready to save?' ) }</strong>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The following changes have been made to your site, templates, and content.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tclosePanel={ dismissPanel }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"names":["some","groupBy","Button","__","useSelect","useDispatch","useState","useCallback","useRef","store","coreStore","__experimentalUseDialog","useDialog","close","closeIcon","noticesStore","EntityTypeList","TRANSLATED_SITE_PROPERTIES","title","description","site_logo","site_icon","show_on_front","page_on_front","PUBLISH_ON_SAVE_ENTITIES","kind","name","EntitiesSavedStates","saveButtonRef","dirtyEntityRecords","select","dirtyRecords","__experimentalGetDirtyEntityRecords","dirtyRecordsWithoutSite","filter","record","siteEdits","getEntityRecordEdits","siteEditsAsEntities","property","push","dirtyRecordsWithSiteItems","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","createSuccessNotice","createErrorNotice","partitionedSavables","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","values","Array","isArray","unselectedEntities","_setUnselectedEntities","setUnselectedEntities","checked","key","elt","saveCheckedEntities","entitiesToSave","siteItemsToSave","pendingSavedRecords","forEach","typeToPublish","status","length","undefined","Promise","all","then","value","type","catch","error","dismissPanel","saveDialogRef","saveDialogProps","onClose","map","list"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { some, groupBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState, useCallback, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { close as closeIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\n\nconst TRANSLATED_SITE_PROPERTIES = {\n\ttitle: __( 'Title' ),\n\tdescription: __( 'Tagline' ),\n\tsite_logo: __( 'Logo' ),\n\tsite_icon: __( 'Icon' ),\n\tshow_on_front: __( 'Show on front' ),\n\tpage_on_front: __( 'Page on front' ),\n};\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nexport default function EntitiesSavedStates( { close } ) {\n\tconst saveButtonRef = useRef();\n\tconst { dirtyEntityRecords } = useSelect( ( select ) => {\n\t\tconst dirtyRecords = select(\n\t\t\tcoreStore\n\t\t).__experimentalGetDirtyEntityRecords();\n\n\t\t// Remove site object and decouple into its edited pieces.\n\t\tconst dirtyRecordsWithoutSite = dirtyRecords.filter(\n\t\t\t( record ) => ! ( record.kind === 'root' && record.name === 'site' )\n\t\t);\n\n\t\tconst siteEdits = select( coreStore ).getEntityRecordEdits(\n\t\t\t'root',\n\t\t\t'site'\n\t\t);\n\n\t\tconst siteEditsAsEntities = [];\n\t\tfor ( const property in siteEdits ) {\n\t\t\tsiteEditsAsEntities.push( {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t\ttitle: TRANSLATED_SITE_PROPERTIES[ property ] || property,\n\t\t\t\tproperty,\n\t\t\t} );\n\t\t}\n\t\tconst dirtyRecordsWithSiteItems = [\n\t\t\t...dirtyRecordsWithoutSite,\n\t\t\t...siteEditsAsEntities,\n\t\t];\n\n\t\treturn {\n\t\t\tdirtyEntityRecords: dirtyRecordsWithSiteItems,\n\t\t};\n\t}, [] );\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { createSuccessNotice, createErrorNotice } = useDispatch(\n\t\tnoticesStore\n\t);\n\n\t// To group entities by type.\n\tconst partitionedSavables = groupBy( dirtyEntityRecords, 'name' );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\t// Unchecked entities to be ignored by save function.\n\tconst [ unselectedEntities, _setUnselectedEntities ] = useState( [] );\n\n\tconst setUnselectedEntities = (\n\t\t{ kind, name, key, property },\n\t\tchecked\n\t) => {\n\t\tif ( checked ) {\n\t\t\t_setUnselectedEntities(\n\t\t\t\tunselectedEntities.filter(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind !== kind ||\n\t\t\t\t\t\telt.name !== name ||\n\t\t\t\t\t\telt.key !== key ||\n\t\t\t\t\t\telt.property !== property\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\t_setUnselectedEntities( [\n\t\t\t\t...unselectedEntities,\n\t\t\t\t{ kind, name, key, property },\n\t\t\t] );\n\t\t}\n\t};\n\n\tconst saveCheckedEntities = () => {\n\t\tconst entitiesToSave = dirtyEntityRecords.filter(\n\t\t\t( { kind, name, key, property } ) => {\n\t\t\t\treturn ! some(\n\t\t\t\t\tunselectedEntities,\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === kind &&\n\t\t\t\t\t\telt.name === name &&\n\t\t\t\t\t\telt.key === key &&\n\t\t\t\t\t\telt.property === property\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\n\t\tclose( entitiesToSave );\n\n\t\tconst siteItemsToSave = [];\n\t\tconst pendingSavedRecords = [];\n\t\tentitiesToSave.forEach( ( { kind, name, key, property } ) => {\n\t\t\tif ( 'root' === kind && 'site' === name ) {\n\t\t\t\tsiteItemsToSave.push( property );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tpendingSavedRecords.push(\n\t\t\t\t\tsaveEditedEntityRecord( kind, name, key )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\tif ( siteItemsToSave.length ) {\n\t\t\tpendingSavedRecords.push(\n\t\t\t\tsaveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'site',\n\t\t\t\t\tundefined,\n\t\t\t\t\tsiteItemsToSave\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tPromise.all( pendingSavedRecords )\n\t\t\t.then( ( values ) => {\n\t\t\t\tif (\n\t\t\t\t\tvalues.some( ( value ) => typeof value === 'undefined' )\n\t\t\t\t) {\n\t\t\t\t\tcreateErrorNotice( __( 'Saving failed.' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) =>\n\t\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` )\n\t\t\t);\n\t};\n\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t>\n\t\t\t<div className=\"entities-saved-states__panel-header\">\n\t\t\t\t<Button\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tdirtyEntityRecords.length -\n\t\t\t\t\t\t\tunselectedEntities.length ===\n\t\t\t\t\t\t0\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ saveCheckedEntities }\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeIcon }\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t\tlabel={ __( 'Close panel' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<strong>{ __( 'Are you ready to save?' ) }</strong>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The following changes have been made to your site, templates, and content.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tclosePanel={ dismissPanel }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/editor",
|
|
3
|
-
"version": "12.0.
|
|
3
|
+
"version": "12.0.16",
|
|
4
4
|
"description": "Enhanced block editor for WordPress posts.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"@wordpress/api-fetch": "^5.2.6",
|
|
36
36
|
"@wordpress/autop": "^3.2.3",
|
|
37
37
|
"@wordpress/blob": "^3.2.2",
|
|
38
|
-
"@wordpress/block-editor": "^8.0.
|
|
38
|
+
"@wordpress/block-editor": "^8.0.13",
|
|
39
39
|
"@wordpress/blocks": "^11.1.5",
|
|
40
|
-
"@wordpress/components": "^19.
|
|
40
|
+
"@wordpress/components": "^19.2.0",
|
|
41
41
|
"@wordpress/compose": "^5.0.7",
|
|
42
42
|
"@wordpress/core-data": "^4.0.9",
|
|
43
43
|
"@wordpress/data": "^6.1.5",
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"@wordpress/keycodes": "^3.2.4",
|
|
55
55
|
"@wordpress/media-utils": "^3.0.5",
|
|
56
56
|
"@wordpress/notices": "^3.2.8",
|
|
57
|
-
"@wordpress/reusable-blocks": "^3.0.
|
|
57
|
+
"@wordpress/reusable-blocks": "^3.0.19",
|
|
58
58
|
"@wordpress/rich-text": "^5.0.7",
|
|
59
|
-
"@wordpress/server-side-render": "^3.0.
|
|
59
|
+
"@wordpress/server-side-render": "^3.0.17",
|
|
60
60
|
"@wordpress/url": "^3.3.1",
|
|
61
61
|
"@wordpress/wordcount": "^3.2.3",
|
|
62
62
|
"classnames": "^2.3.1",
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"publishConfig": {
|
|
69
69
|
"access": "public"
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "f70f4664ac641bd107481c5c67ee6f5556a0a381"
|
|
72
72
|
}
|