From 50c24aefca259601ce2cdb737b1a655fc7cc071d Mon Sep 17 00:00:00 2001 From: Aleksey Novikov Date: Fri, 18 Aug 2023 12:06:22 +0300 Subject: [PATCH 1/2] #6749 Incorrect expand-collapse cell width in Matrix Dropdown Detailed Fixes #6749 --- src/defaultCss/defaultV2Css.ts | 1 + src/defaultV2-theme/blocks/sd-table.scss | 4 + src/question_matrixdropdownrendered.ts | 9 ++- .../tests/defaultV2/matrix.ts | 75 +++++++++++++++++++ 4 files changed, 85 insertions(+), 4 deletions(-) diff --git a/src/defaultCss/defaultV2Css.ts b/src/defaultCss/defaultV2Css.ts index 8806aa8811..eac8e106fa 100644 --- a/src/defaultCss/defaultV2Css.ts +++ b/src/defaultCss/defaultV2Css.ts @@ -427,6 +427,7 @@ export var defaultV2Css = { detailIconExpanded: "sd-detail-panel__icon--expanded", detailIconId: "icon-expanddetail", detailIconExpandedId: "icon-collapsedetail", + detailPanelCell: "sd-table__cell--detail-panel", actionsCell: "sd-table__cell sd-table__cell--actions", actionsCellDrag: "sd-table__cell--drag", emptyCell: "sd-table__cell--empty", diff --git a/src/defaultV2-theme/blocks/sd-table.scss b/src/defaultV2-theme/blocks/sd-table.scss index 96883469d9..b009526f19 100644 --- a/src/defaultV2-theme/blocks/sd-table.scss +++ b/src/defaultV2-theme/blocks/sd-table.scss @@ -149,6 +149,10 @@ width: calcSize(14); } +.sd-matrixdropdown .sd-table__cell--header.sd-table__cell--action { + min-width: calcSize(2); + width: calcSize(2); +} .sd-matrixdropdown .sd-table__cell--header:not(.sd-table__cell--empty) { min-width: calcSize(14); width: calcSize(14); diff --git a/src/question_matrixdropdownrendered.ts b/src/question_matrixdropdownrendered.ts index 29434bbe19..1cbfc0094c 100644 --- a/src/question_matrixdropdownrendered.ts +++ b/src/question_matrixdropdownrendered.ts @@ -392,10 +392,10 @@ export class QuestionMatrixDropdownRenderedTable extends Base { if (!isShown) return; this.headerRowValue = this.createRenderedRow(this.cssClasses); if (this.allowRowsDragAndDrop) { - this.headerRow.cells.push(this.createHeaderCell(null)); + this.headerRow.cells.push(this.createHeaderCell(null, "action")); } if (this.hasActionCellInRows("start")) { - this.headerRow.cells.push(this.createHeaderCell(null)); + this.headerRow.cells.push(this.createHeaderCell(null, "action")); } if (this.matrix.hasRowText && this.matrix.showHeader) { this.headerRow.cells.push(this.createHeaderCell(null)); @@ -943,12 +943,13 @@ export class QuestionMatrixDropdownRenderedTable extends Base { .toString(); } private createHeaderCell( - column: MatrixDropdownColumn + column: MatrixDropdownColumn, + cellType: string = null ): QuestionMatrixDropdownRenderedCell { let cell = !!column ? this.createTextCell(column.locTitle) : this.createEmptyCell(); cell.column = column; this.setHeaderCell(column, cell); - const cellType = (!!column && column.cellType !== "default") ? column.cellType : this.matrix.cellType; + if (!cellType) cellType = (!!column && column.cellType !== "default") ? column.cellType : this.matrix.cellType; this.setHeaderCellCssClasses(cell, cellType); return cell; } diff --git a/visualRegressionTests/tests/defaultV2/matrix.ts b/visualRegressionTests/tests/defaultV2/matrix.ts index 1ec522f8bf..c0141ab3ce 100644 --- a/visualRegressionTests/tests/defaultV2/matrix.ts +++ b/visualRegressionTests/tests/defaultV2/matrix.ts @@ -292,6 +292,81 @@ frameworks.forEach(framework => { }); }); + test("Matrix dropdown detail", async (t) => { + await wrapVisualTest(t, async (t, comparer) => { + await t.resizeWindow(1200, 1200); + await initSurvey(framework, { + "logoPosition": "right", + "pages": [ + { + "name": "page1", + "elements": [ + { + "type": "matrixdropdown", + "name": "q", + "title": "Question", + "columns": [ + { + "name": "Column 1", + "title": "Title" + }, + { + "name": "Column 2", + "title": "Title" + }, + { + "name": "Column 3", + "title": "Title" + } + ], + "rows": [ + "Row 1", "Row 2", "Row 3" + ], + "detailElements": [ + { + "type": "text", + "name": "question1", + "titleLocation": "hidden" + }, + { + "type": "text", + "name": "question2", + "titleLocation": "hidden" + }, + { + "type": "text", + "name": "question3", + "titleLocation": "hidden" + } + ], + "detailPanelMode": "underRow", + "choices": [ + 1, + 2, + 3, + 4, + 5 + ], + "cellType": "text" + } + ] + } + ], + "showQuestionNumbers": "off", + "widthMode": "static", + "width": "720px", + focusFirstQuestionAutomatic: false + }); + + const questionRoot = Selector(".sd-row"); + await takeElementScreenshot("question-matrix-dropdown-detail.png", questionRoot, t, comparer); + await t.click(Selector(".sd-table__cell--detail-button").filterVisible().nth(1)); + + await takeElementScreenshot("question-matrix-dropdown-detail-expanded.png", questionRoot, t, comparer); + + }); + }); + test("Matrix dropdown", async (t) => { await wrapVisualTest(t, async (t, comparer) => { await t.resizeWindow(800, 600); From 9ea7fe45ece1a9913c9ac9768584b1f32c459025 Mon Sep 17 00:00:00 2001 From: Aleksey Novikov Date: Fri, 18 Aug 2023 12:37:17 +0300 Subject: [PATCH 2/2] #6749 Incorrect expand-collapse cell width in Matrix Dropdown Detailed Fixes #6749 --- ...question-matrix-dropdown-detail-expanded.png | Bin 0 -> 12798 bytes .../etalons/question-matrix-dropdown-detail.png | Bin 0 -> 9992 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 visualRegressionTests/tests/defaultV2/etalons/question-matrix-dropdown-detail-expanded.png create mode 100644 visualRegressionTests/tests/defaultV2/etalons/question-matrix-dropdown-detail.png diff --git a/visualRegressionTests/tests/defaultV2/etalons/question-matrix-dropdown-detail-expanded.png b/visualRegressionTests/tests/defaultV2/etalons/question-matrix-dropdown-detail-expanded.png new file mode 100644 index 0000000000000000000000000000000000000000..053ed9f73f44f126f6de5760a892633fd4368c7f GIT binary patch literal 12798 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 MP`I6TOZVyj0m%-mh5!Hn literal 0 HcmV?d00001 diff --git a/visualRegressionTests/tests/defaultV2/etalons/question-matrix-dropdown-detail.png b/visualRegressionTests/tests/defaultV2/etalons/question-matrix-dropdown-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d3de803de5d23c1ddcc2117cf2973d40eb0431 GIT binary patch literal 9992 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 literal 0 HcmV?d00001