Skip to content

Commit 7e29015

Browse files
committed
Merge branch 'cms-team-1-delivery' of github.com:magento-obsessive-owls/magento2-page-builder into cms-team-1-delivery
# Conflicts: # app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/ColumnActionGroup.xml # app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/ContentTypeSliderActionGroup.xml # app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderColumnSection.xml # app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderEditFormSection.xml
2 parents 9b78dc1 + d1c07c8 commit 7e29015

File tree

92 files changed

+4678
-1314
lines changed

Some content is hidden

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

92 files changed

+4678
-1314
lines changed

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

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ class Config
1515
const DEFAULT_PREVIEW_COMPONENT = 'Magento_PageBuilder/js/content-type/preview';
1616
const DEFAULT_MASTER_COMPONENT = 'Magento_PageBuilder/js/content-type/master';
1717

18+
const XML_PATH_COLUMN_GRID_DEFAULT = 'cms/pagebuilder/column_grid_default';
19+
const XML_PATH_COLUMN_GRID_MAX = 'cms/pagebuilder/column_grid_max';
20+
1821
/**
1922
* @var \Magento\PageBuilder\Model\Config\ConfigInterface
2023
*/
@@ -46,13 +49,18 @@ class Config
4649
private $additionalDataParser;
4750

4851
/**
49-
* Constructor
50-
*
52+
* @var \Magento\Framework\App\Config\ScopeConfigInterface
53+
*/
54+
private $scopeConfig;
55+
56+
/**
57+
* Config constructor.
5158
* @param \Magento\PageBuilder\Model\Config\ConfigInterface $config
5259
* @param Config\UiComponentConfig $uiComponentConfig
53-
* @param \Magento\Framework\UrlInterface $urlBuilder
60+
* @param UrlInterface $urlBuilder
5461
* @param \Magento\Framework\Url $frontendUrlBuilder
5562
* @param \Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Parser $additionalDataParser
63+
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
5664
* @param array $data
5765
*/
5866
public function __construct(
@@ -61,13 +69,15 @@ public function __construct(
6169
\Magento\Framework\UrlInterface $urlBuilder,
6270
\Magento\Framework\Url $frontendUrlBuilder,
6371
\Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Parser $additionalDataParser,
72+
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
6473
array $data = []
6574
) {
6675
$this->config = $config;
6776
$this->uiComponentConfig = $uiComponentConfig;
6877
$this->urlBuilder = $urlBuilder;
6978
$this->frontendUrlBuilder = $frontendUrlBuilder;
7079
$this->additionalDataParser = $additionalDataParser;
80+
$this->scopeConfig = $scopeConfig;
7181
$this->data = $data;
7282
}
7383

@@ -83,7 +93,9 @@ public function getConfig()
8393
'content_types' => $this->getContentTypes(),
8494
'stage_config' => $this->data,
8595
'media_url' => $this->urlBuilder->getBaseUrl(['_type' => UrlInterface::URL_TYPE_MEDIA]),
86-
'preview_url' => $this->frontendUrlBuilder->getUrl('pagebuilder/contenttype/preview')
96+
'preview_url' => $this->frontendUrlBuilder->getUrl('pagebuilder/contenttype/preview'),
97+
'column_grid_default' => $this->scopeConfig->getValue(self::XML_PATH_COLUMN_GRID_DEFAULT),
98+
'column_grid_max' => $this->scopeConfig->getValue(self::XML_PATH_COLUMN_GRID_MAX),
8799
];
88100
}
89101

app/code/Magento/PageBuilder/Setup/DataConverter/ChildrenRenderer/Row.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,6 @@ private function getColumnWidth($column)
102102
return 0;
103103
}
104104

105-
$width = $column['formData']['width'];
106-
if (isset(Column::COLUMN_WIDTH_MAPPING[$width])) {
107-
$width = Column::COLUMN_WIDTH_MAPPING[$width];
108-
}
109-
110-
return $width;
105+
return $column['formData']['width'];
111106
}
112107
}

