Skip to content

Commit 4ba20f3

Browse files
committed
Merge branch 'MC-10833-typescript-errors' into cms-team-1-delivery
# Conflicts: # app/code/Magento/PageBuilder/view/adminhtml/web/js/master-format/read/configurable.js # app/code/Magento/PageBuilder/view/adminhtml/web/js/stage-builder.js # app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/stage-builder.ts # ts-errors.json
2 parents d4e1c56 + 39da035 commit 4ba20f3

File tree

351 files changed

+8662
-8980
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

351 files changed

+8662
-8980
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "page-builder-types"]
2+
path = page-builder-types
3+
url = git@github.com:magento-obsessive-owls/page-builder-types.git

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,31 @@ We will push new beta releases once a week, including work from the backlog. We
2323

2424
To participate in technical discussions and ask questions, join us in [Slack], where a number of Page Builder team members are present.
2525

26+
## TypeScript
27+
This module utilises TypeScript within our adminhtml web directory. This requires an additional build step or watch command to be running during development on this module.
28+
29+
We use a combination of `tsc` from TypeScript and Babel 7.* with the TypeScript env. This enables us to have fast build times for the large TypeScript code base we have.
30+
31+
#### `npx ts:build`
32+
Runs a single build of all TypeScript files within the defined directory. This utilises Babel with the TypeScript present.
33+
34+
#### `npx ts:watch`
35+
Runs a continuous watch of files and builds them as it detects file changes.
36+
37+
#### `npx ts:lint`
38+
Runs TSLint to verify linting of all TypeScript files
39+
40+
#### `npx ts:defs`
41+
Generates TypeScript definitions for the whole module to be published as a types package.
42+
43+
#### `npx ts:errors`
44+
Displays any TypeScript errors currently within the code base. This utilises `tsc` with the no emit flag.
45+
46+
#### `npx ts:errors:watch`
47+
Same as above but watches for file changes.
48+
49+
#### `npx start`
50+
Command used to start development on this module, uses `concurrently` to spawn instances of `npx ts:watch` and `npx ts:errors:watch`.
2651

2752
[Contribution Guide]: CONTRIBUTING.md
2853
[Slack]: https://magentocommeng.slack.com/messages/GANS1R4C9

app/code/Magento/PageBuilder/Block/GoogleMapsApi.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public function getStyle(): ?string
5858
public function getInvalidApiKeyMessage(): \Magento\Framework\Phrase
5959
{
6060
return __(
61-
"You must provide a valid <a href='%1'>Google Maps API key</a> to use a map.",
61+
"You must provide a valid <a href='%1' target='_blank'>Google Maps API key</a> to use a map.",
6262
$this->_urlBuilder->getUrl('adminhtml/system_config/edit/section/cms', ['_fragment' => 'cms_pagebuilder'])
6363
);
6464
}

app/code/Magento/PageBuilder/Model/Stage/Config.php

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ class Config
2323
const XML_PATH_COLUMN_GRID_DEFAULT = 'cms/pagebuilder/column_grid_default';
2424
const XML_PATH_COLUMN_GRID_MAX = 'cms/pagebuilder/column_grid_max';
2525

26+
const ROOT_CONTAINER_NAME = 'root-container';
27+
2628
/**
2729
* @var \Magento\PageBuilder\Model\ConfigInterface
2830
*/
@@ -73,8 +75,14 @@ class Config
7375
*/
7476
private $widgetInitializerConfig;
7577

