@wordpress/edit-site 5.28.1 → 5.28.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/global-styles/font-library-modal/context.js +1 -1
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +14 -1
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js +64 -8
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js +6 -4
- package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build/components/media/index.js +3 -3
- package/build/components/media/index.js.map +1 -1
- package/build/components/sidebar/index.js +7 -2
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +1 -1
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +8 -8
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js +2 -2
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +13 -1
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +63 -8
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +6 -4
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build-module/components/media/index.js +3 -3
- package/build-module/components/media/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +7 -2
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +2 -2
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +8 -8
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-style/style-rtl.css +9 -8
- package/build-style/style.css +9 -8
- package/package.json +42 -42
- package/src/components/global-styles/font-library-modal/context.js +1 -1
- package/src/components/global-styles/font-library-modal/utils/index.js +2 -2
- package/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js +13 -1
- package/src/components/global-styles/font-library-modal/utils/preview-styles.js +72 -15
- package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +60 -5
- package/src/components/global-styles/screen-revisions/revisions-buttons.js +7 -5
- package/src/components/global-styles/screen-revisions/style.scss +11 -6
- package/src/components/media/index.js +7 -9
- package/src/components/sidebar/index.js +7 -2
- package/src/components/sidebar-dataviews/default-views.js +2 -2
- package/src/components/sidebar-edit-mode/page-panels/style.scss +0 -1
- package/src/hooks/commands/use-edit-mode-commands.js +14 -14
- package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +0 -92
- package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +0 -1
- package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +0 -84
- package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +0 -1
- package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +0 -103
|
@@ -10,6 +10,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
var _components = require("@wordpress/components");
|
|
12
12
|
var _router = require("@wordpress/router");
|
|
13
|
+
var _i18n = require("@wordpress/i18n");
|
|
13
14
|
var _sidebarNavigationScreenMain = _interopRequireDefault(require("../sidebar-navigation-screen-main"));
|
|
14
15
|
var _sidebarNavigationScreenTemplates = _interopRequireDefault(require("../sidebar-navigation-screen-templates"));
|
|
15
16
|
var _sidebarNavigationScreenTemplate = _interopRequireDefault(require("../sidebar-navigation-screen-template"));
|
|
@@ -23,7 +24,8 @@ var _sidebarNavigationScreenTemplatesBrowse = _interopRequireDefault(require("..
|
|
|
23
24
|
var _saveHub = _interopRequireDefault(require("../save-hub"));
|
|
24
25
|
var _lockUnlock = require("../../lock-unlock");
|
|
25
26
|
var _sidebarNavigationScreenPages = _interopRequireDefault(require("../sidebar-navigation-screen-pages"));
|
|
26
|
-
var
|
|
27
|
+
var _sidebarNavigationScreen = _interopRequireDefault(require("../sidebar-navigation-screen"));
|
|
28
|
+
var _sidebarDataviews = _interopRequireDefault(require("../sidebar-dataviews"));
|
|
27
29
|
var _sidebarNavigationScreenPage = _interopRequireDefault(require("../sidebar-navigation-screen-page"));
|
|
28
30
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
29
31
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -65,7 +67,10 @@ function SidebarScreens() {
|
|
|
65
67
|
path: "/page"
|
|
66
68
|
}, (0, _react.createElement)(_sidebarNavigationScreenPages.default, null)), (0, _react.createElement)(SidebarScreenWrapper, {
|
|
67
69
|
path: "/pages"
|
|
68
|
-
}, (0, _react.createElement)(
|
|
70
|
+
}, (0, _react.createElement)(_sidebarNavigationScreen.default, {
|
|
71
|
+
title: (0, _i18n.__)('Pages'),
|
|
72
|
+
content: (0, _react.createElement)(_sidebarDataviews.default, null)
|
|
73
|
+
})), (0, _react.createElement)(SidebarScreenWrapper, {
|
|
69
74
|
path: "/page/:postId"
|
|
70
75
|
}, (0, _react.createElement)(_sidebarNavigationScreenPage.default, null)), (0, _react.createElement)(SidebarScreenWrapper, {
|
|
71
76
|
path: "/:postType(wp_template)"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_components","_router","_sidebarNavigationScreenMain","_sidebarNavigationScreenTemplates","_sidebarNavigationScreenTemplate","_sidebarNavigationScreenPatterns","_sidebarNavigationScreenPattern","_useSyncPathWithUrl","_interopRequireWildcard","_sidebarNavigationScreenNavigationMenus","_sidebarNavigationScreenNavigationMenu","_sidebarNavigationScreenGlobalStyles","_sidebarNavigationScreenTemplatesBrowse","_saveHub","_lockUnlock","_sidebarNavigationScreenPages","
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_components","_router","_i18n","_sidebarNavigationScreenMain","_sidebarNavigationScreenTemplates","_sidebarNavigationScreenTemplate","_sidebarNavigationScreenPatterns","_sidebarNavigationScreenPattern","_useSyncPathWithUrl","_interopRequireWildcard","_sidebarNavigationScreenNavigationMenus","_sidebarNavigationScreenNavigationMenu","_sidebarNavigationScreenGlobalStyles","_sidebarNavigationScreenTemplatesBrowse","_saveHub","_lockUnlock","_sidebarNavigationScreenPages","_sidebarNavigationScreen","_sidebarDataviews","_sidebarNavigationScreenPage","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","useLocation","unlock","routerPrivateApis","SidebarScreenWrapper","className","props","_react","createElement","__experimentalNavigatorScreen","classNames","SidebarScreens","useSyncPathWithURL","Fragment","path","title","__","content","Sidebar","params","urlParams","initialPath","useRef","getPathFromURL","__experimentalNavigatorProvider","current","_default","exports","memo"],"sources":["@wordpress/edit-site/src/components/sidebar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useRef } from '@wordpress/element';\nimport {\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n} from '@wordpress/components';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreenMain from '../sidebar-navigation-screen-main';\nimport SidebarNavigationScreenTemplates from '../sidebar-navigation-screen-templates';\nimport SidebarNavigationScreenTemplate from '../sidebar-navigation-screen-template';\nimport SidebarNavigationScreenPatterns from '../sidebar-navigation-screen-patterns';\nimport SidebarNavigationScreenPattern from '../sidebar-navigation-screen-pattern';\nimport useSyncPathWithURL, {\n\tgetPathFromURL,\n} from '../sync-state-with-url/use-sync-path-with-url';\nimport SidebarNavigationScreenNavigationMenus from '../sidebar-navigation-screen-navigation-menus';\nimport SidebarNavigationScreenNavigationMenu from '../sidebar-navigation-screen-navigation-menu';\nimport SidebarNavigationScreenGlobalStyles from '../sidebar-navigation-screen-global-styles';\nimport SidebarNavigationScreenTemplatesBrowse from '../sidebar-navigation-screen-templates-browse';\nimport SaveHub from '../save-hub';\nimport { unlock } from '../../lock-unlock';\nimport SidebarNavigationScreenPages from '../sidebar-navigation-screen-pages';\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport DataViewsSidebarContent from '../sidebar-dataviews';\nimport SidebarNavigationScreenPage from '../sidebar-navigation-screen-page';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nfunction SidebarScreenWrapper( { className, ...props } ) {\n\treturn (\n\t\t<NavigatorScreen\n\t\t\tclassName={ classNames(\n\t\t\t\t'edit-site-sidebar__screen-wrapper',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction SidebarScreens() {\n\tuseSyncPathWithURL();\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarScreenWrapper path=\"/\">\n\t\t\t\t<SidebarNavigationScreenMain />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/navigation\">\n\t\t\t\t<SidebarNavigationScreenNavigationMenus />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/navigation/:postType/:postId\">\n\t\t\t\t<SidebarNavigationScreenNavigationMenu />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/wp_global_styles\">\n\t\t\t\t<SidebarNavigationScreenGlobalStyles />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/page\">\n\t\t\t\t<SidebarNavigationScreenPages />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/pages\">\n\t\t\t\t<SidebarNavigationScreen\n\t\t\t\t\ttitle={ __( 'Pages' ) }\n\t\t\t\t\tcontent={ <DataViewsSidebarContent /> }\n\t\t\t\t/>\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/page/:postId\">\n\t\t\t\t<SidebarNavigationScreenPage />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/:postType(wp_template)\">\n\t\t\t\t<SidebarNavigationScreenTemplates />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/patterns\">\n\t\t\t\t<SidebarNavigationScreenPatterns />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/:postType(wp_template|wp_template_part)/all\">\n\t\t\t\t<SidebarNavigationScreenTemplatesBrowse />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/:postType(wp_template_part|wp_block)/:postId\">\n\t\t\t\t<SidebarNavigationScreenPattern />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/:postType(wp_template)/:postId\">\n\t\t\t\t<SidebarNavigationScreenTemplate />\n\t\t\t</SidebarScreenWrapper>\n\t\t</>\n\t);\n}\n\nfunction Sidebar() {\n\tconst { params: urlParams } = useLocation();\n\tconst initialPath = useRef( getPathFromURL( urlParams ) );\n\n\treturn (\n\t\t<>\n\t\t\t<NavigatorProvider\n\t\t\t\tclassName=\"edit-site-sidebar__content\"\n\t\t\t\tinitialPath={ initialPath.current }\n\t\t\t>\n\t\t\t\t<SidebarScreens />\n\t\t\t</NavigatorProvider>\n\t\t\t<SaveHub />\n\t\t</>\n\t);\n}\n\nexport default memo( Sidebar );\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAIA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAKA,IAAAK,4BAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,iCAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,gCAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,gCAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,+BAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,mBAAA,GAAAC,uBAAA,CAAAX,OAAA;AAGA,IAAAY,uCAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,sCAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,oCAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,uCAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,QAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,WAAA,GAAAjB,OAAA;AACA,IAAAkB,6BAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,wBAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,iBAAA,GAAArB,sBAAA,CAAAC,OAAA;AACA,IAAAqB,4BAAA,GAAAtB,sBAAA,CAAAC,OAAA;AAA4E,SAAAsB,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAZ,wBAAAY,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AApC5E;AACA;AACA;;AAGA;AACA;AACA;;AASA;AACA;AACA;;AAoBA,MAAM;EAAEY;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAEnD,SAASC,oBAAoBA,CAAE;EAAEC,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAG;EACxD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAChD,WAAA,CAAAiD,6BAAe;IACfJ,SAAS,EAAG,IAAAK,mBAAU,EACrB,mCAAmC,EACnCL,SACD,CAAG;IAAA,GACEC;EAAK,CACV,CAAC;AAEJ;AAEA,SAASK,cAAcA,CAAA,EAAG;EACzB,IAAAC,2BAAkB,EAAC,CAAC;EAEpB,OACC,IAAAL,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAM,QAAA,QACC,IAAAN,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAAG,GAC7B,IAAAP,MAAA,CAAAC,aAAA,EAAC7C,4BAAA,CAAAuB,OAA2B,MAAE,CACT,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAAa,GACvC,IAAAP,MAAA,CAAAC,aAAA,EAACtC,uCAAA,CAAAgB,OAAsC,MAAE,CACpB,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAA+B,GACzD,IAAAP,MAAA,CAAAC,aAAA,EAACrC,sCAAA,CAAAe,OAAqC,MAAE,CACnB,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAAmB,GAC7C,IAAAP,MAAA,CAAAC,aAAA,EAACpC,oCAAA,CAAAc,OAAmC,MAAE,CACjB,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAAO,GACjC,IAAAP,MAAA,CAAAC,aAAA,EAAChC,6BAAA,CAAAU,OAA4B,MAAE,CACV,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAAQ,GAClC,IAAAP,MAAA,CAAAC,aAAA,EAAC/B,wBAAA,CAAAS,OAAuB;IACvB6B,KAAK,EAAG,IAAAC,QAAE,EAAE,OAAQ,CAAG;IACvBC,OAAO,EAAG,IAAAV,MAAA,CAAAC,aAAA,EAAC9B,iBAAA,CAAAQ,OAAuB,MAAE;EAAG,CACvC,CACoB,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAAe,GACzC,IAAAP,MAAA,CAAAC,aAAA,EAAC7B,4BAAA,CAAAO,OAA2B,MAAE,CACT,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAAyB,GACnD,IAAAP,MAAA,CAAAC,aAAA,EAAC5C,iCAAA,CAAAsB,OAAgC,MAAE,CACd,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAAW,GACrC,IAAAP,MAAA,CAAAC,aAAA,EAAC1C,gCAAA,CAAAoB,OAA+B,MAAE,CACb,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAA8C,GACxE,IAAAP,MAAA,CAAAC,aAAA,EAACnC,uCAAA,CAAAa,OAAsC,MAAE,CACpB,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAA+C,GACzE,IAAAP,MAAA,CAAAC,aAAA,EAACzC,+BAAA,CAAAmB,OAA8B,MAAE,CACZ,CAAC,EACvB,IAAAqB,MAAA,CAAAC,aAAA,EAACJ,oBAAoB;IAACU,IAAI,EAAC;EAAiC,GAC3D,IAAAP,MAAA,CAAAC,aAAA,EAAC3C,gCAAA,CAAAqB,OAA+B,MAAE,CACb,CACrB,CAAC;AAEL;AAEA,SAASgC,OAAOA,CAAA,EAAG;EAClB,MAAM;IAAEC,MAAM,EAAEC;EAAU,CAAC,GAAGnB,WAAW,CAAC,CAAC;EAC3C,MAAMoB,WAAW,GAAG,IAAAC,eAAM,EAAE,IAAAC,kCAAc,EAAEH,SAAU,CAAE,CAAC;EAEzD,OACC,IAAAb,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAM,QAAA,QACC,IAAAN,MAAA,CAAAC,aAAA,EAAChD,WAAA,CAAAgE,+BAAiB;IACjBnB,SAAS,EAAC,4BAA4B;IACtCgB,WAAW,EAAGA,WAAW,CAACI;EAAS,GAEnC,IAAAlB,MAAA,CAAAC,aAAA,EAACG,cAAc,MAAE,CACC,CAAC,EACpB,IAAAJ,MAAA,CAAAC,aAAA,EAAClC,QAAA,CAAAY,OAAO,MAAE,CACT,CAAC;AAEL;AAAC,IAAAwC,QAAA,GAAAC,OAAA,CAAAzC,OAAA,GAEc,IAAA0C,aAAI,EAAEV,OAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_icons","_constants","DEFAULT_CONFIG_PER_VIEW_TYPE","exports","LAYOUT_TABLE","primaryField","LAYOUT_GRID","mediaField","LAYOUT_LIST","DEFAULT_PAGE_BASE","type","search","filters","page","perPage","sort","field","direction","hiddenFields","layout","DEFAULT_VIEWS","title","
|
|
1
|
+
{"version":3,"names":["_i18n","require","_icons","_constants","DEFAULT_CONFIG_PER_VIEW_TYPE","exports","LAYOUT_TABLE","primaryField","LAYOUT_GRID","mediaField","LAYOUT_LIST","DEFAULT_PAGE_BASE","type","search","filters","page","perPage","sort","field","direction","hiddenFields","layout","DEFAULT_VIEWS","title","__","slug","view","operator","OPERATOR_IN","value","icon","trash"],"sources":["@wordpress/edit-site/src/components/sidebar-dataviews/default-views.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { trash } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLAYOUT_LIST,\n\tLAYOUT_TABLE,\n\tLAYOUT_GRID,\n\tOPERATOR_IN,\n} from '../../utils/constants';\n\nexport const DEFAULT_CONFIG_PER_VIEW_TYPE = {\n\t[ LAYOUT_TABLE ]: {\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'featured-image',\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tprimaryField: 'title',\n\t\tmediaField: 'featured-image',\n\t},\n};\n\nconst DEFAULT_PAGE_BASE = {\n\ttype: LAYOUT_TABLE,\n\tsearch: '',\n\tfilters: [],\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'date',\n\t\tdirection: 'desc',\n\t},\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'date', 'featured-image' ],\n\tlayout: {\n\t\t...DEFAULT_CONFIG_PER_VIEW_TYPE[ LAYOUT_TABLE ],\n\t},\n};\n\nexport const DEFAULT_VIEWS = {\n\tpage: [\n\t\t{\n\t\t\ttitle: __( 'All pages' ),\n\t\t\tslug: 'all',\n\t\t\tview: DEFAULT_PAGE_BASE,\n\t\t},\n\t\t{\n\t\t\ttitle: __( 'Drafts' ),\n\t\t\tslug: 'drafts',\n\t\t\tview: {\n\t\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\t\tfilters: [\n\t\t\t\t\t{ field: 'status', operator: OPERATOR_IN, value: 'draft' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle: __( 'Trash' ),\n\t\t\tslug: 'trash',\n\t\t\ticon: trash,\n\t\t\tview: {\n\t\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\t\tfilters: [\n\t\t\t\t\t{ field: 'status', operator: OPERATOR_IN, value: 'trash' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t],\n};\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAQO,MAAMG,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA,GAAG;EAC3C,CAAEE,uBAAY,GAAI;IACjBC,YAAY,EAAE;EACf,CAAC;EACD,CAAEC,sBAAW,GAAI;IAChBC,UAAU,EAAE,gBAAgB;IAC5BF,YAAY,EAAE;EACf,CAAC;EACD,CAAEG,sBAAW,GAAI;IAChBH,YAAY,EAAE,OAAO;IACrBE,UAAU,EAAE;EACb;AACD,CAAC;AAED,MAAME,iBAAiB,GAAG;EACzBC,IAAI,EAAEN,uBAAY;EAClBO,MAAM,EAAE,EAAE;EACVC,OAAO,EAAE,EAAE;EACXC,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE,EAAE;EACXC,IAAI,EAAE;IACLC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE;EACZ,CAAC;EACD;EACA;EACAC,YAAY,EAAE,CAAE,MAAM,EAAE,gBAAgB,CAAE;EAC1CC,MAAM,EAAE;IACP,GAAGjB,4BAA4B,CAAEE,uBAAY;EAC9C;AACD,CAAC;AAEM,MAAMgB,aAAa,GAAAjB,OAAA,CAAAiB,aAAA,GAAG;EAC5BP,IAAI,EAAE,CACL;IACCQ,KAAK,EAAE,IAAAC,QAAE,EAAE,WAAY,CAAC;IACxBC,IAAI,EAAE,KAAK;IACXC,IAAI,EAAEf;EACP,CAAC,EACD;IACCY,KAAK,EAAE,IAAAC,QAAE,EAAE,QAAS,CAAC;IACrBC,IAAI,EAAE,QAAQ;IACdC,IAAI,EAAE;MACL,GAAGf,iBAAiB;MACpBG,OAAO,EAAE,CACR;QAAEI,KAAK,EAAE,QAAQ;QAAES,QAAQ,EAAEC,sBAAW;QAAEC,KAAK,EAAE;MAAQ,CAAC;IAE5D;EACD,CAAC,EACD;IACCN,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ,CAAC;IACpBC,IAAI,EAAE,OAAO;IACbK,IAAI,EAAEC,YAAK;IACXL,IAAI,EAAE;MACL,GAAGf,iBAAiB;MACpBG,OAAO,EAAE,CACR;QAAEI,KAAK,EAAE,QAAQ;QAAES,QAAQ,EAAEC,sBAAW;QAAEC,KAAK,EAAE;MAAQ,CAAC;IAE5D;EACD,CAAC;AAEH,CAAC"}
|
|
@@ -80,8 +80,8 @@ function usePageContentFocusCommands() {
|
|
|
80
80
|
if (currentPostType !== 'wp_template') {
|
|
81
81
|
commands.push({
|
|
82
82
|
name: 'core/switch-to-template-focus',
|
|
83
|
-
/* translators: %
|
|
84
|
-
|
|
83
|
+
label: (0, _i18n.sprintf)( /* translators: %s: template title */
|
|
84
|
+
(0, _i18n.__)('Edit template: %s'), (0, _htmlEntities.decodeEntities)(template.title)),
|
|
85
85
|
icon: _icons.layout,
|
|
86
86
|
callback: ({
|
|
87
87
|
close
|
|
@@ -163,9 +163,9 @@ function useManipulateDocumentCommands() {
|
|
|
163
163
|
}
|
|
164
164
|
const commands = [];
|
|
165
165
|
if ((0, _isTemplateRevertable.default)(template) && !isEditingPage) {
|
|
166
|
-
const label = template.type === _constants.TEMPLATE_POST_TYPE ? /* translators: %
|
|
167
|
-
(0, _i18n.
|
|
168
|
-
(0, _i18n.
|
|
166
|
+
const label = template.type === _constants.TEMPLATE_POST_TYPE ? (0, _i18n.sprintf)( /* translators: %s: template title */
|
|
167
|
+
(0, _i18n.__)('Reset template: %s'), (0, _htmlEntities.decodeEntities)(template.title)) : (0, _i18n.sprintf)( /* translators: %s: template part title */
|
|
168
|
+
(0, _i18n.__)('Reset template part: %s'), (0, _htmlEntities.decodeEntities)(template.title));
|
|
169
169
|
commands.push({
|
|
170
170
|
name: 'core/reset-template',
|
|
171
171
|
label,
|
|
@@ -179,9 +179,9 @@ function useManipulateDocumentCommands() {
|
|
|
179
179
|
});
|
|
180
180
|
}
|
|
181
181
|
if ((0, _isTemplateRemovable.default)(template) && !isEditingPage) {
|
|
182
|
-
const label = template.type === _constants.TEMPLATE_POST_TYPE ? /* translators: %
|
|
183
|
-
(0, _i18n.
|
|
184
|
-
(0, _i18n.
|
|
182
|
+
const label = template.type === _constants.TEMPLATE_POST_TYPE ? (0, _i18n.sprintf)( /* translators: %s: template title */
|
|
183
|
+
(0, _i18n.__)('Delete template: %s'), (0, _htmlEntities.decodeEntities)(template.title)) : (0, _i18n.sprintf)( /* translators: %s: template part title */
|
|
184
|
+
(0, _i18n.__)('Delete template part: %s'), (0, _htmlEntities.decodeEntities)(template.title));
|
|
185
185
|
const path = template.type === _constants.TEMPLATE_POST_TYPE ? '/wp_template' : '/wp_template_part/all';
|
|
186
186
|
commands.push({
|
|
187
187
|
name: 'core/remove-template',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_i18n","_icons","_commands","_htmlEntities","_router","_preferences","_interface","_notices","_editor","_store","_useEditedEntityRecord","_interopRequireDefault","_isTemplateRemovable","_isTemplateRevertable","_keyboardShortcutHelpModal","_preferencesModal","_patternModal","_lockUnlock","_constants","_link","useHistory","unlock","routerPrivateApis","usePageContentFocusCommands","record","template","useEditedEntityRecord","isPage","canvasMode","templateId","currentPostType","useSelect","select","_isPage","getCanvasMode","editSiteStore","getCurrentPostType","getCurrentTemplateId","editorStore","onClick","editTemplate","useLink","postType","postId","setRenderingMode","useDispatch","isLoading","commands","push","name","label","sprintf","decodeEntities","title","icon","layout","callback","close","__","page","useEditorModeCommands","switchEditorMode","editorMode","getEditorMode","code","useManipulateDocumentCommands","isLoaded","removeTemplate","revertTemplate","history","isEditingPage","isTemplateRevertable","type","TEMPLATE_POST_TYPE","isRTL","rotateRight","rotateLeft","isTemplateRemovable","path","trash","useEditUICommands","openGeneralSidebar","closeGeneralSidebar","toggleDistractionFree","setIsListViewOpened","activeSidebar","showBlockBreadcrumbs","isListViewOpen","isDistractionFree","isTopToolbar","isFocusMode","get","preferencesStore","isListViewOpened","interfaceStore","getActiveComplementaryArea","openModal","toggle","createInfoNotice","noticesStore","drawerLeft","drawerRight","blockDefault","id","actions","PREFERENCES_MODAL_NAME","keyboard","KEYBOARD_SHORTCUT_HELP_MODAL_NAME","listView","usePatternCommands","pattern","edit","PATTERN_MODALS","rename","symbol","duplicate","useEditModeCommands","useCommandLoader","hook","context"],"sources":["@wordpress/edit-site/src/hooks/commands/use-edit-mode-commands.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport {\n\tedit,\n\ttrash,\n\trotateLeft,\n\trotateRight,\n\tlayout,\n\tpage,\n\tdrawerLeft,\n\tdrawerRight,\n\tblockDefault,\n\tcode,\n\tkeyboard,\n\tlistView,\n\tsymbol,\n} from '@wordpress/icons';\nimport { useCommandLoader } from '@wordpress/commands';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport useEditedEntityRecord from '../../components/use-edited-entity-record';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport { KEYBOARD_SHORTCUT_HELP_MODAL_NAME } from '../../components/keyboard-shortcut-help-modal';\nimport { PREFERENCES_MODAL_NAME } from '../../components/preferences-modal';\nimport { PATTERN_MODALS } from '../../components/pattern-modal';\nimport { unlock } from '../../lock-unlock';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport { useLink } from '../../components/routes/link';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nfunction usePageContentFocusCommands() {\n\tconst { record: template } = useEditedEntityRecord();\n\tconst { isPage, canvasMode, templateId, currentPostType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isPage: _isPage, getCanvasMode } = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t);\n\t\t\tconst { getCurrentPostType, getCurrentTemplateId } =\n\t\t\t\tselect( editorStore );\n\t\t\treturn {\n\t\t\t\tisPage: _isPage(),\n\t\t\t\tcanvasMode: getCanvasMode(),\n\t\t\t\ttemplateId: getCurrentTemplateId(),\n\t\t\t\tcurrentPostType: getCurrentPostType(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { onClick: editTemplate } = useLink( {\n\t\tpostType: 'wp_template',\n\t\tpostId: templateId,\n\t} );\n\n\tconst { setRenderingMode } = useDispatch( editorStore );\n\n\tif ( ! isPage || canvasMode !== 'edit' ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( currentPostType !== 'wp_template' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/switch-to-template-focus',\n\t\t\t/* translators: %1$s: template title */\n\t\t\tlabel: sprintf(\n\t\t\t\t'Edit template: %s',\n\t\t\t\tdecodeEntities( template.title )\n\t\t\t),\n\t\t\ticon: layout,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\teditTemplate();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t} else {\n\t\tcommands.push( {\n\t\t\tname: 'core/switch-to-page-focus',\n\t\t\tlabel: __( 'Back to page' ),\n\t\t\ticon: page,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tsetRenderingMode( 'template-locked' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn { isLoading: false, commands };\n}\n\nfunction useEditorModeCommands() {\n\tconst { switchEditorMode } = useDispatch( editSiteStore );\n\tconst { canvasMode, editorMode } = useSelect(\n\t\t( select ) => ( {\n\t\t\tcanvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t\teditorMode: select( editSiteStore ).getEditorMode(),\n\t\t} ),\n\t\t[]\n\t);\n\n\tif ( canvasMode !== 'edit' || editorMode !== 'text' ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( editorMode === 'text' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/exit-code-editor',\n\t\t\tlabel: __( 'Exit code editor' ),\n\t\t\ticon: code,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tswitchEditorMode( 'visual' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn { isLoading: false, commands };\n}\n\nfunction useManipulateDocumentCommands() {\n\tconst { isLoaded, record: template } = useEditedEntityRecord();\n\tconst { removeTemplate, revertTemplate } = useDispatch( editSiteStore );\n\tconst history = useHistory();\n\tconst isEditingPage = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editSiteStore ).isPage() &&\n\t\t\tselect( editorStore ).getCurrentPostType() !== 'wp_template',\n\t\t[]\n\t);\n\n\tif ( ! isLoaded ) {\n\t\treturn { isLoading: true, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( isTemplateRevertable( template ) && ! isEditingPage ) {\n\t\tconst label =\n\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t? /* translators: %1$s: template title */\n\t\t\t\t sprintf(\n\t\t\t\t\t\t'Reset template: %s',\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t )\n\t\t\t\t: /* translators: %1$s: template part title */\n\t\t\t\t sprintf(\n\t\t\t\t\t\t'Reset template part: %s',\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t );\n\t\tcommands.push( {\n\t\t\tname: 'core/reset-template',\n\t\t\tlabel,\n\t\t\ticon: isRTL() ? rotateRight : rotateLeft,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\trevertTemplate( template );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( isTemplateRemovable( template ) && ! isEditingPage ) {\n\t\tconst label =\n\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t? /* translators: %1$s: template title */\n\t\t\t\t sprintf(\n\t\t\t\t\t\t'Delete template: %s',\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t )\n\t\t\t\t: /* translators: %1$s: template part title */\n\t\t\t\t sprintf(\n\t\t\t\t\t\t'Delete template part: %s',\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t );\n\t\tconst path =\n\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t? '/wp_template'\n\t\t\t\t: '/wp_template_part/all';\n\t\tcommands.push( {\n\t\t\tname: 'core/remove-template',\n\t\t\tlabel,\n\t\t\ticon: trash,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tremoveTemplate( template );\n\t\t\t\t// Navigate to the template list\n\t\t\t\thistory.push( {\n\t\t\t\t\tpath,\n\t\t\t\t} );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: ! isLoaded,\n\t\tcommands,\n\t};\n}\n\nfunction useEditUICommands() {\n\tconst {\n\t\topenGeneralSidebar,\n\t\tcloseGeneralSidebar,\n\t\ttoggleDistractionFree,\n\t\tsetIsListViewOpened,\n\t\tswitchEditorMode,\n\t} = useDispatch( editSiteStore );\n\tconst {\n\t\tcanvasMode,\n\t\teditorMode,\n\t\tactiveSidebar,\n\t\tshowBlockBreadcrumbs,\n\t\tisListViewOpen,\n\t\tisDistractionFree,\n\t\tisTopToolbar,\n\t\tisFocusMode,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditorMode } = select( editSiteStore );\n\t\tconst { isListViewOpened } = select( editorStore );\n\t\treturn {\n\t\t\tcanvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t\teditorMode: getEditorMode(),\n\t\t\tactiveSidebar: select( interfaceStore ).getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\tisFocusMode: get( 'core', 'focusMode' ),\n\t\t\tisTopToolbar: get( 'core', 'fixedToolbar' ),\n\t\t};\n\t}, [] );\n\tconst { openModal } = useDispatch( interfaceStore );\n\tconst { toggle } = useDispatch( preferencesStore );\n\tconst { createInfoNotice } = useDispatch( noticesStore );\n\n\tif ( canvasMode !== 'edit' ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tcommands.push( {\n\t\tname: 'core/open-settings-sidebar',\n\t\tlabel: __( 'Toggle settings sidebar' ),\n\t\ticon: isRTL() ? drawerLeft : drawerRight,\n\t\tcallback: ( { close } ) => {\n\t\t\tclose();\n\t\t\tif ( activeSidebar === 'edit-site/template' ) {\n\t\t\t\tcloseGeneralSidebar();\n\t\t\t} else {\n\t\t\t\topenGeneralSidebar( 'edit-site/template' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/open-block-inspector',\n\t\tlabel: __( 'Toggle block inspector' ),\n\t\ticon: blockDefault,\n\t\tcallback: ( { close } ) => {\n\t\t\tclose();\n\t\t\tif ( activeSidebar === 'edit-site/block-inspector' ) {\n\t\t\t\tcloseGeneralSidebar();\n\t\t\t} else {\n\t\t\t\topenGeneralSidebar( 'edit-site/block-inspector' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-spotlight-mode',\n\t\tlabel: __( 'Toggle spotlight' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggle( 'core', 'focusMode' );\n\t\t\tclose();\n\t\t\tcreateInfoNotice(\n\t\t\t\tisFocusMode ? __( 'Spotlight off.' ) : __( 'Spotlight on.' ),\n\t\t\t\t{\n\t\t\t\t\tid: 'core/edit-site/toggle-spotlight-mode/notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\ttoggle( 'core', 'focusMode' );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-distraction-free',\n\t\tlabel: isDistractionFree\n\t\t\t? __( 'Exit Distraction Free' )\n\t\t\t: __( 'Enter Distraction Free ' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggleDistractionFree();\n\t\t\tclose();\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-top-toolbar',\n\t\tlabel: __( 'Toggle top toolbar' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggle( 'core', 'fixedToolbar' );\n\t\t\tif ( isDistractionFree ) {\n\t\t\t\ttoggleDistractionFree();\n\t\t\t}\n\t\t\tclose();\n\t\t\tcreateInfoNotice(\n\t\t\t\tisTopToolbar\n\t\t\t\t\t? __( 'Top toolbar off.' )\n\t\t\t\t\t: __( 'Top toolbar on.' ),\n\t\t\t\t{\n\t\t\t\t\tid: 'core/edit-site/toggle-top-toolbar/notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\ttoggle( 'core', 'fixedToolbar' );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t} );\n\n\tif ( editorMode === 'visual' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/toggle-code-editor',\n\t\t\tlabel: __( 'Open code editor' ),\n\t\t\ticon: code,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tswitchEditorMode( 'text' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\tcommands.push( {\n\t\tname: 'core/open-preferences',\n\t\tlabel: __( 'Editor preferences' ),\n\t\tcallback: () => {\n\t\t\topenModal( PREFERENCES_MODAL_NAME );\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/open-shortcut-help',\n\t\tlabel: __( 'Keyboard shortcuts' ),\n\t\ticon: keyboard,\n\t\tcallback: () => {\n\t\t\topenModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-breadcrumbs',\n\t\tlabel: showBlockBreadcrumbs\n\t\t\t? __( 'Hide block breadcrumbs' )\n\t\t\t: __( 'Show block breadcrumbs' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggle( 'core', 'showBlockBreadcrumbs' );\n\t\t\tclose();\n\t\t\tcreateInfoNotice(\n\t\t\t\tshowBlockBreadcrumbs\n\t\t\t\t\t? __( 'Breadcrumbs hidden.' )\n\t\t\t\t\t: __( 'Breadcrumbs visible.' ),\n\t\t\t\t{\n\t\t\t\t\tid: 'core/edit-site/toggle-breadcrumbs/notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-list-view',\n\t\tlabel: isListViewOpen\n\t\t\t? __( 'Close List View' )\n\t\t\t: __( 'Open List View' ),\n\t\ticon: listView,\n\t\tcallback: ( { close } ) => {\n\t\t\tsetIsListViewOpened( ! isListViewOpen );\n\t\t\tclose();\n\t\t\tcreateInfoNotice(\n\t\t\t\tisListViewOpen ? __( 'List View off.' ) : __( 'List View on.' ),\n\t\t\t\t{\n\t\t\t\t\tid: 'core/edit-site/toggle-list-view/notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t} );\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands,\n\t};\n}\n\nfunction usePatternCommands() {\n\tconst { isLoaded, record: pattern } = useEditedEntityRecord();\n\tconst { openModal } = useDispatch( interfaceStore );\n\n\tif ( ! isLoaded ) {\n\t\treturn { isLoading: true, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( pattern?.type === 'wp_block' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/rename-pattern',\n\t\t\tlabel: __( 'Rename pattern' ),\n\t\t\ticon: edit,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\topenModal( PATTERN_MODALS.rename );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t\tcommands.push( {\n\t\t\tname: 'core/duplicate-pattern',\n\t\t\tlabel: __( 'Duplicate pattern' ),\n\t\t\ticon: symbol,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\topenModal( PATTERN_MODALS.duplicate );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn { isLoading: false, commands };\n}\n\nexport function useEditModeCommands() {\n\tuseCommandLoader( {\n\t\tname: 'core/exit-code-editor',\n\t\thook: useEditorModeCommands,\n\t\tcontext: 'site-editor-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/page-content-focus',\n\t\thook: usePageContentFocusCommands,\n\t\tcontext: 'site-editor-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/manipulate-document',\n\t\thook: useManipulateDocumentCommands,\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/patterns',\n\t\thook: usePatternCommands,\n\t\tcontext: 'site-editor-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/edit-ui',\n\t\thook: useEditUICommands,\n\t} );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAeA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AAKA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,sBAAA,GAAAC,sBAAA,CAAAZ,OAAA;AACA,IAAAa,oBAAA,GAAAD,sBAAA,CAAAZ,OAAA;AACA,IAAAc,qBAAA,GAAAF,sBAAA,CAAAZ,OAAA;AACA,IAAAe,0BAAA,GAAAf,OAAA;AACA,IAAAgB,iBAAA,GAAAhB,OAAA;AACA,IAAAiB,aAAA,GAAAjB,OAAA;AACA,IAAAkB,WAAA,GAAAlB,OAAA;AACA,IAAAmB,UAAA,GAAAnB,OAAA;AACA,IAAAoB,KAAA,GAAApB,OAAA;AAxCA;AACA;AACA;;AA0BA;AACA;AACA;;AAYA,MAAM;EAAEqB;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAElD,SAASC,2BAA2BA,CAAA,EAAG;EACtC,MAAM;IAAEC,MAAM,EAAEC;EAAS,CAAC,GAAG,IAAAC,8BAAqB,EAAC,CAAC;EACpD,MAAM;IAAEC,MAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC;EAAgB,CAAC,GAAG,IAAAC,eAAS,EAClEC,MAAM,IAAM;IACb,MAAM;MAAEL,MAAM,EAAEM,OAAO;MAAEC;IAAc,CAAC,GAAG,IAAAb,kBAAM,EAChDW,MAAM,CAAEG,YAAc,CACvB,CAAC;IACD,MAAM;MAAEC,kBAAkB;MAAEC;IAAqB,CAAC,GACjDL,MAAM,CAAEM,aAAY,CAAC;IACtB,OAAO;MACNX,MAAM,EAAEM,OAAO,CAAC,CAAC;MACjBL,UAAU,EAAEM,aAAa,CAAC,CAAC;MAC3BL,UAAU,EAAEQ,oBAAoB,CAAC,CAAC;MAClCP,eAAe,EAAEM,kBAAkB,CAAC;IACrC,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,MAAM;IAAEG,OAAO,EAAEC;EAAa,CAAC,GAAG,IAAAC,aAAO,EAAE;IAC1CC,QAAQ,EAAE,aAAa;IACvBC,MAAM,EAAEd;EACT,CAAE,CAAC;EAEH,MAAM;IAAEe;EAAiB,CAAC,GAAG,IAAAC,iBAAW,EAAEP,aAAY,CAAC;EAEvD,IAAK,CAAEX,MAAM,IAAIC,UAAU,KAAK,MAAM,EAAG;IACxC,OAAO;MAAEkB,SAAS,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAG,CAAC;EAC1C;EAEA,MAAMA,QAAQ,GAAG,EAAE;EAEnB,IAAKjB,eAAe,KAAK,aAAa,EAAG;IACxCiB,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE,+BAA+B;MACrC;MACAC,KAAK,EAAE,IAAAC,aAAO,EACb,mBAAmB,EACnB,IAAAC,4BAAc,EAAE3B,QAAQ,CAAC4B,KAAM,CAChC,CAAC;MACDC,IAAI,EAAEC,aAAM;MACZC,QAAQ,EAAEA,CAAE;QAAEC;MAAM,CAAC,KAAM;QAC1BjB,YAAY,CAAC,CAAC;QACdiB,KAAK,CAAC,CAAC;MACR;IACD,CAAE,CAAC;EACJ,CAAC,MAAM;IACNV,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE,2BAA2B;MACjCC,KAAK,EAAE,IAAAQ,QAAE,EAAE,cAAe,CAAC;MAC3BJ,IAAI,EAAEK,WAAI;MACVH,QAAQ,EAAEA,CAAE;QAAEC;MAAM,CAAC,KAAM;QAC1Bb,gBAAgB,CAAE,iBAAkB,CAAC;QACrCa,KAAK,CAAC,CAAC;MACR;IACD,CAAE,CAAC;EACJ;EAEA,OAAO;IAAEX,SAAS,EAAE,KAAK;IAAEC;EAAS,CAAC;AACtC;AAEA,SAASa,qBAAqBA,CAAA,EAAG;EAChC,MAAM;IAAEC;EAAiB,CAAC,GAAG,IAAAhB,iBAAW,EAAEV,YAAc,CAAC;EACzD,MAAM;IAAEP,UAAU;IAAEkC;EAAW,CAAC,GAAG,IAAA/B,eAAS,EACzCC,MAAM,KAAQ;IACfJ,UAAU,EAAE,IAAAP,kBAAM,EAAEW,MAAM,CAAEG,YAAc,CAAE,CAAC,CAACD,aAAa,CAAC,CAAC;IAC7D4B,UAAU,EAAE9B,MAAM,CAAEG,YAAc,CAAC,CAAC4B,aAAa,CAAC;EACnD,CAAC,CAAE,EACH,EACD,CAAC;EAED,IAAKnC,UAAU,KAAK,MAAM,IAAIkC,UAAU,KAAK,MAAM,EAAG;IACrD,OAAO;MAAEhB,SAAS,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAG,CAAC;EAC1C;EAEA,MAAMA,QAAQ,GAAG,EAAE;EAEnB,IAAKe,UAAU,KAAK,MAAM,EAAG;IAC5Bf,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE,uBAAuB;MAC7BC,KAAK,EAAE,IAAAQ,QAAE,EAAE,kBAAmB,CAAC;MAC/BJ,IAAI,EAAEU,WAAI;MACVR,QAAQ,EAAEA,CAAE;QAAEC;MAAM,CAAC,KAAM;QAC1BI,gBAAgB,CAAE,QAAS,CAAC;QAC5BJ,KAAK,CAAC,CAAC;MACR;IACD,CAAE,CAAC;EACJ;EAEA,OAAO;IAAEX,SAAS,EAAE,KAAK;IAAEC;EAAS,CAAC;AACtC;AAEA,SAASkB,6BAA6BA,CAAA,EAAG;EACxC,MAAM;IAAEC,QAAQ;IAAE1C,MAAM,EAAEC;EAAS,CAAC,GAAG,IAAAC,8BAAqB,EAAC,CAAC;EAC9D,MAAM;IAAEyC,cAAc;IAAEC;EAAe,CAAC,GAAG,IAAAvB,iBAAW,EAAEV,YAAc,CAAC;EACvE,MAAMkC,OAAO,GAAGjD,UAAU,CAAC,CAAC;EAC5B,MAAMkD,aAAa,GAAG,IAAAvC,eAAS,EAC5BC,MAAM,IACPA,MAAM,CAAEG,YAAc,CAAC,CAACR,MAAM,CAAC,CAAC,IAChCK,MAAM,CAAEM,aAAY,CAAC,CAACF,kBAAkB,CAAC,CAAC,KAAK,aAAa,EAC7D,EACD,CAAC;EAED,IAAK,CAAE8B,QAAQ,EAAG;IACjB,OAAO;MAAEpB,SAAS,EAAE,IAAI;MAAEC,QAAQ,EAAE;IAAG,CAAC;EACzC;EAEA,MAAMA,QAAQ,GAAG,EAAE;EAEnB,IAAK,IAAAwB,6BAAoB,EAAE9C,QAAS,CAAC,IAAI,CAAE6C,aAAa,EAAG;IAC1D,MAAMpB,KAAK,GACVzB,QAAQ,CAAC+C,IAAI,KAAKC,6BAAkB,GACjC;IACA,IAAAtB,aAAO,EACP,oBAAoB,EACpB,IAAAC,4BAAc,EAAE3B,QAAQ,CAAC4B,KAAM,CAC/B,CAAC,GACD;IACA,IAAAF,aAAO,EACP,yBAAyB,EACzB,IAAAC,4BAAc,EAAE3B,QAAQ,CAAC4B,KAAM,CAC/B,CAAC;IACLN,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE,qBAAqB;MAC3BC,KAAK;MACLI,IAAI,EAAE,IAAAoB,WAAK,EAAC,CAAC,GAAGC,kBAAW,GAAGC,iBAAU;MACxCpB,QAAQ,EAAEA,CAAE;QAAEC;MAAM,CAAC,KAAM;QAC1BW,cAAc,CAAE3C,QAAS,CAAC;QAC1BgC,KAAK,CAAC,CAAC;MACR;IACD,CAAE,CAAC;EACJ;EAEA,IAAK,IAAAoB,4BAAmB,EAAEpD,QAAS,CAAC,IAAI,CAAE6C,aAAa,EAAG;IACzD,MAAMpB,KAAK,GACVzB,QAAQ,CAAC+C,IAAI,KAAKC,6BAAkB,GACjC;IACA,IAAAtB,aAAO,EACP,qBAAqB,EACrB,IAAAC,4BAAc,EAAE3B,QAAQ,CAAC4B,KAAM,CAC/B,CAAC,GACD;IACA,IAAAF,aAAO,EACP,0BAA0B,EAC1B,IAAAC,4BAAc,EAAE3B,QAAQ,CAAC4B,KAAM,CAC/B,CAAC;IACL,MAAMyB,IAAI,GACTrD,QAAQ,CAAC+C,IAAI,KAAKC,6BAAkB,GACjC,cAAc,GACd,uBAAuB;IAC3B1B,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE,sBAAsB;MAC5BC,KAAK;MACLI,IAAI,EAAEyB,YAAK;MACXvB,QAAQ,EAAEA,CAAE;QAAEC;MAAM,CAAC,KAAM;QAC1BU,cAAc,CAAE1C,QAAS,CAAC;QAC1B;QACA4C,OAAO,CAACrB,IAAI,CAAE;UACb8B;QACD,CAAE,CAAC;QACHrB,KAAK,CAAC,CAAC;MACR;IACD,CAAE,CAAC;EACJ;EAEA,OAAO;IACNX,SAAS,EAAE,CAAEoB,QAAQ;IACrBnB;EACD,CAAC;AACF;AAEA,SAASiC,iBAAiBA,CAAA,EAAG;EAC5B,MAAM;IACLC,kBAAkB;IAClBC,mBAAmB;IACnBC,qBAAqB;IACrBC,mBAAmB;IACnBvB;EACD,CAAC,GAAG,IAAAhB,iBAAW,EAAEV,YAAc,CAAC;EAChC,MAAM;IACLP,UAAU;IACVkC,UAAU;IACVuB,aAAa;IACbC,oBAAoB;IACpBC,cAAc;IACdC,iBAAiB;IACjBC,YAAY;IACZC;EACD,CAAC,GAAG,IAAA3D,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MAAE2D;IAAI,CAAC,GAAG3D,MAAM,CAAE4D,kBAAiB,CAAC;IAC1C,MAAM;MAAE7B;IAAc,CAAC,GAAG/B,MAAM,CAAEG,YAAc,CAAC;IACjD,MAAM;MAAE0D;IAAiB,CAAC,GAAG7D,MAAM,CAAEM,aAAY,CAAC;IAClD,OAAO;MACNV,UAAU,EAAE,IAAAP,kBAAM,EAAEW,MAAM,CAAEG,YAAc,CAAE,CAAC,CAACD,aAAa,CAAC,CAAC;MAC7D4B,UAAU,EAAEC,aAAa,CAAC,CAAC;MAC3BsB,aAAa,EAAErD,MAAM,CAAE8D,gBAAe,CAAC,CAACC,0BAA0B,CACjE5D,YAAa,CAACc,IACf,CAAC;MACDqC,oBAAoB,EAAEK,GAAG,CAAE,MAAM,EAAE,sBAAuB,CAAC;MAC3DJ,cAAc,EAAEM,gBAAgB,CAAC,CAAC;MAClCL,iBAAiB,EAAEG,GAAG,CAAE,MAAM,EAAE,iBAAkB,CAAC;MACnDD,WAAW,EAAEC,GAAG,CAAE,MAAM,EAAE,WAAY,CAAC;MACvCF,YAAY,EAAEE,GAAG,CAAE,MAAM,EAAE,cAAe;IAC3C,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEK;EAAU,CAAC,GAAG,IAAAnD,iBAAW,EAAEiD,gBAAe,CAAC;EACnD,MAAM;IAAEG;EAAO,CAAC,GAAG,IAAApD,iBAAW,EAAE+C,kBAAiB,CAAC;EAClD,MAAM;IAAEM;EAAiB,CAAC,GAAG,IAAArD,iBAAW,EAAEsD,cAAa,CAAC;EAExD,IAAKvE,UAAU,KAAK,MAAM,EAAG;IAC5B,OAAO;MAAEkB,SAAS,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAG,CAAC;EAC1C;EAEA,MAAMA,QAAQ,GAAG,EAAE;EAEnBA,QAAQ,CAACC,IAAI,CAAE;IACdC,IAAI,EAAE,4BAA4B;IAClCC,KAAK,EAAE,IAAAQ,QAAE,EAAE,yBAA0B,CAAC;IACtCJ,IAAI,EAAE,IAAAoB,WAAK,EAAC,CAAC,GAAG0B,iBAAU,GAAGC,kBAAW;IACxC7C,QAAQ,EAAEA,CAAE;MAAEC;IAAM,CAAC,KAAM;MAC1BA,KAAK,CAAC,CAAC;MACP,IAAK4B,aAAa,KAAK,oBAAoB,EAAG;QAC7CH,mBAAmB,CAAC,CAAC;MACtB,CAAC,MAAM;QACND,kBAAkB,CAAE,oBAAqB,CAAC;MAC3C;IACD;EACD,CAAE,CAAC;EAEHlC,QAAQ,CAACC,IAAI,CAAE;IACdC,IAAI,EAAE,2BAA2B;IACjCC,KAAK,EAAE,IAAAQ,QAAE,EAAE,wBAAyB,CAAC;IACrCJ,IAAI,EAAEgD,mBAAY;IAClB9C,QAAQ,EAAEA,CAAE;MAAEC;IAAM,CAAC,KAAM;MAC1BA,KAAK,CAAC,CAAC;MACP,IAAK4B,aAAa,KAAK,2BAA2B,EAAG;QACpDH,mBAAmB,CAAC,CAAC;MACtB,CAAC,MAAM;QACND,kBAAkB,CAAE,2BAA4B,CAAC;MAClD;IACD;EACD,CAAE,CAAC;EAEHlC,QAAQ,CAACC,IAAI,CAAE;IACdC,IAAI,EAAE,4BAA4B;IAClCC,KAAK,EAAE,IAAAQ,QAAE,EAAE,kBAAmB,CAAC;IAC/BF,QAAQ,EAAEA,CAAE;MAAEC;IAAM,CAAC,KAAM;MAC1BwC,MAAM,CAAE,MAAM,EAAE,WAAY,CAAC;MAC7BxC,KAAK,CAAC,CAAC;MACPyC,gBAAgB,CACfR,WAAW,GAAG,IAAAhC,QAAE,EAAE,gBAAiB,CAAC,GAAG,IAAAA,QAAE,EAAE,eAAgB,CAAC,EAC5D;QACC6C,EAAE,EAAE,6CAA6C;QACjD/B,IAAI,EAAE,UAAU;QAChBgC,OAAO,EAAE,CACR;UACCtD,KAAK,EAAE,IAAAQ,QAAE,EAAE,MAAO,CAAC;UACnBnB,OAAO,EAAEA,CAAA,KAAM;YACd0D,MAAM,CAAE,MAAM,EAAE,WAAY,CAAC;UAC9B;QACD,CAAC;MAEH,CACD,CAAC;IACF;EACD,CAAE,CAAC;EAEHlD,QAAQ,CAACC,IAAI,CAAE;IACdC,IAAI,EAAE,8BAA8B;IACpCC,KAAK,EAAEsC,iBAAiB,GACrB,IAAA9B,QAAE,EAAE,uBAAwB,CAAC,GAC7B,IAAAA,QAAE,EAAE,yBAA0B,CAAC;IAClCF,QAAQ,EAAEA,CAAE;MAAEC;IAAM,CAAC,KAAM;MAC1B0B,qBAAqB,CAAC,CAAC;MACvB1B,KAAK,CAAC,CAAC;IACR;EACD,CAAE,CAAC;EAEHV,QAAQ,CAACC,IAAI,CAAE;IACdC,IAAI,EAAE,yBAAyB;IAC/BC,KAAK,EAAE,IAAAQ,QAAE,EAAE,oBAAqB,CAAC;IACjCF,QAAQ,EAAEA,CAAE;MAAEC;IAAM,CAAC,KAAM;MAC1BwC,MAAM,CAAE,MAAM,EAAE,cAAe,CAAC;MAChC,IAAKT,iBAAiB,EAAG;QACxBL,qBAAqB,CAAC,CAAC;MACxB;MACA1B,KAAK,CAAC,CAAC;MACPyC,gBAAgB,CACfT,YAAY,GACT,IAAA/B,QAAE,EAAE,kBAAmB,CAAC,GACxB,IAAAA,QAAE,EAAE,iBAAkB,CAAC,EAC1B;QACC6C,EAAE,EAAE,0CAA0C;QAC9C/B,IAAI,EAAE,UAAU;QAChBgC,OAAO,EAAE,CACR;UACCtD,KAAK,EAAE,IAAAQ,QAAE,EAAE,MAAO,CAAC;UACnBnB,OAAO,EAAEA,CAAA,KAAM;YACd0D,MAAM,CAAE,MAAM,EAAE,cAAe,CAAC;UACjC;QACD,CAAC;MAEH,CACD,CAAC;IACF;EACD,CAAE,CAAC;EAEH,IAAKnC,UAAU,KAAK,QAAQ,EAAG;IAC9Bf,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE,yBAAyB;MAC/BC,KAAK,EAAE,IAAAQ,QAAE,EAAE,kBAAmB,CAAC;MAC/BJ,IAAI,EAAEU,WAAI;MACVR,QAAQ,EAAEA,CAAE;QAAEC;MAAM,CAAC,KAAM;QAC1BI,gBAAgB,CAAE,MAAO,CAAC;QAC1BJ,KAAK,CAAC,CAAC;MACR;IACD,CAAE,CAAC;EACJ;EAEAV,QAAQ,CAACC,IAAI,CAAE;IACdC,IAAI,EAAE,uBAAuB;IAC7BC,KAAK,EAAE,IAAAQ,QAAE,EAAE,oBAAqB,CAAC;IACjCF,QAAQ,EAAEA,CAAA,KAAM;MACfwC,SAAS,CAAES,wCAAuB,CAAC;IACpC;EACD,CAAE,CAAC;EAEH1D,QAAQ,CAACC,IAAI,CAAE;IACdC,IAAI,EAAE,yBAAyB;IAC/BC,KAAK,EAAE,IAAAQ,QAAE,EAAE,oBAAqB,CAAC;IACjCJ,IAAI,EAAEoD,eAAQ;IACdlD,QAAQ,EAAEA,CAAA,KAAM;MACfwC,SAAS,CAAEW,4DAAkC,CAAC;IAC/C;EACD,CAAE,CAAC;EAEH5D,QAAQ,CAACC,IAAI,CAAE;IACdC,IAAI,EAAE,yBAAyB;IAC/BC,KAAK,EAAEoC,oBAAoB,GACxB,IAAA5B,QAAE,EAAE,wBAAyB,CAAC,GAC9B,IAAAA,QAAE,EAAE,wBAAyB,CAAC;IACjCF,QAAQ,EAAEA,CAAE;MAAEC;IAAM,CAAC,KAAM;MAC1BwC,MAAM,CAAE,MAAM,EAAE,sBAAuB,CAAC;MACxCxC,KAAK,CAAC,CAAC;MACPyC,gBAAgB,CACfZ,oBAAoB,GACjB,IAAA5B,QAAE,EAAE,qBAAsB,CAAC,GAC3B,IAAAA,QAAE,EAAE,sBAAuB,CAAC,EAC/B;QACC6C,EAAE,EAAE,0CAA0C;QAC9C/B,IAAI,EAAE;MACP,CACD,CAAC;IACF;EACD,CAAE,CAAC;EAEHzB,QAAQ,CAACC,IAAI,CAAE;IACdC,IAAI,EAAE,uBAAuB;IAC7BC,KAAK,EAAEqC,cAAc,GAClB,IAAA7B,QAAE,EAAE,iBAAkB,CAAC,GACvB,IAAAA,QAAE,EAAE,gBAAiB,CAAC;IACzBJ,IAAI,EAAEsD,eAAQ;IACdpD,QAAQ,EAAEA,CAAE;MAAEC;IAAM,CAAC,KAAM;MAC1B2B,mBAAmB,CAAE,CAAEG,cAAe,CAAC;MACvC9B,KAAK,CAAC,CAAC;MACPyC,gBAAgB,CACfX,cAAc,GAAG,IAAA7B,QAAE,EAAE,gBAAiB,CAAC,GAAG,IAAAA,QAAE,EAAE,eAAgB,CAAC,EAC/D;QACC6C,EAAE,EAAE,wCAAwC;QAC5C/B,IAAI,EAAE;MACP,CACD,CAAC;IACF;EACD,CAAE,CAAC;EAEH,OAAO;IACN1B,SAAS,EAAE,KAAK;IAChBC;EACD,CAAC;AACF;AAEA,SAAS8D,kBAAkBA,CAAA,EAAG;EAC7B,MAAM;IAAE3C,QAAQ;IAAE1C,MAAM,EAAEsF;EAAQ,CAAC,GAAG,IAAApF,8BAAqB,EAAC,CAAC;EAC7D,MAAM;IAAEsE;EAAU,CAAC,GAAG,IAAAnD,iBAAW,EAAEiD,gBAAe,CAAC;EAEnD,IAAK,CAAE5B,QAAQ,EAAG;IACjB,OAAO;MAAEpB,SAAS,EAAE,IAAI;MAAEC,QAAQ,EAAE;IAAG,CAAC;EACzC;EAEA,MAAMA,QAAQ,GAAG,EAAE;EAEnB,IAAK+D,OAAO,EAAEtC,IAAI,KAAK,UAAU,EAAG;IACnCzB,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE,qBAAqB;MAC3BC,KAAK,EAAE,IAAAQ,QAAE,EAAE,gBAAiB,CAAC;MAC7BJ,IAAI,EAAEyD,WAAI;MACVvD,QAAQ,EAAEA,CAAE;QAAEC;MAAM,CAAC,KAAM;QAC1BuC,SAAS,CAAEgB,4BAAc,CAACC,MAAO,CAAC;QAClCxD,KAAK,CAAC,CAAC;MACR;IACD,CAAE,CAAC;IACHV,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE,wBAAwB;MAC9BC,KAAK,EAAE,IAAAQ,QAAE,EAAE,mBAAoB,CAAC;MAChCJ,IAAI,EAAE4D,aAAM;MACZ1D,QAAQ,EAAEA,CAAE;QAAEC;MAAM,CAAC,KAAM;QAC1BuC,SAAS,CAAEgB,4BAAc,CAACG,SAAU,CAAC;QACrC1D,KAAK,CAAC,CAAC;MACR;IACD,CAAE,CAAC;EACJ;EAEA,OAAO;IAAEX,SAAS,EAAE,KAAK;IAAEC;EAAS,CAAC;AACtC;AAEO,SAASqE,mBAAmBA,CAAA,EAAG;EACrC,IAAAC,0BAAgB,EAAE;IACjBpE,IAAI,EAAE,uBAAuB;IAC7BqE,IAAI,EAAE1D,qBAAqB;IAC3B2D,OAAO,EAAE;EACV,CAAE,CAAC;EAEH,IAAAF,0BAAgB,EAAE;IACjBpE,IAAI,EAAE,mCAAmC;IACzCqE,IAAI,EAAE/F,2BAA2B;IACjCgG,OAAO,EAAE;EACV,CAAE,CAAC;EAEH,IAAAF,0BAAgB,EAAE;IACjBpE,IAAI,EAAE,oCAAoC;IAC1CqE,IAAI,EAAErD;EACP,CAAE,CAAC;EAEH,IAAAoD,0BAAgB,EAAE;IACjBpE,IAAI,EAAE,yBAAyB;IAC/BqE,IAAI,EAAET,kBAAkB;IACxBU,OAAO,EAAE;EACV,CAAE,CAAC;EAEH,IAAAF,0BAAgB,EAAE;IACjBpE,IAAI,EAAE,wBAAwB;IAC9BqE,IAAI,EAAEtC;EACP,CAAE,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"names":["_data","require","_i18n","_icons","_commands","_htmlEntities","_router","_preferences","_interface","_notices","_editor","_store","_useEditedEntityRecord","_interopRequireDefault","_isTemplateRemovable","_isTemplateRevertable","_keyboardShortcutHelpModal","_preferencesModal","_patternModal","_lockUnlock","_constants","_link","useHistory","unlock","routerPrivateApis","usePageContentFocusCommands","record","template","useEditedEntityRecord","isPage","canvasMode","templateId","currentPostType","useSelect","select","_isPage","getCanvasMode","editSiteStore","getCurrentPostType","getCurrentTemplateId","editorStore","onClick","editTemplate","useLink","postType","postId","setRenderingMode","useDispatch","isLoading","commands","push","name","label","sprintf","__","decodeEntities","title","icon","layout","callback","close","page","useEditorModeCommands","switchEditorMode","editorMode","getEditorMode","code","useManipulateDocumentCommands","isLoaded","removeTemplate","revertTemplate","history","isEditingPage","isTemplateRevertable","type","TEMPLATE_POST_TYPE","isRTL","rotateRight","rotateLeft","isTemplateRemovable","path","trash","useEditUICommands","openGeneralSidebar","closeGeneralSidebar","toggleDistractionFree","setIsListViewOpened","activeSidebar","showBlockBreadcrumbs","isListViewOpen","isDistractionFree","isTopToolbar","isFocusMode","get","preferencesStore","isListViewOpened","interfaceStore","getActiveComplementaryArea","openModal","toggle","createInfoNotice","noticesStore","drawerLeft","drawerRight","blockDefault","id","actions","PREFERENCES_MODAL_NAME","keyboard","KEYBOARD_SHORTCUT_HELP_MODAL_NAME","listView","usePatternCommands","pattern","edit","PATTERN_MODALS","rename","symbol","duplicate","useEditModeCommands","useCommandLoader","hook","context"],"sources":["@wordpress/edit-site/src/hooks/commands/use-edit-mode-commands.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport {\n\tedit,\n\ttrash,\n\trotateLeft,\n\trotateRight,\n\tlayout,\n\tpage,\n\tdrawerLeft,\n\tdrawerRight,\n\tblockDefault,\n\tcode,\n\tkeyboard,\n\tlistView,\n\tsymbol,\n} from '@wordpress/icons';\nimport { useCommandLoader } from '@wordpress/commands';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport useEditedEntityRecord from '../../components/use-edited-entity-record';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport { KEYBOARD_SHORTCUT_HELP_MODAL_NAME } from '../../components/keyboard-shortcut-help-modal';\nimport { PREFERENCES_MODAL_NAME } from '../../components/preferences-modal';\nimport { PATTERN_MODALS } from '../../components/pattern-modal';\nimport { unlock } from '../../lock-unlock';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport { useLink } from '../../components/routes/link';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nfunction usePageContentFocusCommands() {\n\tconst { record: template } = useEditedEntityRecord();\n\tconst { isPage, canvasMode, templateId, currentPostType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isPage: _isPage, getCanvasMode } = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t);\n\t\t\tconst { getCurrentPostType, getCurrentTemplateId } =\n\t\t\t\tselect( editorStore );\n\t\t\treturn {\n\t\t\t\tisPage: _isPage(),\n\t\t\t\tcanvasMode: getCanvasMode(),\n\t\t\t\ttemplateId: getCurrentTemplateId(),\n\t\t\t\tcurrentPostType: getCurrentPostType(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { onClick: editTemplate } = useLink( {\n\t\tpostType: 'wp_template',\n\t\tpostId: templateId,\n\t} );\n\n\tconst { setRenderingMode } = useDispatch( editorStore );\n\n\tif ( ! isPage || canvasMode !== 'edit' ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( currentPostType !== 'wp_template' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/switch-to-template-focus',\n\t\t\tlabel: sprintf(\n\t\t\t\t/* translators: %s: template title */\n\t\t\t\t__( 'Edit template: %s' ),\n\t\t\t\tdecodeEntities( template.title )\n\t\t\t),\n\t\t\ticon: layout,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\teditTemplate();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t} else {\n\t\tcommands.push( {\n\t\t\tname: 'core/switch-to-page-focus',\n\t\t\tlabel: __( 'Back to page' ),\n\t\t\ticon: page,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tsetRenderingMode( 'template-locked' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn { isLoading: false, commands };\n}\n\nfunction useEditorModeCommands() {\n\tconst { switchEditorMode } = useDispatch( editSiteStore );\n\tconst { canvasMode, editorMode } = useSelect(\n\t\t( select ) => ( {\n\t\t\tcanvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t\teditorMode: select( editSiteStore ).getEditorMode(),\n\t\t} ),\n\t\t[]\n\t);\n\n\tif ( canvasMode !== 'edit' || editorMode !== 'text' ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( editorMode === 'text' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/exit-code-editor',\n\t\t\tlabel: __( 'Exit code editor' ),\n\t\t\ticon: code,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tswitchEditorMode( 'visual' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn { isLoading: false, commands };\n}\n\nfunction useManipulateDocumentCommands() {\n\tconst { isLoaded, record: template } = useEditedEntityRecord();\n\tconst { removeTemplate, revertTemplate } = useDispatch( editSiteStore );\n\tconst history = useHistory();\n\tconst isEditingPage = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editSiteStore ).isPage() &&\n\t\t\tselect( editorStore ).getCurrentPostType() !== 'wp_template',\n\t\t[]\n\t);\n\n\tif ( ! isLoaded ) {\n\t\treturn { isLoading: true, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( isTemplateRevertable( template ) && ! isEditingPage ) {\n\t\tconst label =\n\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: template title */\n\t\t\t\t\t\t__( 'Reset template: %s' ),\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: template part title */\n\t\t\t\t\t\t__( 'Reset template part: %s' ),\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t );\n\t\tcommands.push( {\n\t\t\tname: 'core/reset-template',\n\t\t\tlabel,\n\t\t\ticon: isRTL() ? rotateRight : rotateLeft,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\trevertTemplate( template );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( isTemplateRemovable( template ) && ! isEditingPage ) {\n\t\tconst label =\n\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: template title */\n\t\t\t\t\t\t__( 'Delete template: %s' ),\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: template part title */\n\t\t\t\t\t\t__( 'Delete template part: %s' ),\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t );\n\t\tconst path =\n\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t? '/wp_template'\n\t\t\t\t: '/wp_template_part/all';\n\t\tcommands.push( {\n\t\t\tname: 'core/remove-template',\n\t\t\tlabel,\n\t\t\ticon: trash,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tremoveTemplate( template );\n\t\t\t\t// Navigate to the template list\n\t\t\t\thistory.push( {\n\t\t\t\t\tpath,\n\t\t\t\t} );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: ! isLoaded,\n\t\tcommands,\n\t};\n}\n\nfunction useEditUICommands() {\n\tconst {\n\t\topenGeneralSidebar,\n\t\tcloseGeneralSidebar,\n\t\ttoggleDistractionFree,\n\t\tsetIsListViewOpened,\n\t\tswitchEditorMode,\n\t} = useDispatch( editSiteStore );\n\tconst {\n\t\tcanvasMode,\n\t\teditorMode,\n\t\tactiveSidebar,\n\t\tshowBlockBreadcrumbs,\n\t\tisListViewOpen,\n\t\tisDistractionFree,\n\t\tisTopToolbar,\n\t\tisFocusMode,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditorMode } = select( editSiteStore );\n\t\tconst { isListViewOpened } = select( editorStore );\n\t\treturn {\n\t\t\tcanvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t\teditorMode: getEditorMode(),\n\t\t\tactiveSidebar: select( interfaceStore ).getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\tisFocusMode: get( 'core', 'focusMode' ),\n\t\t\tisTopToolbar: get( 'core', 'fixedToolbar' ),\n\t\t};\n\t}, [] );\n\tconst { openModal } = useDispatch( interfaceStore );\n\tconst { toggle } = useDispatch( preferencesStore );\n\tconst { createInfoNotice } = useDispatch( noticesStore );\n\n\tif ( canvasMode !== 'edit' ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tcommands.push( {\n\t\tname: 'core/open-settings-sidebar',\n\t\tlabel: __( 'Toggle settings sidebar' ),\n\t\ticon: isRTL() ? drawerLeft : drawerRight,\n\t\tcallback: ( { close } ) => {\n\t\t\tclose();\n\t\t\tif ( activeSidebar === 'edit-site/template' ) {\n\t\t\t\tcloseGeneralSidebar();\n\t\t\t} else {\n\t\t\t\topenGeneralSidebar( 'edit-site/template' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/open-block-inspector',\n\t\tlabel: __( 'Toggle block inspector' ),\n\t\ticon: blockDefault,\n\t\tcallback: ( { close } ) => {\n\t\t\tclose();\n\t\t\tif ( activeSidebar === 'edit-site/block-inspector' ) {\n\t\t\t\tcloseGeneralSidebar();\n\t\t\t} else {\n\t\t\t\topenGeneralSidebar( 'edit-site/block-inspector' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-spotlight-mode',\n\t\tlabel: __( 'Toggle spotlight' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggle( 'core', 'focusMode' );\n\t\t\tclose();\n\t\t\tcreateInfoNotice(\n\t\t\t\tisFocusMode ? __( 'Spotlight off.' ) : __( 'Spotlight on.' ),\n\t\t\t\t{\n\t\t\t\t\tid: 'core/edit-site/toggle-spotlight-mode/notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\ttoggle( 'core', 'focusMode' );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-distraction-free',\n\t\tlabel: isDistractionFree\n\t\t\t? __( 'Exit Distraction Free' )\n\t\t\t: __( 'Enter Distraction Free ' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggleDistractionFree();\n\t\t\tclose();\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-top-toolbar',\n\t\tlabel: __( 'Toggle top toolbar' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggle( 'core', 'fixedToolbar' );\n\t\t\tif ( isDistractionFree ) {\n\t\t\t\ttoggleDistractionFree();\n\t\t\t}\n\t\t\tclose();\n\t\t\tcreateInfoNotice(\n\t\t\t\tisTopToolbar\n\t\t\t\t\t? __( 'Top toolbar off.' )\n\t\t\t\t\t: __( 'Top toolbar on.' ),\n\t\t\t\t{\n\t\t\t\t\tid: 'core/edit-site/toggle-top-toolbar/notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\ttoggle( 'core', 'fixedToolbar' );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t} );\n\n\tif ( editorMode === 'visual' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/toggle-code-editor',\n\t\t\tlabel: __( 'Open code editor' ),\n\t\t\ticon: code,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tswitchEditorMode( 'text' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\tcommands.push( {\n\t\tname: 'core/open-preferences',\n\t\tlabel: __( 'Editor preferences' ),\n\t\tcallback: () => {\n\t\t\topenModal( PREFERENCES_MODAL_NAME );\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/open-shortcut-help',\n\t\tlabel: __( 'Keyboard shortcuts' ),\n\t\ticon: keyboard,\n\t\tcallback: () => {\n\t\t\topenModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-breadcrumbs',\n\t\tlabel: showBlockBreadcrumbs\n\t\t\t? __( 'Hide block breadcrumbs' )\n\t\t\t: __( 'Show block breadcrumbs' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggle( 'core', 'showBlockBreadcrumbs' );\n\t\t\tclose();\n\t\t\tcreateInfoNotice(\n\t\t\t\tshowBlockBreadcrumbs\n\t\t\t\t\t? __( 'Breadcrumbs hidden.' )\n\t\t\t\t\t: __( 'Breadcrumbs visible.' ),\n\t\t\t\t{\n\t\t\t\t\tid: 'core/edit-site/toggle-breadcrumbs/notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-list-view',\n\t\tlabel: isListViewOpen\n\t\t\t? __( 'Close List View' )\n\t\t\t: __( 'Open List View' ),\n\t\ticon: listView,\n\t\tcallback: ( { close } ) => {\n\t\t\tsetIsListViewOpened( ! isListViewOpen );\n\t\t\tclose();\n\t\t\tcreateInfoNotice(\n\t\t\t\tisListViewOpen ? __( 'List View off.' ) : __( 'List View on.' ),\n\t\t\t\t{\n\t\t\t\t\tid: 'core/edit-site/toggle-list-view/notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t} );\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands,\n\t};\n}\n\nfunction usePatternCommands() {\n\tconst { isLoaded, record: pattern } = useEditedEntityRecord();\n\tconst { openModal } = useDispatch( interfaceStore );\n\n\tif ( ! isLoaded ) {\n\t\treturn { isLoading: true, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( pattern?.type === 'wp_block' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/rename-pattern',\n\t\t\tlabel: __( 'Rename pattern' ),\n\t\t\ticon: edit,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\topenModal( PATTERN_MODALS.rename );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t\tcommands.push( {\n\t\t\tname: 'core/duplicate-pattern',\n\t\t\tlabel: __( 'Duplicate pattern' ),\n\t\t\ticon: symbol,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\topenModal( PATTERN_MODALS.duplicate );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn { isLoading: false, commands };\n}\n\nexport function useEditModeCommands() {\n\tuseCommandLoader( {\n\t\tname: 'core/exit-code-editor',\n\t\thook: useEditorModeCommands,\n\t\tcontext: 'site-editor-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/page-content-focus',\n\t\thook: usePageContentFocusCommands,\n\t\tcontext: 'site-editor-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/manipulate-document',\n\t\thook: useManipulateDocumentCommands,\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/patterns',\n\t\thook: usePatternCommands,\n\t\tcontext: 'site-editor-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/edit-ui',\n\t\thook: useEditUICommands,\n\t} );\n}\n"],"mappings":"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"}
|
|
@@ -257,7 +257,7 @@ function FontLibraryProvider({
|
|
|
257
257
|
if (font.fontFace) {
|
|
258
258
|
font.fontFace.forEach(face => {
|
|
259
259
|
// Load font faces just in the iframe because they already are in the document.
|
|
260
|
-
loadFontFaceInBrowser(face, getDisplaySrcFromFontFace(face.src), '
|
|
260
|
+
loadFontFaceInBrowser(face, getDisplaySrcFromFontFace(face.src), 'all');
|
|
261
261
|
});
|
|
262
262
|
}
|
|
263
263
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useState","useEffect","privateApis","blockEditorPrivateApis","useSelect","useDispatch","useEntityRecord","useEntityRecords","store","coreStore","__","sprintf","fetchGetFontFamilyBySlug","fetchInstallFontFamily","fetchUninstallFontFamily","fetchFontCollections","fetchFontCollection","unlock","useGlobalSetting","setUIValuesNeeded","mergeFontFamilies","loadFontFaceInBrowser","getDisplaySrcFromFontFace","makeFontFacesFormData","makeFontFamilyFormData","batchInstallFontFaces","checkFontFaceInstalled","toggleFont","FontLibraryContext","FontLibraryProvider","children","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","globalStylesId","select","__experimentalGetCurrentGlobalStylesId","globalStyles","fontFamiliesHasChanges","edits","settings","typography","fontFamilies","isInstalling","setIsInstalling","refreshKey","setRefreshKey","notice","setNotice","refreshLibrary","Date","now","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","_embed","libraryFonts","map","fontFamilyPost","id","font_family_settings","fontFace","_embedded","font_faces","face","font_face_settings","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","baseThemeFonts","theme","f","source","sort","a","b","name","localeCompare","themeFonts","customFonts","custom","baseCustomFonts","handleSetLibraryFontSelected","font","fonts","fontSelected","find","slug","toggleModal","tabName","loadedFontUrls","Set","site","currentTheme","getSite","getCurrentTheme","themeUrl","url","stylesheet","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","length","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFont","fontFamilyToInstall","installedFontFamily","alreadyInstalledFontFaces","filter","fontFaceToInstall","sucessfullyInstalledFontFaces","unsucessfullyInstalledFontFaces","response","successes","errors","detailedErrorMessage","errorMessageCollection","error","message","Error","activateCustomFontFamilies","uninstallFontFamily","fontFamilyToUninstall","uninstalledFontFamily","deleted","deactivateFontFamily","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","fontsToAdd","forEach","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","loadFontFaceAsset","has","add","collections","setFontCollections","getFontCollections","getFontCollection","hasData","collection","font_families","updatedCollections","e","createElement","Provider","value"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useState, useEffect } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseEntityRecord,\n\tuseEntityRecords,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchGetFontFamilyBySlug,\n\tfetchInstallFontFamily,\n\tfetchUninstallFontFamily,\n\tfetchFontCollections,\n\tfetchFontCollection,\n} from './resolvers';\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport {\n\tsetUIValuesNeeded,\n\tmergeFontFamilies,\n\tloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n\tmakeFontFacesFormData,\n\tmakeFontFamilyFormData,\n\tbatchInstallFontFaces,\n\tcheckFontFaceInstalled,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\n\nexport const FontLibraryContext = createContext( {} );\n\nfunction FontLibraryProvider( { children } ) {\n\tconst { __experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits } =\n\t\tuseDispatch( coreStore );\n\tconst { globalStylesId } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn { globalStylesId: __experimentalGetCurrentGlobalStylesId() };\n\t} );\n\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst [ isInstalling, setIsInstalling ] = useState( false );\n\tconst [ refreshKey, setRefreshKey ] = useState( 0 );\n\tconst [ notice, setNotice ] = useState( null );\n\n\tconst refreshLibrary = () => {\n\t\tsetRefreshKey( Date.now() );\n\t};\n\n\tconst {\n\t\trecords: libraryPosts = [],\n\t\tisResolving: isResolvingLibrary,\n\t\thasResolved: hasResolvedLibrary,\n\t} = useEntityRecords( 'postType', 'wp_font_family', {\n\t\trefreshKey,\n\t\t_embed: true,\n\t} );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( fontFamilyPost ) => {\n\t\t\treturn {\n\t\t\t\tid: fontFamilyPost.id,\n\t\t\t\t...fontFamilyPost.font_family_settings,\n\t\t\t\tfontFace:\n\t\t\t\t\tfontFamilyPost?._embedded?.font_faces.map(\n\t\t\t\t\t\t( face ) => face.font_face_settings\n\t\t\t\t\t) || [],\n\t\t\t};\n\t\t} ) || [];\n\n\t// Global Styles (settings) font families\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\t// theme.json file font families\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\n\t// Save font families to the global styles post in the database.\n\tconst saveFontFamilies = () => {\n\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t'settings.typography.fontFamilies',\n\t\t] );\n\t};\n\n\t// Library Fonts\n\tconst [ modalTabOpen, setModalTabOpen ] = useState( false );\n\tconst [ libraryFontSelected, setLibraryFontSelected ] = useState( null );\n\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? baseFontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst baseCustomFonts = libraryFonts\n\t\t? libraryFonts\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tuseEffect( () => {\n\t\tif ( ! modalTabOpen ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t}\n\t}, [ modalTabOpen ] );\n\n\tconst handleSetLibraryFontSelected = ( font ) => {\n\t\tsetNotice( null );\n\n\t\t// If font is null, reset the selected font\n\t\tif ( ! font ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst fonts =\n\t\t\tfont.source === 'theme' ? baseThemeFonts : baseCustomFonts;\n\n\t\t// Tries to find the font in the installed fonts\n\t\tconst fontSelected = fonts.find( ( f ) => f.slug === font.slug );\n\t\t// If the font is not found (it is only defined in custom styles), use the font from custom styles\n\t\tsetLibraryFontSelected( {\n\t\t\t...( fontSelected || font ),\n\t\t\tsource: font.source,\n\t\t} );\n\t};\n\n\tconst toggleModal = ( tabName ) => {\n\t\tsetModalTabOpen( tabName || null );\n\t};\n\n\t// Demo\n\tconst [ loadedFontUrls ] = useState( new Set() );\n\n\t// Theme data\n\tconst { site, currentTheme } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tsite: select( coreStore ).getSite(),\n\t\t\tcurrentTheme: select( coreStore ).getCurrentTheme(),\n\t\t};\n\t} );\n\tconst themeUrl =\n\t\tsite?.url + '/wp-content/themes/' + currentTheme?.stylesheet;\n\n\tconst getAvailableFontsOutline = ( availableFontFamilies ) => {\n\t\tconst outline = availableFontFamilies.reduce( ( acc, font ) => {\n\t\t\tconst availableFontFaces =\n\t\t\t\tfont?.fontFace && font.fontFace?.length > 0\n\t\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t\t )\n\t\t\t\t\t: [ 'normal400' ]; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400\n\n\t\t\tacc[ font.slug ] = availableFontFaces;\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn outline;\n\t};\n\n\tconst getActivatedFontsOutline = ( source ) => {\n\t\tswitch ( source ) {\n\t\t\tcase 'theme':\n\t\t\t\treturn getAvailableFontsOutline( themeFonts );\n\t\t\tcase 'custom':\n\t\t\tdefault:\n\t\t\t\treturn getAvailableFontsOutline( customFonts );\n\t\t}\n\t};\n\n\tconst isFontActivated = ( slug, style, weight, source ) => {\n\t\tif ( ! style && ! weight ) {\n\t\t\treturn !! getActivatedFontsOutline( source )[ slug ];\n\t\t}\n\t\treturn !! getActivatedFontsOutline( source )[ slug ]?.includes(\n\t\t\tstyle + weight\n\t\t);\n\t};\n\n\tconst getFontFacesActivated = ( slug, source ) => {\n\t\treturn getActivatedFontsOutline( source )[ slug ] || [];\n\t};\n\n\tasync function installFont( fontFamilyToInstall ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Get the font family if it already exists.\n\t\t\tlet installedFontFamily = await fetchGetFontFamilyBySlug(\n\t\t\t\tfontFamilyToInstall.slug\n\t\t\t);\n\n\t\t\t// Otherwise create it.\n\t\t\tif ( ! installedFontFamily ) {\n\t\t\t\t// Prepare font family form data to install.\n\t\t\t\tinstalledFontFamily = await fetchInstallFontFamily(\n\t\t\t\t\tmakeFontFamilyFormData( fontFamilyToInstall )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Collect font faces that have already been installed (to be activated later)\n\t\t\tconst alreadyInstalledFontFaces =\n\t\t\t\tinstalledFontFamily.fontFace && fontFamilyToInstall.fontFace\n\t\t\t\t\t? installedFontFamily.fontFace.filter(\n\t\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t\tcheckFontFaceInstalled(\n\t\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t )\n\t\t\t\t\t: [];\n\n\t\t\t// Filter out Font Faces that have already been installed (so that they are not re-installed)\n\t\t\tif (\n\t\t\t\tinstalledFontFamily.fontFace &&\n\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t) {\n\t\t\t\tfontFamilyToInstall.fontFace =\n\t\t\t\t\tfontFamilyToInstall.fontFace.filter(\n\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t! checkFontFaceInstalled(\n\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\tinstalledFontFamily.fontFace\n\t\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tlet sucessfullyInstalledFontFaces = [];\n\t\t\tlet unsucessfullyInstalledFontFaces = [];\n\t\t\tif ( fontFamilyToInstall?.fontFace?.length > 0 ) {\n\t\t\t\tconst response = await batchInstallFontFaces(\n\t\t\t\t\tinstalledFontFamily.id,\n\t\t\t\t\tmakeFontFacesFormData( fontFamilyToInstall )\n\t\t\t\t);\n\t\t\t\tsucessfullyInstalledFontFaces = response?.successes;\n\t\t\t\tunsucessfullyInstalledFontFaces = response?.errors;\n\t\t\t}\n\n\t\t\tconst detailedErrorMessage = unsucessfullyInstalledFontFaces.reduce(\n\t\t\t\t( errorMessageCollection, error ) => {\n\t\t\t\t\treturn `${ errorMessageCollection } ${ error.message }`;\n\t\t\t\t},\n\t\t\t\t''\n\t\t\t);\n\n\t\t\t// If there were no successes and nothing already installed then we don't need to activate anything and can bounce now.\n\t\t\tif (\n\t\t\t\tfontFamilyToInstall?.fontFace?.length > 0 &&\n\t\t\t\tsucessfullyInstalledFontFaces.length === 0 &&\n\t\t\t\talreadyInstalledFontFaces.length === 0\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: Specific error message returned from server. */\n\t\t\t\t\t\t__( 'No font faces were installed. %s' ),\n\t\t\t\t\t\tdetailedErrorMessage\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Use the sucessfully installed font faces\n\t\t\t// As well as any font faces that were already installed (those will be activated)\n\t\t\tif (\n\t\t\t\tsucessfullyInstalledFontFaces?.length > 0 ||\n\t\t\t\talreadyInstalledFontFaces?.length > 0\n\t\t\t) {\n\t\t\t\tfontFamilyToInstall.fontFace = [\n\t\t\t\t\t...sucessfullyInstalledFontFaces,\n\t\t\t\t\t...alreadyInstalledFontFaces,\n\t\t\t\t];\n\t\t\t}\n\n\t\t\t// Activate the font family (add the font family to the global styles).\n\t\t\tactivateCustomFontFamilies( [ fontFamilyToInstall ] );\n\n\t\t\t// Save the global styles to the database.\n\t\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t\t'settings.typography.fontFamilies',\n\t\t\t] );\n\n\t\t\trefreshLibrary();\n\n\t\t\tif ( unsucessfullyInstalledFontFaces.length > 0 ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: Specific error message returned from server. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Some font faces were installed. There were some errors. %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tdetailedErrorMessage\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} finally {\n\t\t\tsetIsInstalling( false );\n\t\t}\n\t}\n\n\tasync function uninstallFontFamily( fontFamilyToUninstall ) {\n\t\ttry {\n\t\t\t// Uninstall the font family.\n\t\t\t// (Removes the font files from the server and the posts from the database).\n\t\t\tconst uninstalledFontFamily = await fetchUninstallFontFamily(\n\t\t\t\tfontFamilyToUninstall.id\n\t\t\t);\n\n\t\t\t// Deactivate the font family if delete request is successful\n\t\t\t// (Removes the font family from the global styles).\n\t\t\tif ( uninstalledFontFamily.deleted ) {\n\t\t\t\tdeactivateFontFamily( fontFamilyToUninstall );\n\t\t\t\t// Save the global styles to the database.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t[ 'settings.typography.fontFamilies' ]\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Refresh the library (the library font families from database).\n\t\t\trefreshLibrary();\n\n\t\t\treturn uninstalledFontFamily;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t`There was an error uninstalling the font family:`,\n\t\t\t\terror\n\t\t\t);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tconst deactivateFontFamily = ( font ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialCustomFonts = fontFamilies?.[ font.source ] ?? [];\n\t\tconst newCustomFonts = initialCustomFonts.filter(\n\t\t\t( f ) => f.slug !== font.slug\n\t\t);\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newCustomFonts,\n\t\t} );\n\t};\n\n\tconst activateCustomFontFamilies = ( fontsToAdd ) => {\n\t\t// Merge the existing custom fonts with the new fonts.\n\t\tconst newCustomFonts = mergeFontFamilies(\n\t\t\tfontFamilies?.custom,\n\t\t\tfontsToAdd\n\t\t);\n\t\t// Activate the fonts by set the new custom fonts array.\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\tcustom: newCustomFonts,\n\t\t} );\n\t\t// Add custom fonts to the browser.\n\t\tfontsToAdd.forEach( ( font ) => {\n\t\t\tif ( font.fontFace ) {\n\t\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\t\t// Load font faces just in the iframe because they already are in the document.\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face.src ),\n\t\t\t\t\t\t'iframe'\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t};\n\n\tconst toggleActivateFont = ( font, face ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialFonts = fontFamilies?.[ font.source ] ?? [];\n\t\t// Toggles the received font family or font face\n\t\tconst newFonts = toggleFont( font, face, initialFonts );\n\t\t// Updates the font families activated in global settings:\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newFonts,\n\t\t} );\n\t};\n\n\tconst loadFontFaceAsset = async ( fontFace ) => {\n\t\t// If the font doesn't have a src, don't load it.\n\t\tif ( ! fontFace.src ) return;\n\t\t// Get the src of the font.\n\t\tconst src = getDisplaySrcFromFontFace( fontFace.src, themeUrl );\n\t\t// If the font is already loaded, don't load it again.\n\t\tif ( ! src || loadedFontUrls.has( src ) ) return;\n\t\t// Load the font in the browser.\n\t\tloadFontFaceInBrowser( fontFace, src, 'document' );\n\t\t// Add the font to the loaded fonts list.\n\t\tloadedFontUrls.add( src );\n\t};\n\n\t// Font Collections\n\tconst [ collections, setFontCollections ] = useState( [] );\n\tconst getFontCollections = async () => {\n\t\tconst response = await fetchFontCollections();\n\t\tsetFontCollections( response );\n\t};\n\tconst getFontCollection = async ( slug ) => {\n\t\ttry {\n\t\t\tconst hasData = !! collections.find(\n\t\t\t\t( collection ) => collection.slug === slug\n\t\t\t)?.font_families;\n\t\t\tif ( hasData ) return;\n\t\t\tconst response = await fetchFontCollection( slug );\n\t\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\t\tcollection.slug === slug\n\t\t\t\t\t? { ...collection, ...response }\n\t\t\t\t\t: collection\n\t\t\t);\n\t\t\tsetFontCollections( updatedCollections );\n\t\t} catch ( e ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( e );\n\t\t\tthrow e;\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tgetFontCollections();\n\t}, [] );\n\n\treturn (\n\t\t<FontLibraryContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tlibraryFontSelected,\n\t\t\t\thandleSetLibraryFontSelected,\n\t\t\t\tthemeFonts,\n\t\t\t\tbaseThemeFonts,\n\t\t\t\tcustomFonts,\n\t\t\t\tbaseCustomFonts,\n\t\t\t\tisFontActivated,\n\t\t\t\tgetFontFacesActivated,\n\t\t\t\tloadFontFaceAsset,\n\t\t\t\tinstallFont,\n\t\t\t\tuninstallFontFamily,\n\t\t\t\ttoggleActivateFont,\n\t\t\t\tgetAvailableFontsOutline,\n\t\t\t\tmodalTabOpen,\n\t\t\t\ttoggleModal,\n\t\t\t\trefreshLibrary,\n\t\t\t\tnotice,\n\t\t\t\tsetNotice,\n\t\t\t\tsaveFontFamilies,\n\t\t\t\tfontFamiliesHasChanges,\n\t\t\t\tisResolvingLibrary,\n\t\t\t\thasResolvedLibrary,\n\t\t\t\tisInstalling,\n\t\t\t\tcollections,\n\t\t\t\tgetFontCollection,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</FontLibraryContext.Provider>\n\t);\n}\n\nexport default FontLibraryProvider;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["createContext","useState","useEffect","privateApis","blockEditorPrivateApis","useSelect","useDispatch","useEntityRecord","useEntityRecords","store","coreStore","__","sprintf","fetchGetFontFamilyBySlug","fetchInstallFontFamily","fetchUninstallFontFamily","fetchFontCollections","fetchFontCollection","unlock","useGlobalSetting","setUIValuesNeeded","mergeFontFamilies","loadFontFaceInBrowser","getDisplaySrcFromFontFace","makeFontFacesFormData","makeFontFamilyFormData","batchInstallFontFaces","checkFontFaceInstalled","toggleFont","FontLibraryContext","FontLibraryProvider","children","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","globalStylesId","select","__experimentalGetCurrentGlobalStylesId","globalStyles","fontFamiliesHasChanges","edits","settings","typography","fontFamilies","isInstalling","setIsInstalling","refreshKey","setRefreshKey","notice","setNotice","refreshLibrary","Date","now","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","_embed","libraryFonts","map","fontFamilyPost","id","font_family_settings","fontFace","_embedded","font_faces","face","font_face_settings","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","baseThemeFonts","theme","f","source","sort","a","b","name","localeCompare","themeFonts","customFonts","custom","baseCustomFonts","handleSetLibraryFontSelected","font","fonts","fontSelected","find","slug","toggleModal","tabName","loadedFontUrls","Set","site","currentTheme","getSite","getCurrentTheme","themeUrl","url","stylesheet","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","length","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFont","fontFamilyToInstall","installedFontFamily","alreadyInstalledFontFaces","filter","fontFaceToInstall","sucessfullyInstalledFontFaces","unsucessfullyInstalledFontFaces","response","successes","errors","detailedErrorMessage","errorMessageCollection","error","message","Error","activateCustomFontFamilies","uninstallFontFamily","fontFamilyToUninstall","uninstalledFontFamily","deleted","deactivateFontFamily","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","fontsToAdd","forEach","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","loadFontFaceAsset","has","add","collections","setFontCollections","getFontCollections","getFontCollection","hasData","collection","font_families","updatedCollections","e","createElement","Provider","value"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useState, useEffect } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseEntityRecord,\n\tuseEntityRecords,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchGetFontFamilyBySlug,\n\tfetchInstallFontFamily,\n\tfetchUninstallFontFamily,\n\tfetchFontCollections,\n\tfetchFontCollection,\n} from './resolvers';\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport {\n\tsetUIValuesNeeded,\n\tmergeFontFamilies,\n\tloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n\tmakeFontFacesFormData,\n\tmakeFontFamilyFormData,\n\tbatchInstallFontFaces,\n\tcheckFontFaceInstalled,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\n\nexport const FontLibraryContext = createContext( {} );\n\nfunction FontLibraryProvider( { children } ) {\n\tconst { __experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits } =\n\t\tuseDispatch( coreStore );\n\tconst { globalStylesId } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn { globalStylesId: __experimentalGetCurrentGlobalStylesId() };\n\t} );\n\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst [ isInstalling, setIsInstalling ] = useState( false );\n\tconst [ refreshKey, setRefreshKey ] = useState( 0 );\n\tconst [ notice, setNotice ] = useState( null );\n\n\tconst refreshLibrary = () => {\n\t\tsetRefreshKey( Date.now() );\n\t};\n\n\tconst {\n\t\trecords: libraryPosts = [],\n\t\tisResolving: isResolvingLibrary,\n\t\thasResolved: hasResolvedLibrary,\n\t} = useEntityRecords( 'postType', 'wp_font_family', {\n\t\trefreshKey,\n\t\t_embed: true,\n\t} );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( fontFamilyPost ) => {\n\t\t\treturn {\n\t\t\t\tid: fontFamilyPost.id,\n\t\t\t\t...fontFamilyPost.font_family_settings,\n\t\t\t\tfontFace:\n\t\t\t\t\tfontFamilyPost?._embedded?.font_faces.map(\n\t\t\t\t\t\t( face ) => face.font_face_settings\n\t\t\t\t\t) || [],\n\t\t\t};\n\t\t} ) || [];\n\n\t// Global Styles (settings) font families\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\t// theme.json file font families\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\n\t// Save font families to the global styles post in the database.\n\tconst saveFontFamilies = () => {\n\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t'settings.typography.fontFamilies',\n\t\t] );\n\t};\n\n\t// Library Fonts\n\tconst [ modalTabOpen, setModalTabOpen ] = useState( false );\n\tconst [ libraryFontSelected, setLibraryFontSelected ] = useState( null );\n\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? baseFontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst baseCustomFonts = libraryFonts\n\t\t? libraryFonts\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tuseEffect( () => {\n\t\tif ( ! modalTabOpen ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t}\n\t}, [ modalTabOpen ] );\n\n\tconst handleSetLibraryFontSelected = ( font ) => {\n\t\tsetNotice( null );\n\n\t\t// If font is null, reset the selected font\n\t\tif ( ! font ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst fonts =\n\t\t\tfont.source === 'theme' ? baseThemeFonts : baseCustomFonts;\n\n\t\t// Tries to find the font in the installed fonts\n\t\tconst fontSelected = fonts.find( ( f ) => f.slug === font.slug );\n\t\t// If the font is not found (it is only defined in custom styles), use the font from custom styles\n\t\tsetLibraryFontSelected( {\n\t\t\t...( fontSelected || font ),\n\t\t\tsource: font.source,\n\t\t} );\n\t};\n\n\tconst toggleModal = ( tabName ) => {\n\t\tsetModalTabOpen( tabName || null );\n\t};\n\n\t// Demo\n\tconst [ loadedFontUrls ] = useState( new Set() );\n\n\t// Theme data\n\tconst { site, currentTheme } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tsite: select( coreStore ).getSite(),\n\t\t\tcurrentTheme: select( coreStore ).getCurrentTheme(),\n\t\t};\n\t} );\n\tconst themeUrl =\n\t\tsite?.url + '/wp-content/themes/' + currentTheme?.stylesheet;\n\n\tconst getAvailableFontsOutline = ( availableFontFamilies ) => {\n\t\tconst outline = availableFontFamilies.reduce( ( acc, font ) => {\n\t\t\tconst availableFontFaces =\n\t\t\t\tfont?.fontFace && font.fontFace?.length > 0\n\t\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t\t )\n\t\t\t\t\t: [ 'normal400' ]; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400\n\n\t\t\tacc[ font.slug ] = availableFontFaces;\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn outline;\n\t};\n\n\tconst getActivatedFontsOutline = ( source ) => {\n\t\tswitch ( source ) {\n\t\t\tcase 'theme':\n\t\t\t\treturn getAvailableFontsOutline( themeFonts );\n\t\t\tcase 'custom':\n\t\t\tdefault:\n\t\t\t\treturn getAvailableFontsOutline( customFonts );\n\t\t}\n\t};\n\n\tconst isFontActivated = ( slug, style, weight, source ) => {\n\t\tif ( ! style && ! weight ) {\n\t\t\treturn !! getActivatedFontsOutline( source )[ slug ];\n\t\t}\n\t\treturn !! getActivatedFontsOutline( source )[ slug ]?.includes(\n\t\t\tstyle + weight\n\t\t);\n\t};\n\n\tconst getFontFacesActivated = ( slug, source ) => {\n\t\treturn getActivatedFontsOutline( source )[ slug ] || [];\n\t};\n\n\tasync function installFont( fontFamilyToInstall ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Get the font family if it already exists.\n\t\t\tlet installedFontFamily = await fetchGetFontFamilyBySlug(\n\t\t\t\tfontFamilyToInstall.slug\n\t\t\t);\n\n\t\t\t// Otherwise create it.\n\t\t\tif ( ! installedFontFamily ) {\n\t\t\t\t// Prepare font family form data to install.\n\t\t\t\tinstalledFontFamily = await fetchInstallFontFamily(\n\t\t\t\t\tmakeFontFamilyFormData( fontFamilyToInstall )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Collect font faces that have already been installed (to be activated later)\n\t\t\tconst alreadyInstalledFontFaces =\n\t\t\t\tinstalledFontFamily.fontFace && fontFamilyToInstall.fontFace\n\t\t\t\t\t? installedFontFamily.fontFace.filter(\n\t\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t\tcheckFontFaceInstalled(\n\t\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t )\n\t\t\t\t\t: [];\n\n\t\t\t// Filter out Font Faces that have already been installed (so that they are not re-installed)\n\t\t\tif (\n\t\t\t\tinstalledFontFamily.fontFace &&\n\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t) {\n\t\t\t\tfontFamilyToInstall.fontFace =\n\t\t\t\t\tfontFamilyToInstall.fontFace.filter(\n\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t! checkFontFaceInstalled(\n\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\tinstalledFontFamily.fontFace\n\t\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tlet sucessfullyInstalledFontFaces = [];\n\t\t\tlet unsucessfullyInstalledFontFaces = [];\n\t\t\tif ( fontFamilyToInstall?.fontFace?.length > 0 ) {\n\t\t\t\tconst response = await batchInstallFontFaces(\n\t\t\t\t\tinstalledFontFamily.id,\n\t\t\t\t\tmakeFontFacesFormData( fontFamilyToInstall )\n\t\t\t\t);\n\t\t\t\tsucessfullyInstalledFontFaces = response?.successes;\n\t\t\t\tunsucessfullyInstalledFontFaces = response?.errors;\n\t\t\t}\n\n\t\t\tconst detailedErrorMessage = unsucessfullyInstalledFontFaces.reduce(\n\t\t\t\t( errorMessageCollection, error ) => {\n\t\t\t\t\treturn `${ errorMessageCollection } ${ error.message }`;\n\t\t\t\t},\n\t\t\t\t''\n\t\t\t);\n\n\t\t\t// If there were no successes and nothing already installed then we don't need to activate anything and can bounce now.\n\t\t\tif (\n\t\t\t\tfontFamilyToInstall?.fontFace?.length > 0 &&\n\t\t\t\tsucessfullyInstalledFontFaces.length === 0 &&\n\t\t\t\talreadyInstalledFontFaces.length === 0\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: Specific error message returned from server. */\n\t\t\t\t\t\t__( 'No font faces were installed. %s' ),\n\t\t\t\t\t\tdetailedErrorMessage\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Use the sucessfully installed font faces\n\t\t\t// As well as any font faces that were already installed (those will be activated)\n\t\t\tif (\n\t\t\t\tsucessfullyInstalledFontFaces?.length > 0 ||\n\t\t\t\talreadyInstalledFontFaces?.length > 0\n\t\t\t) {\n\t\t\t\tfontFamilyToInstall.fontFace = [\n\t\t\t\t\t...sucessfullyInstalledFontFaces,\n\t\t\t\t\t...alreadyInstalledFontFaces,\n\t\t\t\t];\n\t\t\t}\n\n\t\t\t// Activate the font family (add the font family to the global styles).\n\t\t\tactivateCustomFontFamilies( [ fontFamilyToInstall ] );\n\n\t\t\t// Save the global styles to the database.\n\t\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t\t'settings.typography.fontFamilies',\n\t\t\t] );\n\n\t\t\trefreshLibrary();\n\n\t\t\tif ( unsucessfullyInstalledFontFaces.length > 0 ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: Specific error message returned from server. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Some font faces were installed. There were some errors. %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tdetailedErrorMessage\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} finally {\n\t\t\tsetIsInstalling( false );\n\t\t}\n\t}\n\n\tasync function uninstallFontFamily( fontFamilyToUninstall ) {\n\t\ttry {\n\t\t\t// Uninstall the font family.\n\t\t\t// (Removes the font files from the server and the posts from the database).\n\t\t\tconst uninstalledFontFamily = await fetchUninstallFontFamily(\n\t\t\t\tfontFamilyToUninstall.id\n\t\t\t);\n\n\t\t\t// Deactivate the font family if delete request is successful\n\t\t\t// (Removes the font family from the global styles).\n\t\t\tif ( uninstalledFontFamily.deleted ) {\n\t\t\t\tdeactivateFontFamily( fontFamilyToUninstall );\n\t\t\t\t// Save the global styles to the database.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t[ 'settings.typography.fontFamilies' ]\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Refresh the library (the library font families from database).\n\t\t\trefreshLibrary();\n\n\t\t\treturn uninstalledFontFamily;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t`There was an error uninstalling the font family:`,\n\t\t\t\terror\n\t\t\t);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tconst deactivateFontFamily = ( font ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialCustomFonts = fontFamilies?.[ font.source ] ?? [];\n\t\tconst newCustomFonts = initialCustomFonts.filter(\n\t\t\t( f ) => f.slug !== font.slug\n\t\t);\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newCustomFonts,\n\t\t} );\n\t};\n\n\tconst activateCustomFontFamilies = ( fontsToAdd ) => {\n\t\t// Merge the existing custom fonts with the new fonts.\n\t\tconst newCustomFonts = mergeFontFamilies(\n\t\t\tfontFamilies?.custom,\n\t\t\tfontsToAdd\n\t\t);\n\t\t// Activate the fonts by set the new custom fonts array.\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\tcustom: newCustomFonts,\n\t\t} );\n\t\t// Add custom fonts to the browser.\n\t\tfontsToAdd.forEach( ( font ) => {\n\t\t\tif ( font.fontFace ) {\n\t\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\t\t// Load font faces just in the iframe because they already are in the document.\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face.src ),\n\t\t\t\t\t\t'all'\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t};\n\n\tconst toggleActivateFont = ( font, face ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialFonts = fontFamilies?.[ font.source ] ?? [];\n\t\t// Toggles the received font family or font face\n\t\tconst newFonts = toggleFont( font, face, initialFonts );\n\t\t// Updates the font families activated in global settings:\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newFonts,\n\t\t} );\n\t};\n\n\tconst loadFontFaceAsset = async ( fontFace ) => {\n\t\t// If the font doesn't have a src, don't load it.\n\t\tif ( ! fontFace.src ) return;\n\t\t// Get the src of the font.\n\t\tconst src = getDisplaySrcFromFontFace( fontFace.src, themeUrl );\n\t\t// If the font is already loaded, don't load it again.\n\t\tif ( ! src || loadedFontUrls.has( src ) ) return;\n\t\t// Load the font in the browser.\n\t\tloadFontFaceInBrowser( fontFace, src, 'document' );\n\t\t// Add the font to the loaded fonts list.\n\t\tloadedFontUrls.add( src );\n\t};\n\n\t// Font Collections\n\tconst [ collections, setFontCollections ] = useState( [] );\n\tconst getFontCollections = async () => {\n\t\tconst response = await fetchFontCollections();\n\t\tsetFontCollections( response );\n\t};\n\tconst getFontCollection = async ( slug ) => {\n\t\ttry {\n\t\t\tconst hasData = !! collections.find(\n\t\t\t\t( collection ) => collection.slug === slug\n\t\t\t)?.font_families;\n\t\t\tif ( hasData ) return;\n\t\t\tconst response = await fetchFontCollection( slug );\n\t\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\t\tcollection.slug === slug\n\t\t\t\t\t? { ...collection, ...response }\n\t\t\t\t\t: collection\n\t\t\t);\n\t\t\tsetFontCollections( updatedCollections );\n\t\t} catch ( e ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( e );\n\t\t\tthrow e;\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tgetFontCollections();\n\t}, [] );\n\n\treturn (\n\t\t<FontLibraryContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tlibraryFontSelected,\n\t\t\t\thandleSetLibraryFontSelected,\n\t\t\t\tthemeFonts,\n\t\t\t\tbaseThemeFonts,\n\t\t\t\tcustomFonts,\n\t\t\t\tbaseCustomFonts,\n\t\t\t\tisFontActivated,\n\t\t\t\tgetFontFacesActivated,\n\t\t\t\tloadFontFaceAsset,\n\t\t\t\tinstallFont,\n\t\t\t\tuninstallFontFamily,\n\t\t\t\ttoggleActivateFont,\n\t\t\t\tgetAvailableFontsOutline,\n\t\t\t\tmodalTabOpen,\n\t\t\t\ttoggleModal,\n\t\t\t\trefreshLibrary,\n\t\t\t\tnotice,\n\t\t\t\tsetNotice,\n\t\t\t\tsaveFontFamilies,\n\t\t\t\tfontFamiliesHasChanges,\n\t\t\t\tisResolvingLibrary,\n\t\t\t\thasResolvedLibrary,\n\t\t\t\tisInstalling,\n\t\t\t\tcollections,\n\t\t\t\tgetFontCollection,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</FontLibraryContext.Provider>\n\t);\n}\n\nexport default FontLibraryProvider;\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
|
9
9
|
import { FONT_WEIGHTS, FONT_STYLES } from './constants';
|
|
10
10
|
import { unlock } from '../../../../lock-unlock';
|
|
11
11
|
import { fetchInstallFontFace } from '../resolvers';
|
|
12
|
-
import {
|
|
12
|
+
import { formatFontFaceName } from './preview-styles';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Browser dependencies
|
|
@@ -94,7 +94,7 @@ export async function loadFontFaceInBrowser(fontFace, source, addTo = 'all') {
|
|
|
94
94
|
} else {
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
|
-
const newFont = new window.FontFace(
|
|
97
|
+
const newFont = new window.FontFace(formatFontFaceName(fontFace.fontFamily), dataSource, {
|
|
98
98
|
style: fontFace.fontStyle,
|
|
99
99
|
weight: fontFace.fontWeight
|
|
100
100
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["privateApis","componentsPrivateApis","FONT_WEIGHTS","FONT_STYLES","unlock","fetchInstallFontFace","formatFontFamily","File","window","setUIValuesNeeded","font","extraValues","name","fontFamily","slug","isUrlEncoded","url","decodeURIComponent","getFontFaceVariantName","face","weightName","fontWeight","styleName","fontStyle","mergeFontFaces","existing","incoming","map","Map","set","Array","from","values","mergeFontFamilies","has","fontFace","incomingFontFaces","restIncoming","existingFont","get","mergedFontFaces","loadFontFaceInBrowser","source","addTo","dataSource","arrayBuffer","newFont","FontFace","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","getDisplaySrcFromFontFace","input","urlPrefix","src","isArray","startsWith","replace","encodeURI","makeFontFamilyFormData","formData","FormData","kebabCase","category","familyWithValidParameters","fontFamilySettings","append","JSON","stringify","makeFontFacesFormData","fontFacesFormData","item","faceIndex","file","files","forEach","key","fileId","push","length","batchInstallFontFaces","fontFamilyId","fontFacesData","promises","faceData","responses","Promise","allSettled","results","errors","successes","result","index","status","response","value","id","data","message","reason","downloadFontFaceAssets","all","fetch","Request","then","ok","Error","blob","filename","split","pop","type","checkFontFaceInstalled","collection","findIndex","collectionFontFace"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { unlock } from '../../../../lock-unlock';\nimport { fetchInstallFontFace } from '../resolvers';\nimport { formatFontFamily } from './preview-styles';\n\n/**\n * Browser dependencies\n */\nconst { File } = window;\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t} else {\n\t\treturn;\n\t}\n\n\tconst newFont = new window.FontFace(\n\t\tformatFontFamily( fontFace.fontFamily ),\n\t\tdataSource,\n\t\t{\n\t\t\tstyle: fontFace.fontStyle,\n\t\t\tweight: fontFace.fontWeight,\n\t\t}\n\t);\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\nexport function getDisplaySrcFromFontFace( input, urlPrefix ) {\n\tif ( ! input ) {\n\t\treturn;\n\t}\n\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// If it is a theme font, we need to make the url absolute\n\tif ( src.startsWith( 'file:.' ) && urlPrefix ) {\n\t\tsrc = src.replace( 'file:.', urlPrefix );\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFontFamilyFormData( fontFamily ) {\n\tconst formData = new FormData();\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\n\tconst { fontFace, category, ...familyWithValidParameters } = fontFamily;\n\tconst fontFamilySettings = {\n\t\t...familyWithValidParameters,\n\t\tslug: kebabCase( fontFamily.slug ),\n\t};\n\n\tformData.append(\n\t\t'font_family_settings',\n\t\tJSON.stringify( fontFamilySettings )\n\t);\n\treturn formData;\n}\n\nexport function makeFontFacesFormData( font ) {\n\tif ( font?.fontFace ) {\n\t\tconst fontFacesFormData = font.fontFace.map( ( item, faceIndex ) => {\n\t\t\tconst face = { ...item };\n\t\t\tconst formData = new FormData();\n\t\t\tif ( face.file ) {\n\t\t\t\t// Normalize to an array, since face.file may be a single file or an array of files.\n\t\t\t\tconst files = Array.isArray( face.file )\n\t\t\t\t\t? face.file\n\t\t\t\t\t: [ face.file ];\n\t\t\t\tconst src = [];\n\n\t\t\t\tfiles.forEach( ( file, key ) => {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ faceIndex }-${ key }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, file, file.name );\n\t\t\t\t\tsrc.push( fileId );\n\t\t\t\t} );\n\n\t\t\t\tface.src = src.length === 1 ? src[ 0 ] : src;\n\t\t\t\tdelete face.file;\n\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t} else {\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t}\n\t\t\treturn formData;\n\t\t} );\n\n\t\treturn fontFacesFormData;\n\t}\n}\n\nexport async function batchInstallFontFaces( fontFamilyId, fontFacesData ) {\n\tconst promises = fontFacesData.map( ( faceData ) =>\n\t\tfetchInstallFontFace( fontFamilyId, faceData )\n\t);\n\tconst responses = await Promise.allSettled( promises );\n\n\tconst results = {\n\t\terrors: [],\n\t\tsuccesses: [],\n\t};\n\n\tresponses.forEach( ( result, index ) => {\n\t\tif ( result.status === 'fulfilled' ) {\n\t\t\tconst response = result.value;\n\t\t\tif ( response.id ) {\n\t\t\t\tresults.successes.push( response );\n\t\t\t} else {\n\t\t\t\tresults.errors.push( {\n\t\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\t\tmessage: `Error: ${ response.message }`,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle network errors or other fetch-related errors\n\t\t\tresults.errors.push( {\n\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\tmessage: `Fetch error: ${ result.reason.message }`,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn results;\n}\n\n/*\n * Downloads a font face asset from a URL to the client and returns a File object.\n */\nexport async function downloadFontFaceAssets( src ) {\n\t// Normalize to an array, since `src` could be a string or array.\n\tsrc = Array.isArray( src ) ? src : [ src ];\n\n\tconst files = await Promise.all(\n\t\tsrc.map( async ( url ) => {\n\t\t\treturn fetch( new Request( url ) )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response.ok ) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Error downloading font face asset from ${ url }. Server responded with status: ${ response.status }`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn response.blob();\n\t\t\t\t} )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst filename = url.split( '/' ).pop();\n\t\t\t\t\tconst file = new File( [ blob ], filename, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\t\t\t\t\treturn file;\n\t\t\t\t} );\n\t\t} )\n\t);\n\n\t// If we only have one file return it (not the array). Otherwise return all of them in the array.\n\treturn files.length === 1 ? files[ 0 ] : files;\n}\n\n/*\n * Determine if a given Font Face is present in a given collection.\n * We determine that a font face has been installed by comparing the fontWeight and fontStyle\n *\n * @param {Object} fontFace The Font Face to seek\n * @param {Array} collection The Collection to seek in\n * @returns True if the font face is found in the collection. Otherwise False.\n */\nexport function checkFontFaceInstalled( fontFace, collection ) {\n\treturn (\n\t\t-1 !==\n\t\tcollection.findIndex( ( collectionFontFace ) => {\n\t\t\treturn (\n\t\t\t\tcollectionFontFace.fontWeight === fontFace.fontWeight &&\n\t\t\t\tcollectionFontFace.fontStyle === fontFace.fontStyle\n\t\t\t);\n\t\t} )\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["privateApis","componentsPrivateApis","FONT_WEIGHTS","FONT_STYLES","unlock","fetchInstallFontFace","formatFontFaceName","File","window","setUIValuesNeeded","font","extraValues","name","fontFamily","slug","isUrlEncoded","url","decodeURIComponent","getFontFaceVariantName","face","weightName","fontWeight","styleName","fontStyle","mergeFontFaces","existing","incoming","map","Map","set","Array","from","values","mergeFontFamilies","has","fontFace","incomingFontFaces","restIncoming","existingFont","get","mergedFontFaces","loadFontFaceInBrowser","source","addTo","dataSource","arrayBuffer","newFont","FontFace","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","getDisplaySrcFromFontFace","input","urlPrefix","src","isArray","startsWith","replace","encodeURI","makeFontFamilyFormData","formData","FormData","kebabCase","category","familyWithValidParameters","fontFamilySettings","append","JSON","stringify","makeFontFacesFormData","fontFacesFormData","item","faceIndex","file","files","forEach","key","fileId","push","length","batchInstallFontFaces","fontFamilyId","fontFacesData","promises","faceData","responses","Promise","allSettled","results","errors","successes","result","index","status","response","value","id","data","message","reason","downloadFontFaceAssets","all","fetch","Request","then","ok","Error","blob","filename","split","pop","type","checkFontFaceInstalled","collection","findIndex","collectionFontFace"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { unlock } from '../../../../lock-unlock';\nimport { fetchInstallFontFace } from '../resolvers';\nimport { formatFontFaceName } from './preview-styles';\n\n/**\n * Browser dependencies\n */\nconst { File } = window;\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t} else {\n\t\treturn;\n\t}\n\n\tconst newFont = new window.FontFace(\n\t\tformatFontFaceName( fontFace.fontFamily ),\n\t\tdataSource,\n\t\t{\n\t\t\tstyle: fontFace.fontStyle,\n\t\t\tweight: fontFace.fontWeight,\n\t\t}\n\t);\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\nexport function getDisplaySrcFromFontFace( input, urlPrefix ) {\n\tif ( ! input ) {\n\t\treturn;\n\t}\n\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// If it is a theme font, we need to make the url absolute\n\tif ( src.startsWith( 'file:.' ) && urlPrefix ) {\n\t\tsrc = src.replace( 'file:.', urlPrefix );\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFontFamilyFormData( fontFamily ) {\n\tconst formData = new FormData();\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\n\tconst { fontFace, category, ...familyWithValidParameters } = fontFamily;\n\tconst fontFamilySettings = {\n\t\t...familyWithValidParameters,\n\t\tslug: kebabCase( fontFamily.slug ),\n\t};\n\n\tformData.append(\n\t\t'font_family_settings',\n\t\tJSON.stringify( fontFamilySettings )\n\t);\n\treturn formData;\n}\n\nexport function makeFontFacesFormData( font ) {\n\tif ( font?.fontFace ) {\n\t\tconst fontFacesFormData = font.fontFace.map( ( item, faceIndex ) => {\n\t\t\tconst face = { ...item };\n\t\t\tconst formData = new FormData();\n\t\t\tif ( face.file ) {\n\t\t\t\t// Normalize to an array, since face.file may be a single file or an array of files.\n\t\t\t\tconst files = Array.isArray( face.file )\n\t\t\t\t\t? face.file\n\t\t\t\t\t: [ face.file ];\n\t\t\t\tconst src = [];\n\n\t\t\t\tfiles.forEach( ( file, key ) => {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ faceIndex }-${ key }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, file, file.name );\n\t\t\t\t\tsrc.push( fileId );\n\t\t\t\t} );\n\n\t\t\t\tface.src = src.length === 1 ? src[ 0 ] : src;\n\t\t\t\tdelete face.file;\n\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t} else {\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t}\n\t\t\treturn formData;\n\t\t} );\n\n\t\treturn fontFacesFormData;\n\t}\n}\n\nexport async function batchInstallFontFaces( fontFamilyId, fontFacesData ) {\n\tconst promises = fontFacesData.map( ( faceData ) =>\n\t\tfetchInstallFontFace( fontFamilyId, faceData )\n\t);\n\tconst responses = await Promise.allSettled( promises );\n\n\tconst results = {\n\t\terrors: [],\n\t\tsuccesses: [],\n\t};\n\n\tresponses.forEach( ( result, index ) => {\n\t\tif ( result.status === 'fulfilled' ) {\n\t\t\tconst response = result.value;\n\t\t\tif ( response.id ) {\n\t\t\t\tresults.successes.push( response );\n\t\t\t} else {\n\t\t\t\tresults.errors.push( {\n\t\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\t\tmessage: `Error: ${ response.message }`,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle network errors or other fetch-related errors\n\t\t\tresults.errors.push( {\n\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\tmessage: `Fetch error: ${ result.reason.message }`,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn results;\n}\n\n/*\n * Downloads a font face asset from a URL to the client and returns a File object.\n */\nexport async function downloadFontFaceAssets( src ) {\n\t// Normalize to an array, since `src` could be a string or array.\n\tsrc = Array.isArray( src ) ? src : [ src ];\n\n\tconst files = await Promise.all(\n\t\tsrc.map( async ( url ) => {\n\t\t\treturn fetch( new Request( url ) )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response.ok ) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Error downloading font face asset from ${ url }. Server responded with status: ${ response.status }`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn response.blob();\n\t\t\t\t} )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst filename = url.split( '/' ).pop();\n\t\t\t\t\tconst file = new File( [ blob ], filename, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\t\t\t\t\treturn file;\n\t\t\t\t} );\n\t\t} )\n\t);\n\n\t// If we only have one file return it (not the array). Otherwise return all of them in the array.\n\treturn files.length === 1 ? files[ 0 ] : files;\n}\n\n/*\n * Determine if a given Font Face is present in a given collection.\n * We determine that a font face has been installed by comparing the fontWeight and fontStyle\n *\n * @param {Object} fontFace The Font Face to seek\n * @param {Array} collection The Collection to seek in\n * @returns True if the font face is found in the collection. Otherwise False.\n */\nexport function checkFontFaceInstalled( fontFace, collection ) {\n\treturn (\n\t\t-1 !==\n\t\tcollection.findIndex( ( collectionFontFace ) => {\n\t\t\treturn (\n\t\t\t\tcollectionFontFace.fontWeight === fontFace.fontWeight &&\n\t\t\t\tcollectionFontFace.fontStyle === fontFace.fontStyle\n\t\t\t);\n\t\t} )\n\t);\n}\n"],"mappings":"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"}
|
package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { unlock } from '../../../../lock-unlock';
|
|
10
|
+
const {
|
|
11
|
+
kebabCase
|
|
12
|
+
} = unlock(componentsPrivateApis);
|
|
1
13
|
export default function makeFamiliesFromFaces(fontFaces) {
|
|
2
14
|
const fontFamiliesObject = fontFaces.reduce((acc, item) => {
|
|
3
15
|
if (!acc[item.fontFamily]) {
|
|
4
16
|
acc[item.fontFamily] = {
|
|
5
17
|
name: item.fontFamily,
|
|
6
18
|
fontFamily: item.fontFamily,
|
|
7
|
-
slug: item.fontFamily.
|
|
19
|
+
slug: kebabCase(item.fontFamily.toLowerCase()),
|
|
8
20
|
fontFace: []
|
|
9
21
|
};
|
|
10
22
|
}
|