@wordpress/e2e-test-utils-playwright 1.47.0 → 1.48.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/package.json +3 -3
- package/src/admin/create-new-post.ts +47 -0
- package/src/admin/edit-post.ts +24 -0
- package/{build/admin/get-page-error.js → src/admin/get-page-error.ts} +12 -9
- package/src/admin/index.ts +52 -0
- package/src/admin/visit-admin-page.ts +43 -0
- package/src/admin/visit-site-editor.ts +62 -0
- package/src/admin/wait-for-site-editor.ts +52 -0
- package/src/config.ts +12 -0
- package/src/editor/click-block-options-menu-item.ts +18 -0
- package/src/editor/click-block-toolbar-button.ts +21 -0
- package/src/editor/get-blocks.ts +75 -0
- package/src/editor/get-edited-post-content.ts +19 -0
- package/src/editor/index.ts +95 -0
- package/src/editor/insert-block.ts +54 -0
- package/src/editor/open-document-settings-sidebar.ts +31 -0
- package/src/editor/preview.ts +32 -0
- package/src/editor/publish-post.ts +51 -0
- package/src/editor/save-draft.ts +20 -0
- package/src/editor/select-blocks.ts +48 -0
- package/src/editor/set-content.ts +24 -0
- package/src/editor/set-is-fixed-toolbar.ts +20 -0
- package/src/editor/set-preferences.ts +37 -0
- package/src/editor/show-block-toolbar.ts +20 -0
- package/src/editor/site-editor.ts +55 -0
- package/src/editor/switch-editor-tool.ts +34 -0
- package/src/editor/switch-to-legacy-canvas.ts +20 -0
- package/src/editor/transform-block-to.ts +34 -0
- package/src/index.ts +8 -0
- package/src/lighthouse/index.ts +75 -0
- package/src/metrics/index.ts +441 -0
- package/src/page-utils/drag-files.ts +173 -0
- package/src/page-utils/emulate-network-conditions.ts +101 -0
- package/src/page-utils/index.ts +54 -0
- package/src/page-utils/is-current-url.ts +20 -0
- package/src/page-utils/keycodes.ts +48 -0
- package/src/page-utils/press-keys.ts +195 -0
- package/{build → src}/page-utils/set-browser-viewport.js +14 -12
- package/src/request-utils/blocks.ts +58 -0
- package/src/request-utils/comments.ts +80 -0
- package/src/request-utils/gutenberg-experiments.ts +62 -0
- package/src/request-utils/index.ts +222 -0
- package/src/request-utils/login.ts +34 -0
- package/src/request-utils/media.ts +102 -0
- package/src/request-utils/menus.ts +145 -0
- package/src/request-utils/pages.ts +75 -0
- package/src/request-utils/patterns.ts +31 -0
- package/src/request-utils/plugins.ts +103 -0
- package/src/request-utils/posts.ts +69 -0
- package/src/request-utils/preferences.ts +63 -0
- package/{build/request-utils/records.js → src/request-utils/records.ts} +15 -10
- package/src/request-utils/rest.ts +222 -0
- package/src/request-utils/site-settings.ts +58 -0
- package/src/request-utils/templates.ts +83 -0
- package/src/request-utils/themes.ts +110 -0
- package/src/request-utils/users.ts +125 -0
- package/src/request-utils/widgets.js +68 -0
- package/src/test.ts +204 -0
- package/src/types.ts +13 -0
- package/build/admin/create-new-post.js +0 -31
- package/build/admin/create-new-post.js.map +0 -1
- package/build/admin/edit-post.js +0 -20
- package/build/admin/edit-post.js.map +0 -1
- package/build/admin/get-page-error.js.map +0 -1
- package/build/admin/index.js +0 -40
- package/build/admin/index.js.map +0 -1
- package/build/admin/visit-admin-page.js +0 -32
- package/build/admin/visit-admin-page.js.map +0 -1
- package/build/admin/visit-site-editor.js +0 -45
- package/build/admin/visit-site-editor.js.map +0 -1
- package/build/admin/wait-for-site-editor.js +0 -41
- package/build/admin/wait-for-site-editor.js.map +0 -1
- package/build/config.js +0 -13
- package/build/config.js.map +0 -1
- package/build/editor/click-block-options-menu-item.js +0 -17
- package/build/editor/click-block-options-menu-item.js.map +0 -1
- package/build/editor/click-block-toolbar-button.js +0 -16
- package/build/editor/click-block-toolbar-button.js.map +0 -1
- package/build/editor/get-blocks.js +0 -45
- package/build/editor/get-blocks.js.map +0 -1
- package/build/editor/get-edited-post-content.js +0 -15
- package/build/editor/get-edited-post-content.js.map +0 -1
- package/build/editor/index.js +0 -75
- package/build/editor/index.js.map +0 -1
- package/build/editor/insert-block.js +0 -23
- package/build/editor/insert-block.js.map +0 -1
- package/build/editor/open-document-settings-sidebar.js +0 -27
- package/build/editor/open-document-settings-sidebar.js.map +0 -1
- package/build/editor/preview.js +0 -21
- package/build/editor/preview.js.map +0 -1
- package/build/editor/publish-post.js +0 -45
- package/build/editor/publish-post.js.map +0 -1
- package/build/editor/save-draft.js +0 -18
- package/build/editor/save-draft.js.map +0 -1
- package/build/editor/select-blocks.js +0 -28
- package/build/editor/select-blocks.js.map +0 -1
- package/build/editor/set-content.js +0 -17
- package/build/editor/set-content.js.map +0 -1
- package/build/editor/set-is-fixed-toolbar.js +0 -18
- package/build/editor/set-is-fixed-toolbar.js.map +0 -1
- package/build/editor/set-preferences.js +0 -21
- package/build/editor/set-preferences.js.map +0 -1
- package/build/editor/show-block-toolbar.js +0 -19
- package/build/editor/show-block-toolbar.js.map +0 -1
- package/build/editor/site-editor.js +0 -44
- package/build/editor/site-editor.js.map +0 -1
- package/build/editor/switch-editor-tool.js +0 -33
- package/build/editor/switch-editor-tool.js.map +0 -1
- package/build/editor/switch-to-legacy-canvas.js +0 -18
- package/build/editor/switch-to-legacy-canvas.js.map +0 -1
- package/build/editor/transform-block-to.js +0 -24
- package/build/editor/transform-block-to.js.map +0 -1
- package/build/index.js +0 -19
- package/build/index.js.map +0 -1
- package/build/lighthouse/index.js +0 -61
- package/build/lighthouse/index.js.map +0 -1
- package/build/metrics/index.js +0 -314
- package/build/metrics/index.js.map +0 -1
- package/build/page-utils/drag-files.js +0 -119
- package/build/page-utils/drag-files.js.map +0 -1
- package/build/page-utils/emulate-network-conditions.js +0 -71
- package/build/page-utils/emulate-network-conditions.js.map +0 -1
- package/build/page-utils/index.js +0 -37
- package/build/page-utils/index.js.map +0 -1
- package/build/page-utils/is-current-url.js +0 -21
- package/build/page-utils/is-current-url.js.map +0 -1
- package/build/page-utils/keycodes.js +0 -41
- package/build/page-utils/keycodes.js.map +0 -1
- package/build/page-utils/press-keys.js +0 -141
- package/build/page-utils/press-keys.js.map +0 -1
- package/build/page-utils/set-browser-viewport.js.map +0 -1
- package/build/request-utils/blocks.js +0 -40
- package/build/request-utils/blocks.js.map +0 -1
- package/build/request-utils/comments.js +0 -52
- package/build/request-utils/comments.js.map +0 -1
- package/build/request-utils/gutenberg-experiments.js +0 -47
- package/build/request-utils/gutenberg-experiments.js.map +0 -1
- package/build/request-utils/index.js +0 -196
- package/build/request-utils/index.js.map +0 -1
- package/build/request-utils/login.js +0 -21
- package/build/request-utils/login.js.map +0 -1
- package/build/request-utils/media.js +0 -106
- package/build/request-utils/media.js.map +0 -1
- package/build/request-utils/menus.js +0 -116
- package/build/request-utils/menus.js.map +0 -1
- package/build/request-utils/pages.js +0 -53
- package/build/request-utils/pages.js.map +0 -1
- package/build/request-utils/patterns.js +0 -27
- package/build/request-utils/patterns.js.map +0 -1
- package/build/request-utils/plugins.js +0 -85
- package/build/request-utils/plugins.js.map +0 -1
- package/build/request-utils/posts.js +0 -42
- package/build/request-utils/posts.js.map +0 -1
- package/build/request-utils/preferences.js +0 -54
- package/build/request-utils/preferences.js.map +0 -1
- package/build/request-utils/records.js.map +0 -1
- package/build/request-utils/rest.js +0 -181
- package/build/request-utils/rest.js.map +0 -1
- package/build/request-utils/site-settings.js +0 -33
- package/build/request-utils/site-settings.js.map +0 -1
- package/build/request-utils/templates.js +0 -54
- package/build/request-utils/templates.js.map +0 -1
- package/build/request-utils/themes.js +0 -69
- package/build/request-utils/themes.js.map +0 -1
- package/build/request-utils/users.js +0 -81
- package/build/request-utils/users.js.map +0 -1
- package/build/request-utils/widgets.js +0 -61
- package/build/request-utils/widgets.js.map +0 -1
- package/build/test.js +0 -189
- package/build/test.js.map +0 -1
- package/build/types.js +0 -3
- package/build/types.js.map +0 -1
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.clickBlockOptionsMenuItem = clickBlockOptionsMenuItem;
|
|
4
|
-
/**
|
|
5
|
-
* Clicks a block toolbar button.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
* @param label The text string of the button label.
|
|
9
|
-
*/
|
|
10
|
-
async function clickBlockOptionsMenuItem(label) {
|
|
11
|
-
await this.clickBlockToolbarButton('Options');
|
|
12
|
-
await this.page
|
|
13
|
-
.getByRole('menu', { name: 'Options' })
|
|
14
|
-
.getByRole('menuitem', { name: label })
|
|
15
|
-
.click();
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=click-block-options-menu-item.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"click-block-options-menu-item.js","sourceRoot":"","sources":["../../src/editor/click-block-options-menu-item.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACI,KAAK,oCAAmD,KAAa;IAC3E,MAAM,IAAI,CAAC,uBAAuB,CAAE,SAAS,CAAE,CAAC;IAChD,MAAM,IAAI,CAAC,IAAI;SACb,SAAS,CAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAE;SACxC,SAAS,CAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAE;SACxC,KAAK,EAAE,CAAC;AACX,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.clickBlockToolbarButton = clickBlockToolbarButton;
|
|
4
|
-
/**
|
|
5
|
-
* Clicks a block toolbar button.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
* @param label The text string of the button label.
|
|
9
|
-
*/
|
|
10
|
-
async function clickBlockToolbarButton(label) {
|
|
11
|
-
await this.showBlockToolbar();
|
|
12
|
-
const blockToolbar = this.page.locator('role=toolbar[name="Block tools"i]');
|
|
13
|
-
const button = blockToolbar.locator(`role=button[name="${label}"]`);
|
|
14
|
-
await button.click();
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=click-block-toolbar-button.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"click-block-toolbar-button.js","sourceRoot":"","sources":["../../src/editor/click-block-toolbar-button.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACI,KAAK,kCAAiD,KAAa;IACzE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CACrC,mCAAmC,CACnC,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAE,qBAAsB,KAAM,IAAI,CAAE,CAAC;IAExE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getBlocks = getBlocks;
|
|
4
|
-
/**
|
|
5
|
-
* Returns the edited blocks.
|
|
6
|
-
*
|
|
7
|
-
* @param options
|
|
8
|
-
* @param options.clientId Limit the results to be only under a partial tree of the specified clientId.
|
|
9
|
-
* @param options.full Whether to return the full block data or just the name and attributes.
|
|
10
|
-
*
|
|
11
|
-
* @return The blocks.
|
|
12
|
-
*/
|
|
13
|
-
async function getBlocks({ clientId, full = false } = {}) {
|
|
14
|
-
await this.page.waitForFunction(() => window?.wp?.blocks && window?.wp?.data);
|
|
15
|
-
return await this.page.evaluate(([_full, _clientId]) => {
|
|
16
|
-
// Serialize serializable attributes of blocks.
|
|
17
|
-
function serializeAttributes(attributes) {
|
|
18
|
-
return Object.fromEntries(Object.entries(attributes).map(([key, value]) => {
|
|
19
|
-
// Serialize RichTextData to string.
|
|
20
|
-
if (value instanceof window.wp.richText.RichTextData) {
|
|
21
|
-
return [key, value.toString()];
|
|
22
|
-
}
|
|
23
|
-
return [key, value];
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
// Remove other unpredictable properties like clientId from blocks for testing purposes.
|
|
27
|
-
function recursivelyTransformBlocks(blocks) {
|
|
28
|
-
return blocks.map((block) => ({
|
|
29
|
-
name: block.name,
|
|
30
|
-
attributes: serializeAttributes(block.attributes),
|
|
31
|
-
innerBlocks: recursivelyTransformBlocks(block.innerBlocks),
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
const blocks = window.wp.data
|
|
35
|
-
.select('core/block-editor')
|
|
36
|
-
.getBlocks(_clientId);
|
|
37
|
-
// The editor might still contain an unmodified empty block even when it's technically "empty".
|
|
38
|
-
if (blocks.length === 1 &&
|
|
39
|
-
window.wp.blocks.isUnmodifiedDefaultBlock(blocks[0])) {
|
|
40
|
-
return [];
|
|
41
|
-
}
|
|
42
|
-
return _full ? blocks : recursivelyTransformBlocks(blocks);
|
|
43
|
-
}, [full, clientId]);
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=get-blocks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-blocks.js","sourceRoot":"","sources":["../../src/editor/get-blocks.ts"],"names":[],"mappings":";;;AAWA;;;;;;;;GAQG;AACI,KAAK,oBAEX,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,EAAE,GAA0C,EAAE;IAEtE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,MAAM,EAAE,EAAE,EAAE,IAAI,CAC5C,CAAC;IAEF,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAC9B,CAAE,CAAE,KAAK,EAAE,SAAS,CAAE,EAAG,EAAE;QAC1B,+CAA+C;QAC/C,SAAS,mBAAmB,CAC3B,UAAqC;YAErC,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAE,UAAU,CAAE,CAAC,GAAG,CAAE,CAAE,CAAE,GAAG,EAAE,KAAK,CAAE,EAAG,EAAE;gBACtD,oCAAoC;gBACpC,IACC,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAC/C,CAAC;oBACF,OAAO,CAAE,GAAG,EAAI,KAAiB,CAAC,QAAQ,EAAE,CAAE,CAAC;gBAChD,CAAC;gBACD,OAAO,CAAE,GAAG,EAAE,KAAK,CAAE,CAAC;YACvB,CAAC,CAAE,CACH,CAAC;QACH,CAAC;QAED,wFAAwF;QACxF,SAAS,0BAA0B,CAAE,MAAe;YACnD,OAAO,MAAM,CAAC,GAAG,CAAE,CAAE,KAAK,EAAG,EAAE,CAAC,CAAE;gBACjC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,mBAAmB,CAAE,KAAK,CAAC,UAAU,CAAE;gBACnD,WAAW,EAAE,0BAA0B,CACtC,KAAK,CAAC,WAAW,CACjB;aACD,CAAE,CAAE,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI;aAC3B,MAAM,CAAE,mBAAmB,CAAE;aAC7B,SAAS,CAAE,SAAS,CAAa,CAAC;QAEpC,+FAA+F;QAC/F,IACC,MAAM,CAAC,MAAM,KAAK,CAAC;YACnB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAE,MAAM,CAAE,CAAC,CAAE,CAAE,EACvD,CAAC;YACF,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAE,MAAM,CAAE,CAAC;IAC9D,CAAC,EACD,CAAE,IAAI,EAAE,QAAQ,CAAE,CAClB,CAAC;AACH,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getEditedPostContent = getEditedPostContent;
|
|
4
|
-
/**
|
|
5
|
-
* Returns a promise which resolves with the edited post content (HTML string).
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
*
|
|
9
|
-
* @return Promise resolving with post content markup.
|
|
10
|
-
*/
|
|
11
|
-
async function getEditedPostContent() {
|
|
12
|
-
await this.page.waitForFunction(() => window?.wp?.data);
|
|
13
|
-
return await this.page.evaluate(() => window.wp.data.select('core/editor').getEditedPostContent());
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=get-edited-post-content.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-edited-post-content.js","sourceRoot":"","sources":["../../src/editor/get-edited-post-content.ts"],"names":[],"mappings":";;;AAKA;;;;;;GAMG;AACI,KAAK;IACX,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAE,CAAC;IAE1D,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAE,GAAG,EAAE,CACrC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,aAAa,CAAE,CAAC,oBAAoB,EAAE,CAC7D,CAAC;AACH,CAAC"}
|
package/build/editor/index.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Editor = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Internal dependencies
|
|
6
|
-
*/
|
|
7
|
-
const click_block_options_menu_item_1 = require("./click-block-options-menu-item");
|
|
8
|
-
const click_block_toolbar_button_1 = require("./click-block-toolbar-button");
|
|
9
|
-
const get_blocks_1 = require("./get-blocks");
|
|
10
|
-
const get_edited_post_content_1 = require("./get-edited-post-content");
|
|
11
|
-
const insert_block_1 = require("./insert-block");
|
|
12
|
-
const open_document_settings_sidebar_1 = require("./open-document-settings-sidebar");
|
|
13
|
-
const preview_1 = require("./preview");
|
|
14
|
-
const publish_post_1 = require("./publish-post");
|
|
15
|
-
const save_draft_1 = require("./save-draft");
|
|
16
|
-
const select_blocks_1 = require("./select-blocks");
|
|
17
|
-
const set_content_1 = require("./set-content");
|
|
18
|
-
const set_preferences_1 = require("./set-preferences");
|
|
19
|
-
const show_block_toolbar_1 = require("./show-block-toolbar");
|
|
20
|
-
const site_editor_1 = require("./site-editor");
|
|
21
|
-
const set_is_fixed_toolbar_1 = require("./set-is-fixed-toolbar");
|
|
22
|
-
const switch_to_legacy_canvas_1 = require("./switch-to-legacy-canvas");
|
|
23
|
-
const transform_block_to_1 = require("./transform-block-to");
|
|
24
|
-
const switch_editor_tool_1 = require("./switch-editor-tool");
|
|
25
|
-
class Editor {
|
|
26
|
-
browser;
|
|
27
|
-
page;
|
|
28
|
-
context;
|
|
29
|
-
constructor({ page }) {
|
|
30
|
-
this.page = page;
|
|
31
|
-
this.context = page.context();
|
|
32
|
-
this.browser = this.context.browser();
|
|
33
|
-
}
|
|
34
|
-
get canvas() {
|
|
35
|
-
return this.page.frameLocator('[name="editor-canvas"]');
|
|
36
|
-
}
|
|
37
|
-
/** @borrows clickBlockOptionsMenuItem as this.clickBlockOptionsMenuItem */
|
|
38
|
-
clickBlockOptionsMenuItem = click_block_options_menu_item_1.clickBlockOptionsMenuItem.bind(this);
|
|
39
|
-
/** @borrows clickBlockToolbarButton as this.clickBlockToolbarButton */
|
|
40
|
-
clickBlockToolbarButton = click_block_toolbar_button_1.clickBlockToolbarButton.bind(this);
|
|
41
|
-
/** @borrows getBlocks as this.getBlocks */
|
|
42
|
-
getBlocks = get_blocks_1.getBlocks.bind(this);
|
|
43
|
-
/** @borrows getEditedPostContent as this.getEditedPostContent */
|
|
44
|
-
getEditedPostContent = get_edited_post_content_1.getEditedPostContent.bind(this);
|
|
45
|
-
/** @borrows insertBlock as this.insertBlock */
|
|
46
|
-
insertBlock = insert_block_1.insertBlock.bind(this);
|
|
47
|
-
/** @borrows openDocumentSettingsSidebar as this.openDocumentSettingsSidebar */
|
|
48
|
-
openDocumentSettingsSidebar = open_document_settings_sidebar_1.openDocumentSettingsSidebar.bind(this);
|
|
49
|
-
/** @borrows openPreviewPage as this.openPreviewPage */
|
|
50
|
-
openPreviewPage = preview_1.openPreviewPage.bind(this);
|
|
51
|
-
/** @borrows publishPost as this.publishPost */
|
|
52
|
-
publishPost = publish_post_1.publishPost.bind(this);
|
|
53
|
-
/** @borrows saveDraft as this.saveDraft */
|
|
54
|
-
saveDraft = save_draft_1.saveDraft.bind(this);
|
|
55
|
-
/** @borrows saveSiteEditorEntities as this.saveSiteEditorEntities */
|
|
56
|
-
saveSiteEditorEntities = site_editor_1.saveSiteEditorEntities.bind(this);
|
|
57
|
-
/** @borrows selectBlocks as this.selectBlocks */
|
|
58
|
-
selectBlocks = select_blocks_1.selectBlocks.bind(this);
|
|
59
|
-
/** @borrows setContent as this.setContent */
|
|
60
|
-
setContent = set_content_1.setContent.bind(this);
|
|
61
|
-
/** @borrows setPreferences as this.setPreferences */
|
|
62
|
-
setPreferences = set_preferences_1.setPreferences.bind(this);
|
|
63
|
-
/** @borrows showBlockToolbar as this.showBlockToolbar */
|
|
64
|
-
showBlockToolbar = show_block_toolbar_1.showBlockToolbar.bind(this);
|
|
65
|
-
/** @borrows setIsFixedToolbar as this.setIsFixedToolbar */
|
|
66
|
-
setIsFixedToolbar = set_is_fixed_toolbar_1.setIsFixedToolbar.bind(this);
|
|
67
|
-
/** @borrows switchEditorTool as this.switchEditorTool */
|
|
68
|
-
switchEditorTool = switch_editor_tool_1.switchEditorTool.bind(this);
|
|
69
|
-
/** @borrows switchToLegacyCanvas as this.switchToLegacyCanvas */
|
|
70
|
-
switchToLegacyCanvas = switch_to_legacy_canvas_1.switchToLegacyCanvas.bind(this);
|
|
71
|
-
/** @borrows transformBlockTo as this.transformBlockTo */
|
|
72
|
-
transformBlockTo = transform_block_to_1.transformBlockTo.bind(this);
|
|
73
|
-
}
|
|
74
|
-
exports.Editor = Editor;
|
|
75
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/editor/index.ts"],"names":[],"mappings":";;;AAUA;;GAEG;AACH,mFAA4E;AAC5E,6EAAuE;AACvE,6CAAyC;AACzC,uEAAiE;AACjE,iDAA6C;AAC7C,qFAA+E;AAC/E,uCAA4C;AAC5C,iDAA6C;AAC7C,6CAAyC;AACzC,mDAA+C;AAC/C,+CAA2C;AAC3C,uDAAmD;AACnD,6DAAwD;AACxD,+CAAuD;AACvD,iEAA2D;AAC3D,uEAAiE;AACjE,6DAAwD;AACxD,6DAAwD;AAMxD;IACC,OAAO,CAAU;IACjB,IAAI,CAAO;IACX,OAAO,CAAiB;IAExB,YAAa,EAAE,IAAI,EAA0B;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAG,CAAC;IACxC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,wBAAwB,CAAE,CAAC;IAC3D,CAAC;IAED,2EAA2E;IAC3E,yBAAyB,GACxB,yDAAyB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACxC,uEAAuE;IACvE,uBAAuB,GACtB,oDAAuB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACtC,2CAA2C;IAC3C,SAAS,GAAqB,sBAAS,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACrD,iEAAiE;IACjE,oBAAoB,GACnB,8CAAoB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACnC,+CAA+C;IAC/C,WAAW,GAAuB,0BAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC3D,+EAA+E;IAC/E,2BAA2B,GAC1B,4DAA2B,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC1C,uDAAuD;IACvD,eAAe,GAA2B,yBAAe,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACvE,+CAA+C;IAC/C,WAAW,GAAuB,0BAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC3D,2CAA2C;IAC3C,SAAS,GAAqB,sBAAS,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACrD,qEAAqE;IACrE,sBAAsB,GACrB,oCAAsB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACrC,iDAAiD;IACjD,YAAY,GAAwB,4BAAY,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC9D,6CAA6C;IAC7C,UAAU,GAAsB,wBAAU,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACxD,qDAAqD;IACrD,cAAc,GAA0B,gCAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,yDAAyD;IACzD,gBAAgB,GAA4B,qCAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC1E,2DAA2D;IAC3D,iBAAiB,GAChB,wCAAiB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAChC,yDAAyD;IACzD,gBAAgB,GAA4B,qCAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC1E,iEAAiE;IACjE,oBAAoB,GACnB,8CAAoB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACnC,yDAAyD;IACzD,gBAAgB,GAA4B,qCAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;CAC1E"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.insertBlock = insertBlock;
|
|
4
|
-
/**
|
|
5
|
-
* Insert a block.
|
|
6
|
-
*
|
|
7
|
-
* @param blockRepresentation Inserted block representation.
|
|
8
|
-
* @param options
|
|
9
|
-
* @param options.clientId Client ID of the parent block to insert into.
|
|
10
|
-
*/
|
|
11
|
-
async function insertBlock(blockRepresentation, { clientId } = {}) {
|
|
12
|
-
await this.page.waitForFunction(() => window?.wp?.blocks && window?.wp?.data);
|
|
13
|
-
await this.page.evaluate(([_blockRepresentation, _clientId]) => {
|
|
14
|
-
function recursiveCreateBlock({ name, attributes = {}, innerBlocks = [], }) {
|
|
15
|
-
return window.wp.blocks.createBlock(name, attributes, innerBlocks.map((innerBlock) => recursiveCreateBlock(innerBlock)));
|
|
16
|
-
}
|
|
17
|
-
const block = recursiveCreateBlock(_blockRepresentation);
|
|
18
|
-
window.wp.data
|
|
19
|
-
.dispatch('core/block-editor')
|
|
20
|
-
.insertBlock(block, undefined, _clientId);
|
|
21
|
-
}, [blockRepresentation, clientId]);
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=insert-block.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insert-block.js","sourceRoot":"","sources":["../../src/editor/insert-block.ts"],"names":[],"mappings":";;QAqDS,WAAW;AA1CpB;;;;;;GAMG;AACH,KAAK,UAAU,WAAW,CAEzB,mBAAwC,EACxC,EAAE,QAAQ,EAAE,GAA0B,EAAE;IAExC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,MAAM,EAAE,EAAE,EAAE,IAAI,CAC5C,CAAC;IAEF,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACvB,CAAE,CAAE,oBAAoB,EAAE,SAAS,CAAE,EAAG,EAAE;QACzC,SAAS,oBAAoB,CAAE,EAC9B,IAAI,EACJ,UAAU,GAAG,EAAE,EACf,WAAW,GAAG,EAAE,GACK;YACrB,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAClC,IAAI,EACJ,UAAU,EACV,WAAW,CAAC,GAAG,CAAE,CAAE,UAAU,EAAG,EAAE,CACjC,oBAAoB,CAAE,UAAU,CAAE,CAClC,CACD,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,oBAAoB,CAAE,oBAAoB,CAAE,CAAC;QAE3D,MAAM,CAAC,EAAE,CAAC,IAAI;aACZ,QAAQ,CAAE,mBAAmB,CAAE;aAC/B,WAAW,CAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAE,CAAC;IAC9C,CAAC,EACD,CAAE,mBAAmB,EAAE,QAAQ,CAAW,CAC1C,CAAC;AACH,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openDocumentSettingsSidebar = openDocumentSettingsSidebar;
|
|
4
|
-
/**
|
|
5
|
-
* Clicks on the button in the header which opens Document Settings sidebar when
|
|
6
|
-
* it is closed.
|
|
7
|
-
*
|
|
8
|
-
* @param this
|
|
9
|
-
*/
|
|
10
|
-
async function openDocumentSettingsSidebar() {
|
|
11
|
-
const toggleButton = this.page
|
|
12
|
-
.getByRole('region', { name: 'Editor top bar' })
|
|
13
|
-
.getByRole('button', {
|
|
14
|
-
name: 'Settings',
|
|
15
|
-
exact: true,
|
|
16
|
-
disabled: false,
|
|
17
|
-
});
|
|
18
|
-
const isClosed = (await toggleButton.getAttribute('aria-expanded')) === 'false';
|
|
19
|
-
if (isClosed) {
|
|
20
|
-
await toggleButton.click();
|
|
21
|
-
await this.page
|
|
22
|
-
.getByRole('region', { name: 'Editor settings' })
|
|
23
|
-
.getByRole('button', { name: 'Close Settings' })
|
|
24
|
-
.waitFor();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=open-document-settings-sidebar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"open-document-settings-sidebar.js","sourceRoot":"","sources":["../../src/editor/open-document-settings-sidebar.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACI,KAAK;IACX,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI;SAC5B,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;SACjD,SAAS,CAAE,QAAQ,EAAE;QACrB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,KAAK;KACf,CAAE,CAAC;IAEL,MAAM,QAAQ,GACb,CAAE,MAAM,YAAY,CAAC,YAAY,CAAE,eAAe,CAAE,CAAE,KAAK,OAAO,CAAC;IAEpE,IAAK,QAAQ,EAAG,CAAC;QAChB,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,IAAI;aACb,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAE;aAClD,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;aACjD,OAAO,EAAE,CAAC;IACb,CAAC;AACF,CAAC"}
|
package/build/editor/preview.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openPreviewPage = openPreviewPage;
|
|
4
|
-
/**
|
|
5
|
-
* Opens the preview page of an edited post.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
*
|
|
9
|
-
* @return preview page.
|
|
10
|
-
*/
|
|
11
|
-
async function openPreviewPage() {
|
|
12
|
-
const editorTopBar = this.page.locator('role=region[name="Editor top bar"i]');
|
|
13
|
-
const previewButton = editorTopBar.locator('role=button[name="View"i]');
|
|
14
|
-
await previewButton.click();
|
|
15
|
-
const [previewPage] = await Promise.all([
|
|
16
|
-
this.context.waitForEvent('page'),
|
|
17
|
-
this.page.click('role=menuitem[name="Preview in new tab"i]'),
|
|
18
|
-
]);
|
|
19
|
-
return previewPage;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=preview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/editor/preview.ts"],"names":[],"mappings":";;;AAUA;;;;;;GAMG;AACI,KAAK;IACX,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CACrC,qCAAqC,CACrC,CAAC;IACF,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAE,2BAA2B,CAAE,CAAC;IAE1E,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAE5B,MAAM,CAAE,WAAW,CAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAE;QAC1C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAE,MAAM,CAAE;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,2CAA2C,CAAE;KAC9D,CAAE,CAAC;IAEJ,OAAO,WAAW,CAAC;AACpB,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.publishPost = publishPost;
|
|
4
|
-
/**
|
|
5
|
-
* Publishes the post, resolving once the request is complete (once a notice
|
|
6
|
-
* is displayed).
|
|
7
|
-
*
|
|
8
|
-
* @param this
|
|
9
|
-
*/
|
|
10
|
-
async function publishPost() {
|
|
11
|
-
// If we have changes in other entities, the label is `Save` instead of `Publish`.
|
|
12
|
-
const saveButton = this.page
|
|
13
|
-
.getByRole('region', { name: 'Editor top bar' })
|
|
14
|
-
.getByRole('button', { name: 'Save', exact: true });
|
|
15
|
-
const publishButton = this.page
|
|
16
|
-
.getByRole('region', { name: 'Editor top bar' })
|
|
17
|
-
.getByRole('button', { name: 'Publish', exact: true });
|
|
18
|
-
const buttonToClick = (await saveButton.isVisible())
|
|
19
|
-
? saveButton
|
|
20
|
-
: publishButton;
|
|
21
|
-
await buttonToClick.click();
|
|
22
|
-
const entitiesSaveButton = this.page
|
|
23
|
-
.getByRole('region', { name: 'Editor publish' })
|
|
24
|
-
.getByRole('button', { name: 'Save', exact: true });
|
|
25
|
-
const isEntitiesSavePanelVisible = await entitiesSaveButton.isVisible();
|
|
26
|
-
// Save any entities.
|
|
27
|
-
if (isEntitiesSavePanelVisible) {
|
|
28
|
-
// Handle saving entities.
|
|
29
|
-
await entitiesSaveButton.click();
|
|
30
|
-
}
|
|
31
|
-
// Handle saving just the post.
|
|
32
|
-
await this.page
|
|
33
|
-
.getByRole('region', {
|
|
34
|
-
name: 'Editor publish',
|
|
35
|
-
})
|
|
36
|
-
.getByRole('button', { name: 'Publish', exact: true })
|
|
37
|
-
.click();
|
|
38
|
-
await this.page
|
|
39
|
-
.getByRole('button', { name: 'Dismiss this notice' })
|
|
40
|
-
.filter({ hasText: 'published' })
|
|
41
|
-
.waitFor();
|
|
42
|
-
const postId = new URL(this.page.url()).searchParams.get('post');
|
|
43
|
-
return typeof postId === 'string' ? parseInt(postId, 10) : null;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=publish-post.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"publish-post.js","sourceRoot":"","sources":["../../src/editor/publish-post.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACI,KAAK;IACX,kFAAkF;IAClF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI;SAC1B,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;SACjD,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAC;IACvD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI;SAC7B,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;SACjD,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAC;IAC1D,MAAM,aAAa,GAAG,CAAE,MAAM,UAAU,CAAC,SAAS,EAAE,CAAE;QACrD,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,aAAa,CAAC;IACjB,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAE5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI;SAClC,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;SACjD,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAC;IACvD,MAAM,0BAA0B,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,CAAC;IAExE,qBAAqB;IACrB,IAAK,0BAA0B,EAAG,CAAC;QAClC,0BAA0B;QAC1B,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,+BAA+B;IAC/B,MAAM,IAAI,CAAC,IAAI;SACb,SAAS,CAAE,QAAQ,EAAE;QACrB,IAAI,EAAE,gBAAgB;KACtB,CAAE;SACF,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE;SACvD,KAAK,EAAE,CAAC;IAEV,MAAM,IAAI,CAAC,IAAI;SACb,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAE;SACtD,MAAM,CAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAE;SAClC,OAAO,EAAE,CAAC;IACZ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAE,CAAC,YAAY,CAAC,GAAG,CAAE,MAAM,CAAE,CAAC;IAErE,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAE,MAAM,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.saveDraft = saveDraft;
|
|
4
|
-
/**
|
|
5
|
-
* Saves the post as a draft, resolving once the request is complete (once a notice
|
|
6
|
-
* is displayed).
|
|
7
|
-
*/
|
|
8
|
-
async function saveDraft() {
|
|
9
|
-
await this.page
|
|
10
|
-
.getByRole('region', { name: 'Editor top bar' })
|
|
11
|
-
.getByRole('button', { name: 'Save draft' })
|
|
12
|
-
.click();
|
|
13
|
-
await this.page
|
|
14
|
-
.getByRole('button', { name: 'Dismiss this notice' })
|
|
15
|
-
.filter({ hasText: 'Draft saved' })
|
|
16
|
-
.waitFor();
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=save-draft.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"save-draft.js","sourceRoot":"","sources":["../../src/editor/save-draft.ts"],"names":[],"mappings":";;;AAKA;;;GAGG;AACI,KAAK;IACX,MAAM,IAAI,CAAC,IAAI;SACb,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;SACjD,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAE;SAC7C,KAAK,EAAE,CAAC;IAEV,MAAM,IAAI,CAAC,IAAI;SACb,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAE;SACtD,MAAM,CAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAE;SACpC,OAAO,EAAE,CAAC;AACb,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.selectBlocks = selectBlocks;
|
|
4
|
-
async function selectBlocks(startSelectorOrLocator, endSelectorOrLocator) {
|
|
5
|
-
const startBlock = typeof startSelectorOrLocator === 'string'
|
|
6
|
-
? this.canvas.locator(startSelectorOrLocator)
|
|
7
|
-
: startSelectorOrLocator;
|
|
8
|
-
const endBlock = typeof endSelectorOrLocator === 'string'
|
|
9
|
-
? this.canvas.locator(endSelectorOrLocator)
|
|
10
|
-
: endSelectorOrLocator;
|
|
11
|
-
const startClientId = await startBlock.getAttribute('data-block');
|
|
12
|
-
const endClientId = await endBlock?.getAttribute('data-block');
|
|
13
|
-
if (endClientId) {
|
|
14
|
-
await this.page.evaluate(([startId, endId]) => {
|
|
15
|
-
// @ts-ignore
|
|
16
|
-
wp.data
|
|
17
|
-
.dispatch('core/block-editor')
|
|
18
|
-
.multiSelect(startId, endId);
|
|
19
|
-
}, [startClientId, endClientId]);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
await this.page.evaluate(([clientId]) => {
|
|
23
|
-
// @ts-ignore
|
|
24
|
-
wp.data.dispatch('core/block-editor').selectBlock(clientId);
|
|
25
|
-
}, [startClientId]);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=select-blocks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-blocks.js","sourceRoot":"","sources":["../../src/editor/select-blocks.ts"],"names":[],"mappings":";;;AAUO,KAAK,uBAEX,sBAAwC,EACxC,oBAAuC;IAEvC,MAAM,UAAU,GACf,OAAO,sBAAsB,KAAK,QAAQ;QACzC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,sBAAsB,CAAE;QAC/C,CAAC,CAAC,sBAAsB,CAAC;IAE3B,MAAM,QAAQ,GACb,OAAO,oBAAoB,KAAK,QAAQ;QACvC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,oBAAoB,CAAE;QAC7C,CAAC,CAAC,oBAAoB,CAAC;IAEzB,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,YAAY,CAAE,YAAY,CAAE,CAAC;IACpE,MAAM,WAAW,GAAG,MAAM,QAAQ,EAAE,YAAY,CAAE,YAAY,CAAE,CAAC;IAEjE,IAAK,WAAW,EAAG,CAAC;QACnB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACvB,CAAE,CAAE,OAAO,EAAE,KAAK,CAAE,EAAG,EAAE;YACxB,aAAa;YACb,EAAE,CAAC,IAAI;iBACL,QAAQ,CAAE,mBAAmB,CAAE;iBAC/B,WAAW,CAAE,OAAO,EAAE,KAAK,CAAE,CAAC;QACjC,CAAC,EACD,CAAE,aAAa,EAAE,WAAW,CAAE,CAC9B,CAAC;IACH,CAAC;SAAM,CAAC;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACvB,CAAE,CAAE,QAAQ,CAAE,EAAG,EAAE;YAClB,aAAa;YACb,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAE,mBAAmB,CAAE,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAC;QACjE,CAAC,EACD,CAAE,aAAa,CAAE,CACjB,CAAC;IACH,CAAC;AACF,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setContent = setContent;
|
|
4
|
-
/**
|
|
5
|
-
* Set the content of the editor.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
* @param html Serialized block HTML.
|
|
9
|
-
*/
|
|
10
|
-
async function setContent(html) {
|
|
11
|
-
await this.page.waitForFunction(() => window?.wp?.blocks && window?.wp?.data);
|
|
12
|
-
await this.page.evaluate((_html) => {
|
|
13
|
-
const blocks = window.wp.blocks.parse(_html);
|
|
14
|
-
window.wp.data.dispatch('core/block-editor').resetBlocks(blocks);
|
|
15
|
-
}, html);
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=set-content.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set-content.js","sourceRoot":"","sources":["../../src/editor/set-content.ts"],"names":[],"mappings":";;QAuBS,UAAU;AAlBnB;;;;;GAKG;AACH,KAAK,UAAU,UAAU,CAAgB,IAAY;IACpD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,MAAM,EAAE,EAAE,EAAE,IAAI,CAC5C,CAAC;IAEF,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAE,KAAK,EAAG,EAAE;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAE,KAAK,CAAE,CAAC;QAE/C,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAE,mBAAmB,CAAE,CAAC,WAAW,CAAE,MAAM,CAAE,CAAC;IACtE,CAAC,EAAE,IAAI,CAAE,CAAC;AACX,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setIsFixedToolbar = setIsFixedToolbar;
|
|
4
|
-
/**
|
|
5
|
-
* Toggles the fixed toolbar option.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
* @param isFixed Boolean value true/false for on/off.
|
|
9
|
-
*/
|
|
10
|
-
async function setIsFixedToolbar(isFixed) {
|
|
11
|
-
await this.page.waitForFunction(() => window?.wp?.data);
|
|
12
|
-
await this.page.evaluate((_isFixed) => {
|
|
13
|
-
window.wp.data
|
|
14
|
-
.dispatch('core/preferences')
|
|
15
|
-
.set('core', 'fixedToolbar', _isFixed);
|
|
16
|
-
}, isFixed);
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=set-is-fixed-toolbar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set-is-fixed-toolbar.js","sourceRoot":"","sources":["../../src/editor/set-is-fixed-toolbar.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACI,KAAK,4BAA2C,OAAgB;IACtE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAE,CAAC;IAE1D,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAE,QAAQ,EAAG,EAAE;QACxC,MAAM,CAAC,EAAE,CAAC,IAAI;aACZ,QAAQ,CAAE,kBAAkB,CAAE;aAC9B,GAAG,CAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAE,CAAC;IAC3C,CAAC,EAAE,OAAO,CAAE,CAAC;AACd,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setPreferences = setPreferences;
|
|
4
|
-
/**
|
|
5
|
-
* Set the preferences of the editor.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
* @param context Context to set preferences for.
|
|
9
|
-
* @param preferences Preferences to set.
|
|
10
|
-
*/
|
|
11
|
-
async function setPreferences(context, preferences) {
|
|
12
|
-
await this.page.waitForFunction(() => window?.wp?.data);
|
|
13
|
-
await this.page.evaluate(async (props) => {
|
|
14
|
-
for (const [key, value] of Object.entries(props.preferences)) {
|
|
15
|
-
await window.wp.data
|
|
16
|
-
.dispatch('core/preferences')
|
|
17
|
-
.set(props.context, key, value);
|
|
18
|
-
}
|
|
19
|
-
}, { context, preferences });
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=set-preferences.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set-preferences.js","sourceRoot":"","sources":["../../src/editor/set-preferences.ts"],"names":[],"mappings":";;;AAUA;;;;;;GAMG;AACI,KAAK,yBAEX,OAA2B,EAC3B,WAAkC;IAElC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAE,CAAC;IAE1D,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACvB,KAAK,EAAG,KAAK,EAAG,EAAE;QACjB,KAAM,MAAM,CAAE,GAAG,EAAE,KAAK,CAAE,IAAI,MAAM,CAAC,OAAO,CAC3C,KAAK,CAAC,WAAW,CACjB,EAAG,CAAC;YACJ,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI;iBAClB,QAAQ,CAAE,kBAAkB,CAAE;iBAC9B,GAAG,CAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAE,CAAC;QACpC,CAAC;IACF,CAAC,EACD,EAAE,OAAO,EAAE,WAAW,EAAE,CACxB,CAAC;AACH,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.showBlockToolbar = showBlockToolbar;
|
|
4
|
-
/**
|
|
5
|
-
* The block toolbar is not always visible while typing.
|
|
6
|
-
* Call this function to reveal it.
|
|
7
|
-
*
|
|
8
|
-
* @param this
|
|
9
|
-
*/
|
|
10
|
-
async function showBlockToolbar() {
|
|
11
|
-
// Move the mouse to disable the isTyping mode. We need at least three
|
|
12
|
-
// mousemove events for it to work across windows (iframe). With three
|
|
13
|
-
// moves, it's a guarantee that at least two will be in the same window.
|
|
14
|
-
// Two events are required for the flag to be unset.
|
|
15
|
-
await this.page.mouse.move(50, 50);
|
|
16
|
-
await this.page.mouse.move(75, 75);
|
|
17
|
-
await this.page.mouse.move(100, 100);
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=show-block-toolbar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"show-block-toolbar.js","sourceRoot":"","sources":["../../src/editor/show-block-toolbar.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACI,KAAK;IACX,sEAAsE;IACtE,sEAAsE;IACtE,wEAAwE;IACxE,oDAAoD;IACpD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAC;IACrC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAC;IACrC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,CAAC;AACxC,CAAC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.saveSiteEditorEntities = saveSiteEditorEntities;
|
|
4
|
-
/**
|
|
5
|
-
* Save entities in the site editor. Assumes the editor is in a dirty state.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
* @param options
|
|
9
|
-
*/
|
|
10
|
-
async function saveSiteEditorEntities(options = {}) {
|
|
11
|
-
const editorTopBar = this.page.getByRole('region', {
|
|
12
|
-
name: 'Editor top bar',
|
|
13
|
-
});
|
|
14
|
-
// If we have changes in a single entity which can be published the label is `Publish`.
|
|
15
|
-
const saveButton = editorTopBar.getByRole('button', {
|
|
16
|
-
name: 'Save',
|
|
17
|
-
exact: true,
|
|
18
|
-
});
|
|
19
|
-
const publishButton = editorTopBar.getByRole('button', {
|
|
20
|
-
name: 'Publish',
|
|
21
|
-
});
|
|
22
|
-
const publishButtonIsVisible = !(await saveButton.isVisible());
|
|
23
|
-
// First Save button in the top bar.
|
|
24
|
-
const buttonToClick = publishButtonIsVisible ? publishButton : saveButton;
|
|
25
|
-
await buttonToClick.click();
|
|
26
|
-
if (!options.isOnlyCurrentEntityDirty) {
|
|
27
|
-
// Second Save button in the entities panel.
|
|
28
|
-
await this.page
|
|
29
|
-
.getByRole('region', {
|
|
30
|
-
name: /(Editor publish|Save panel)/,
|
|
31
|
-
})
|
|
32
|
-
.getByRole('button', { name: 'Save', exact: true })
|
|
33
|
-
.click();
|
|
34
|
-
}
|
|
35
|
-
// The text in the notice can be different based on the edited entity, whether
|
|
36
|
-
// we are saving multiple entities and whether we publish or update. So for now,
|
|
37
|
-
// we locate it based on the last part.
|
|
38
|
-
await this.page
|
|
39
|
-
.getByRole('button', { name: 'Dismiss this notice' })
|
|
40
|
-
.getByText(/(updated|published)\./)
|
|
41
|
-
.first()
|
|
42
|
-
.waitFor();
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=site-editor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"site-editor.js","sourceRoot":"","sources":["../../src/editor/site-editor.ts"],"names":[],"mappings":";;;AAUA;;;;;GAKG;AACI,KAAK,iCAEX,OAAO,GAAY,EAAE;IAErB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,QAAQ,EAAE;QACnD,IAAI,EAAE,gBAAgB;KACtB,CAAE,CAAC;IAEJ,uFAAuF;IACvF,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAE,QAAQ,EAAE;QACpD,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI;KACX,CAAE,CAAC;IACJ,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAE,QAAQ,EAAE;QACvD,IAAI,EAAE,SAAS;KACf,CAAE,CAAC;IACJ,MAAM,sBAAsB,GAAG,CAAE,CAAE,MAAM,UAAU,CAAC,SAAS,EAAE,CAAE,CAAC;IAClE,oCAAoC;IACpC,MAAM,aAAa,GAAG,sBAAsB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1E,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAE5B,IAAK,CAAE,OAAO,CAAC,wBAAwB,EAAG,CAAC;QAC1C,4CAA4C;QAC5C,MAAM,IAAI,CAAC,IAAI;aACb,SAAS,CAAE,QAAQ,EAAE;YACrB,IAAI,EAAE,6BAA6B;SACnC,CAAE;aACF,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE;aACpD,KAAK,EAAE,CAAC;IACX,CAAC;IACD,8EAA8E;IAC9E,gFAAgF;IAChF,uCAAuC;IACvC,MAAM,IAAI,CAAC,IAAI;SACb,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAE;SACtD,SAAS,CAAE,uBAAuB,CAAE;SACpC,KAAK,EAAE;SACP,OAAO,EAAE,CAAC;AACb,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.switchEditorTool = switchEditorTool;
|
|
4
|
-
/**
|
|
5
|
-
* Switch the editor tool being used.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
* @param label The text string of the button label.
|
|
9
|
-
*/
|
|
10
|
-
async function switchEditorTool(label) {
|
|
11
|
-
const toolsToolbar = this.page.getByRole('toolbar', {
|
|
12
|
-
name: 'Document tools',
|
|
13
|
-
});
|
|
14
|
-
await toolsToolbar
|
|
15
|
-
.getByRole('button', {
|
|
16
|
-
name: 'Tools',
|
|
17
|
-
})
|
|
18
|
-
.click();
|
|
19
|
-
const menu = this.page.getByRole('menu', {
|
|
20
|
-
name: 'Tools',
|
|
21
|
-
});
|
|
22
|
-
await menu
|
|
23
|
-
.getByRole('menuitemradio', {
|
|
24
|
-
name: label,
|
|
25
|
-
})
|
|
26
|
-
.click();
|
|
27
|
-
await toolsToolbar
|
|
28
|
-
.getByRole('button', {
|
|
29
|
-
name: 'Tools',
|
|
30
|
-
})
|
|
31
|
-
.click();
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=switch-editor-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch-editor-tool.js","sourceRoot":"","sources":["../../src/editor/switch-editor-tool.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACI,KAAK,2BAA0C,KAAa;IAClE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,SAAS,EAAE;QACpD,IAAI,EAAE,gBAAgB;KACtB,CAAE,CAAC;IACJ,MAAM,YAAY;SAChB,SAAS,CAAE,QAAQ,EAAE;QACrB,IAAI,EAAE,OAAO;KACb,CAAE;SACF,KAAK,EAAE,CAAC;IACV,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE;QACzC,IAAI,EAAE,OAAO;KACb,CAAE,CAAC;IACJ,MAAM,IAAI;SACR,SAAS,CAAE,eAAe,EAAE;QAC5B,IAAI,EAAE,KAAK;KACX,CAAE;SACF,KAAK,EAAE,CAAC;IACV,MAAM,YAAY;SAChB,SAAS,CAAE,QAAQ,EAAE;QACrB,IAAI,EAAE,OAAO;KACb,CAAE;SACF,KAAK,EAAE,CAAC;AACX,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.switchToLegacyCanvas = switchToLegacyCanvas;
|
|
4
|
-
/**
|
|
5
|
-
* Switches to legacy (non-iframed) canvas.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
*/
|
|
9
|
-
async function switchToLegacyCanvas() {
|
|
10
|
-
await this.page.waitForFunction(() => window?.wp?.blocks);
|
|
11
|
-
await this.page.evaluate(() => {
|
|
12
|
-
window.wp.blocks.registerBlockType('test/v2', {
|
|
13
|
-
apiVersion: '2',
|
|
14
|
-
title: 'test',
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=switch-to-legacy-canvas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch-to-legacy-canvas.js","sourceRoot":"","sources":["../../src/editor/switch-to-legacy-canvas.ts"],"names":[],"mappings":";;;AAKA;;;;GAIG;AACI,KAAK;IACX,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAE,CAAC;IAE5D,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAE,SAAS,EAAE;YAC9C,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,MAAM;SACb,CAAE,CAAC;IACL,CAAC,CAAE,CAAC;AACL,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformBlockTo = transformBlockTo;
|
|
4
|
-
/**
|
|
5
|
-
* Clicks the default block appender.
|
|
6
|
-
*
|
|
7
|
-
* @param this
|
|
8
|
-
* @param name Block name.
|
|
9
|
-
*/
|
|
10
|
-
async function transformBlockTo(name) {
|
|
11
|
-
await this.page.waitForFunction(() => window?.wp?.blocks && window?.wp?.data);
|
|
12
|
-
await this.page.evaluate(([blockName]) => {
|
|
13
|
-
const clientIds = window.wp.data
|
|
14
|
-
.select('core/block-editor')
|
|
15
|
-
.getSelectedBlockClientIds();
|
|
16
|
-
const blocks = window.wp.data
|
|
17
|
-
.select('core/block-editor')
|
|
18
|
-
.getBlocksByClientId(clientIds);
|
|
19
|
-
window.wp.data
|
|
20
|
-
.dispatch('core/block-editor')
|
|
21
|
-
.replaceBlocks(clientIds, window.wp.blocks.switchToBlockType(blocks, blockName));
|
|
22
|
-
}, [name]);
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=transform-block-to.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform-block-to.js","sourceRoot":"","sources":["../../src/editor/transform-block-to.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACI,KAAK,2BAA0C,IAAY;IACjE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,MAAM,EAAE,EAAE,EAAE,IAAI,CAC5C,CAAC;IAEF,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACvB,CAAE,CAAE,SAAS,CAAE,EAAG,EAAE;QACnB,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI;aAC9B,MAAM,CAAE,mBAAmB,CAAE;aAC7B,yBAAyB,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI;aAC3B,MAAM,CAAE,mBAAmB,CAAE;aAC7B,mBAAmB,CAAE,SAAS,CAAE,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,IAAI;aACZ,QAAQ,CAAE,mBAAmB,CAAE;aAC/B,aAAa,CACb,SAAS,EACT,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAE,MAAM,EAAE,SAAS,CAAE,CACvD,CAAC;IACJ,CAAC,EACD,CAAE,IAAI,CAAE,CACR,CAAC;AACH,CAAC"}
|