From c7afd86770ca52cdf84d5d4953eae76d0e468a4a Mon Sep 17 00:00:00 2001 From: Dmitry Date: Mon, 29 Jul 2024 14:38:24 +0400 Subject: [PATCH] Revert "Fixed https://github.com/surveyjs/service/issues/2255 - Improve checkboxes adaptivity" --- src/question.ts | 14 ++---- src/question_baseselect.ts | 23 +-------- src/utils/utils.ts | 20 ++++---- ...ponsiveness-checkbox-col-count-5-small.png | Bin 11932 -> 0 bytes ...sponsiveness-checkbox-col-count-5-wide.png | Bin 11348 -> 0 bytes .../tests/defaultV2/responsiveness.ts | 44 ------------------ 6 files changed, 16 insertions(+), 85 deletions(-) delete mode 100644 visualRegressionTests/tests/defaultV2/etalons/responsiveness-checkbox-col-count-5-small.png delete mode 100644 visualRegressionTests/tests/defaultV2/etalons/responsiveness-checkbox-col-count-5-wide.png diff --git a/src/question.ts b/src/question.ts index 04fd8dc7ef..0b849e6639 100644 --- a/src/question.ts +++ b/src/question.ts @@ -50,10 +50,6 @@ class TriggerExpressionInfo { runSecondCheck: (keys: any) => boolean = (keys: any): boolean => false; } -function querySelectorIncludingSelf(el: HTMLElement, selector: string): HTMLElement { - return el.querySelector(selector) || el as any != DomWindowHelper.getWindow() && el.matches(selector) && el; -} - /** * A base class for all questions. */ @@ -2568,7 +2564,7 @@ export class Question extends SurveyElement if (!!el && this.isDefaultRendering()) { const scrollableSelector = this.getObservedElementSelector(); if (!scrollableSelector) return; - const defaultRootEl: HTMLElement = querySelectorIncludingSelf(el, scrollableSelector); + const defaultRootEl = el.querySelector(scrollableSelector); if (!defaultRootEl) return; let isProcessed = false; let requiredWidth: number = undefined; @@ -2579,7 +2575,7 @@ export class Question extends SurveyElement isProcessed = false; } const callback = () => { - const rootEl: HTMLElement = querySelectorIncludingSelf(el, scrollableSelector); + const rootEl = el.querySelector(scrollableSelector); if (!requiredWidth && this.isDefaultRendering()) { requiredWidth = rootEl.scrollWidth; } @@ -2603,10 +2599,8 @@ export class Question extends SurveyElement }); this.onMobileChangedCallback = () => { setTimeout(() => { - const rootEl = querySelectorIncludingSelf(el, scrollableSelector); - if (rootEl) { - this.processResponsiveness(requiredWidth, getElementWidth(rootEl)); - } + const rootEl = el.querySelector(scrollableSelector); + this.processResponsiveness(requiredWidth, getElementWidth(rootEl)); }, 0); }; this.resizeObserver.observe(el); diff --git a/src/question_baseselect.ts b/src/question_baseselect.ts index 3646056c86..8e5d032000 100644 --- a/src/question_baseselect.ts +++ b/src/question_baseselect.ts @@ -12,7 +12,7 @@ import { ConditionRunner } from "./conditions"; import { Helpers, HashTable } from "./helpers"; import { settings } from "./settings"; import { CssClassBuilder } from "./utils/cssClassBuilder"; -import { classesToSelector, mergeValues } from "./utils/utils"; +import { mergeValues } from "./utils/utils"; /** * A base class for multiple-choice question types ([Checkboxes](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Radio Button Group](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), etc.). @@ -1833,27 +1833,8 @@ export class QuestionSelectBase extends Question { } return columns; } - - protected getObservedElementSelector(): string { - return classesToSelector(this.cssClasses.mainRoot); - } - - protected supportResponsiveness(): boolean { - return true; - } - - @property() allowMultiColumns = true; - protected onBeforeSetCompactRenderer(): void { - super.onBeforeSetDesktopRenderer(); - this.allowMultiColumns = false; - } - protected onBeforeSetDesktopRenderer(): void { - super.onBeforeSetDesktopRenderer(); - this.allowMultiColumns = true; - } - get hasColumns() { - return !this.isMobile && this.allowMultiColumns && + return !this.isMobile && (this.getCurrentColCount() > 1); } get rowLayout() { diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 859d3db4ff..7c792e2338 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -325,7 +325,7 @@ function preventDefaults(event: any) { event.stopPropagation(); } function classesToSelector(str: string): string { - if (!str) return str; + if(!str) return str; const re = /\s*?([\w-]+)\s*?/g; return str.replace(re, ".$1"); } @@ -477,7 +477,7 @@ export function compareArrays(oldValue: Array, newValue: Array, getKey: const commonItemsInOldMap = new Map(); oldValue.forEach((item) => { const itemKey = getKey(item); - if (!oldItemsMap.has(itemKey)) { + if(!oldItemsMap.has(itemKey)) { oldItemsMap.set(getKey(item), item); } else { //if keys are set incorrectly do not process comparing @@ -486,7 +486,7 @@ export function compareArrays(oldValue: Array, newValue: Array, getKey: }); newValue.forEach((item) => { const itemKey = getKey(item); - if (!newItemsMap.has(itemKey)) { + if(!newItemsMap.has(itemKey)) { newItemsMap.set(itemKey, item); } else { //if keys are set incorrectly do not process comparing @@ -498,7 +498,7 @@ export function compareArrays(oldValue: Array, newValue: Array, getKey: //calculating addedItems and items that exist in both arrays newItemsMap.forEach((item, key) => { - if (!oldItemsMap.has(key)) { + if(!oldItemsMap.has(key)) { addedItems.push(item); } else { commonItemsInNewMap.set(key, commonItemsInNewMap.size); @@ -508,7 +508,7 @@ export function compareArrays(oldValue: Array, newValue: Array, getKey: //calculating deletedItems and items that exist in both arrays oldItemsMap.forEach((item, key) => { - if (!newItemsMap.has(key)) { + if(!newItemsMap.has(key)) { deletedItems.push(item); } else { commonItemsInOldMap.set(key, commonItemsInOldMap.size); @@ -520,7 +520,7 @@ export function compareArrays(oldValue: Array, newValue: Array, getKey: commonItemsInNewMap.forEach((index, key) => { const oldIndex = commonItemsInOldMap.get(key); const item = newItemsMap.get(key); - if (oldIndex !== index) reorderedItems.push({ item: item, movedForward: oldIndex < index }); + if(oldIndex !== index) reorderedItems.push({ item: item, movedForward: oldIndex < index }); }); //calculating merged array if multiple operations are applied at once @@ -529,7 +529,7 @@ export function compareArrays(oldValue: Array, newValue: Array, getKey: let commonItemsIndex = 0; const commonItemsKeysOrder = Array.from(commonItemsInNewMap.keys()); oldValue.forEach((item, index) => { - if (commonItemsInNewMap.has(getKey(item))) { + if(commonItemsInNewMap.has(getKey(item))) { oldItemsWithCorrectOrder[index] = newItemsMap.get(commonItemsKeysOrder[commonItemsIndex]); commonItemsIndex++; } else { @@ -541,8 +541,8 @@ export function compareArrays(oldValue: Array, newValue: Array, getKey: let tempValuesArray: Array = []; oldItemsWithCorrectOrder.forEach((item) => { const itemKey = getKey(item); - if (newItemsMap.has(itemKey)) { - if (tempValuesArray.length > 0) { + if(newItemsMap.has(itemKey)) { + if(tempValuesArray.length > 0) { valuesToInsertBeforeKey.set(itemKey, tempValuesArray); tempValuesArray = []; } @@ -553,7 +553,7 @@ export function compareArrays(oldValue: Array, newValue: Array, getKey: const mergedItems = new Array(); newItemsMap.forEach((item, key) => { - if (valuesToInsertBeforeKey.has(key)) { + if(valuesToInsertBeforeKey.has(key)) { valuesToInsertBeforeKey.get(key).forEach((item) => { mergedItems.push(item); }); diff --git a/visualRegressionTests/tests/defaultV2/etalons/responsiveness-checkbox-col-count-5-small.png b/visualRegressionTests/tests/defaultV2/etalons/responsiveness-checkbox-col-count-5-small.png deleted file mode 100644 index 4fe545017e2be8e6a145cf1e56947c01685badec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11932 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 { await takeElementScreenshot("responsiveness-checkbox-col-count-2.png", Selector(".sd-question"), t, comparer); }); }); - test("Check multicolumn checkbox question doesn't fit width", async (t) => { - await wrapVisualTest(t, async (t, comparer) => { - await t.resizeWindow(1600, 1080); - await initSurvey(framework, { - showQuestionNumbers: "off", - "widthMode": "static", - "width": "60%", - questions: [ - { - "type": "checkbox", - "name": "contract-type", - "title": "Type of contract ", - "choices": [ - { - "value": "Item 1", - "text": "Permanent" - }, - { - "value": "Item 2", - "text": "Fixed-Term" - }, - { - "value": "Item 3", - "text": "All year round" - }, - { - "value": "Item 4", - "text": "Term-time only" - }, - { - "value": "Item 5", - "text": "Annualized" - } - ], - "colCount": 5 - } - ] - }); - await takeElementScreenshot("responsiveness-checkbox-col-count-5-wide.png", Selector(".sd-question"), t, comparer); - await t.resizeWindow(1000, 1080); - await resetFocusToBody(); - await takeElementScreenshot("responsiveness-checkbox-col-count-5-small.png", Selector(".sd-question"), t, comparer); - }); - }); test("Check image question", async (t) => { await wrapVisualTest(t, async (t, comparer) => {