78+
/**
79+
* @var array
80+
*/
81+
private $rootContainerConfig;
82+
7683
/**
7784
* Config constructor.
85+
*
7886
* @param \Magento\PageBuilder\Model\ConfigInterface $config
7987
* @param Config\UiComponentConfig $uiComponentConfig
8088
* @param UrlInterface $urlBuilder
@@ -84,6 +92,7 @@ class Config
8492
* @param \Magento\Ui\Block\Wysiwyg\ActiveEditor $activeEditor
8593
* @param \Magento\PageBuilder\Model\Wysiwyg\InlineEditingSupportedAdapterList $inlineEditingChecker
8694
* @param \Magento\PageBuilder\Model\WidgetInitializerConfig $widgetInitializerConfig
95+
* @param array $rootContainerConfig
8796
* @param array $data
8897
*
8998
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
@@ -98,6 +107,7 @@ public function __construct(
98107
\Magento\Ui\Block\Wysiwyg\ActiveEditor $activeEditor,
99108
\Magento\PageBuilder\Model\Wysiwyg\InlineEditingSupportedAdapterList $inlineEditingChecker,
100109
\Magento\PageBuilder\Model\WidgetInitializerConfig $widgetInitializerConfig,
110+
array $rootContainerConfig = [],
101111
array $data = []
102112
) {
103113
$this->config = $config;
@@ -109,6 +119,7 @@ public function __construct(
109119
$this->activeEditor = $activeEditor;
110120
$this->inlineEditingChecker = $inlineEditingChecker;
111121
$this->widgetInitializerConfig = $widgetInitializerConfig;
122+
$this->rootContainerConfig = $rootContainerConfig;
112123
$this->data = $data;
113124
}
114125

@@ -159,6 +170,12 @@ private function getContentTypes()
159170
);
160171
}
161172

173+
// The stage requires a root container to house it's children
174+
$contentTypeData[self::ROOT_CONTAINER_NAME] = $this->flattenContentTypeData(
175+
self::ROOT_CONTAINER_NAME,
176+
$this->rootContainerConfig
177+
);
178+
162179
return $contentTypeData;
163180
}
164181

@@ -169,32 +186,24 @@ private function getContentTypes()
169186
* @param array $contentType
170187
*
171188
* @return array
172-
*
173-
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
174189
*/
175190
private function flattenContentTypeData(string $name, array $contentType)
176191
{
177192
return [
178193
'name' => $name,
179194
'label' => $contentType['label'],
180-
'icon' => $contentType['icon'],
181-
'form' => $contentType['form'],
182-
'contentType' => '',
195+
'icon' => isset($contentType['icon']) ? $contentType['icon'] : '',
196+
'form' => isset($contentType['form']) ? $contentType['form'] : '',
183197
'group' => $contentType['group'] ?? 'general',
184-
'fields' => $this->uiComponentConfig->getFields($contentType['form']),
185-
'preview_template' => $contentType['preview_template'] ?? '',
186-
'render_template' => $contentType['render_template'] ?? '',
198+
'fields' => isset($contentType['form']) ? $this->uiComponentConfig->getFields($contentType['form']) : [],
187199
'component' => $contentType['component'],
188200
'preview_component' => $contentType['preview_component'] ?? self::DEFAULT_PREVIEW_COMPONENT,
189201
'master_component' => $contentType['master_component'] ?? self::DEFAULT_MASTER_COMPONENT,
190202
'allowed_parents' => $contentType['allowed_parents'] ?? [],
191-
'readers' => $contentType['readers'] ?? [],
192203
'appearances' => $contentType['appearances'] ?? [],
193204
'additional_data' => isset($contentType['additional_data'])
194205
? $this->additionalDataParser->toArray($contentType['additional_data'])
195206
: [],
196-
'elements' => $contentType['elements'] ?? [],
197-
'converters' => $contentType['converters'] ?? [],
198207
'is_visible' => isset($contentType['is_visible']) && $contentType['is_visible'] === 'false' ? false : true
199208
];
200209
}

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/ContentTypeMapActionGroup.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,9 +409,12 @@
409409
</arguments>
410410
<waitForElementVisible selector="{{section.warningMessageLink('1')}}" stepKey="waitForWarningMessageLink"/>
411411
<click selector="{{section.warningMessageLink('1')}}" stepKey="clickLink"/>
412+
<waitForPageLoad stepKey="waitForLinkClick"/>
413+
<switchToNextTab stepKey="switchToOpenedLink" />
412414
<waitForPageLoad stepKey="waitForPageLoad"/>
413415
<seeInCurrentUrl url="{{AdminContentManagementPage.url}}#cms_pagebuilder" stepKey="validateURL"/>
414416
<seeElement selector="{{ContentManagementSection.GoogleMapsAPIKeyInputField}}" stepKey="seeGoogleMapsAPIKeyInputField"/>
417+
<closeTab stepKey="closeOpenedTab" />
415418
</actionGroup>
416419
<actionGroup name="validateAdvancedStyleWithAllUpdatedMapWithErrorOverlay" extends="validateAdvancedStyleWithAllUpdatedNotVisible">
417420
<waitForElementVisible selector="{{page.warningMessageLink(index)}}" stepKey="dontSeeElement"/>