app/code/Magento/PageBuilder/Setup/DataConverter/Renderer/Column.php

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,16 @@
1313
*/
1414
class Column implements RendererInterface
1515
{
16-
// Defined column mapping to supported widths
16+
// We have to map as we are unable to calculate the new column width effectively for all sizes
1717
const COLUMN_WIDTH_MAPPING = [
18-
'0.250' => '0.167',
19-
'0.750' => '0.833'
18+
'0.167' => '16.6667',
19+
'0.250' => '25',
20+
'0.333' => '33.3333',
21+
'0.500' => '50',
22+
'0.666' => '66.6666',
23+
'0.750' => '75',
24+
'0.825' => '82.5000',
25+
'1.000' => '100',
2026
];
2127

2228
/**
@@ -74,13 +80,10 @@ public function render(array $itemData, array $additionalData = [])
7480
*/
7581
private function calculateColumnWidth($oldWidth)
7682
{
77-
// Map column sizes to suitable sizes for columns we don't yet support
78-
if (isset(self::COLUMN_WIDTH_MAPPING[$oldWidth])) {
79-
$oldWidth = self::COLUMN_WIDTH_MAPPING[$oldWidth];
83+
if (!isset(self::COLUMN_WIDTH_MAPPING[number_format($oldWidth, 3)])) {
84+
throw new \InvalidArgumentException('Width ' . $oldWidth .' has no valid mapping.');
8085
}
8186

82-
// Resolve issues with old system storing non exact percentages (e.g. 0.167 != 16.6667%)
83-
$percentage = 100 / round(100 / ($oldWidth * 100), 1);
84-
return floatval(number_format($percentage, 4, '.', '')) . '%';
87+
return self::COLUMN_WIDTH_MAPPING[number_format($oldWidth, 3)] . '%';
8588
}
8689
}

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

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,48 @@
2121
<waitForElementVisible time="10" selector="{{PageBuilderContentTypeOptionsMenu.contentTypeOptionsMenuByIndex(contentType.role, contentTypeIndex)}}" stepKey="waitForOptions"/>
2222
<waitForElementVisible selector="{{PageBuilderColumnSection.columnMoveByIndex(contentTypeIndex)}}" stepKey="waitForMoveHandle"/>
2323
<dragAndDrop selector1="{{PageBuilderColumnSection.columnMoveByIndex(contentTypeIndex)}}" selector2="{{PageBuilderStage.contentTypeContainer(contentType.role, containerTargetIndex)}}" stepKey="moveContentTypeIntoContainer"/>
24+
<waitForPageLoad stepKey="waitForDragOperation" />
25+
</actionGroup>
26+
<actionGroup name="openGridSizeForm">
27+
<arguments>
28+
<argument name="index" defaultValue="1" type="string"/>
29+
</arguments>
30+
<waitForElementVisible selector="{{PageBuilderColumnSection.gridSizeButton(index)}}" stepKey="waitForGridSizeButtonVisible" />
31+
<click selector="{{PageBuilderColumnSection.gridSizeButton(index)}}" stepKey="clickGridSizeButton" />
32+
<waitForPageLoad stepKey="waitForAnimation" />
33+
<waitForElementVisible selector="{{PageBuilderColumnSection.gridSizeInput(index)}}" stepKey="waitForGridVisible" />
34+
</actionGroup>
35+
<actionGroup name="closeGridSizeForm">
36+
<arguments>
37+
<argument name="index" defaultValue="1" type="string"/>
38+
</arguments>
39+
<click selector="{{PageBuilderColumnSection.columnX('1')}}" stepKey="clickColumn" />
40+
<waitForPageLoad stepKey="waitForAnimation" />
41+
<waitForElementNotVisible selector="{{PageBuilderColumnSection.gridSizeInput(index)}}" stepKey="waitForGridNotVisible" />
42+
</actionGroup>
43+
<actionGroup name="updateGridSize">
44+
<arguments>
45+
<argument name="index" defaultValue="1" type="string"/>
46+
<argument name="gridSize" defaultValue="12" type="string"/>
47+
</arguments>
48+
<waitForElementVisible selector="{{PageBuilderColumnSection.gridSizeButton(index)}}" stepKey="waitForGridSizeButtonVisible" />
49+
<click selector="{{PageBuilderColumnSection.gridSizeButton(index)}}" stepKey="clickGridSizeButton" />
50+
<waitForPageLoad stepKey="waitForAnimation" />
51+
<waitForElementVisible selector="{{PageBuilderColumnSection.gridSizeInput(index)}}" stepKey="waitForGridVisible" />
52+
<fillField selector="{{PageBuilderColumnSection.gridSizeInput(index)}}" userInput="{{gridSize}}" stepKey="enterGridSize"/>
53+
<pressKey selector="{{PageBuilderColumnSection.gridSizeInput(index)}}" parameterArray="['su',\Facebook\WebDriver\WebDriverKeys::ENTER]" stepKey="pressKeyEnter"/>
54+
<waitForPageLoad stepKey="waitForUpdate" />
55+
<waitForElementVisible selector="{{PageBuilderColumnSection.displayLabelGridSize(index, gridSize)}}" stepKey="validateGridSize" />
56+
</actionGroup>
57+
<actionGroup name="updateGridSizeInvalid">
58+
<arguments>
59+
<argument name="index" defaultValue="1" type="string"/>
60+
<argument name="gridSize" defaultValue="12" type="string"/>
61+
<argument name="errorMessage"/>
62+
</arguments>
63+
<fillField selector="{{PageBuilderColumnSection.gridSizeInput(index)}}" userInput="{{gridSize}}" stepKey="enterGridSize"/>
64+
<click selector="{{PageBuilderColumnSection.columnX(index)}}" stepKey="clickColumn" />
65+
<waitForPageLoad stepKey="waitForAnimation" />
66+
<waitForElementVisible selector="{{PageBuilderColumnSection.gridSizeError(index, errorMessage)}}" stepKey="verifyError"/>
2467
</actionGroup>
2568
</actionGroups>

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@
1313
<argument name="section" defaultValue="SliderOnFrontend"/>
1414
<argument name="index" defaultValue="2" type="string"/>
1515
</arguments>
16-
<waitForElementVisible selector="{{section.slideNavigator(index)}}" stepKey="waitForSliderButton"/>
17-
<click selector="{{section.slideNavigator(index)}}" stepKey="clickSliderButton"/>
18-
<waitForElementVisible selector="{{section.slide(index)}}" stepKey="waitForSlide"/>
16+
<waitForElementVisible selector="{{SliderOnFrontend.slideNavigator(index)}}" stepKey="waitForSliderButton"/>
17+
<click selector="{{SliderOnFrontend.slideNavigator(index)}}" stepKey="clickSliderButton"/>
18+
<waitForPageLoad stepKey="waitForPageLoad"/>
19+
<waitForElementVisible selector="{{SlideOnFrontend.slide(index)}}" stepKey="waitForSlide"/>
1920
</actionGroup>
2021
<actionGroup name="unfocusSlideOptions">
2122
<click selector="{{PageBuilderPanel.searchPanel}}" stepKey="clickOutsideLiveEdit"/>
@@ -27,10 +28,10 @@
2728
<click stepKey="focusOnSlider" selector="{{SliderInAdmin.sliderContainer}}"/>
2829
<scrollTo selector="div.pagebuilder-header" x="0" y="-100" stepKey="scrollToTop"/>
2930
<moveMouseOver selector="{{SliderInAdmin.sliderContainer}}" x="10" y="10" stepKey="onMouseOverContentTypeStage"/>
30-
<waitForPageLoad stepKey="waitForPageLoad"/>
31+
<waitForPageLoad stepKey="waitForPageLoad1"/>
3132
<waitForElementVisible time="5" selector="{{PageBuilderContentTypeOptionsMenu.contentTypeOptionsMenu(PageBuilderSliderContentType.role)}}" stepKey="seeContentTypeOptionsMenu"/>
3233
<moveMouseOver selector="{{PageBuilderContentTypeOptionsMenu.contentTypeOptionsMenu(PageBuilderSliderContentType.role)}}" stepKey="onMouseOverOptionsMenu"/>
3334
<click selector="{{PageBuilderContentTypeOptionsMenu.contentTypeAdd(PageBuilderSliderContentType.role)}}" stepKey="clickAddNewSlideChild"/>
34-
<waitForLoadingMaskToDisappear stepKey="waitForAnimation"/>
35+
<waitForPageLoad stepKey="waitForPageLoad2"/>
3536
</actionGroup>
3637
</actionGroups>

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

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,17 @@
1919
<waitForPageLoad stepKey="waitForPageLoad"/>
2020
</actionGroup>
2121
<actionGroup name="saveStoreConfigurationAndValidateFieldError">
22+
<arguments>
23+
<argument name="inputFieldError" type="string"/>
24+
<argument name="errorMessageSelector" type="string"/>
25+
<argument name="errorMessage" type="string"/>
26+
</arguments>
2227
<comment userInput="saveStoreConfigurationAndValidateFieldError" stepKey="comment"/>
2328
<waitForElementVisible selector="{{StoreConfigSection.Save}}" stepKey="waitForSaveButton"/>
2429
<click selector="{{StoreConfigSection.Save}}" stepKey="clickSaveButton"/>
25-
<waitForElement selector="{{ContentManagementSection.GoogleMapsStyleInputFieldError}}" stepKey="waitForErrorField"/>
26-
<waitForElementVisible selector="{{ContentManagementSection.GoogleMapsStyleErrorMessage}}" stepKey="waitForErrorMessage"/>
27-
<see selector="{{ContentManagementSection.GoogleMapsStyleErrorMessage}}" userInput="{{googleMapsStyle.errorMessage}}" stepKey="seeErrorMessage"/>
30+
<waitForElement selector="{{inputFieldError}}" stepKey="waitForErrorField"/>
31+
<waitForElementVisible selector="{{errorMessageSelector}}" stepKey="waitForErrorMessage"/>
32+
<see selector="{{errorMessageSelector}}" userInput="{{errorMessage}}" stepKey="seeErrorMessage"/>
2833
</actionGroup>
2934
<actionGroup name="enablePageBuilderSetting">
3035
<amOnPage url="{{AdminContentManagementPage.url}}" stepKey="navigateToConfigurationPage" />
@@ -101,4 +106,18 @@
101106
<waitForElementVisible selector="{{ContentManagementSection.GoogleMapsStyleInputField}}" stepKey="waitForGoogleMapsStyleInputField"/>
102107
<fillField selector="{{ContentManagementSection.GoogleMapsStyleInputField}}" userInput="{{style}}" stepKey="inputStyle"/>
103108
</actionGroup>
109+
<actionGroup name="updateDefaultGridSizeConfig">
110+
<arguments>
111+
<argument name="gridSize" defaultValue="12" type="string"/>
112+
</arguments>
113+
<waitForElementVisible selector="{{ContentManagementSection.ColumnGridDefaultInputField}}" stepKey="waitForDefaultGridSizeInputFieldVisible"/>
114+
<fillField selector="{{ContentManagementSection.ColumnGridDefaultInputField}}" userInput="{{gridSize}}" stepKey="enterDefaultGridSize"/>
115+
</actionGroup>
116+
<actionGroup name="updateMaxGridSizeConfig">
117+
<arguments>
118+
<argument name="gridSize" defaultValue="16" type="string"/>
119+
</arguments>
120+
<waitForElementVisible selector="{{ContentManagementSection.ColumnGridMaxInputField}}" stepKey="waitForMaxGridSizeInputFieldVisible"/>
121+
<fillField selector="{{ContentManagementSection.ColumnGridMaxInputField}}" userInput="{{gridSize}}" stepKey="enterMaxGridSize"/>
122+
</actionGroup>
104123
</actionGroups>

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,17 @@
4949
<data key="empty"/>
5050
<data key="errorMessage">Google Maps Style JSON is invalid. Please paste the valid JSON style.</data>
5151
</entity>
52+
<entity name="PageBuilderDefaultColumnGridSize" type="pagebuilder_default_grid_size">
53+
<data key="section">cms_pagebuilder</data>
54+
<data key="row">row_cms_pagebuilder_column_grid_default</data>
55+
<data key="label">Default Column Grid Size</data>
56+
<data key="invalidDefaultGridSizeErrorMessage">Default grid size must be less than the maximum grid size.</data>
57+
<data key="invalidDigitErrorMessage">Please enter a valid number in this field.</data>
58+
<data key="greaterThanOneErrorMessage">Please enter a number 2 or greater in this field.</data>
59+
</entity>
60+
<entity name="PageBuilderMaximumColumnGridSize" type="pagebuilder_max_grid_size">
61+
<data key="section">cms_pagebuilder</data>
62+
<data key="row">row_cms_pagebuilder_column_grid_max</data>
63+
<data key="label">Maximum Column Grid Size</data>
64+
</entity>
5265
</entities>

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,31 @@
173173
<data key="verticalAlignmentBottom">justify-content: flex-end</data>
174174
<data key="verticalAlignmentCenter">justify-content: center</data>
175175
<data key="verticalAlignmentTop">justify-content: flex-start</data>
176+
<data key="widthOneTwelfth">width: 8.33333%</data>
176177
<data key="widthOneSixth">width: 16.6667%</data>
177178
<data key="widthOneThird">width: 33.3333%</data>
179+
<data key="widthFiveTwelfth">width: 41.6667%</data>
178180
<data key="widthHalf">width: 50%</data>
179181
</entity>
180-
<!--Border Color-->
182+
<!-- Grid Size -->
183+
<entity name="PageBuilderGridSize" type="pagebuilder_grid_size">
184+
<data key="defaultGridSize">12</data>
185+
<data key="defaultMaxGridSize">16</data>
186+
<data key="gridSizeErrorNegative">-8</data>
187+
<data key="gridSizeErrorZero">0</data>
188+
<data key="gridSizeErrorOne">1</data>
189+
<data key="gridSizeErrorFloat">12.5</data>
190+
<data key="gridSize_3">3</data>
191+
<data key="gridSize_5">5</data>
192+
<data key="gridSize_6">6</data>
193+
<data key="gridSize_32">32</data>
194+
<data key="gridSize_50">50</data>
195+
<data key="invalidNumberErrorMessage">Please enter a valid number.</data>
196+
<data key="minimumGridSizeErrorMessage">The minimum grid size supported is 2.</data>
197+
<data key="maximumGridSizeErrorMessage">The maximum grid size supported is</data>
198+
<data key="smallerThanTotalColumnsErrorMessage">Grid size cannot be smaller than the current total amount of columns, minus any empty columns.</data>
199+
</entity>
200+
<entity name="PageBuilderColumnDuplicate" type="pagebuilder_column">
201+
<data key="cannotDuplicateColumnErrorMessage">There is no free space within the column group to perform this action</data>
202+
</entity>
181203
</entities>

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,13 @@
2828
<element name="GoogleMapsStyleErrorMessage" type="text" selector="#cms_pagebuilder_google_maps_style-error"/>
2929
<element name="GoogleMapsStyleHelperText" type="text" selector="#row_cms_pagebuilder_google_maps_style .value .note span"/>
3030
<element name="GoogleMapsCreateMapStyleLink" type="button" selector="#row_cms_pagebuilder_google_maps_style a[href]"/>
31+
<element name="ColumnGridDefaultInputField" type="input" selector="#cms_pagebuilder_column_grid_default"/>
32+
<element name="ColumnGridDefaultInputFieldError" type="input" selector="//label[@class='mage-error'][@for='cms_pagebuilder_column_grid_default']"/>
33+
<element name="ColumnGridDefaultHelperText" type="text" selector="#row_cms_pagebuilder_column_grid_default .value .note span"/>
34+
<element name="ColumnGridMaxInputField" type="input" selector="#cms_pagebuilder_column_grid_max"/>
35+
<element name="ColumnGridMaxInputFieldError" type="input" selector="//label[@class='mage-error'][@for='cms_pagebuilder_column_grid_max']"/>
36+
<element name="ColumnGridMaxHelperText" type="text" selector="#row_cms_pagebuilder_column_grid_max .value .note span"/>
37+
<element name="UseSystem" type="input" selector="[name='groups[pagebuilder][fields][{{arg1}}][inherit]']" parameterized="true"/>
38+
<element name="UseSystemChecked" type="input" selector="[name='groups[pagebuilder][fields][{{arg1}}][inherit]']:checked" parameterized="true"/>
3139
</section>
3240
</sections>

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,14 @@
2020
<element name="columnResizeGridLine" type="block" selector=".resize-grid .grid-line:nth-child({{arg}})" parameterized="true"/>
2121
<element name="columnStyle" type="text" selector="(//div[contains(@class, 'pagebuilder-column-group')])[1]/descendant::div[contains(@class, 'pagebuilder-content-type') and contains(@class, 'pagebuilder-column')][{{arg1}}][contains(@style, '{{arg2}}')]" parameterized="true"/>
2222
<element name="columnChildrenStyle" type="text" selector="(//div[contains(@class, 'pagebuilder-column-group')])[{{arg1}}]/descendant::div[contains(@class, 'pagebuilder-content-type') and contains(@class, 'pagebuilder-column')][{{arg2}}]//div[contains(@class, 'element-children')][contains(@style, '{{arg3}}')]" parameterized="true"/>
23-
<element name="displayLabel" type="button" selector='(//div[contains(@class, "pagebuilder-display-label")])[{{arg1}}][contains(text(), "{{arg2}}")]' parameterized="true"/>
23+
<element name="displayLabel" type="button" selector='(//div[contains(@class, "pagebuilder-content-type") and contains(@class, "pagebuilder-column")])[{{arg1}}]/descendant::div[contains(@class, "pagebuilder-display-label")][contains(text(), "{{arg2}}")]' parameterized="true"/>
2424
<element name="columnMoveByIndex" type="button" selector='(//div[contains(@class, "pagebuilder-content-type") and contains(@class, "pagebuilder-column")])[{{arg1}}]//div[contains(@class,"pagebuilder-options-visible")]/descendant::*[@class="move-column"]' parameterized="true"/>
25+
<element name="displayLabelGridSize" type="button" selector='(//div[contains(@class, "pagebuilder-column-group")])[{{arg1}}]//div[contains(@class, "pagebuilder-display-label")][1][contains(text(), "/{{arg2}}")]' parameterized="true"/>
26+
<element name="gridSizeButton" type="button" selector="(//div[contains(@class, 'pagebuilder-column-group')])[{{arg1}}]/descendant::div[contains(@class, 'indicator-wrapper')]" parameterized="true"/>
27+
<element name="gridSizeInput" type="input" selector="(//div[contains(@class, 'pagebuilder-column-group')])[{{arg1}}]/descendant::div[contains(@class, 'grid-panel-item-wrapper')]/input" parameterized="true"/>
28+
<element name="gridSizeTooltip" type="button" selector="(//div[contains(@class, 'pagebuilder-column-group')])[{{arg1}}]/descendant::div[contains(@class, 'grid-panel-tooltip')][1]" parameterized="true"/>
29+
<element name="gridSizeTooltipWithMax" type="button" selector="(//div[contains(@class, 'pagebuilder-column-group')])[{{arg1}}]/descendant::div[contains(@class, 'grid-panel-tooltip')][1]//span//p//span[text()='{{arg2}}']" parameterized="true"/>
30+
<element name="gridSizeError" type="button" selector="(//div[contains(@class, 'pagebuilder-column-group')])[{{arg1}}]/descendant::div[contains(@class, 'admin__field-error') and contains(text(), '{{arg2}}')]" parameterized="true"/>
2531
</section>
2632
<section name="ColumnsOnFrontend">
2733
<element name="columnGroup" type="block" selector=".pagebuilder-column-group"/>

0 commit comments

Comments
 (0)