mirror of
https://github.com/divkit/divkit.git
synced 2026-05-07 20:02:32 +00:00
Pager wrap content fixes
commit_hash:6a7c78031d17a3ca031667c091b139dc5c14372e
This commit is contained in:
@@ -19716,6 +19716,8 @@
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-few-pages-end/firefoxMobile/horizontal-pager-wrap-content-size-mode-few-pages-end.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-few-pages-end/firefoxMobile/horizontal-pager-wrap-content-size-mode-few-pages-end.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-few-pages/chromeMobile/horizontal-pager-wrap-content-size-mode-few-pages.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-few-pages/chromeMobile/horizontal-pager-wrap-content-size-mode-few-pages.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-few-pages/firefoxMobile/horizontal-pager-wrap-content-size-mode-few-pages.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-few-pages/firefoxMobile/horizontal-pager-wrap-content-size-mode-few-pages.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-match-parent/chromeMobile/horizontal-pager-wrap-content-size-mode-match-parent.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-match-parent/chromeMobile/horizontal-pager-wrap-content-size-mode-match-parent.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-match-parent/firefoxMobile/horizontal-pager-wrap-content-size-mode-match-parent.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-match-parent/firefoxMobile/horizontal-pager-wrap-content-size-mode-match-parent.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-with-item-spacing/chromeMobile/horizontal-pager-wrap-content-size-mode-with-item-spacing.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-with-item-spacing/chromeMobile/horizontal-pager-wrap-content-size-mode-with-item-spacing.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-with-item-spacing/firefoxMobile/horizontal-pager-wrap-content-size-mode-with-item-spacing.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-size-mode-with-item-spacing/firefoxMobile/horizontal-pager-wrap-content-size-mode-with-item-spacing.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-width-with-paddings/chromeMobile/horizontal-pager-wrap-content-width-with-paddings.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/horizontal-pager-wrap-content-width-with-paddings/chromeMobile/horizontal-pager-wrap-content-width-with-paddings.png",
|
||||
@@ -19808,6 +19810,8 @@
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-height-with-paddings/firefoxMobile/vertical-pager-wrap-content-height-with-paddings.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-height-with-paddings/firefoxMobile/vertical-pager-wrap-content-height-with-paddings.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-height/chromeMobile/vertical-pager-wrap-content-height.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-height/chromeMobile/vertical-pager-wrap-content-height.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-height/firefoxMobile/vertical-pager-wrap-content-height.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-height/firefoxMobile/vertical-pager-wrap-content-height.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-match-parent/chromeMobile/vertical-pager-wrap-content-size-match-parent.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-match-parent/chromeMobile/vertical-pager-wrap-content-size-match-parent.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-match-parent/firefoxMobile/vertical-pager-wrap-content-size-match-parent.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-match-parent/firefoxMobile/vertical-pager-wrap-content-size-match-parent.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-mode-alignment-end/chromeMobile/vertical-pager-wrap-content-size-mode-alignment-end.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-mode-alignment-end/chromeMobile/vertical-pager-wrap-content-size-mode-alignment-end.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-mode-alignment-end/firefoxMobile/vertical-pager-wrap-content-size-mode-alignment-end.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-mode-alignment-end/firefoxMobile/vertical-pager-wrap-content-size-mode-alignment-end.png",
|
||||
"client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-mode-alignment-start/chromeMobile/vertical-pager-wrap-content-size-mode-alignment-start.png":"divkit/public/client/web/divkit/tests/hermione/screens/crossplatform/components/div-pager/vertical-pager-wrap-content-size-mode-alignment-start/chromeMobile/vertical-pager-wrap-content-size-mode-alignment-start.png",
|
||||
|
||||
@@ -109,7 +109,8 @@
|
||||
let itemSpacing = '0em';
|
||||
let paddingObj: EdgeInsets = {};
|
||||
let padding = '';
|
||||
let sizeVal = '';
|
||||
let autoSizeVal = '';
|
||||
let templateSizeVal = '';
|
||||
|
||||
let childLayoutParams: LayoutParams = {};
|
||||
let crossAxisAlignment: 'start' | 'center' | 'end' = 'start';
|
||||
@@ -361,7 +362,8 @@
|
||||
padding = edgeInsertsToCss(paddingObj, $direction);
|
||||
}
|
||||
|
||||
$: gridSizeProp = orientation === 'horizontal' ? 'grid-auto-columns' : 'grid-auto-rows';
|
||||
$: gridAutoSizeProp = orientation === 'horizontal' ? 'grid-auto-columns' : 'grid-auto-rows';
|
||||
$: gridTemplateSizeProp = orientation === 'horizontal' ? 'grid-template-columns' : 'grid-template-rows';
|
||||
|
||||
$: if ($jsonScrollAxisAlignment === 'start' || $jsonScrollAxisAlignment === 'center' || $jsonScrollAxisAlignment === 'end') {
|
||||
scrollAxisAlignment = $jsonScrollAxisAlignment;
|
||||
@@ -392,20 +394,39 @@
|
||||
const neighbourPageWidth = $jsonLayoutMode.neighbour_page_width?.value || 0;
|
||||
|
||||
if (scrollAxisAlignment === 'center') {
|
||||
sizeVal = `calc(100% + ${paddingStart} + ${paddingEnd} - 2 * ${pxToEmWithUnits(neighbourPageWidth)} - 2 * ${itemSpacing})`;
|
||||
autoSizeVal = `calc(100% + ${paddingStart} + ${paddingEnd} - 2 * ${pxToEmWithUnits(neighbourPageWidth)} - 2 * ${itemSpacing})`;
|
||||
} else if (scrollAxisAlignment === 'start') {
|
||||
sizeVal = `calc(100% + ${paddingEnd} - ${pxToEmWithUnits(neighbourPageWidth)} - ${itemSpacing})`;
|
||||
autoSizeVal = `calc(100% + ${paddingEnd} - ${pxToEmWithUnits(neighbourPageWidth)} - ${itemSpacing})`;
|
||||
} else {
|
||||
sizeVal = `calc(100% + ${paddingStart} - ${pxToEmWithUnits(neighbourPageWidth)} - ${itemSpacing})`;
|
||||
autoSizeVal = `calc(100% + ${paddingStart} - ${pxToEmWithUnits(neighbourPageWidth)} - ${itemSpacing})`;
|
||||
}
|
||||
templateSizeVal = '';
|
||||
} else if ($jsonLayoutMode?.type === 'percentage') {
|
||||
let pageWidth = $jsonLayoutMode.page_width?.value;
|
||||
if (typeof pageWidth !== 'number' || pageWidth < 0) {
|
||||
pageWidth = 100;
|
||||
}
|
||||
sizeVal = `calc(${(pageWidth / 100).toFixed(2)} * (100% + ${paddingStart} + ${paddingEnd}))`;
|
||||
autoSizeVal = `calc(${(pageWidth / 100).toFixed(2)} * (100% + ${paddingStart} + ${paddingEnd}))`;
|
||||
templateSizeVal = '';
|
||||
} else if ($jsonLayoutMode?.type === 'wrap_content') {
|
||||
sizeVal = 'minmax(max-content, auto)';
|
||||
autoSizeVal = '';
|
||||
templateSizeVal = visibleItems.map(item => {
|
||||
const size = item[orientation === 'horizontal' ? 'width' : 'height'];
|
||||
|
||||
if (size?.type === 'fixed' || size?.type === 'wrap_content') {
|
||||
return 'minmax(max-content, auto)';
|
||||
}
|
||||
let val = '100%';
|
||||
if (size?.type === 'match_parent') {
|
||||
if (isNonNegativeNumber(size.max_size?.value)) {
|
||||
val = `min(${val}, ${pxToEmWithUnits(size.max_size.value)})`;
|
||||
}
|
||||
if (isNonNegativeNumber(size.min_size?.value)) {
|
||||
val = `max(${val}, ${pxToEmWithUnits(size.min_size.value)})`;
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}).join(' ');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,7 +441,8 @@
|
||||
$: style = {
|
||||
'grid-gap': itemSpacing,
|
||||
padding,
|
||||
[gridSizeProp]: sizeVal,
|
||||
[gridAutoSizeProp]: autoSizeVal,
|
||||
[gridTemplateSizeProp]: templateSizeVal,
|
||||
transform: transformStr,
|
||||
};
|
||||
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
+2
-1
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"description": "Horizontal pager with wrap_content layout mode and children with match_parent width without constraints.",
|
||||
"platforms": [
|
||||
"android"
|
||||
"android",
|
||||
"web"
|
||||
],
|
||||
"templates": {
|
||||
"text_page": {
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"description": "Vertical pager with wrap_content layout mode and children with match_parent height with constraints.",
|
||||
"platforms": [
|
||||
"android"
|
||||
"android",
|
||||
"web"
|
||||
],
|
||||
"templates": {
|
||||
"text_page": {
|
||||
|
||||
Reference in New Issue
Block a user