app/code/Magento/PageBuilder/Test/Mftf/Data/ContentTypeData.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212
<data key="index">1</data>
1313
<data key="pageName" unique="suffix">testcmspage</data>
1414
</entity>
15-
<entity name="PageBuilderStage" type="pagebuilder_content_type">
16-
<data key="role">stage</data>
15+
<!-- Root Container -->
16+
<entity name="PageBuilderRootContainerContentType" type="pagebuilder_content_type">
17+
<data key="role">root-container</data>
1718
</entity>
1819
<!-- Layout -->
1920
<entity name="PageBuilderRowContentType" type="pagebuilder_content_type">

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderStageSection.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<element name="enabled" type="button" selector="//div[not(contains(@class, '_disabled'))]/div[contains(@class, 'pagebuilder-wysiwyg-wrapper')]/div[@class='pagebuilder-stage-wrapper']"/>
1818
<element name="disabled" type="button" selector="//div[contains(@class, '_disabled')]/div[contains(@class, 'pagebuilder-wysiwyg-wrapper')]/div[@class='pagebuilder-stage-wrapper']"/>
1919
<element name="stageWrapperFullScreen" type="button" selector="div.pagebuilder-stage-wrapper.stage-full-screen"/>
20-
<element name="stageWidthJS" type="button" selector="document.querySelector('div[class~=\'stage-container\']').clientWidth"/>
20+
<element name="stageWidthJS" type="button" selector="document.querySelector('div[class~=\'root-container-container\']').clientWidth"/>
2121
<element name="modal" type="text" selector='aside.modal-popup._show'/>
2222
<element name="modalOk" type="button" selector="aside.modal-popup._show button.action-primary.action-accept"/>
2323
<element name="modalCancel" type="button" selector="aside.modal-popup._show button.action-secondary.action-dismiss"/>
@@ -45,9 +45,6 @@
4545
<element name="leftPanel" type="input" selector='#pagebuilder-panel'/>
4646
<element name="searchField" type="input" selector='//*[@id="pagebuilder-panel"]/div[1]/a'/>
4747
<element name="clearSearch" type="button" selector='//*[@id="pagebuilder-panel"]/div[1]/a'/>
48-
<element name="collapsePanel" type="button" selector='//div[contains(@class, "panel-controls")]//a[contains(@class, "collapse")]'/>
49-
<element name="panelCollapsed" type="button" selector='(//div[contains(@class, "pagebuilder-stage") and contains(@class, "panel-collapsed")])'/>
50-
<element name="expandPanel" type="button" selector='//div[contains(@class, "expand")]//a'/>
5148
<element name="firstSection" type="button" selector='//*[@id="pagebuilder-panel-groups"]/li[1]' timeout="30"/>
5249
<element name="allPanelGroups" type="button" selector="#pagebuilder-panel-groups .group-title"/>
5350
<element name="allGroupContentTypes" type="button" selector="#pagebuilder-panel-groups #group-{{arg1}} .pagebuilder-draggable-content-type" parameterized="true"/>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminCatalogProductPageBuilder.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
<actionGroup ref="dragContentTypeToDropZone" stepKey="dragRowToStage">
9898
<argument name="contentType" value="PageBuilderRowContentType"/>
9999
<argument name="contentTypeIndex" value="2"/>
100-
<argument name="containerTargetType" value="PageBuilderStage"/>
100+
<argument name="containerTargetType" value="PageBuilderRootContainerContentType"/>
101101
<argument name="dropZoneIndex" value="2"/>
102102
</actionGroup>
103103
<!-- Edit 2nd Row -->

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderBannerCommonTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1228,7 +1228,7 @@
12281228
</actionGroup>
12291229
<actionGroup ref="cannotDragContentTypeToTarget" stepKey="dragBannerIntoStage">
12301230
<argument name="contentType" value="PageBuilderBannerContentType"/>
1231-
<argument name="containerTargetType" value="PageBuilderStage"/>
1231+
<argument name="containerTargetType" value="PageBuilderRootContainerContentType"/>
12321232
</actionGroup>
12331233
<dontSeeElementInDOM selector="{{BannerOnBackend.base('1')}}" stepKey="dontSeeBanner"/>
12341234
</test>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderBlockTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -964,7 +964,7 @@
964964
</actionGroup>
965965
<actionGroup ref="cannotDragContentTypeToTarget" stepKey="dragBlockIntoStage">
966966
<argument name="contentType" value="PageBuilderBlockContentType"/>
967-
<argument name="containerTargetType" value="PageBuilderStage"/>
967+
<argument name="containerTargetType" value="PageBuilderRootContainerContentType"/>
968968
</actionGroup>
969969
<dontSeeElementInDOM selector="{{BlockOnStage.base('1')}}" stepKey="dontSeeBlock"/>
970970
</test>

0 commit comments

Comments
 (0)