@wordpress/edit-site 5.20.1 → 5.21.1-next.f8d8eceb.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/actions/index.js +121 -0
- package/build/components/actions/index.js.map +1 -0
- package/build/components/add-new-template/add-custom-template-modal-content.js +17 -13
- package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build/components/block-editor/resize-handle.js +2 -1
- package/build/components/block-editor/resize-handle.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +12 -4
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +10 -6
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/dataviews/context.js +15 -0
- package/build/components/dataviews/context.js.map +1 -0
- package/build/components/dataviews/dataviews.js +50 -33
- package/build/components/dataviews/dataviews.js.map +1 -1
- package/build/components/dataviews/filters.js +74 -0
- package/build/components/dataviews/filters.js.map +1 -0
- package/build/components/dataviews/in-filter.js +49 -0
- package/build/components/dataviews/in-filter.js.map +1 -0
- package/build/components/dataviews/index.js +0 -7
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews/item-actions.js +62 -0
- package/build/components/dataviews/item-actions.js.map +1 -0
- package/build/components/dataviews/pagination.js +74 -45
- package/build/components/dataviews/pagination.js.map +1 -1
- package/build/components/dataviews/{text-filter.js → search.js} +21 -15
- package/build/components/dataviews/search.js.map +1 -0
- package/build/components/dataviews/view-actions.js +94 -56
- package/build/components/dataviews/view-actions.js.map +1 -1
- package/build/components/dataviews/view-grid.js +59 -0
- package/build/components/dataviews/view-grid.js.map +1 -0
- package/build/components/dataviews/view-list.js +283 -0
- package/build/components/dataviews/view-list.js.map +1 -0
- package/build/components/editor/index.js +2 -1
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +16 -10
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +20 -6
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/screen-block.js +2 -10
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-root.js +1 -2
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/ui.js +3 -4
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/layout/index.js +10 -2
- package/build/components/layout/index.js.map +1 -1
- package/build/components/media/index.js +34 -0
- package/build/components/media/index.js.map +1 -0
- package/build/components/page-actions/index.js +0 -2
- package/build/components/page-actions/index.js.map +1 -1
- package/build/components/page-pages/default-views.js +60 -0
- package/build/components/page-pages/default-views.js.map +1 -0
- package/build/components/page-pages/index.js +174 -107
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-patterns/delete-category-menu-item.js +89 -0
- package/build/components/page-patterns/delete-category-menu-item.js.map +1 -0
- package/build/components/page-patterns/duplicate-menu-item.js +52 -131
- package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build/components/page-patterns/grid-item.js +1 -0
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/header.js +25 -3
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/rename-category-menu-item.js +49 -0
- package/build/components/page-patterns/rename-category-menu-item.js.map +1 -0
- package/build/components/page-patterns/rename-menu-item.js +1 -1
- package/build/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +1 -0
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/pattern-modal/duplicate.js +65 -0
- package/build/components/pattern-modal/duplicate.js.map +1 -0
- package/build/components/pattern-modal/index.js +24 -0
- package/build/components/pattern-modal/index.js.map +1 -0
- package/build/components/pattern-modal/rename.js +42 -0
- package/build/components/pattern-modal/rename.js.map +1 -0
- package/build/components/sidebar/index.js +3 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +72 -0
- package/build/components/sidebar-dataviews/index.js.map +1 -0
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +29 -0
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
- package/build/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
- package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build/hooks/commands/use-common-commands.js +1 -2
- package/build/hooks/commands/use-common-commands.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +50 -0
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/lock-unlock.js +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/store/selectors.js +4 -5
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/actions/index.js +108 -0
- package/build-module/components/actions/index.js.map +1 -0
- package/build-module/components/add-new-template/add-custom-template-modal-content.js +16 -12
- package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build-module/components/block-editor/resize-handle.js +2 -1
- package/build-module/components/block-editor/resize-handle.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +12 -4
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +10 -6
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/dataviews/context.js +7 -0
- package/build-module/components/dataviews/context.js.map +1 -0
- package/build-module/components/dataviews/dataviews.js +49 -32
- package/build-module/components/dataviews/dataviews.js.map +1 -1
- package/build-module/components/dataviews/filters.js +66 -0
- package/build-module/components/dataviews/filters.js.map +1 -0
- package/build-module/components/dataviews/in-filter.js +41 -0
- package/build-module/components/dataviews/in-filter.js.map +1 -0
- package/build-module/components/dataviews/index.js +0 -1
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews/item-actions.js +55 -0
- package/build-module/components/dataviews/item-actions.js.map +1 -0
- package/build-module/components/dataviews/pagination.js +73 -46
- package/build-module/components/dataviews/pagination.js.map +1 -1
- package/build-module/components/dataviews/search.js +42 -0
- package/build-module/components/dataviews/search.js.map +1 -0
- package/build-module/components/dataviews/view-actions.js +95 -54
- package/build-module/components/dataviews/view-actions.js.map +1 -1
- package/build-module/components/dataviews/view-grid.js +51 -0
- package/build-module/components/dataviews/view-grid.js.map +1 -0
- package/build-module/components/dataviews/view-list.js +274 -0
- package/build-module/components/dataviews/view-list.js.map +1 -0
- package/build-module/components/editor/index.js +2 -1
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +16 -10
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +20 -6
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +2 -10
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +1 -2
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/ui.js +3 -4
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/layout/index.js +11 -3
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/media/index.js +26 -0
- package/build-module/components/media/index.js.map +1 -0
- package/build-module/components/page-actions/index.js +0 -2
- package/build-module/components/page-actions/index.js.map +1 -1
- package/build-module/components/page-pages/default-views.js +53 -0
- package/build-module/components/page-pages/default-views.js.map +1 -0
- package/build-module/components/page-pages/index.js +175 -110
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/delete-category-menu-item.js +82 -0
- package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -0
- package/build-module/components/page-patterns/duplicate-menu-item.js +54 -133
- package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/grid-item.js +1 -0
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/header.js +26 -4
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/rename-category-menu-item.js +42 -0
- package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -0
- package/build-module/components/page-patterns/rename-menu-item.js +1 -1
- package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +1 -0
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/pattern-modal/duplicate.js +57 -0
- package/build-module/components/pattern-modal/duplicate.js.map +1 -0
- package/build-module/components/pattern-modal/index.js +14 -0
- package/build-module/components/pattern-modal/index.js.map +1 -0
- package/build-module/components/pattern-modal/rename.js +34 -0
- package/build-module/components/pattern-modal/rename.js.map +1 -0
- package/build-module/components/sidebar/index.js +3 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +64 -0
- package/build-module/components/sidebar-dataviews/index.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +22 -0
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build-module/hooks/commands/use-common-commands.js +1 -2
- package/build-module/hooks/commands/use-common-commands.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +51 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/lock-unlock.js +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/store/selectors.js +4 -5
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +48 -11
- package/build-style/style.css +48 -11
- package/package.json +40 -40
- package/src/components/actions/index.js +123 -0
- package/src/components/add-new-template/add-custom-template-modal-content.js +22 -17
- package/src/components/block-editor/resize-handle.js +1 -0
- package/src/components/block-editor/use-site-editor-settings.js +21 -13
- package/src/components/create-template-part-modal/index.js +9 -5
- package/src/components/dataviews/README.md +194 -0
- package/src/components/dataviews/context.js +7 -0
- package/src/components/dataviews/dataviews.js +55 -34
- package/src/components/dataviews/filters.js +75 -0
- package/src/components/dataviews/in-filter.js +45 -0
- package/src/components/dataviews/index.js +0 -1
- package/src/components/dataviews/item-actions.js +69 -0
- package/src/components/dataviews/pagination.js +80 -59
- package/src/components/dataviews/search.js +41 -0
- package/src/components/dataviews/style.scss +18 -3
- package/src/components/dataviews/view-actions.js +108 -63
- package/src/components/dataviews/view-grid.js +65 -0
- package/src/components/dataviews/view-list.js +348 -0
- package/src/components/editor/index.js +2 -0
- package/src/components/global-styles/font-library-modal/context.js +17 -11
- package/src/components/global-styles/font-library-modal/font-collection.js +19 -11
- package/src/components/global-styles/screen-block.js +2 -9
- package/src/components/global-styles/screen-root.js +1 -2
- package/src/components/global-styles/style.scss +16 -4
- package/src/components/global-styles/ui.js +1 -2
- package/src/components/layout/index.js +12 -4
- package/src/components/media/index.js +25 -0
- package/src/components/page-actions/index.js +1 -7
- package/src/components/page-pages/default-views.js +58 -0
- package/src/components/page-pages/index.js +181 -108
- package/src/components/page-pages/style.scss +3 -0
- package/src/components/page-patterns/delete-category-menu-item.js +104 -0
- package/src/components/page-patterns/duplicate-menu-item.js +68 -181
- package/src/components/page-patterns/grid-item.js +1 -0
- package/src/components/page-patterns/header.js +42 -6
- package/src/components/page-patterns/rename-category-menu-item.js +45 -0
- package/src/components/page-patterns/rename-menu-item.js +2 -2
- package/src/components/page-patterns/style.scss +8 -0
- package/src/components/page-patterns/use-patterns.js +5 -0
- package/src/components/pattern-modal/duplicate.js +53 -0
- package/src/components/pattern-modal/index.js +19 -0
- package/src/components/pattern-modal/rename.js +29 -0
- package/src/components/sidebar/index.js +2 -0
- package/src/components/sidebar-dataviews/index.js +65 -0
- package/src/components/sidebar-edit-mode/template-panel/last-revision.js +4 -0
- package/src/components/sidebar-navigation-screen/style.scss +17 -5
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -7
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -8
- package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +32 -0
- package/src/components/sidebar-navigation-screen-template/home-template-details.js +21 -7
- package/src/hooks/commands/use-common-commands.js +1 -2
- package/src/hooks/commands/use-edit-mode-commands.js +43 -0
- package/src/lock-unlock.js +1 -1
- package/src/store/selectors.js +9 -10
- package/src/style.scss +1 -0
- package/build/components/dataviews/list-view.js +0 -89
- package/build/components/dataviews/list-view.js.map +0 -1
- package/build/components/dataviews/text-filter.js.map +0 -1
- package/build-module/components/dataviews/list-view.js +0 -80
- package/build-module/components/dataviews/list-view.js.map +0 -1
- package/build-module/components/dataviews/text-filter.js +0 -36
- package/build-module/components/dataviews/text-filter.js.map +0 -1
- package/src/components/dataviews/list-view.js +0 -106
- package/src/components/dataviews/text-filter.js +0 -37
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _reactTable = require("@tanstack/react-table");
|
|
10
|
+
var _i18n = require("@wordpress/i18n");
|
|
11
|
+
var _icons = require("@wordpress/icons");
|
|
12
|
+
var _components = require("@wordpress/components");
|
|
13
|
+
var _element = require("@wordpress/element");
|
|
14
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
15
|
+
var _itemActions = _interopRequireDefault(require("./item-actions"));
|
|
16
|
+
/**
|
|
17
|
+
* External dependencies
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* WordPress dependencies
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Internal dependencies
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
const {
|
|
29
|
+
DropdownMenuV2,
|
|
30
|
+
DropdownMenuGroupV2,
|
|
31
|
+
DropdownMenuItemV2,
|
|
32
|
+
DropdownMenuSeparatorV2
|
|
33
|
+
} = (0, _lockUnlock.unlock)(_components.privateApis);
|
|
34
|
+
const EMPTY_OBJECT = {};
|
|
35
|
+
const sortingItemsInfo = {
|
|
36
|
+
asc: {
|
|
37
|
+
icon: _icons.arrowUp,
|
|
38
|
+
label: (0, _i18n.__)('Sort ascending')
|
|
39
|
+
},
|
|
40
|
+
desc: {
|
|
41
|
+
icon: _icons.arrowDown,
|
|
42
|
+
label: (0, _i18n.__)('Sort descending')
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const sortIcons = {
|
|
46
|
+
asc: _icons.chevronUp,
|
|
47
|
+
desc: _icons.chevronDown
|
|
48
|
+
};
|
|
49
|
+
function HeaderMenu({
|
|
50
|
+
dataView,
|
|
51
|
+
header
|
|
52
|
+
}) {
|
|
53
|
+
if (header.isPlaceholder) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const text = (0, _reactTable.flexRender)(header.column.columnDef.header, header.getContext());
|
|
57
|
+
const isSortable = !!header.column.getCanSort();
|
|
58
|
+
const isHidable = !!header.column.getCanHide();
|
|
59
|
+
if (!isSortable && !isHidable) {
|
|
60
|
+
return text;
|
|
61
|
+
}
|
|
62
|
+
const sortedDirection = header.column.getIsSorted();
|
|
63
|
+
return (0, _react.createElement)(DropdownMenuV2, {
|
|
64
|
+
align: "start",
|
|
65
|
+
trigger: (0, _react.createElement)(_components.Button, {
|
|
66
|
+
icon: sortIcons[header.column.getIsSorted()],
|
|
67
|
+
iconPosition: "right",
|
|
68
|
+
text: text,
|
|
69
|
+
style: {
|
|
70
|
+
padding: 0
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
}, (0, _react.createElement)(WithSeparators, null, isSortable && (0, _react.createElement)(DropdownMenuGroupV2, null, Object.entries(sortingItemsInfo).map(([direction, info]) => (0, _react.createElement)(DropdownMenuItemV2, {
|
|
74
|
+
key: direction,
|
|
75
|
+
prefix: (0, _react.createElement)(_components.Icon, {
|
|
76
|
+
icon: info.icon
|
|
77
|
+
}),
|
|
78
|
+
suffix: sortedDirection === direction && (0, _react.createElement)(_components.Icon, {
|
|
79
|
+
icon: _icons.check
|
|
80
|
+
}),
|
|
81
|
+
onSelect: event => {
|
|
82
|
+
event.preventDefault();
|
|
83
|
+
if (sortedDirection === direction) {
|
|
84
|
+
dataView.resetSorting();
|
|
85
|
+
} else {
|
|
86
|
+
dataView.setSorting([{
|
|
87
|
+
id: header.column.id,
|
|
88
|
+
desc: direction === 'desc'
|
|
89
|
+
}]);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}, info.label))), isHidable && (0, _react.createElement)(DropdownMenuItemV2, {
|
|
93
|
+
prefix: (0, _react.createElement)(_components.Icon, {
|
|
94
|
+
icon: _icons.unseen
|
|
95
|
+
}),
|
|
96
|
+
onSelect: event => {
|
|
97
|
+
event.preventDefault();
|
|
98
|
+
header.column.getToggleVisibilityHandler()(event);
|
|
99
|
+
}
|
|
100
|
+
}, (0, _i18n.__)('Hide'))));
|
|
101
|
+
}
|
|
102
|
+
function WithSeparators({
|
|
103
|
+
children
|
|
104
|
+
}) {
|
|
105
|
+
return _element.Children.toArray(children).filter(Boolean).map((child, i) => (0, _react.createElement)(_element.Fragment, {
|
|
106
|
+
key: i
|
|
107
|
+
}, i > 0 && (0, _react.createElement)(DropdownMenuSeparatorV2, null), child));
|
|
108
|
+
}
|
|
109
|
+
function ViewList({
|
|
110
|
+
view,
|
|
111
|
+
onChangeView,
|
|
112
|
+
fields,
|
|
113
|
+
actions,
|
|
114
|
+
data,
|
|
115
|
+
isLoading = false,
|
|
116
|
+
paginationInfo
|
|
117
|
+
}) {
|
|
118
|
+
const columns = (0, _element.useMemo)(() => {
|
|
119
|
+
const _columns = fields.map(field => {
|
|
120
|
+
const {
|
|
121
|
+
render,
|
|
122
|
+
getValue,
|
|
123
|
+
...column
|
|
124
|
+
} = field;
|
|
125
|
+
column.cell = props => render({
|
|
126
|
+
item: props.row.original,
|
|
127
|
+
view
|
|
128
|
+
});
|
|
129
|
+
if (getValue) {
|
|
130
|
+
column.accessorFn = item => getValue({
|
|
131
|
+
item
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return column;
|
|
135
|
+
});
|
|
136
|
+
if (actions?.length) {
|
|
137
|
+
_columns.push({
|
|
138
|
+
header: (0, _react.createElement)(_components.VisuallyHidden, null, (0, _i18n.__)('Actions')),
|
|
139
|
+
id: 'actions',
|
|
140
|
+
cell: props => {
|
|
141
|
+
return (0, _react.createElement)(_itemActions.default, {
|
|
142
|
+
item: props.row.original,
|
|
143
|
+
actions: actions
|
|
144
|
+
});
|
|
145
|
+
},
|
|
146
|
+
enableHiding: false
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
return _columns;
|
|
150
|
+
}, [fields, actions, view]);
|
|
151
|
+
const columnVisibility = (0, _element.useMemo)(() => {
|
|
152
|
+
if (!view.hiddenFields?.length) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
return view.hiddenFields.reduce((accumulator, fieldId) => ({
|
|
156
|
+
...accumulator,
|
|
157
|
+
[fieldId]: false
|
|
158
|
+
}), {});
|
|
159
|
+
}, [view.hiddenFields]);
|
|
160
|
+
const dataView = (0, _reactTable.useReactTable)({
|
|
161
|
+
data,
|
|
162
|
+
columns,
|
|
163
|
+
manualSorting: true,
|
|
164
|
+
manualFiltering: true,
|
|
165
|
+
manualPagination: true,
|
|
166
|
+
enableRowSelection: true,
|
|
167
|
+
state: {
|
|
168
|
+
sorting: view.sort ? [{
|
|
169
|
+
id: view.sort.field,
|
|
170
|
+
desc: view.sort.direction === 'desc'
|
|
171
|
+
}] : [],
|
|
172
|
+
globalFilter: view.search,
|
|
173
|
+
pagination: {
|
|
174
|
+
pageIndex: view.page,
|
|
175
|
+
pageSize: view.perPage
|
|
176
|
+
},
|
|
177
|
+
columnVisibility: columnVisibility !== null && columnVisibility !== void 0 ? columnVisibility : EMPTY_OBJECT
|
|
178
|
+
},
|
|
179
|
+
onSortingChange: sortingUpdater => {
|
|
180
|
+
onChangeView(currentView => {
|
|
181
|
+
const sort = typeof sortingUpdater === 'function' ? sortingUpdater(currentView.sort ? [{
|
|
182
|
+
id: currentView.sort.field,
|
|
183
|
+
desc: currentView.sort.direction === 'desc'
|
|
184
|
+
}] : []) : sortingUpdater;
|
|
185
|
+
if (!sort.length) {
|
|
186
|
+
return {
|
|
187
|
+
...currentView,
|
|
188
|
+
sort: {}
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const [{
|
|
192
|
+
id,
|
|
193
|
+
desc
|
|
194
|
+
}] = sort;
|
|
195
|
+
return {
|
|
196
|
+
...currentView,
|
|
197
|
+
sort: {
|
|
198
|
+
field: id,
|
|
199
|
+
direction: desc ? 'desc' : 'asc'
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
});
|
|
203
|
+
},
|
|
204
|
+
onColumnVisibilityChange: columnVisibilityUpdater => {
|
|
205
|
+
onChangeView(currentView => {
|
|
206
|
+
const hiddenFields = Object.entries(columnVisibilityUpdater()).reduce((accumulator, [fieldId, value]) => {
|
|
207
|
+
if (value) {
|
|
208
|
+
return accumulator.filter(id => id !== fieldId);
|
|
209
|
+
}
|
|
210
|
+
return [...accumulator, fieldId];
|
|
211
|
+
}, [...(currentView.hiddenFields || [])]);
|
|
212
|
+
return {
|
|
213
|
+
...currentView,
|
|
214
|
+
hiddenFields
|
|
215
|
+
};
|
|
216
|
+
});
|
|
217
|
+
},
|
|
218
|
+
onGlobalFilterChange: value => {
|
|
219
|
+
onChangeView({
|
|
220
|
+
...view,
|
|
221
|
+
search: value,
|
|
222
|
+
page: 0
|
|
223
|
+
});
|
|
224
|
+
},
|
|
225
|
+
onPaginationChange: paginationUpdater => {
|
|
226
|
+
onChangeView(currentView => {
|
|
227
|
+
const {
|
|
228
|
+
pageIndex,
|
|
229
|
+
pageSize
|
|
230
|
+
} = paginationUpdater({
|
|
231
|
+
pageIndex: currentView.page,
|
|
232
|
+
pageSize: currentView.perPage
|
|
233
|
+
});
|
|
234
|
+
return {
|
|
235
|
+
...view,
|
|
236
|
+
page: pageIndex,
|
|
237
|
+
perPage: pageSize
|
|
238
|
+
};
|
|
239
|
+
});
|
|
240
|
+
},
|
|
241
|
+
getCoreRowModel: (0, _reactTable.getCoreRowModel)(),
|
|
242
|
+
getFilteredRowModel: (0, _reactTable.getFilteredRowModel)(),
|
|
243
|
+
getSortedRowModel: (0, _reactTable.getSortedRowModel)(),
|
|
244
|
+
getPaginationRowModel: (0, _reactTable.getPaginationRowModel)(),
|
|
245
|
+
pageCount: paginationInfo.totalPages
|
|
246
|
+
});
|
|
247
|
+
const {
|
|
248
|
+
rows
|
|
249
|
+
} = dataView.getRowModel();
|
|
250
|
+
const hasRows = !!rows?.length;
|
|
251
|
+
if (isLoading) {
|
|
252
|
+
// TODO:Add spinner or progress bar..
|
|
253
|
+
return (0, _react.createElement)("h3", null, (0, _i18n.__)('Loading'));
|
|
254
|
+
}
|
|
255
|
+
return (0, _react.createElement)("div", {
|
|
256
|
+
className: "dataviews-list-view-wrapper"
|
|
257
|
+
}, hasRows && (0, _react.createElement)("table", {
|
|
258
|
+
className: "dataviews-list-view"
|
|
259
|
+
}, (0, _react.createElement)("thead", null, dataView.getHeaderGroups().map(headerGroup => (0, _react.createElement)("tr", {
|
|
260
|
+
key: headerGroup.id
|
|
261
|
+
}, headerGroup.headers.map(header => (0, _react.createElement)("th", {
|
|
262
|
+
key: header.id,
|
|
263
|
+
colSpan: header.colSpan,
|
|
264
|
+
style: {
|
|
265
|
+
width: header.column.columnDef.width || undefined,
|
|
266
|
+
maxWidth: header.column.columnDef.maxWidth || undefined
|
|
267
|
+
}
|
|
268
|
+
}, (0, _react.createElement)(HeaderMenu, {
|
|
269
|
+
dataView: dataView,
|
|
270
|
+
header: header
|
|
271
|
+
})))))), (0, _react.createElement)("tbody", null, rows.map(row => (0, _react.createElement)("tr", {
|
|
272
|
+
key: row.id
|
|
273
|
+
}, row.getVisibleCells().map(cell => (0, _react.createElement)("td", {
|
|
274
|
+
key: cell.id,
|
|
275
|
+
style: {
|
|
276
|
+
width: cell.column.columnDef.width || undefined,
|
|
277
|
+
maxWidth: cell.column.columnDef.maxWidth || undefined
|
|
278
|
+
}
|
|
279
|
+
}, (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext()))))))), !hasRows && (0, _react.createElement)("p", null, (0, _i18n.__)('no results')));
|
|
280
|
+
}
|
|
281
|
+
var _default = ViewList;
|
|
282
|
+
exports.default = _default;
|
|
283
|
+
//# sourceMappingURL=view-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactTable","require","_i18n","_icons","_components","_element","_lockUnlock","_itemActions","_interopRequireDefault","DropdownMenuV2","DropdownMenuGroupV2","DropdownMenuItemV2","DropdownMenuSeparatorV2","unlock","componentsPrivateApis","EMPTY_OBJECT","sortingItemsInfo","asc","icon","arrowUp","label","__","desc","arrowDown","sortIcons","chevronUp","chevronDown","HeaderMenu","dataView","header","isPlaceholder","text","flexRender","column","columnDef","getContext","isSortable","getCanSort","isHidable","getCanHide","sortedDirection","getIsSorted","_react","createElement","align","trigger","Button","iconPosition","style","padding","WithSeparators","Object","entries","map","direction","info","key","prefix","Icon","suffix","check","onSelect","event","preventDefault","resetSorting","setSorting","id","unseen","getToggleVisibilityHandler","children","Children","toArray","filter","Boolean","child","i","Fragment","ViewList","view","onChangeView","fields","actions","data","isLoading","paginationInfo","columns","useMemo","_columns","field","render","getValue","cell","props","item","row","original","accessorFn","length","push","VisuallyHidden","default","enableHiding","columnVisibility","hiddenFields","reduce","accumulator","fieldId","useReactTable","manualSorting","manualFiltering","manualPagination","enableRowSelection","state","sorting","sort","globalFilter","search","pagination","pageIndex","page","pageSize","perPage","onSortingChange","sortingUpdater","currentView","onColumnVisibilityChange","columnVisibilityUpdater","value","onGlobalFilterChange","onPaginationChange","paginationUpdater","getCoreRowModel","getFilteredRowModel","getSortedRowModel","getPaginationRowModel","pageCount","totalPages","rows","getRowModel","hasRows","className","getHeaderGroups","headerGroup","headers","colSpan","width","undefined","maxWidth","getVisibleCells","_default","exports"],"sources":["@wordpress/edit-site/src/components/dataviews/view-list.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tgetCoreRowModel,\n\tgetFilteredRowModel,\n\tgetSortedRowModel,\n\tgetPaginationRowModel,\n\tuseReactTable,\n\tflexRender,\n} from '@tanstack/react-table';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tunseen,\n\tcheck,\n\tarrowUp,\n\tarrowDown,\n} from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useMemo, Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from './item-actions';\n\nconst {\n\tDropdownMenuV2,\n\tDropdownMenuGroupV2,\n\tDropdownMenuItemV2,\n\tDropdownMenuSeparatorV2,\n} = unlock( componentsPrivateApis );\n\nconst EMPTY_OBJECT = {};\nconst sortingItemsInfo = {\n\tasc: { icon: arrowUp, label: __( 'Sort ascending' ) },\n\tdesc: { icon: arrowDown, label: __( 'Sort descending' ) },\n};\nconst sortIcons = { asc: chevronUp, desc: chevronDown };\nfunction HeaderMenu( { dataView, header } ) {\n\tif ( header.isPlaceholder ) {\n\t\treturn null;\n\t}\n\tconst text = flexRender(\n\t\theader.column.columnDef.header,\n\t\theader.getContext()\n\t);\n\tconst isSortable = !! header.column.getCanSort();\n\tconst isHidable = !! header.column.getCanHide();\n\tif ( ! isSortable && ! isHidable ) {\n\t\treturn text;\n\t}\n\tconst sortedDirection = header.column.getIsSorted();\n\treturn (\n\t\t<DropdownMenuV2\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\ticon={ sortIcons[ header.column.getIsSorted() ] }\n\t\t\t\t\ticonPosition=\"right\"\n\t\t\t\t\ttext={ text }\n\t\t\t\t\tstyle={ { padding: 0 } }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<WithSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroupV2>\n\t\t\t\t\t\t{ Object.entries( sortingItemsInfo ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => (\n\t\t\t\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ info.icon } /> }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\tsortedDirection === direction && (\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tif ( sortedDirection === direction ) {\n\t\t\t\t\t\t\t\t\t\t\tdataView.resetSorting();\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tdataView.setSorting( [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tid: header.column.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdesc: direction === 'desc',\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t</DropdownMenuItemV2>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenuGroupV2>\n\t\t\t\t) }\n\t\t\t\t{ isHidable && (\n\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\theader.column.getToggleVisibilityHandler()( event );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Hide' ) }\n\t\t\t\t\t</DropdownMenuItemV2>\n\t\t\t\t) }\n\t\t\t</WithSeparators>\n\t\t</DropdownMenuV2>\n\t);\n}\n\nfunction WithSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparatorV2 /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nfunction ViewList( {\n\tview,\n\tonChangeView,\n\tfields,\n\tactions,\n\tdata,\n\tisLoading = false,\n\tpaginationInfo,\n} ) {\n\tconst columns = useMemo( () => {\n\t\tconst _columns = fields.map( ( field ) => {\n\t\t\tconst { render, getValue, ...column } = field;\n\t\t\tcolumn.cell = ( props ) =>\n\t\t\t\trender( { item: props.row.original, view } );\n\t\t\tif ( getValue ) {\n\t\t\t\tcolumn.accessorFn = ( item ) => getValue( { item } );\n\t\t\t}\n\t\t\treturn column;\n\t\t} );\n\t\tif ( actions?.length ) {\n\t\t\t_columns.push( {\n\t\t\t\theader: <VisuallyHidden>{ __( 'Actions' ) }</VisuallyHidden>,\n\t\t\t\tid: 'actions',\n\t\t\t\tcell: ( props ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ItemActions\n\t\t\t\t\t\t\titem={ props.row.original }\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableHiding: false,\n\t\t\t} );\n\t\t}\n\n\t\treturn _columns;\n\t}, [ fields, actions, view ] );\n\n\tconst columnVisibility = useMemo( () => {\n\t\tif ( ! view.hiddenFields?.length ) {\n\t\t\treturn;\n\t\t}\n\t\treturn view.hiddenFields.reduce(\n\t\t\t( accumulator, fieldId ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ fieldId ]: false,\n\t\t\t} ),\n\t\t\t{}\n\t\t);\n\t}, [ view.hiddenFields ] );\n\n\tconst dataView = useReactTable( {\n\t\tdata,\n\t\tcolumns,\n\t\tmanualSorting: true,\n\t\tmanualFiltering: true,\n\t\tmanualPagination: true,\n\t\tenableRowSelection: true,\n\t\tstate: {\n\t\t\tsorting: view.sort\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: view.sort.field,\n\t\t\t\t\t\t\tdesc: view.sort.direction === 'desc',\n\t\t\t\t\t\t},\n\t\t\t\t ]\n\t\t\t\t: [],\n\t\t\tglobalFilter: view.search,\n\t\t\tpagination: {\n\t\t\t\tpageIndex: view.page,\n\t\t\t\tpageSize: view.perPage,\n\t\t\t},\n\t\t\tcolumnVisibility: columnVisibility ?? EMPTY_OBJECT,\n\t\t},\n\t\tonSortingChange: ( sortingUpdater ) => {\n\t\t\tonChangeView( ( currentView ) => {\n\t\t\t\tconst sort =\n\t\t\t\t\ttypeof sortingUpdater === 'function'\n\t\t\t\t\t\t? sortingUpdater(\n\t\t\t\t\t\t\t\tcurrentView.sort\n\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: currentView.sort.field,\n\t\t\t\t\t\t\t\t\t\t\t\tdesc:\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentView.sort\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.direction === 'desc',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sortingUpdater;\n\t\t\t\tif ( ! sort.length ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentView,\n\t\t\t\t\t\tsort: {},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst [ { id, desc } ] = sort;\n\t\t\t\treturn {\n\t\t\t\t\t...currentView,\n\t\t\t\t\tsort: { field: id, direction: desc ? 'desc' : 'asc' },\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\tonColumnVisibilityChange: ( columnVisibilityUpdater ) => {\n\t\t\tonChangeView( ( currentView ) => {\n\t\t\t\tconst hiddenFields = Object.entries(\n\t\t\t\t\tcolumnVisibilityUpdater()\n\t\t\t\t).reduce(\n\t\t\t\t\t( accumulator, [ fieldId, value ] ) => {\n\t\t\t\t\t\tif ( value ) {\n\t\t\t\t\t\t\treturn accumulator.filter(\n\t\t\t\t\t\t\t\t( id ) => id !== fieldId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [ ...accumulator, fieldId ];\n\t\t\t\t\t},\n\t\t\t\t\t[ ...( currentView.hiddenFields || [] ) ]\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t...currentView,\n\t\t\t\t\thiddenFields,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\tonGlobalFilterChange: ( value ) => {\n\t\t\tonChangeView( { ...view, search: value, page: 0 } );\n\t\t},\n\t\tonPaginationChange: ( paginationUpdater ) => {\n\t\t\tonChangeView( ( currentView ) => {\n\t\t\t\tconst { pageIndex, pageSize } = paginationUpdater( {\n\t\t\t\t\tpageIndex: currentView.page,\n\t\t\t\t\tpageSize: currentView.perPage,\n\t\t\t\t} );\n\t\t\t\treturn { ...view, page: pageIndex, perPage: pageSize };\n\t\t\t} );\n\t\t},\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\tgetSortedRowModel: getSortedRowModel(),\n\t\tgetPaginationRowModel: getPaginationRowModel(),\n\t\tpageCount: paginationInfo.totalPages,\n\t} );\n\n\tconst { rows } = dataView.getRowModel();\n\tconst hasRows = !! rows?.length;\n\tif ( isLoading ) {\n\t\t// TODO:Add spinner or progress bar..\n\t\treturn <h3>{ __( 'Loading' ) }</h3>;\n\t}\n\treturn (\n\t\t<div className=\"dataviews-list-view-wrapper\">\n\t\t\t{ hasRows && (\n\t\t\t\t<table className=\"dataviews-list-view\">\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t{ dataView.getHeaderGroups().map( ( headerGroup ) => (\n\t\t\t\t\t\t\t<tr key={ headerGroup.id }>\n\t\t\t\t\t\t\t\t{ headerGroup.headers.map( ( header ) => (\n\t\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\t\tkey={ header.id }\n\t\t\t\t\t\t\t\t\t\tcolSpan={ header.colSpan }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef.width ||\n\t\t\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth:\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef\n\t\t\t\t\t\t\t\t\t\t\t\t\t.maxWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<HeaderMenu\n\t\t\t\t\t\t\t\t\t\t\tdataView={ dataView }\n\t\t\t\t\t\t\t\t\t\t\theader={ header }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t{ rows.map( ( row ) => (\n\t\t\t\t\t\t\t<tr key={ row.id }>\n\t\t\t\t\t\t\t\t{ row.getVisibleCells().map( ( cell ) => (\n\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\tkey={ cell.id }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef.width ||\n\t\t\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth:\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef\n\t\t\t\t\t\t\t\t\t\t\t\t\t.maxWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ flexRender(\n\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef.cell,\n\t\t\t\t\t\t\t\t\t\t\tcell.getContext()\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t) }\n\t\t\t{ ! hasRows && <p>{ __( 'no results' ) }</p> }\n\t\t</div>\n\t);\n}\n\nexport default ViewList;\n"],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ var _canvasLoader = _interopRequireDefault(require("../canvas-loader"));
|
|
|
32
32
|
var _lockUnlock = require("../../lock-unlock");
|
|
33
33
|
var _useEditedEntityRecord = _interopRequireDefault(require("../use-edited-entity-record"));
|
|
34
34
|
var _sidebarFixedBottom = require("../sidebar-edit-mode/sidebar-fixed-bottom");
|
|
35
|
+
var _patternModal = _interopRequireDefault(require("../pattern-modal"));
|
|
35
36
|
var _constants = require("../../utils/constants");
|
|
36
37
|
/**
|
|
37
38
|
* External dependencies
|
|
@@ -187,7 +188,7 @@ function Editor({
|
|
|
187
188
|
notices: (0, _react.createElement)(_editor.EditorSnackbars, null),
|
|
188
189
|
content: (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_globalStylesRenderer.GlobalStylesRenderer, null), isEditMode && (0, _react.createElement)(_editor.EditorNotices, null), showVisualEditor && editedPost && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor2.default, null), (0, _react.createElement)(BlockRemovalWarningModal, {
|
|
189
190
|
rules: blockRemovalRules
|
|
190
|
-
})), editorMode === 'text' && editedPost && isEditMode && (0, _react.createElement)(_codeEditor.default, null), hasLoadedPost && !editedPost && (0, _react.createElement)(_components.Notice, {
|
|
191
|
+
}), (0, _react.createElement)(_patternModal.default, null)), editorMode === 'text' && editedPost && isEditMode && (0, _react.createElement)(_codeEditor.default, null), hasLoadedPost && !editedPost && (0, _react.createElement)(_components.Notice, {
|
|
191
192
|
status: "warning",
|
|
192
193
|
isDismissible: false
|
|
193
194
|
}, (0, _i18n.__)("You attempted to edit an item that doesn't exist. Perhaps it was deleted?")), isEditMode && (0, _react.createElement)(_editMode.default, null)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_data","_components","_compose","_coreData","_preferences","_blockEditor","_interface","_editor","_i18n","_sidebarEditMode","_blockEditor2","_codeEditor","_editMode","_inserterSidebar","_listViewSidebar","_welcomeGuide","_startTemplateOptions","_store","_globalStylesRenderer","_useTitle","_canvasLoader","_lockUnlock","_useEditedEntityRecord","_sidebarFixedBottom","_constants","BlockRemovalWarningModal","unlock","blockEditorPrivateApis","interfaceLabels","body","__","sidebar","actions","footer","blockRemovalRules","Editor","listViewToggleElement","isLoading","record","editedPost","getTitle","isLoaded","hasLoadedPost","useEditedEntityRecord","id","editedPostId","type","editedPostType","context","editorMode","canvasMode","blockEditorMode","isRightSidebarOpen","isInserterOpen","isListViewOpen","showIconLabels","showBlockBreadcrumbs","hasPageContentFocus","useSelect","select","getEditedPostContext","getEditorMode","getCanvasMode","isInserterOpened","isListViewOpened","_hasPageContentFocus","editSiteStore","__unstableGetEditorMode","blockEditorStore","getActiveComplementaryArea","interfaceStore","name","preferencesStore","get","setEditedPostContext","useDispatch","isViewMode","isEditMode","showVisualEditor","shouldShowBlockBreadcrumbs","shouldShowInserter","shouldShowListView","secondarySidebarLabel","blockContext","useMemo","postType","postId","nonPostFields","queryContext","page","newQueryContext","title","_POST_TYPE_LABELS$edi","sprintf","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","useTitle","loadingProgressId","useInstanceId","CanvasLoader","contentProps","undefined","_react","createElement","Fragment","default","EntityProvider","kind","BlockContextProvider","value","SidebarComplementaryAreaFills","InterfaceSkeleton","isDistractionFree","enableRegionNavigation","className","classnames","notices","EditorSnackbars","content","GlobalStylesRenderer","EditorNotices","rules","Notice","status","isDismissible","secondarySidebar","ComplementaryArea","Slot","scope","SidebarFixedBottomSlot","BlockBreadcrumb","rootLabelText","labels"],"sources":["@wordpress/edit-site/src/components/editor/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Notice } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { EntityProvider } from '@wordpress/core-data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tBlockContextProvider,\n\tBlockBreadcrumb,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { EditorNotices, EditorSnackbars } from '@wordpress/editor';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { SidebarComplementaryAreaFills } from '../sidebar-edit-mode';\nimport BlockEditor from '../block-editor';\nimport CodeEditor from '../code-editor';\nimport KeyboardShortcutsEditMode from '../keyboard-shortcuts/edit-mode';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport WelcomeGuide from '../welcome-guide';\nimport StartTemplateOptions from '../start-template-options';\nimport { store as editSiteStore } from '../../store';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport useTitle from '../routes/use-title';\nimport CanvasLoader from '../canvas-loader';\nimport { unlock } from '../../lock-unlock';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport { SidebarFixedBottomSlot } from '../sidebar-edit-mode/sidebar-fixed-bottom';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst { BlockRemovalWarningModal } = unlock( blockEditorPrivateApis );\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\n// Prevent accidental removal of certain blocks, asking the user for\n// confirmation.\nconst blockRemovalRules = {\n\t'core/query': __( 'Query Loop displays a list of posts or pages.' ),\n\t'core/post-content': __(\n\t\t'Post Content displays the content of a post or page.'\n\t),\n\t'core/post-template': __(\n\t\t'Post Template displays each post or page in a Query Loop.'\n\t),\n};\n\nexport default function Editor( { listViewToggleElement, isLoading } ) {\n\tconst {\n\t\trecord: editedPost,\n\t\tgetTitle,\n\t\tisLoaded: hasLoadedPost,\n\t} = useEditedEntityRecord();\n\n\tconst { id: editedPostId, type: editedPostType } = editedPost;\n\n\tconst {\n\t\tcontext,\n\t\teditorMode,\n\t\tcanvasMode,\n\t\tblockEditorMode,\n\t\tisRightSidebarOpen,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tshowIconLabels,\n\t\tshowBlockBreadcrumbs,\n\t\thasPageContentFocus,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEditedPostContext,\n\t\t\tgetEditorMode,\n\t\t\tgetCanvasMode,\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t\thasPageContentFocus: _hasPageContentFocus,\n\t\t} = unlock( select( editSiteStore ) );\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\n\t\t// The currently selected entity to display.\n\t\t// Typically template or template part in the site editor.\n\t\treturn {\n\t\t\tcontext: getEditedPostContext(),\n\t\t\teditorMode: getEditorMode(),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisRightSidebarOpen: getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowIconLabels: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t\thasPageContentFocus: _hasPageContentFocus(),\n\t\t};\n\t}, [] );\n\tconst { setEditedPostContext } = useDispatch( editSiteStore );\n\n\tconst isViewMode = canvasMode === 'view';\n\tconst isEditMode = canvasMode === 'edit';\n\tconst showVisualEditor = isViewMode || editorMode === 'visual';\n\tconst shouldShowBlockBreadcrumbs =\n\t\tshowBlockBreadcrumbs &&\n\t\tisEditMode &&\n\t\tshowVisualEditor &&\n\t\tblockEditorMode !== 'zoom-out';\n\tconst shouldShowInserter = isEditMode && showVisualEditor && isInserterOpen;\n\tconst shouldShowListView = isEditMode && showVisualEditor && isListViewOpen;\n\tconst secondarySidebarLabel = isListViewOpen\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\tconst blockContext = useMemo( () => {\n\t\tconst { postType, postId, ...nonPostFields } = context ?? {};\n\t\treturn {\n\t\t\t...( hasPageContentFocus ? context : nonPostFields ),\n\t\t\tqueryContext: [\n\t\t\t\tcontext?.queryContext || { page: 1 },\n\t\t\t\t( newQueryContext ) =>\n\t\t\t\t\tsetEditedPostContext( {\n\t\t\t\t\t\t...context,\n\t\t\t\t\t\tqueryContext: {\n\t\t\t\t\t\t\t...context?.queryContext,\n\t\t\t\t\t\t\t...newQueryContext,\n\t\t\t\t\t\t},\n\t\t\t\t\t} ),\n\t\t\t],\n\t\t};\n\t}, [ hasPageContentFocus, context, setEditedPostContext ] );\n\n\tlet title;\n\tif ( hasLoadedPost ) {\n\t\ttitle = sprintf(\n\t\t\t// translators: A breadcrumb trail in browser tab. %1$s: title of template being edited, %2$s: type of template (Template or Template Part).\n\t\t\t__( '%1$s ‹ %2$s ‹ Editor' ),\n\t\t\tgetTitle(),\n\t\t\tPOST_TYPE_LABELS[ editedPostType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( hasLoadedPost && title );\n\n\tconst loadingProgressId = useInstanceId(\n\t\tCanvasLoader,\n\t\t'edit-site-editor__loading-progress'\n\t);\n\n\tconst contentProps = isLoading\n\t\t? {\n\t\t\t\t'aria-busy': 'true',\n\t\t\t\t'aria-describedby': loadingProgressId,\n\t\t }\n\t\t: undefined;\n\n\treturn (\n\t\t<>\n\t\t\t{ isLoading ? <CanvasLoader id={ loadingProgressId } /> : null }\n\t\t\t{ isEditMode && <WelcomeGuide /> }\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ editedPostType }\n\t\t\t\t\tid={ editedPostId }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ blockContext }>\n\t\t\t\t\t\t<SidebarComplementaryAreaFills />\n\t\t\t\t\t\t{ isEditMode && <StartTemplateOptions /> }\n\t\t\t\t\t\t<InterfaceSkeleton\n\t\t\t\t\t\t\tisDistractionFree={ true }\n\t\t\t\t\t\t\tenableRegionNavigation={ false }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'edit-site-editor__interface-skeleton',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t\t\t\t\t\t\t'is-loading': isLoading,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<GlobalStylesRenderer />\n\t\t\t\t\t\t\t\t\t{ isEditMode && <EditorNotices /> }\n\t\t\t\t\t\t\t\t\t{ showVisualEditor && editedPost && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<BlockEditor />\n\t\t\t\t\t\t\t\t\t\t\t<BlockRemovalWarningModal\n\t\t\t\t\t\t\t\t\t\t\t\trules={ blockRemovalRules }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ editorMode === 'text' &&\n\t\t\t\t\t\t\t\t\t\teditedPost &&\n\t\t\t\t\t\t\t\t\t\tisEditMode && <CodeEditor /> }\n\t\t\t\t\t\t\t\t\t{ hasLoadedPost && ! editedPost && (\n\t\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\"You attempted to edit an item that doesn't exist. Perhaps it was deleted?\"\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isEditMode && (\n\t\t\t\t\t\t\t\t\t\t<KeyboardShortcutsEditMode />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontentProps={ contentProps }\n\t\t\t\t\t\t\tsecondarySidebar={\n\t\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\t\t( ( shouldShowInserter && (\n\t\t\t\t\t\t\t\t\t<InserterSidebar />\n\t\t\t\t\t\t\t\t) ) ||\n\t\t\t\t\t\t\t\t\t( shouldShowListView && (\n\t\t\t\t\t\t\t\t\t\t<ListViewSidebar\n\t\t\t\t\t\t\t\t\t\t\tlistViewToggleElement={\n\t\t\t\t\t\t\t\t\t\t\t\tlistViewToggleElement\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) ) )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsidebar={\n\t\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\t\tisRightSidebarOpen && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t\t\t\t\t\t<SidebarFixedBottomSlot />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfooter={\n\t\t\t\t\t\t\t\tshouldShowBlockBreadcrumbs && (\n\t\t\t\t\t\t\t\t\t<BlockBreadcrumb\n\t\t\t\t\t\t\t\t\t\trootLabelText={\n\t\t\t\t\t\t\t\t\t\t\thasPageContentFocus\n\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Page' )\n\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Template' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_data","_components","_compose","_coreData","_preferences","_blockEditor","_interface","_editor","_i18n","_sidebarEditMode","_blockEditor2","_codeEditor","_editMode","_inserterSidebar","_listViewSidebar","_welcomeGuide","_startTemplateOptions","_store","_globalStylesRenderer","_useTitle","_canvasLoader","_lockUnlock","_useEditedEntityRecord","_sidebarFixedBottom","_patternModal","_constants","BlockRemovalWarningModal","unlock","blockEditorPrivateApis","interfaceLabels","body","__","sidebar","actions","footer","blockRemovalRules","Editor","listViewToggleElement","isLoading","record","editedPost","getTitle","isLoaded","hasLoadedPost","useEditedEntityRecord","id","editedPostId","type","editedPostType","context","editorMode","canvasMode","blockEditorMode","isRightSidebarOpen","isInserterOpen","isListViewOpen","showIconLabels","showBlockBreadcrumbs","hasPageContentFocus","useSelect","select","getEditedPostContext","getEditorMode","getCanvasMode","isInserterOpened","isListViewOpened","_hasPageContentFocus","editSiteStore","__unstableGetEditorMode","blockEditorStore","getActiveComplementaryArea","interfaceStore","name","preferencesStore","get","setEditedPostContext","useDispatch","isViewMode","isEditMode","showVisualEditor","shouldShowBlockBreadcrumbs","shouldShowInserter","shouldShowListView","secondarySidebarLabel","blockContext","useMemo","postType","postId","nonPostFields","queryContext","page","newQueryContext","title","_POST_TYPE_LABELS$edi","sprintf","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","useTitle","loadingProgressId","useInstanceId","CanvasLoader","contentProps","undefined","_react","createElement","Fragment","default","EntityProvider","kind","BlockContextProvider","value","SidebarComplementaryAreaFills","InterfaceSkeleton","isDistractionFree","enableRegionNavigation","className","classnames","notices","EditorSnackbars","content","GlobalStylesRenderer","EditorNotices","rules","Notice","status","isDismissible","secondarySidebar","ComplementaryArea","Slot","scope","SidebarFixedBottomSlot","BlockBreadcrumb","rootLabelText","labels"],"sources":["@wordpress/edit-site/src/components/editor/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Notice } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { EntityProvider } from '@wordpress/core-data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tBlockContextProvider,\n\tBlockBreadcrumb,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { EditorNotices, EditorSnackbars } from '@wordpress/editor';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { SidebarComplementaryAreaFills } from '../sidebar-edit-mode';\nimport BlockEditor from '../block-editor';\nimport CodeEditor from '../code-editor';\nimport KeyboardShortcutsEditMode from '../keyboard-shortcuts/edit-mode';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport WelcomeGuide from '../welcome-guide';\nimport StartTemplateOptions from '../start-template-options';\nimport { store as editSiteStore } from '../../store';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport useTitle from '../routes/use-title';\nimport CanvasLoader from '../canvas-loader';\nimport { unlock } from '../../lock-unlock';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport { SidebarFixedBottomSlot } from '../sidebar-edit-mode/sidebar-fixed-bottom';\nimport PatternModal from '../pattern-modal';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst { BlockRemovalWarningModal } = unlock( blockEditorPrivateApis );\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\n// Prevent accidental removal of certain blocks, asking the user for\n// confirmation.\nconst blockRemovalRules = {\n\t'core/query': __( 'Query Loop displays a list of posts or pages.' ),\n\t'core/post-content': __(\n\t\t'Post Content displays the content of a post or page.'\n\t),\n\t'core/post-template': __(\n\t\t'Post Template displays each post or page in a Query Loop.'\n\t),\n};\n\nexport default function Editor( { listViewToggleElement, isLoading } ) {\n\tconst {\n\t\trecord: editedPost,\n\t\tgetTitle,\n\t\tisLoaded: hasLoadedPost,\n\t} = useEditedEntityRecord();\n\n\tconst { id: editedPostId, type: editedPostType } = editedPost;\n\n\tconst {\n\t\tcontext,\n\t\teditorMode,\n\t\tcanvasMode,\n\t\tblockEditorMode,\n\t\tisRightSidebarOpen,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tshowIconLabels,\n\t\tshowBlockBreadcrumbs,\n\t\thasPageContentFocus,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEditedPostContext,\n\t\t\tgetEditorMode,\n\t\t\tgetCanvasMode,\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t\thasPageContentFocus: _hasPageContentFocus,\n\t\t} = unlock( select( editSiteStore ) );\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\n\t\t// The currently selected entity to display.\n\t\t// Typically template or template part in the site editor.\n\t\treturn {\n\t\t\tcontext: getEditedPostContext(),\n\t\t\teditorMode: getEditorMode(),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisRightSidebarOpen: getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowIconLabels: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t\thasPageContentFocus: _hasPageContentFocus(),\n\t\t};\n\t}, [] );\n\tconst { setEditedPostContext } = useDispatch( editSiteStore );\n\n\tconst isViewMode = canvasMode === 'view';\n\tconst isEditMode = canvasMode === 'edit';\n\tconst showVisualEditor = isViewMode || editorMode === 'visual';\n\tconst shouldShowBlockBreadcrumbs =\n\t\tshowBlockBreadcrumbs &&\n\t\tisEditMode &&\n\t\tshowVisualEditor &&\n\t\tblockEditorMode !== 'zoom-out';\n\tconst shouldShowInserter = isEditMode && showVisualEditor && isInserterOpen;\n\tconst shouldShowListView = isEditMode && showVisualEditor && isListViewOpen;\n\tconst secondarySidebarLabel = isListViewOpen\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\tconst blockContext = useMemo( () => {\n\t\tconst { postType, postId, ...nonPostFields } = context ?? {};\n\t\treturn {\n\t\t\t...( hasPageContentFocus ? context : nonPostFields ),\n\t\t\tqueryContext: [\n\t\t\t\tcontext?.queryContext || { page: 1 },\n\t\t\t\t( newQueryContext ) =>\n\t\t\t\t\tsetEditedPostContext( {\n\t\t\t\t\t\t...context,\n\t\t\t\t\t\tqueryContext: {\n\t\t\t\t\t\t\t...context?.queryContext,\n\t\t\t\t\t\t\t...newQueryContext,\n\t\t\t\t\t\t},\n\t\t\t\t\t} ),\n\t\t\t],\n\t\t};\n\t}, [ hasPageContentFocus, context, setEditedPostContext ] );\n\n\tlet title;\n\tif ( hasLoadedPost ) {\n\t\ttitle = sprintf(\n\t\t\t// translators: A breadcrumb trail in browser tab. %1$s: title of template being edited, %2$s: type of template (Template or Template Part).\n\t\t\t__( '%1$s ‹ %2$s ‹ Editor' ),\n\t\t\tgetTitle(),\n\t\t\tPOST_TYPE_LABELS[ editedPostType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( hasLoadedPost && title );\n\n\tconst loadingProgressId = useInstanceId(\n\t\tCanvasLoader,\n\t\t'edit-site-editor__loading-progress'\n\t);\n\n\tconst contentProps = isLoading\n\t\t? {\n\t\t\t\t'aria-busy': 'true',\n\t\t\t\t'aria-describedby': loadingProgressId,\n\t\t }\n\t\t: undefined;\n\n\treturn (\n\t\t<>\n\t\t\t{ isLoading ? <CanvasLoader id={ loadingProgressId } /> : null }\n\t\t\t{ isEditMode && <WelcomeGuide /> }\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ editedPostType }\n\t\t\t\t\tid={ editedPostId }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ blockContext }>\n\t\t\t\t\t\t<SidebarComplementaryAreaFills />\n\t\t\t\t\t\t{ isEditMode && <StartTemplateOptions /> }\n\t\t\t\t\t\t<InterfaceSkeleton\n\t\t\t\t\t\t\tisDistractionFree={ true }\n\t\t\t\t\t\t\tenableRegionNavigation={ false }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'edit-site-editor__interface-skeleton',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t\t\t\t\t\t\t'is-loading': isLoading,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<GlobalStylesRenderer />\n\t\t\t\t\t\t\t\t\t{ isEditMode && <EditorNotices /> }\n\t\t\t\t\t\t\t\t\t{ showVisualEditor && editedPost && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<BlockEditor />\n\t\t\t\t\t\t\t\t\t\t\t<BlockRemovalWarningModal\n\t\t\t\t\t\t\t\t\t\t\t\trules={ blockRemovalRules }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<PatternModal />\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ editorMode === 'text' &&\n\t\t\t\t\t\t\t\t\t\teditedPost &&\n\t\t\t\t\t\t\t\t\t\tisEditMode && <CodeEditor /> }\n\t\t\t\t\t\t\t\t\t{ hasLoadedPost && ! editedPost && (\n\t\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\"You attempted to edit an item that doesn't exist. Perhaps it was deleted?\"\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isEditMode && (\n\t\t\t\t\t\t\t\t\t\t<KeyboardShortcutsEditMode />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontentProps={ contentProps }\n\t\t\t\t\t\t\tsecondarySidebar={\n\t\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\t\t( ( shouldShowInserter && (\n\t\t\t\t\t\t\t\t\t<InserterSidebar />\n\t\t\t\t\t\t\t\t) ) ||\n\t\t\t\t\t\t\t\t\t( shouldShowListView && (\n\t\t\t\t\t\t\t\t\t\t<ListViewSidebar\n\t\t\t\t\t\t\t\t\t\t\tlistViewToggleElement={\n\t\t\t\t\t\t\t\t\t\t\t\tlistViewToggleElement\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) ) )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsidebar={\n\t\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\t\tisRightSidebarOpen && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t\t\t\t\t\t<SidebarFixedBottomSlot />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfooter={\n\t\t\t\t\t\t\t\tshouldShowBlockBreadcrumbs && (\n\t\t\t\t\t\t\t\t\t<BlockBreadcrumb\n\t\t\t\t\t\t\t\t\t\trootLabelText={\n\t\t\t\t\t\t\t\t\t\t\thasPageContentFocus\n\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Page' )\n\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Template' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -259,16 +259,22 @@ function FontLibraryProvider({
|
|
|
259
259
|
setFontCollections(response);
|
|
260
260
|
};
|
|
261
261
|
const getFontCollection = async id => {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
262
|
+
try {
|
|
263
|
+
const hasData = !!collections.find(collection => collection.id === id)?.data;
|
|
264
|
+
if (hasData) return;
|
|
265
|
+
const response = await (0, _resolvers.fetchFontCollection)(id);
|
|
266
|
+
const updatedCollections = collections.map(collection => collection.id === id ? {
|
|
267
|
+
...collection,
|
|
268
|
+
data: {
|
|
269
|
+
...response?.data
|
|
270
|
+
}
|
|
271
|
+
} : collection);
|
|
272
|
+
setFontCollections(updatedCollections);
|
|
273
|
+
} catch (e) {
|
|
274
|
+
// eslint-disable-next-line no-console
|
|
275
|
+
console.error(e);
|
|
276
|
+
throw e;
|
|
277
|
+
}
|
|
272
278
|
};
|
|
273
279
|
(0, _element.useEffect)(() => {
|
|
274
280
|
getFontCollections();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_blockEditor","_data","_coreData","_resolvers","_lockUnlock","_utils","_toggleFont","_getIntersectingFontFaces","_interopRequireDefault","useGlobalSetting","unlock","blockEditorPrivateApis","FontLibraryContext","createContext","exports","FontLibraryProvider","children","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","useDispatch","coreStore","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","fontFamilies","isInstalling","setIsInstalling","useState","refreshKey","setRefreshKey","refreshLibrary","Date","now","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","useEntityRecords","libraryFonts","map","post","JSON","parse","content","raw","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","baseThemeFonts","theme","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFonts","customFonts","custom","baseCustomFonts","useEffect","handleSetLibraryFontSelected","font","fonts","fontSelected","find","slug","toggleModal","tabName","loadedFontUrls","Set","site","currentTheme","getSite","getCurrentTheme","themeUrl","url","stylesheet","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","Array","isArray","fontFace","face","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFonts","formData","makeFormDataFromFontFamilies","response","fetchInstallFonts","fontsInstalled","successes","fontToBeActivated","getIntersectingFontFaces","activateCustomFontFamilies","error","errors","uninstallFont","fetchUninstallFonts","deactivateFontFamily","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","filter","fontsToAdd","mergeFontFamilies","forEach","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","toggleFont","loadFontFaceAsset","has","add","collections","setFontCollections","getFontCollections","fetchFontCollections","getFontCollection","id","hasData","collection","data","fetchFontCollection","updatedCollections","_react","createElement","Provider","value","_default","default"],"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';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchInstallFonts,\n\tfetchUninstallFonts,\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\tmakeFormDataFromFontFamilies,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\nimport getIntersectingFontFaces from './utils/get-intersecting-font-faces';\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\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', { refreshKey } );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( post ) =>\n\t\t\tJSON.parse( post.content.raw )\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\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 = Array.isArray( font?.fontFace )\n\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t )\n\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 installFonts( fonts ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Prepare formData to install.\n\t\t\tconst formData = makeFormDataFromFontFamilies( fonts );\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tconst response = await fetchInstallFonts( formData );\n\t\t\tconst fontsInstalled = response?.successes || [];\n\t\t\t// Get intersecting font faces between the fonts we tried to installed and the fonts that were installed\n\t\t\t// (to avoid activating a non installed font).\n\t\t\tconst fontToBeActivated = getIntersectingFontFaces(\n\t\t\t\tfontsInstalled,\n\t\t\t\tfonts\n\t\t\t);\n\t\t\t// Activate the font families (add the font families to the global styles).\n\t\t\tactivateCustomFontFamilies( fontToBeActivated );\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\t\t\trefreshLibrary();\n\t\t\tsetIsInstalling( false );\n\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\tsetIsInstalling( false );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\n\t\t}\n\t}\n\n\tasync function uninstallFont( font ) {\n\t\ttry {\n\t\t\t// Uninstall the font (remove the font files from the server and the post from the database).\n\t\t\tconst response = await fetchUninstallFonts( [ font ] );\n\t\t\t// Deactivate the font family (remove the font family from the global styles).\n\t\t\tif ( ! response.errors ) {\n\t\t\t\tdeactivateFontFamily( font );\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\t\t\t// Refresh the library (the the library font families from database).\n\t\t\trefreshLibrary();\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( error );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\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 ( id ) => {\n\t\tconst hasData = !! collections.find(\n\t\t\t( collection ) => collection.id === id\n\t\t)?.data;\n\t\tif ( hasData ) return;\n\t\tconst response = await fetchFontCollection( id );\n\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\tcollection.id === id\n\t\t\t\t? { ...collection, data: { ...response?.data } }\n\t\t\t\t: collection\n\t\t);\n\t\tsetFontCollections( updatedCollections );\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\tinstallFonts,\n\t\t\t\tuninstallFont,\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\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":["_element","require","_blockEditor","_data","_coreData","_resolvers","_lockUnlock","_utils","_toggleFont","_getIntersectingFontFaces","_interopRequireDefault","useGlobalSetting","unlock","blockEditorPrivateApis","FontLibraryContext","createContext","exports","FontLibraryProvider","children","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","useDispatch","coreStore","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","fontFamilies","isInstalling","setIsInstalling","useState","refreshKey","setRefreshKey","refreshLibrary","Date","now","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","useEntityRecords","libraryFonts","map","post","JSON","parse","content","raw","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","baseThemeFonts","theme","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFonts","customFonts","custom","baseCustomFonts","useEffect","handleSetLibraryFontSelected","font","fonts","fontSelected","find","slug","toggleModal","tabName","loadedFontUrls","Set","site","currentTheme","getSite","getCurrentTheme","themeUrl","url","stylesheet","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","Array","isArray","fontFace","face","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFonts","formData","makeFormDataFromFontFamilies","response","fetchInstallFonts","fontsInstalled","successes","fontToBeActivated","getIntersectingFontFaces","activateCustomFontFamilies","error","errors","uninstallFont","fetchUninstallFonts","deactivateFontFamily","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","filter","fontsToAdd","mergeFontFamilies","forEach","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","toggleFont","loadFontFaceAsset","has","add","collections","setFontCollections","getFontCollections","fetchFontCollections","getFontCollection","id","hasData","collection","data","fetchFontCollection","updatedCollections","e","_react","createElement","Provider","value","_default","default"],"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';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchInstallFonts,\n\tfetchUninstallFonts,\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\tmakeFormDataFromFontFamilies,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\nimport getIntersectingFontFaces from './utils/get-intersecting-font-faces';\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\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', { refreshKey } );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( post ) =>\n\t\t\tJSON.parse( post.content.raw )\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\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 = Array.isArray( font?.fontFace )\n\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t )\n\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 installFonts( fonts ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Prepare formData to install.\n\t\t\tconst formData = makeFormDataFromFontFamilies( fonts );\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tconst response = await fetchInstallFonts( formData );\n\t\t\tconst fontsInstalled = response?.successes || [];\n\t\t\t// Get intersecting font faces between the fonts we tried to installed and the fonts that were installed\n\t\t\t// (to avoid activating a non installed font).\n\t\t\tconst fontToBeActivated = getIntersectingFontFaces(\n\t\t\t\tfontsInstalled,\n\t\t\t\tfonts\n\t\t\t);\n\t\t\t// Activate the font families (add the font families to the global styles).\n\t\t\tactivateCustomFontFamilies( fontToBeActivated );\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\t\t\trefreshLibrary();\n\t\t\tsetIsInstalling( false );\n\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\tsetIsInstalling( false );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\n\t\t}\n\t}\n\n\tasync function uninstallFont( font ) {\n\t\ttry {\n\t\t\t// Uninstall the font (remove the font files from the server and the post from the database).\n\t\t\tconst response = await fetchUninstallFonts( [ font ] );\n\t\t\t// Deactivate the font family (remove the font family from the global styles).\n\t\t\tif ( ! response.errors ) {\n\t\t\t\tdeactivateFontFamily( font );\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\t\t\t// Refresh the library (the the library font families from database).\n\t\t\trefreshLibrary();\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( error );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\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 ( id ) => {\n\t\ttry {\n\t\t\tconst hasData = !! collections.find(\n\t\t\t\t( collection ) => collection.id === id\n\t\t\t)?.data;\n\t\t\tif ( hasData ) return;\n\t\t\tconst response = await fetchFontCollection( id );\n\t\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\t\tcollection.id === id\n\t\t\t\t\t? { ...collection, data: { ...response?.data } }\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\tinstallFonts,\n\t\t\t\tuninstallFont,\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\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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"}
|