@wordpress/editor 12.0.1 → 12.0.2
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/autosave-monitor/index.js +5 -0
- package/build/components/autosave-monitor/index.js.map +1 -1
- package/build/components/editor-help/index.native.js +2 -2
- package/build/components/editor-help/index.native.js.map +1 -1
- package/build/components/entities-saved-states/entity-type-list.js +22 -13
- package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
- package/build/components/entities-saved-states/index.js +23 -4
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +154 -211
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-title/index.js +4 -2
- package/build/components/post-title/index.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +1 -1
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/components/autosave-monitor/index.js +5 -0
- package/build-module/components/autosave-monitor/index.js.map +1 -1
- package/build-module/components/editor-help/index.native.js +3 -3
- package/build-module/components/editor-help/index.native.js.map +1 -1
- package/build-module/components/entities-saved-states/entity-type-list.js +24 -13
- package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +23 -4
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +156 -214
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-title/index.js +4 -2
- package/build-module/components/post-title/index.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +1 -1
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/package.json +18 -18
- package/src/components/autosave-monitor/index.js +5 -0
- package/src/components/autosave-monitor/test/index.js +10 -4
- package/src/components/editor-help/index.native.js +116 -110
- package/src/components/entities-saved-states/entity-type-list.js +29 -10
- package/src/components/entities-saved-states/index.js +38 -8
- package/src/components/post-taxonomies/flat-term-selector.js +220 -254
- package/src/components/post-title/index.js +4 -2
- package/src/components/provider/use-block-editor-settings.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/provider/use-block-editor-settings.js"],"names":["useBlockEditorSettings","settings","hasTemplate","reusableBlocks","hasUploadPermissions","canUseUnfilteredHTML","userCanCreatePages","select","canUserUseUnfilteredHTML","editorStore","isWeb","Platform","OS","canUser","getUnstableBase","hasFinishedResolution","coreStore","siteData","hasFinishedResolvingSiteData","getEntityRecords","per_page","hasResolvedLocalSiteData","baseUrl","url","undo","saveEntityRecord","createPageEntity","options","Promise","reject","message","mediaUpload","undefined","__experimentalReusableBlocks","__experimentalFetchLinkSuggestions","search","searchOptions","__experimentalFetchRichUrlData","fetchUrlData","__experimentalCanUserUseUnfilteredHTML","__experimentalUndo","outlineMode","__experimentalCreatePageEntity","__experimentalUserCanCreatePages"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AAKA;;AACA;;AArBA;AACA;AACA;;AAGA;AACA;AACA;;AAUA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,sBAAT,CAAiCC,QAAjC,EAA2CC,WAA3C,EAAyD;AACxD,QAAM;AACLC,IAAAA,cADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA,oBAHK;AAILC,IAAAA;AAJK,MAKF,qBAAaC,MAAF,IAAc;AAC5B,UAAM;AAAEC,MAAAA;AAAF,QAA+BD,MAAM,CAAEE,YAAF,CAA3C;AACA,UAAMC,KAAK,GAAGC,kBAASC,EAAT,KAAgB,KAA9B;AACA,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA,eAAX;AAA4BC,MAAAA;AAA5B,QAAsDR,MAAM,CACjES,eADiE,CAAlE;AAIA,UAAMC,QAAQ,GAAGH,eAAe,EAAhC;AAEA,UAAMI,4BAA4B,GAAGH,qBAAqB,CACzD,iBADyD,CAA1D;AAIA,WAAO;AACNV,MAAAA,oBAAoB,EAAEG,wBAAwB,EADxC;AAENL,MAAAA,cAAc,EAAEO,KAAK,GAClBH,MAAM,CAAES,eAAF,CAAN,CAAoBG,gBAApB,CACA,UADA,EAEA,UAFA,EAGA;AAAEC,QAAAA,QAAQ,EAAE,CAAC;AAAb,OAHA,CADkB,GAMlB,EARG;AAQC;AACPhB,MAAAA,oBAAoB,EAAE,uBACrBS,OAAO,CAAE,QAAF,EAAY,OAAZ,CADc,EAErB,IAFqB,CAThB;AAaNQ,MAAAA,wBAAwB,EAAEH,4BAbpB;AAcNI,MAAAA,OAAO,EAAE,CAAAL,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEM,GAAV,KAAiB,EAdpB;AAeNjB,MAAAA,kBAAkB,EAAEO,OAAO,CAAE,QAAF,EAAY,OAAZ;AAfrB,KAAP;AAiBA,GA9BG,EA8BD,EA9BC,CALJ;AAqCA,QAAM;AAAEW,IAAAA;AAAF,MAAW,uBAAaf,YAAb,CAAjB;AAEA,QAAM;AAAEgB,IAAAA;AAAF,MAAuB,uBAAaT,eAAb,CAA7B;AAEA;AACD;AACA;AACA;AACA;AACA;AACA;;AACC,QAAMU,gBAAgB,GAAKC,OAAF,IAAe;AACvC,QAAK,CAAErB,kBAAP,EAA4B;AAC3B,aAAOsB,OAAO,CAACC,MAAR,CAAgB;AACtBC,QAAAA,OAAO,EAAE,cAAI,6CAAJ;AADa,OAAhB,CAAP;AAGA;;AACD,WAAOL,gBAAgB,CAAE,UAAF,EAAc,MAAd,EAAsBE,OAAtB,CAAvB;AACA,GAPD;;AASA,SAAO,sBACN,OAAQ,EACP,GAAG,kBAAM1B,QAAN,EAAgB,CAClB,8BADkB,EAElB,sCAFkB,EAGlB,6BAHkB,EAIlB,wBAJkB,EAKlB,
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/provider/use-block-editor-settings.js"],"names":["useBlockEditorSettings","settings","hasTemplate","reusableBlocks","hasUploadPermissions","canUseUnfilteredHTML","userCanCreatePages","select","canUserUseUnfilteredHTML","editorStore","isWeb","Platform","OS","canUser","getUnstableBase","hasFinishedResolution","coreStore","siteData","hasFinishedResolvingSiteData","getEntityRecords","per_page","hasResolvedLocalSiteData","baseUrl","url","undo","saveEntityRecord","createPageEntity","options","Promise","reject","message","mediaUpload","undefined","__experimentalReusableBlocks","__experimentalFetchLinkSuggestions","search","searchOptions","__experimentalFetchRichUrlData","fetchUrlData","__experimentalCanUserUseUnfilteredHTML","__experimentalUndo","outlineMode","__experimentalCreatePageEntity","__experimentalUserCanCreatePages"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { pick, defaultTo } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\t__experimentalFetchLinkSuggestions as fetchLinkSuggestions,\n\t__experimentalFetchUrlData as fetchUrlData,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { mediaUpload } from '../../utils';\nimport { store as editorStore } from '../../store';\n\n/**\n * React hook used to compute the block editor settings to use for the post editor.\n *\n * @param {Object} settings EditorProvider settings prop.\n * @param {boolean} hasTemplate Whether template mode is enabled.\n *\n * @return {Object} Block Editor Settings.\n */\nfunction useBlockEditorSettings( settings, hasTemplate ) {\n\tconst {\n\t\treusableBlocks,\n\t\thasUploadPermissions,\n\t\tcanUseUnfilteredHTML,\n\t\tuserCanCreatePages,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUserUseUnfilteredHTML } = select( editorStore );\n\t\tconst isWeb = Platform.OS === 'web';\n\t\tconst { canUser, getUnstableBase, hasFinishedResolution } = select(\n\t\t\tcoreStore\n\t\t);\n\n\t\tconst siteData = getUnstableBase();\n\n\t\tconst hasFinishedResolvingSiteData = hasFinishedResolution(\n\t\t\t'getUnstableBase'\n\t\t);\n\n\t\treturn {\n\t\t\tcanUseUnfilteredHTML: canUserUseUnfilteredHTML(),\n\t\t\treusableBlocks: isWeb\n\t\t\t\t? select( coreStore ).getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_block',\n\t\t\t\t\t\t{ per_page: -1 }\n\t\t\t\t )\n\t\t\t\t: [], // Reusable blocks are fetched in the native version of this hook.\n\t\t\thasUploadPermissions: defaultTo(\n\t\t\t\tcanUser( 'create', 'media' ),\n\t\t\t\ttrue\n\t\t\t),\n\t\t\thasResolvedLocalSiteData: hasFinishedResolvingSiteData,\n\t\t\tbaseUrl: siteData?.url || '',\n\t\t\tuserCanCreatePages: canUser( 'create', 'pages' ),\n\t\t};\n\t}, [] );\n\n\tconst { undo } = useDispatch( editorStore );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t/**\n\t * Creates a Post entity.\n\t * This is utilised by the Link UI to allow for on-the-fly creation of Posts/Pages.\n\t *\n\t * @param {Object} options parameters for the post being created. These mirror those used on 3rd param of saveEntityRecord.\n\t * @return {Object} the post type object that was created.\n\t */\n\tconst createPageEntity = ( options ) => {\n\t\tif ( ! userCanCreatePages ) {\n\t\t\treturn Promise.reject( {\n\t\t\t\tmessage: __( 'You do not have permission to create Pages.' ),\n\t\t\t} );\n\t\t}\n\t\treturn saveEntityRecord( 'postType', 'page', options );\n\t};\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...pick( settings, [\n\t\t\t\t'__experimentalBlockDirectory',\n\t\t\t\t'__experimentalBlockPatternCategories',\n\t\t\t\t'__experimentalBlockPatterns',\n\t\t\t\t'__experimentalFeatures',\n\t\t\t\t'__experimentalPreferredStyleVariations',\n\t\t\t\t'__experimentalSetIsInserterOpened',\n\t\t\t\t'__unstableGalleryWithImageBlocks',\n\t\t\t\t'alignWide',\n\t\t\t\t'allowedBlockTypes',\n\t\t\t\t'bodyPlaceholder',\n\t\t\t\t'codeEditingEnabled',\n\t\t\t\t'colors',\n\t\t\t\t'disableCustomColors',\n\t\t\t\t'disableCustomFontSizes',\n\t\t\t\t'disableCustomGradients',\n\t\t\t\t'enableCustomLineHeight',\n\t\t\t\t'enableCustomSpacing',\n\t\t\t\t'enableCustomUnits',\n\t\t\t\t'focusMode',\n\t\t\t\t'fontSizes',\n\t\t\t\t'gradients',\n\t\t\t\t'hasFixedToolbar',\n\t\t\t\t'hasReducedUI',\n\t\t\t\t'imageDefaultSize',\n\t\t\t\t'imageDimensions',\n\t\t\t\t'imageEditing',\n\t\t\t\t'imageSizes',\n\t\t\t\t'isRTL',\n\t\t\t\t'keepCaretInsideBlock',\n\t\t\t\t'maxWidth',\n\t\t\t\t'onUpdateDefaultBlockStyles',\n\t\t\t\t'styles',\n\t\t\t\t'template',\n\t\t\t\t'templateLock',\n\t\t\t\t'titlePlaceholder',\n\t\t\t\t'supportsLayout',\n\t\t\t\t'widgetTypesToHideFromLegacyWidgetBlock',\n\t\t\t] ),\n\t\t\tmediaUpload: hasUploadPermissions ? mediaUpload : undefined,\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\t__experimentalFetchLinkSuggestions: ( search, searchOptions ) =>\n\t\t\t\tfetchLinkSuggestions( search, searchOptions, settings ),\n\t\t\t__experimentalFetchRichUrlData: fetchUrlData,\n\t\t\t__experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,\n\t\t\t__experimentalUndo: undo,\n\t\t\toutlineMode: hasTemplate,\n\t\t\t__experimentalCreatePageEntity: createPageEntity,\n\t\t\t__experimentalUserCanCreatePages: userCanCreatePages,\n\t\t} ),\n\t\t[\n\t\t\tsettings,\n\t\t\thasUploadPermissions,\n\t\t\treusableBlocks,\n\t\t\tcanUseUnfilteredHTML,\n\t\t\tundo,\n\t\t\thasTemplate,\n\t\t\tuserCanCreatePages,\n\t\t]\n\t);\n}\n\nexport default useBlockEditorSettings;\n"]}
|
|
@@ -43,6 +43,11 @@ export class AutosaveMonitor extends Component {
|
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
if (this.props.interval !== prevProps.interval) {
|
|
47
|
+
clearTimeout(this.timerId);
|
|
48
|
+
this.setAutosaveTimer();
|
|
49
|
+
}
|
|
50
|
+
|
|
46
51
|
if (!this.props.isDirty) {
|
|
47
52
|
this.needsAutosave = false;
|
|
48
53
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/autosave-monitor/index.js"],"names":["Component","compose","withSelect","withDispatch","store","coreStore","editorStore","AutosaveMonitor","constructor","props","needsAutosave","isDirty","isAutosaveable","componentDidMount","disableIntervalChecks","setAutosaveTimer","componentDidUpdate","prevProps","editsReference","autosave","
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/autosave-monitor/index.js"],"names":["Component","compose","withSelect","withDispatch","store","coreStore","editorStore","AutosaveMonitor","constructor","props","needsAutosave","isDirty","isAutosaveable","componentDidMount","disableIntervalChecks","setAutosaveTimer","componentDidUpdate","prevProps","editsReference","autosave","interval","clearTimeout","timerId","isAutosaving","componentWillUnmount","timeout","setTimeout","autosaveTimerHandler","render","select","ownProps","getReferenceByDistinctEdits","isEditedPostDirty","isEditedPostAutosaveable","isAutosavingPost","getEditorSettings","autosaveInterval","dispatch"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * AutosaveMonitor invokes `props.autosave()` within at most `interval` seconds after an unsaved change is detected.\n *\n * The logic is straightforward: a check is performed every `props.interval` seconds. If any changes are detected, `props.autosave()` is called.\n * The time between the change and the autosave varies but is no larger than `props.interval` seconds. Refer to the code below for more details, such as\n * the specific way of detecting changes.\n *\n * There are two caveats:\n * * If `props.isAutosaveable` happens to be false at a time of checking for changes, the check is retried every second.\n * * The timer may be disabled by setting `props.disableIntervalChecks` to `true`. In that mode, any change will immediately trigger `props.autosave()`.\n */\nexport class AutosaveMonitor extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.needsAutosave = !! ( props.isDirty && props.isAutosaveable );\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( ! this.props.disableIntervalChecks ) {\n\t\t\tthis.setAutosaveTimer();\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( this.props.disableIntervalChecks ) {\n\t\t\tif ( this.props.editsReference !== prevProps.editsReference ) {\n\t\t\t\tthis.props.autosave();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.props.interval !== prevProps.interval ) {\n\t\t\tclearTimeout( this.timerId );\n\t\t\tthis.setAutosaveTimer();\n\t\t}\n\n\t\tif ( ! this.props.isDirty ) {\n\t\t\tthis.needsAutosave = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.props.isAutosaving && ! prevProps.isAutosaving ) {\n\t\t\tthis.needsAutosave = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.props.editsReference !== prevProps.editsReference ) {\n\t\t\tthis.needsAutosave = true;\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timerId );\n\t}\n\n\tsetAutosaveTimer( timeout = this.props.interval * 1000 ) {\n\t\tthis.timerId = setTimeout( () => {\n\t\t\tthis.autosaveTimerHandler();\n\t\t}, timeout );\n\t}\n\n\tautosaveTimerHandler() {\n\t\tif ( ! this.props.isAutosaveable ) {\n\t\t\tthis.setAutosaveTimer( 1000 );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.needsAutosave ) {\n\t\t\tthis.needsAutosave = false;\n\t\t\tthis.props.autosave();\n\t\t}\n\n\t\tthis.setAutosaveTimer();\n\t}\n\n\trender() {\n\t\treturn null;\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getReferenceByDistinctEdits } = select( coreStore );\n\n\t\tconst {\n\t\t\tisEditedPostDirty,\n\t\t\tisEditedPostAutosaveable,\n\t\t\tisAutosavingPost,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\n\t\tconst { interval = getEditorSettings().autosaveInterval } = ownProps;\n\n\t\treturn {\n\t\t\teditsReference: getReferenceByDistinctEdits(),\n\t\t\tisDirty: isEditedPostDirty(),\n\t\t\tisAutosaveable: isEditedPostAutosaveable(),\n\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\tinterval,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => ( {\n\t\tautosave() {\n\t\t\tconst { autosave = dispatch( editorStore ).autosave } = ownProps;\n\t\t\tautosave();\n\t\t},\n\t} ) ),\n] )( AutosaveMonitor );\n"]}
|
|
@@ -5,7 +5,7 @@ import { createElement } from "@wordpress/element";
|
|
|
5
5
|
* External dependencies
|
|
6
6
|
*/
|
|
7
7
|
import { kebabCase } from 'lodash';
|
|
8
|
-
import { Text, ScrollView, StyleSheet, View } from 'react-native';
|
|
8
|
+
import { Text, SafeAreaView, ScrollView, StyleSheet, View } from 'react-native';
|
|
9
9
|
import { TransitionPresets } from '@react-navigation/stack';
|
|
10
10
|
/**
|
|
11
11
|
* WordPress dependencies
|
|
@@ -72,7 +72,7 @@ function EditorHelpTopics({
|
|
|
72
72
|
hasNavigation: true,
|
|
73
73
|
contentStyle: styles.contentContainer,
|
|
74
74
|
testID: "editor-help-modal"
|
|
75
|
-
}, createElement(BottomSheet.NavigationContainer, {
|
|
75
|
+
}, createElement(SafeAreaView, null, createElement(BottomSheet.NavigationContainer, {
|
|
76
76
|
animate: true,
|
|
77
77
|
main: true,
|
|
78
78
|
style: styles.navigationContainer
|
|
@@ -137,7 +137,7 @@ function EditorHelpTopics({
|
|
|
137
137
|
...TransitionPresets.DefaultTransition
|
|
138
138
|
}
|
|
139
139
|
});
|
|
140
|
-
})));
|
|
140
|
+
}))));
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
export default EditorHelpTopics;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/editor-help/index.native.js"],"names":["kebabCase","Text","ScrollView","StyleSheet","View","TransitionPresets","BottomSheet","BottomSheetConsumer","PanelBody","__","helpFilled","plusCircleFilled","alignJustifyAlt","trashFilled","cogAlt","useSelect","store","editorStore","usePreferredColorSchemeStyle","requestContactCustomerSupport","requestGotoCustomerSupportOptions","styles","HelpDetailNavigationScreen","HelpTopicRow","HelpGetSupportButton","IntroToBlocks","AddBlocks","MoveBlocks","RemoveBlocks","CustomizeBlocks","HELP_TOPICS","label","icon","view","EditorHelpTopics","close","isVisible","onClose","postType","select","getEditedPostAttribute","sectionTitle","helpDetailSectionHeading","helpDetailSectionHeadingDark","title","contentContainer","navigationContainer","container","listProps","contentContainerStyle","flatten","paddingBottom","Math","max","safeAreaBottomInset","marginTop","map","labelSlug","gestureEnabled","DefaultTransition"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,QAA1B;AACA,SAASC,IAAT,EAAeC,UAAf,EAA2BC,UAA3B,EAAuCC,IAAvC,QAAmD,cAAnD;AACA,SAASC,iBAAT,QAAkC,yBAAlC;AAEA;AACA;AACA;;AACA,SACCC,WADD,EAECC,mBAFD,EAGCC,SAHD,QAIO,uBAJP;AAKA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SACCC,UADD,EAECC,gBAFD,EAGCC,eAHD,EAICC,WAJD,EAKCC,MALD,QAMO,kBANP;AAOA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,mBAArC;AACA,SAASC,4BAAT,QAA6C,oBAA7C;AACA,SACCC,6BADD,EAECC,iCAFD,QAGO,gCAHP;AAKA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,OAAOC,0BAAP,MAAuC,iCAAvC;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,SAAP,MAAsB,cAAtB;AACA,OAAOC,UAAP,MAAuB,eAAvB;AACA,OAAOC,YAAP,MAAyB,iBAAzB;AACA,OAAOC,eAAP,MAA4B,oBAA5B;AAEA,MAAMC,WAAW,GAAG,CACnB;AACCC,EAAAA,KAAK,EAAEtB,EAAE,CAAE,kBAAF,CADV;AAECuB,EAAAA,IAAI,EAAEtB,UAFP;AAGCuB,EAAAA,IAAI,EAAE,cAAC,aAAD;AAHP,CADmB,EAMnB;AACCF,EAAAA,KAAK,EAAEtB,EAAE,CAAE,YAAF,CADV;AAECuB,EAAAA,IAAI,EAAErB,gBAFP;AAGCsB,EAAAA,IAAI,EAAE,cAAC,SAAD;AAHP,CANmB,EAWnB;AAAEF,EAAAA,KAAK,EAAEtB,EAAE,CAAE,aAAF,CAAX;AAA8BuB,EAAAA,IAAI,EAAEpB,eAApC;AAAqDqB,EAAAA,IAAI,EAAE,cAAC,UAAD;AAA3D,CAXmB,EAYnB;AAAEF,EAAAA,KAAK,EAAEtB,EAAE,CAAE,eAAF,CAAX;AAAgCuB,EAAAA,IAAI,EAAEnB,WAAtC;AAAmDoB,EAAAA,IAAI,EAAE,cAAC,YAAD;AAAzD,CAZmB,EAanB;AACCF,EAAAA,KAAK,EAAEtB,EAAE,CAAE,kBAAF,CADV;AAECuB,EAAAA,IAAI,EAAElB,MAFP;AAGCmB,EAAAA,IAAI,EAAE,cAAC,eAAD;AAHP,CAbmB,CAApB;;AAoBA,SAASC,gBAAT,CAA2B;AAAEC,EAAAA,KAAF;AAASC,EAAAA,SAAT;AAAoBC,EAAAA;AAApB,CAA3B,EAA2D;AAC1D,QAAM;AAAEC,IAAAA;AAAF,MAAevB,SAAS,CAAIwB,MAAF,KAAgB;AAC/CD,IAAAA,QAAQ,EAAEC,MAAM,CAAEtB,WAAF,CAAN,CAAsBuB,sBAAtB,CAA8C,MAA9C;AADqC,GAAhB,CAAF,CAA9B;AAIA,QAAMC,YAAY,GAAGvB,4BAA4B,CAChDG,MAAM,CAACqB,wBADyC,EAEhDrB,MAAM,CAACsB,4BAFyC,CAAjD;AAKA,QAAMC,KAAK,GACVN,QAAQ,KAAK,MAAb,GACG7B,EAAE,CAAE,uBAAF,CADL,GAEGA,EAAE,CAAE,uBAAF,CAHN;AAKA,SACC,cAAC,WAAD;AACC,IAAA,SAAS,EAAG2B,SADb;AAEC,IAAA,OAAO,EAAGC,OAFX;AAGC,IAAA,UAAU,MAHX;AAIC,IAAA,aAAa,MAJd;AAKC,IAAA,YAAY,EAAGhB,MAAM,CAACwB,gBALvB;AAMC,IAAA,MAAM,EAAC;AANR,KAQC,cAAC,WAAD,CAAa,mBAAb;AACC,IAAA,OAAO,MADR;AAEC,IAAA,IAAI,MAFL;AAGC,IAAA,KAAK,EAAGxB,MAAM,CAACyB;AAHhB,KAKC,cAAC,WAAD,CAAa,gBAAb;AACC,IAAA,YAAY,MADb;AAEC,IAAA,UAAU,MAFX;AAGC,IAAA,IAAI,EAAC;AAHN,KAKC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGzB,MAAM,CAAC0B;AAArB,KACC,cAAC,WAAD,CAAa,MAAb,QACC,cAAC,WAAD,CAAa,MAAb,CAAoB,aAApB;AACC,IAAA,OAAO,EAAGZ,KADX;AAEC,IAAA,OAAO,EAAG1B,EAAE,CAAE,OAAF;AAFb,IADD,EAKC,cAAC,WAAD,CAAa,MAAb,CAAoB,OAApB,QACGmC,KADH,CALD,CADD,EAUC,cAAC,mBAAD,QACG,CAAE;AAAEI,IAAAA;AAAF,GAAF,KAAqB;AACtB,UAAMC,qBAAqB,GAAG9C,UAAU,CAAC+C,OAAX,CAC7BF,SAAS,CAACC,qBADmB,CAA9B;AAGA,WACC,cAAC,UAAD,eACMD,SADN;AAEC,MAAA,qBAAqB,EAAG,EACvB,GAAGC,qBADoB;AAEvBE,QAAAA,aAAa,EAAEC,IAAI,CAACC,GAAL,CACdL,SAAS,CAACM,mBADI,EAEdL,qBAAqB,CAACE,aAFR,CAFQ;;AAMvB;AACX;AACA;AACA;AACA;AACWI,QAAAA,SAAS,EAAE;AAXY;AAFzB,QAgBC,cAAC,SAAD,QACC,cAAC,IAAD;AAAM,MAAA,KAAK,EAAGd;AAAd,OACGhC,EAAE,CAAE,YAAF,CADL,CADD,EAKGqB,WAAW,CAAC0B,GAAZ,CACD,CAAE;AAAEzB,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAF,KAAuB;AACtB,YAAMyB,SAAS,GAAGzD,SAAS,CAC1B+B,KAD0B,CAA3B;AAGA,aACC,cAAC,YAAD;AACC,QAAA,GAAG,EAAG0B,SADP;AAEC,QAAA,KAAK,EAAG1B,KAFT;AAGC,QAAA,IAAI,EAAGC,IAHR;AAIC,QAAA,UAAU,EACTyB;AALF,QADD;AAUA,KAfA,CALH,EAuBE,cAAC,IAAD;AAAM,MAAA,KAAK,EAAGhB;AAAd,OACGhC,EAAE,CAAE,aAAF,CADL,CAvBF,EA4BE,cAAC,oBAAD;AACC,MAAA,KAAK,EAAGA,EAAE,CACT,iBADS,CADX;AAIC,MAAA,OAAO,EACNU;AALF,MA5BF,EAsCE,cAAC,oBAAD;AACC,MAAA,KAAK,EAAGV,EAAE,CACT,sBADS,CADX;AAIC,MAAA,OAAO,EACNW;AALF,MAtCF,CAhBD,CADD;AAmEA,GAxEF,CAVD,CALD,CALD,EAiGGU,WAAW,CAAC0B,GAAZ,CAAiB,CAAE;AAAEvB,IAAAA,IAAF;AAAQF,IAAAA;AAAR,GAAF,KAAuB;AACzC,UAAM0B,SAAS,GAAGzD,SAAS,CAAE+B,KAAF,CAA3B;AACA,WACC,cAAC,0BAAD;AACC,MAAA,GAAG,EAAG0B,SADP;AAEC,MAAA,IAAI,EAAGA,SAFR;AAGC,MAAA,OAAO,EAAGxB,IAHX;AAIC,MAAA,KAAK,EAAGF,KAJT;AAKC,MAAA,OAAO,EAAG;AACT2B,QAAAA,cAAc,EAAE,IADP;AAET,WAAGrD,iBAAiB,CAACsD;AAFZ;AALX,MADD;AAYA,GAdC,CAjGH,CARD,CADD;AA4HA;;AAED,eAAezB,gBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\nimport { Text, ScrollView, StyleSheet, View } from 'react-native';\nimport { TransitionPresets } from '@react-navigation/stack';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBottomSheet,\n\tBottomSheetConsumer,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\thelpFilled,\n\tplusCircleFilled,\n\talignJustifyAlt,\n\ttrashFilled,\n\tcogAlt,\n} from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport {\n\trequestContactCustomerSupport,\n\trequestGotoCustomerSupportOptions,\n} from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport HelpDetailNavigationScreen from './help-detail-navigation-screen';\nimport HelpTopicRow from './help-topic-row';\nimport HelpGetSupportButton from './help-get-support-button';\nimport IntroToBlocks from './intro-to-blocks';\nimport AddBlocks from './add-blocks';\nimport MoveBlocks from './move-blocks';\nimport RemoveBlocks from './remove-blocks';\nimport CustomizeBlocks from './customize-blocks';\n\nconst HELP_TOPICS = [\n\t{\n\t\tlabel: __( 'What is a block?' ),\n\t\ticon: helpFilled,\n\t\tview: <IntroToBlocks />,\n\t},\n\t{\n\t\tlabel: __( 'Add blocks' ),\n\t\ticon: plusCircleFilled,\n\t\tview: <AddBlocks />,\n\t},\n\t{ label: __( 'Move blocks' ), icon: alignJustifyAlt, view: <MoveBlocks /> },\n\t{ label: __( 'Remove blocks' ), icon: trashFilled, view: <RemoveBlocks /> },\n\t{\n\t\tlabel: __( 'Customize blocks' ),\n\t\ticon: cogAlt,\n\t\tview: <CustomizeBlocks />,\n\t},\n];\n\nfunction EditorHelpTopics( { close, isVisible, onClose } ) {\n\tconst { postType } = useSelect( ( select ) => ( {\n\t\tpostType: select( editorStore ).getEditedPostAttribute( 'type' ),\n\t} ) );\n\n\tconst sectionTitle = usePreferredColorSchemeStyle(\n\t\tstyles.helpDetailSectionHeading,\n\t\tstyles.helpDetailSectionHeadingDark\n\t);\n\n\tconst title =\n\t\tpostType === 'page'\n\t\t\t? __( 'How to edit your page' )\n\t\t\t: __( 'How to edit your post' );\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ isVisible }\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\thasNavigation\n\t\t\tcontentStyle={ styles.contentContainer }\n\t\t\ttestID=\"editor-help-modal\"\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer\n\t\t\t\tanimate\n\t\t\t\tmain\n\t\t\t\tstyle={ styles.navigationContainer }\n\t\t\t>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tisScrollable\n\t\t\t\t\tfullScreen\n\t\t\t\t\tname=\"help-topics\"\n\t\t\t\t>\n\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t<BottomSheet.NavBar>\n\t\t\t\t\t\t\t<BottomSheet.NavBar.DismissButton\n\t\t\t\t\t\t\t\tonPress={ close }\n\t\t\t\t\t\t\t\tiosText={ __( 'Close' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<BottomSheet.NavBar.Heading>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</BottomSheet.NavBar.Heading>\n\t\t\t\t\t\t</BottomSheet.NavBar>\n\t\t\t\t\t\t<BottomSheetConsumer>\n\t\t\t\t\t\t\t{ ( { listProps } ) => {\n\t\t\t\t\t\t\t\tconst contentContainerStyle = StyleSheet.flatten(\n\t\t\t\t\t\t\t\t\tlistProps.contentContainerStyle\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\t\t\t{ ...listProps }\n\t\t\t\t\t\t\t\t\t\tcontentContainerStyle={ {\n\t\t\t\t\t\t\t\t\t\t\t...contentContainerStyle,\n\t\t\t\t\t\t\t\t\t\t\tpaddingBottom: Math.max(\n\t\t\t\t\t\t\t\t\t\t\t\tlistProps.safeAreaBottomInset,\n\t\t\t\t\t\t\t\t\t\t\t\tcontentContainerStyle.paddingBottom\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t\t\t\t * Remove margin set via `hideHeader`. Combining a header\n\t\t\t\t\t\t\t\t\t\t\t * and navigation in this bottom sheet is at odds with the\n\t\t\t\t\t\t\t\t\t\t\t * current `BottomSheet` implementation.\n\t\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: 0,\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\t<PanelBody>\n\t\t\t\t\t\t\t\t\t\t\t<Text style={ sectionTitle }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'The basics' ) }\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t{ /* Print out help topics */ }\n\t\t\t\t\t\t\t\t\t\t\t{ HELP_TOPICS.map(\n\t\t\t\t\t\t\t\t\t\t\t\t( { label, icon } ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst labelSlug = kebabCase(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<HelpTopicRow\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ labelSlug }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tscreenName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabelSlug\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\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<Text style={ sectionTitle }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Get support' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t}\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<HelpGetSupportButton\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Contact support'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonPress={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trequestContactCustomerSupport\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\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<HelpGetSupportButton\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'More support options'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonPress={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trequestGotoCustomerSupportOptions\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t</BottomSheetConsumer>\n\t\t\t\t\t</View>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t{ /* Print out help detail screens */ }\n\t\t\t\t{ HELP_TOPICS.map( ( { view, label } ) => {\n\t\t\t\t\tconst labelSlug = kebabCase( label );\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<HelpDetailNavigationScreen\n\t\t\t\t\t\t\tkey={ labelSlug }\n\t\t\t\t\t\t\tname={ labelSlug }\n\t\t\t\t\t\t\tcontent={ view }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\toptions={ {\n\t\t\t\t\t\t\t\tgestureEnabled: true,\n\t\t\t\t\t\t\t\t...TransitionPresets.DefaultTransition,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default EditorHelpTopics;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/editor-help/index.native.js"],"names":["kebabCase","Text","SafeAreaView","ScrollView","StyleSheet","View","TransitionPresets","BottomSheet","BottomSheetConsumer","PanelBody","__","helpFilled","plusCircleFilled","alignJustifyAlt","trashFilled","cogAlt","useSelect","store","editorStore","usePreferredColorSchemeStyle","requestContactCustomerSupport","requestGotoCustomerSupportOptions","styles","HelpDetailNavigationScreen","HelpTopicRow","HelpGetSupportButton","IntroToBlocks","AddBlocks","MoveBlocks","RemoveBlocks","CustomizeBlocks","HELP_TOPICS","label","icon","view","EditorHelpTopics","close","isVisible","onClose","postType","select","getEditedPostAttribute","sectionTitle","helpDetailSectionHeading","helpDetailSectionHeadingDark","title","contentContainer","navigationContainer","container","listProps","contentContainerStyle","flatten","paddingBottom","Math","max","safeAreaBottomInset","marginTop","map","labelSlug","gestureEnabled","DefaultTransition"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\nimport { Text, SafeAreaView, ScrollView, StyleSheet, View } from 'react-native';\nimport { TransitionPresets } from '@react-navigation/stack';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBottomSheet,\n\tBottomSheetConsumer,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\thelpFilled,\n\tplusCircleFilled,\n\talignJustifyAlt,\n\ttrashFilled,\n\tcogAlt,\n} from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport {\n\trequestContactCustomerSupport,\n\trequestGotoCustomerSupportOptions,\n} from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport HelpDetailNavigationScreen from './help-detail-navigation-screen';\nimport HelpTopicRow from './help-topic-row';\nimport HelpGetSupportButton from './help-get-support-button';\nimport IntroToBlocks from './intro-to-blocks';\nimport AddBlocks from './add-blocks';\nimport MoveBlocks from './move-blocks';\nimport RemoveBlocks from './remove-blocks';\nimport CustomizeBlocks from './customize-blocks';\n\nconst HELP_TOPICS = [\n\t{\n\t\tlabel: __( 'What is a block?' ),\n\t\ticon: helpFilled,\n\t\tview: <IntroToBlocks />,\n\t},\n\t{\n\t\tlabel: __( 'Add blocks' ),\n\t\ticon: plusCircleFilled,\n\t\tview: <AddBlocks />,\n\t},\n\t{ label: __( 'Move blocks' ), icon: alignJustifyAlt, view: <MoveBlocks /> },\n\t{ label: __( 'Remove blocks' ), icon: trashFilled, view: <RemoveBlocks /> },\n\t{\n\t\tlabel: __( 'Customize blocks' ),\n\t\ticon: cogAlt,\n\t\tview: <CustomizeBlocks />,\n\t},\n];\n\nfunction EditorHelpTopics( { close, isVisible, onClose } ) {\n\tconst { postType } = useSelect( ( select ) => ( {\n\t\tpostType: select( editorStore ).getEditedPostAttribute( 'type' ),\n\t} ) );\n\n\tconst sectionTitle = usePreferredColorSchemeStyle(\n\t\tstyles.helpDetailSectionHeading,\n\t\tstyles.helpDetailSectionHeadingDark\n\t);\n\n\tconst title =\n\t\tpostType === 'page'\n\t\t\t? __( 'How to edit your page' )\n\t\t\t: __( 'How to edit your post' );\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ isVisible }\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\thasNavigation\n\t\t\tcontentStyle={ styles.contentContainer }\n\t\t\ttestID=\"editor-help-modal\"\n\t\t>\n\t\t\t<SafeAreaView>\n\t\t\t\t<BottomSheet.NavigationContainer\n\t\t\t\t\tanimate\n\t\t\t\t\tmain\n\t\t\t\t\tstyle={ styles.navigationContainer }\n\t\t\t\t>\n\t\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\t\tisScrollable\n\t\t\t\t\t\tfullScreen\n\t\t\t\t\t\tname=\"help-topics\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t\t<BottomSheet.NavBar>\n\t\t\t\t\t\t\t\t<BottomSheet.NavBar.DismissButton\n\t\t\t\t\t\t\t\t\tonPress={ close }\n\t\t\t\t\t\t\t\t\tiosText={ __( 'Close' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<BottomSheet.NavBar.Heading>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</BottomSheet.NavBar.Heading>\n\t\t\t\t\t\t\t</BottomSheet.NavBar>\n\t\t\t\t\t\t\t<BottomSheetConsumer>\n\t\t\t\t\t\t\t\t{ ( { listProps } ) => {\n\t\t\t\t\t\t\t\t\tconst contentContainerStyle = StyleSheet.flatten(\n\t\t\t\t\t\t\t\t\t\tlistProps.contentContainerStyle\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\t\t\t\t{ ...listProps }\n\t\t\t\t\t\t\t\t\t\t\tcontentContainerStyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\t...contentContainerStyle,\n\t\t\t\t\t\t\t\t\t\t\t\tpaddingBottom: Math.max(\n\t\t\t\t\t\t\t\t\t\t\t\t\tlistProps.safeAreaBottomInset,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontentContainerStyle.paddingBottom\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t\t\t\t\t * Remove margin set via `hideHeader`. Combining a header\n\t\t\t\t\t\t\t\t\t\t\t\t * and navigation in this bottom sheet is at odds with the\n\t\t\t\t\t\t\t\t\t\t\t\t * current `BottomSheet` implementation.\n\t\t\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: 0,\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<PanelBody>\n\t\t\t\t\t\t\t\t\t\t\t\t<Text style={ sectionTitle }>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'The basics' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t{ /* Print out help topics */ }\n\t\t\t\t\t\t\t\t\t\t\t\t{ HELP_TOPICS.map(\n\t\t\t\t\t\t\t\t\t\t\t\t\t( { label, icon } ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst labelSlug = kebabCase(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<HelpTopicRow\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabelSlug\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tscreenName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabelSlug\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={ sectionTitle }\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Get support' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t<HelpGetSupportButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Contact support'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonPress={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trequestContactCustomerSupport\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t<HelpGetSupportButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'More support options'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonPress={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trequestGotoCustomerSupportOptions\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t\t\t\t\t</ScrollView>\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</BottomSheetConsumer>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t\t{ /* Print out help detail screens */ }\n\t\t\t\t\t{ HELP_TOPICS.map( ( { view, label } ) => {\n\t\t\t\t\t\tconst labelSlug = kebabCase( label );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<HelpDetailNavigationScreen\n\t\t\t\t\t\t\t\tkey={ labelSlug }\n\t\t\t\t\t\t\t\tname={ labelSlug }\n\t\t\t\t\t\t\t\tcontent={ view }\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\toptions={ {\n\t\t\t\t\t\t\t\t\tgestureEnabled: true,\n\t\t\t\t\t\t\t\t\t...TransitionPresets.DefaultTransition,\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} ) }\n\t\t\t\t</BottomSheet.NavigationContainer>\n\t\t\t</SafeAreaView>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default EditorHelpTopics;\n"]}
|
|
@@ -8,19 +8,30 @@ import { some } from 'lodash';
|
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import { __, _n } from '@wordpress/i18n';
|
|
11
12
|
import { useSelect } from '@wordpress/data';
|
|
12
|
-
import { PanelBody } from '@wordpress/components';
|
|
13
|
-
import { page, layout } from '@wordpress/icons';
|
|
13
|
+
import { PanelBody, PanelRow } from '@wordpress/components';
|
|
14
14
|
import { store as coreStore } from '@wordpress/core-data';
|
|
15
15
|
/**
|
|
16
16
|
* Internal dependencies
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import EntityRecordItem from './entity-record-item';
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
|
|
21
|
+
function getEntityDescription(entity, length) {
|
|
22
|
+
switch (entity) {
|
|
23
|
+
case 'site':
|
|
24
|
+
return _n('This change will affect your whole site.', 'These changes will affect your whole site.', length);
|
|
25
|
+
|
|
26
|
+
case 'wp_template':
|
|
27
|
+
return _n('This change will affect pages and posts that use this template.', 'These changes will affect pages and posts that use these templates.', length);
|
|
28
|
+
|
|
29
|
+
case 'page':
|
|
30
|
+
case 'post':
|
|
31
|
+
return __('The following content has been modified.');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
24
35
|
export default function EntityTypeList({
|
|
25
36
|
list,
|
|
26
37
|
unselectedEntities,
|
|
@@ -28,17 +39,17 @@ export default function EntityTypeList({
|
|
|
28
39
|
closePanel
|
|
29
40
|
}) {
|
|
30
41
|
const firstRecord = list[0];
|
|
31
|
-
const entity = useSelect(select => select(coreStore).getEntity(firstRecord.kind, firstRecord.name), [firstRecord.kind, firstRecord.name]);
|
|
32
|
-
|
|
42
|
+
const entity = useSelect(select => select(coreStore).getEntity(firstRecord.kind, firstRecord.name), [firstRecord.kind, firstRecord.name]);
|
|
33
43
|
const {
|
|
34
44
|
name
|
|
35
45
|
} = firstRecord;
|
|
36
|
-
const
|
|
46
|
+
const entityLabel = name === 'wp_template_part' ? _n('Template Part', 'Template Parts', list.length) : entity.label; // Set description based on type of entity.
|
|
47
|
+
|
|
48
|
+
const description = getEntityDescription(name, list.length);
|
|
37
49
|
return createElement(PanelBody, {
|
|
38
|
-
title:
|
|
39
|
-
initialOpen: true
|
|
40
|
-
|
|
41
|
-
}, list.map(record => {
|
|
50
|
+
title: entityLabel,
|
|
51
|
+
initialOpen: true
|
|
52
|
+
}, description && createElement(PanelRow, null, description), list.map(record => {
|
|
42
53
|
return createElement(EntityRecordItem, {
|
|
43
54
|
key: record.key || record.property,
|
|
44
55
|
record: record,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/entities-saved-states/entity-type-list.js"],"names":["some","
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/entities-saved-states/entity-type-list.js"],"names":["some","__","_n","useSelect","PanelBody","PanelRow","store","coreStore","EntityRecordItem","getEntityDescription","entity","length","EntityTypeList","list","unselectedEntities","setUnselectedEntities","closePanel","firstRecord","select","getEntity","kind","name","entityLabel","label","description","map","record","key","property","elt","value"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,uBAApC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;;AAEA,SAASC,oBAAT,CAA+BC,MAA/B,EAAuCC,MAAvC,EAAgD;AAC/C,UAASD,MAAT;AACC,SAAK,MAAL;AACC,aAAOR,EAAE,CACR,0CADQ,EAER,4CAFQ,EAGRS,MAHQ,CAAT;;AAKD,SAAK,aAAL;AACC,aAAOT,EAAE,CACR,iEADQ,EAER,qEAFQ,EAGRS,MAHQ,CAAT;;AAKD,SAAK,MAAL;AACA,SAAK,MAAL;AACC,aAAOV,EAAE,CAAE,0CAAF,CAAT;AAfF;AAiBA;;AAED,eAAe,SAASW,cAAT,CAAyB;AACvCC,EAAAA,IADuC;AAEvCC,EAAAA,kBAFuC;AAGvCC,EAAAA,qBAHuC;AAIvCC,EAAAA;AAJuC,CAAzB,EAKX;AACH,QAAMC,WAAW,GAAGJ,IAAI,CAAE,CAAF,CAAxB;AACA,QAAMH,MAAM,GAAGP,SAAS,CACrBe,MAAF,IACCA,MAAM,CAAEX,SAAF,CAAN,CAAoBY,SAApB,CAA+BF,WAAW,CAACG,IAA3C,EAAiDH,WAAW,CAACI,IAA7D,CAFsB,EAGvB,CAAEJ,WAAW,CAACG,IAAd,EAAoBH,WAAW,CAACI,IAAhC,CAHuB,CAAxB;AAKA,QAAM;AAAEA,IAAAA;AAAF,MAAWJ,WAAjB;AACA,QAAMK,WAAW,GAChBD,IAAI,KAAK,kBAAT,GACGnB,EAAE,CAAE,eAAF,EAAmB,gBAAnB,EAAqCW,IAAI,CAACF,MAA1C,CADL,GAEGD,MAAM,CAACa,KAHX,CARG,CAYH;;AACA,QAAMC,WAAW,GAAGf,oBAAoB,CAAEY,IAAF,EAAQR,IAAI,CAACF,MAAb,CAAxC;AAEA,SACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGW,WAAnB;AAAiC,IAAA,WAAW,EAAG;AAA/C,KACGE,WAAW,IAAI,cAAC,QAAD,QAAYA,WAAZ,CADlB,EAEGX,IAAI,CAACY,GAAL,CAAYC,MAAF,IAAc;AACzB,WACC,cAAC,gBAAD;AACC,MAAA,GAAG,EAAGA,MAAM,CAACC,GAAP,IAAcD,MAAM,CAACE,QAD5B;AAEC,MAAA,MAAM,EAAGF,MAFV;AAGC,MAAA,OAAO,EACN,CAAE1B,IAAI,CACLc,kBADK,EAEHe,GAAF,IACCA,GAAG,CAACT,IAAJ,KAAaM,MAAM,CAACN,IAApB,IACAS,GAAG,CAACR,IAAJ,KAAaK,MAAM,CAACL,IADpB,IAEAQ,GAAG,CAACF,GAAJ,KAAYD,MAAM,CAACC,GAFnB,IAGAE,GAAG,CAACD,QAAJ,KAAiBF,MAAM,CAACE,QANpB,CAJR;AAaC,MAAA,QAAQ,EAAKE,KAAF,IACVf,qBAAqB,CAAEW,MAAF,EAAUI,KAAV,CAdvB;AAgBC,MAAA,UAAU,EAAGd;AAhBd,MADD;AAoBA,GArBC,CAFH,CADD;AA2BA","sourcesContent":["/**\n * External dependencies\n */\nimport { some } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody, PanelRow } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport EntityRecordItem from './entity-record-item';\n\nfunction getEntityDescription( entity, length ) {\n\tswitch ( entity ) {\n\t\tcase 'site':\n\t\t\treturn _n(\n\t\t\t\t'This change will affect your whole site.',\n\t\t\t\t'These changes will affect your whole site.',\n\t\t\t\tlength\n\t\t\t);\n\t\tcase 'wp_template':\n\t\t\treturn _n(\n\t\t\t\t'This change will affect pages and posts that use this template.',\n\t\t\t\t'These changes will affect pages and posts that use these templates.',\n\t\t\t\tlength\n\t\t\t);\n\t\tcase 'page':\n\t\tcase 'post':\n\t\t\treturn __( 'The following content has been modified.' );\n\t}\n}\n\nexport default function EntityTypeList( {\n\tlist,\n\tunselectedEntities,\n\tsetUnselectedEntities,\n\tclosePanel,\n} ) {\n\tconst firstRecord = list[ 0 ];\n\tconst entity = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntity( firstRecord.kind, firstRecord.name ),\n\t\t[ firstRecord.kind, firstRecord.name ]\n\t);\n\tconst { name } = firstRecord;\n\tconst entityLabel =\n\t\tname === 'wp_template_part'\n\t\t\t? _n( 'Template Part', 'Template Parts', list.length )\n\t\t\t: entity.label;\n\t// Set description based on type of entity.\n\tconst description = getEntityDescription( name, list.length );\n\n\treturn (\n\t\t<PanelBody title={ entityLabel } initialOpen={ true }>\n\t\t\t{ description && <PanelRow>{ description }</PanelRow> }\n\t\t\t{ list.map( ( record ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityRecordItem\n\t\t\t\t\t\tkey={ record.key || record.property }\n\t\t\t\t\t\trecord={ record }\n\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t! some(\n\t\t\t\t\t\t\t\tunselectedEntities,\n\t\t\t\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\t\t\t\telt.kind === record.kind &&\n\t\t\t\t\t\t\t\t\telt.name === record.name &&\n\t\t\t\t\t\t\t\t\telt.key === record.key &&\n\t\t\t\t\t\t\t\t\telt.property === record.property\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetUnselectedEntities( record, value )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclosePanel={ closePanel }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</PanelBody>\n\t);\n}\n"]}
|
|
@@ -21,13 +21,17 @@ import { close as closeIcon } from '@wordpress/icons';
|
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
import EntityTypeList from './entity-type-list';
|
|
24
|
-
const
|
|
24
|
+
const TRANSLATED_SITE_PROPERTIES = {
|
|
25
25
|
title: __('Title'),
|
|
26
26
|
description: __('Tagline'),
|
|
27
27
|
site_logo: __('Logo'),
|
|
28
28
|
show_on_front: __('Show on front'),
|
|
29
29
|
page_on_front: __('Page on front')
|
|
30
30
|
};
|
|
31
|
+
const PUBLISH_ON_SAVE_ENTITIES = [{
|
|
32
|
+
kind: 'postType',
|
|
33
|
+
name: 'wp_navigation'
|
|
34
|
+
}];
|
|
31
35
|
export default function EntitiesSavedStates({
|
|
32
36
|
close
|
|
33
37
|
}) {
|
|
@@ -46,7 +50,7 @@ export default function EntitiesSavedStates({
|
|
|
46
50
|
siteEditsAsEntities.push({
|
|
47
51
|
kind: 'root',
|
|
48
52
|
name: 'site',
|
|
49
|
-
title:
|
|
53
|
+
title: TRANSLATED_SITE_PROPERTIES[property] || property,
|
|
50
54
|
property
|
|
51
55
|
});
|
|
52
56
|
}
|
|
@@ -57,11 +61,20 @@ export default function EntitiesSavedStates({
|
|
|
57
61
|
};
|
|
58
62
|
}, []);
|
|
59
63
|
const {
|
|
64
|
+
editEntityRecord,
|
|
60
65
|
saveEditedEntityRecord,
|
|
61
66
|
__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits
|
|
62
67
|
} = useDispatch(coreStore); // To group entities by type.
|
|
63
68
|
|
|
64
|
-
const partitionedSavables =
|
|
69
|
+
const partitionedSavables = groupBy(dirtyEntityRecords, 'name'); // Sort entity groups.
|
|
70
|
+
|
|
71
|
+
const {
|
|
72
|
+
site: siteSavables,
|
|
73
|
+
wp_template: templateSavables,
|
|
74
|
+
wp_template_part: templatePartSavables,
|
|
75
|
+
...contentSavables
|
|
76
|
+
} = partitionedSavables;
|
|
77
|
+
const sortedPartitionedSavables = [siteSavables, templateSavables, templatePartSavables, ...Object.values(contentSavables)].filter(Array.isArray); // Unchecked entities to be ignored by save function.
|
|
65
78
|
|
|
66
79
|
const [unselectedEntities, _setUnselectedEntities] = useState([]);
|
|
67
80
|
|
|
@@ -103,6 +116,12 @@ export default function EntitiesSavedStates({
|
|
|
103
116
|
if ('root' === kind && 'site' === name) {
|
|
104
117
|
siteItemsToSave.push(property);
|
|
105
118
|
} else {
|
|
119
|
+
if (PUBLISH_ON_SAVE_ENTITIES.some(typeToPublish => typeToPublish.kind === kind && typeToPublish.name === name)) {
|
|
120
|
+
editEntityRecord(kind, name, key, {
|
|
121
|
+
status: 'publish'
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
106
125
|
saveEditedEntityRecord(kind, name, key);
|
|
107
126
|
}
|
|
108
127
|
});
|
|
@@ -133,7 +152,7 @@ export default function EntitiesSavedStates({
|
|
|
133
152
|
label: __('Close panel')
|
|
134
153
|
})), createElement("div", {
|
|
135
154
|
className: "entities-saved-states__text-prompt"
|
|
136
|
-
}, createElement("strong", null, __('
|
|
155
|
+
}, createElement("strong", null, __('Are you ready to save?')), createElement("p", null, __('The following changes have been made to your site, templates, and content.'))), sortedPartitionedSavables.map(list => {
|
|
137
156
|
return createElement(EntityTypeList, {
|
|
138
157
|
key: list[0].name,
|
|
139
158
|
list: list,
|
|
@@ -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","EntityTypeList","TRANSLATED_SITE_PROTPERTIES","title","description","site_logo","show_on_front","page_on_front","EntitiesSavedStates","saveButtonRef","dirtyEntityRecords","select","dirtyRecords","__experimentalGetDirtyEntityRecords","dirtyRecordsWithoutSite","filter","record","kind","name","siteEdits","getEntityRecordEdits","siteEditsAsEntities","property","push","dirtyRecordsWithSiteItems","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","partitionedSavables","Object","values","unselectedEntities","_setUnselectedEntities","setUnselectedEntities","key","checked","elt","saveCheckedEntities","entitiesToSave","siteItemsToSave","forEach","undefined","dismissPanel","saveDialogRef","saveDialogProps","onClose","length","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';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\n\nconst TRANSLATED_SITE_PROTPERTIES = {\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\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_PROTPERTIES[ 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\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\t// To group entities by type.\n\tconst partitionedSavables = Object.values(\n\t\tgroupBy( dirtyEntityRecords, 'name' )\n\t);\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\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\tsaveEditedEntityRecord( kind, name, key );\n\t\t\t}\n\t\t} );\n\t\tsaveSpecifiedEntityEdits( 'root', 'site', undefined, siteItemsToSave );\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>{ __( 'Select the changes you want to save' ) }</strong>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Some changes may affect other areas of your site.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ partitionedSavables.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","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","partitionedSavables","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","values","Array","isArray","unselectedEntities","_setUnselectedEntities","setUnselectedEntities","key","checked","elt","saveCheckedEntities","entitiesToSave","siteItemsToSave","forEach","typeToPublish","status","undefined","dismissPanel","saveDialogRef","saveDialogProps","onClose","length","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';\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\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\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\tsaveEditedEntityRecord( kind, name, key );\n\t\t\t}\n\t\t} );\n\t\tsaveSpecifiedEntityEdits( 'root', 'site', undefined, siteItemsToSave );\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"]}
|