From 20cce76c96e0b2651ffdacda87d32c3bed71bdc2 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Tue, 12 Dec 2023 19:00:27 +0400 Subject: [PATCH 01/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 36 ++++++++--------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index 0cad22368a..ed78c3bd50 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -1,33 +1,13 @@ .sv_window { position: fixed; - bottom: 3px; - right: 10px; - background-color: cadetblue; - padding: 1px; - font-family: $font-family; - font-size: calcFontSize(0.875); - font-style: normal; - font-weight: 400; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - white-space: normal; - background-color: #fff; - -webkit-background-clip: padding-box; + bottom: 16px; + right: 16px; + background-color: $background; + padding: 32px 32px 40px 32px; + border-radius: 8px; + box-shadow: $shadow-large; + border: 1px solid $border-inside; background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: calcCornerRadius(1.5); - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - line-break: auto; z-index: 100; } @@ -59,4 +39,4 @@ .sv_window_button .sv-svg-icon { margin: 4px; -} +} \ No newline at end of file From 3c157f7a962ef74e8b9a5e48ab78835154ef9056 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Wed, 13 Dec 2023 13:32:02 +0400 Subject: [PATCH 02/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 29 +++++------------------------ src/knockout/templates/window.html | 17 ++++++++++------- 2 files changed, 15 insertions(+), 31 deletions(-) diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index ed78c3bd50..9b02e01ec9 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -9,34 +9,15 @@ border: 1px solid $border-inside; background-clip: padding-box; z-index: 100; + position: relative; } .sv_window_title { - padding: 8px 14px; - margin: 0; - font-size: calcFontSize(0.875); - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: calcCornerRadius(1) calcCornerRadius(1) 0 0; display: flex; + background-color: $background; + padding: 0 8px; } -.sv_window_content { - padding: 0; - margin: 0; - max-height: 80vh; - overflow-y: auto; -} - -.sv_window_title a, -.sv_window_title a:link, -.sv_window_title a:visited { - text-decoration: none; - font-size: calcFontSize(0.875); - font-style: normal; - color: black; -} - -.sv_window_button .sv-svg-icon { - margin: 4px; +.sv_window_button { + position: absolute; } \ No newline at end of file diff --git a/src/knockout/templates/window.html b/src/knockout/templates/window.html index 836c44618a..27d21b3ab1 100644 --- a/src/knockout/templates/window.html +++ b/src/knockout/templates/window.html @@ -1,17 +1,20 @@ -
+
- - + + + + + + + - + + - - -
From 27a9a17f9c721dfcc06c39e1d2c85423498d38c7 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Wed, 13 Dec 2023 13:39:42 +0400 Subject: [PATCH 03/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 5 +++-- src/defaultCss/cssmodern.ts | 7 ++++--- src/defaultCss/cssstandard.ts | 7 ++++--- src/defaultCss/defaultV2Css.ts | 1 + src/knockout/templates/window.html | 26 ++++++++++++++------------ src/popup-survey.ts | 4 ++++ 6 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index 9b02e01ec9..050bc46f0b 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -9,7 +9,6 @@ border: 1px solid $border-inside; background-clip: padding-box; z-index: 100; - position: relative; } .sv_window_title { @@ -18,6 +17,8 @@ padding: 0 8px; } -.sv_window_button { +.sv_window_buttons_container { position: absolute; + top: 8px; + right: 8px; } \ No newline at end of file diff --git a/src/defaultCss/cssmodern.ts b/src/defaultCss/cssmodern.ts index 0140b6d42c..2bc9bd9c1b 100644 --- a/src/defaultCss/cssmodern.ts +++ b/src/defaultCss/cssmodern.ts @@ -434,10 +434,11 @@ export var modernCss = { header: { root: "sv_window_title", title: "", - button: "", + buttonsContainer: "sv_window_buttons_container", + button: "sv_window_button", buttonExpanded: "", - buttonCollapsed: "", - }, + buttonCollapsed: "" + } }, variables: { mobileWidth: "--sv-mobile-width", diff --git a/src/defaultCss/cssstandard.ts b/src/defaultCss/cssstandard.ts index 0c3da80096..227d26cc37 100644 --- a/src/defaultCss/cssstandard.ts +++ b/src/defaultCss/cssstandard.ts @@ -369,10 +369,11 @@ export var defaultStandardCss = { header: { root: "sv_window_title", title: "", - button: "", + buttonsContainer: "sv_window_buttons_container", + button: "sv_window_button", buttonExpanded: "", - buttonCollapsed: "", - }, + buttonCollapsed: "" + } }, variables: { mobileWidth: "--sv-mobile-width", diff --git a/src/defaultCss/defaultV2Css.ts b/src/defaultCss/defaultV2Css.ts index c1996f7acf..dd39bc3a63 100644 --- a/src/defaultCss/defaultV2Css.ts +++ b/src/defaultCss/defaultV2Css.ts @@ -649,6 +649,7 @@ export var defaultV2Css = { header: { root: "sv_window_title", title: "", + buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", buttonCollapsed: "" diff --git a/src/knockout/templates/window.html b/src/knockout/templates/window.html index 27d21b3ab1..ad54a3ad45 100644 --- a/src/knockout/templates/window.html +++ b/src/knockout/templates/window.html @@ -1,20 +1,22 @@ 
- - + +
- +
- - - - - - - - - +
+ + + + + + + + + +
diff --git a/src/popup-survey.ts b/src/popup-survey.ts index 8f37993d5e..870d4c9bcd 100644 --- a/src/popup-survey.ts +++ b/src/popup-survey.ts @@ -174,6 +174,9 @@ export class PopupSurveyModel extends Base { public get cssHeaderTitle(): string { return this.getPropertyValue("cssHeaderTitle", ""); } + public get cssHeaderButtonsContainer(): string { + return this.getPropertyValue("cssHeaderButtonsContainer", ""); + } public get cssHeaderButton(): string { return this.getPropertyValue("cssHeaderButton", ""); } @@ -193,6 +196,7 @@ export class PopupSurveyModel extends Base { if (!cssHeader) return; this.setPropertyValue("cssHeaderRoot", cssHeader.root); this.setPropertyValue("cssHeaderTitle", cssHeader.title); + this.setPropertyValue("cssHeaderButtonsContainer", cssHeader.buttonsContainer); this.setPropertyValue("cssHeaderButton", cssHeader.button); this.updateCssButton(); } From 2b28efffadbbfd7171d18cd8150c9e772bdfe781 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Thu, 14 Dec 2023 12:32:21 +0400 Subject: [PATCH 04/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 56 +++++++++++++++++++++++++++++- src/defaultCss/cssmodern.ts | 9 +++-- src/defaultCss/cssstandard.ts | 9 +++-- src/defaultCss/defaultV2Css.ts | 9 +++-- src/knockout/templates/window.html | 26 +++++++------- src/popup-survey.ts | 19 ++++++++-- 6 files changed, 102 insertions(+), 26 deletions(-) diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index 050bc46f0b..59e9d91005 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -11,14 +11,68 @@ z-index: 100; } -.sv_window_title { +.sv_window_header { display: flex; background-color: $background; padding: 0 8px; + cursor: pointer; + display: flex; + flex-direction: column; + gap: 4px; +} + +.sv_window_header_title { + color: $font-editorfont-color; + /* UI / Medium Bold */ + font-family: Open Sans; + font-size: 24px; + font-style: normal; + font-weight: 700; + line-height: 32px; /* 133.333% */ + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.sv_window_header_description{ + color: $font-questiondescription-color; + font-feature-settings: 'salt' on; + /* UI/Default */ + font-family: Open Sans; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; /* 150% */ + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } .sv_window_buttons_container { position: absolute; top: 8px; right: 8px; + display: flex; + gap: 8px; +} + +.sv_window_button { + display: flex; + padding: 8px; + justify-content: center; + align-items: center; + + svg use { + fill: $foreground-dim-light; + } +} + +.sv_window_button_close { + svg { + transform: rotate(45deg); + } +} + +.sv_window_content { + padding: 24px 8px 0 8px; } \ No newline at end of file diff --git a/src/defaultCss/cssmodern.ts b/src/defaultCss/cssmodern.ts index 2bc9bd9c1b..f2dd738df2 100644 --- a/src/defaultCss/cssmodern.ts +++ b/src/defaultCss/cssmodern.ts @@ -432,12 +432,15 @@ export var modernCss = { root: "sv_window", body: "sv_window_content", header: { - root: "sv_window_title", - title: "", + root: "sv_window_header", + title: "sv_window_header_title", + description: "sv_window_header_description", buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", - buttonCollapsed: "" + buttonCollapsed: "", + collapseButton: "sv_window_button sv_window_button_collapse", + closeButton: "sv_window_button sv_window_button_close" } }, variables: { diff --git a/src/defaultCss/cssstandard.ts b/src/defaultCss/cssstandard.ts index 227d26cc37..5433eac9cf 100644 --- a/src/defaultCss/cssstandard.ts +++ b/src/defaultCss/cssstandard.ts @@ -367,12 +367,15 @@ export var defaultStandardCss = { root: "sv_window", body: "sv_window_content", header: { - root: "sv_window_title", - title: "", + root: "sv_window_header", + title: "sv_window_header_title", + description: "sv_window_header_description", buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", - buttonCollapsed: "" + buttonCollapsed: "", + collapseButton: "sv_window_button sv_window_button_collapse", + closeButton: "sv_window_button sv_window_button_close" } }, variables: { diff --git a/src/defaultCss/defaultV2Css.ts b/src/defaultCss/defaultV2Css.ts index dd39bc3a63..788d2d857a 100644 --- a/src/defaultCss/defaultV2Css.ts +++ b/src/defaultCss/defaultV2Css.ts @@ -647,12 +647,15 @@ export var defaultV2Css = { root: "sv_window", body: "sv_window_content", header: { - root: "sv_window_title", - title: "", + root: "sv_window_header", + title: "sv_window_header_title", + description: "sv_window_header_description", buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", - buttonCollapsed: "" + buttonCollapsed: "", + collapseButton: "sv_window_button sv_window_button_collapse", + closeButton: "sv_window_button sv_window_button_close" } }, ranking: { diff --git a/src/knockout/templates/window.html b/src/knockout/templates/window.html index ad54a3ad45..fef52c64da 100644 --- a/src/knockout/templates/window.html +++ b/src/knockout/templates/window.html @@ -1,20 +1,20 @@ 
-
+
+ +
+ + +
+ -
- - -
- -
- +
+
- - - - +
+ +
- +
diff --git a/src/popup-survey.ts b/src/popup-survey.ts index 870d4c9bcd..f0ffaf6032 100644 --- a/src/popup-survey.ts +++ b/src/popup-survey.ts @@ -117,8 +117,13 @@ export class PopupSurveyModel extends Base { this.survey.title = value; } get locTitle(): LocalizableString { + if (this.survey.locTitle.isEmpty) return null; return this.survey.locTitle; } + get locDescription(): LocalizableString { + if (this.survey.locTitle.isEmpty) return null; + return this.survey.locDescription; + } /** * Expands the pop-up window. * @@ -174,11 +179,17 @@ export class PopupSurveyModel extends Base { public get cssHeaderTitle(): string { return this.getPropertyValue("cssHeaderTitle", ""); } + public get cssHeaderDescription(): string { + return this.getPropertyValue("cssHeaderDescription", ""); + } public get cssHeaderButtonsContainer(): string { return this.getPropertyValue("cssHeaderButtonsContainer", ""); } - public get cssHeaderButton(): string { - return this.getPropertyValue("cssHeaderButton", ""); + public get cssHeaderCollapseButton(): string { + return this.getPropertyValue("cssHeaderCollapseButton", ""); + } + public get cssHeaderCloseButton(): string { + return this.getPropertyValue("cssHeaderCloseButton", ""); } public get renderedWidth(): string { let width = this.getPropertyValue("width", "60%"); @@ -196,8 +207,10 @@ export class PopupSurveyModel extends Base { if (!cssHeader) return; this.setPropertyValue("cssHeaderRoot", cssHeader.root); this.setPropertyValue("cssHeaderTitle", cssHeader.title); + this.setPropertyValue("cssHeaderDescription", cssHeader.description); this.setPropertyValue("cssHeaderButtonsContainer", cssHeader.buttonsContainer); - this.setPropertyValue("cssHeaderButton", cssHeader.button); + this.setPropertyValue("cssHeaderCollapseButton", cssHeader.collapseButton); + this.setPropertyValue("cssHeaderCloseButton", cssHeader.closeButton); this.updateCssButton(); } private updateCssButton() { From 74123a713dff7e7cf57ed553bcce51049fd0336a Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Mon, 18 Dec 2023 15:42:47 +0400 Subject: [PATCH 05/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 14 +++++++++----- src/defaultCss/cssmodern.ts | 2 -- src/defaultCss/cssstandard.ts | 2 -- src/defaultCss/defaultV2Css.ts | 2 -- src/knockout/templates/window.html | 7 ------- src/popup-survey.ts | 10 +--------- 6 files changed, 10 insertions(+), 27 deletions(-) diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index 59e9d91005..f6ad55fd70 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -3,18 +3,21 @@ bottom: 16px; right: 16px; background-color: $background; - padding: 32px 32px 40px 32px; + //padding: 32px 32px 40px 32px; border-radius: 8px; box-shadow: $shadow-large; border: 1px solid $border-inside; background-clip: padding-box; z-index: 100; + max-height: 50vh; + overflow: auto; } .sv_window_header { display: flex; background-color: $background; - padding: 0 8px; + // padding: 0 8px; + height: 8px; cursor: pointer; display: flex; flex-direction: column; @@ -54,6 +57,7 @@ right: 8px; display: flex; gap: 8px; + z-index: 1; } .sv_window_button { @@ -73,6 +77,6 @@ } } -.sv_window_content { - padding: 24px 8px 0 8px; -} \ No newline at end of file +// .sv_window_content { +// padding: 24px 8px 0 8px; +// } \ No newline at end of file diff --git a/src/defaultCss/cssmodern.ts b/src/defaultCss/cssmodern.ts index f2dd738df2..5d83065917 100644 --- a/src/defaultCss/cssmodern.ts +++ b/src/defaultCss/cssmodern.ts @@ -433,8 +433,6 @@ export var modernCss = { body: "sv_window_content", header: { root: "sv_window_header", - title: "sv_window_header_title", - description: "sv_window_header_description", buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", diff --git a/src/defaultCss/cssstandard.ts b/src/defaultCss/cssstandard.ts index 5433eac9cf..e91f5fbd1d 100644 --- a/src/defaultCss/cssstandard.ts +++ b/src/defaultCss/cssstandard.ts @@ -368,8 +368,6 @@ export var defaultStandardCss = { body: "sv_window_content", header: { root: "sv_window_header", - title: "sv_window_header_title", - description: "sv_window_header_description", buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", diff --git a/src/defaultCss/defaultV2Css.ts b/src/defaultCss/defaultV2Css.ts index d1c503771e..d9782efeba 100644 --- a/src/defaultCss/defaultV2Css.ts +++ b/src/defaultCss/defaultV2Css.ts @@ -651,8 +651,6 @@ export var defaultV2Css = { body: "sv_window_content", header: { root: "sv_window_header", - title: "sv_window_header_title", - description: "sv_window_header_description", buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", diff --git a/src/knockout/templates/window.html b/src/knockout/templates/window.html index fef52c64da..3a4714ec25 100644 --- a/src/knockout/templates/window.html +++ b/src/knockout/templates/window.html @@ -1,12 +1,5 @@ 
- -
- - -
- -
diff --git a/src/popup-survey.ts b/src/popup-survey.ts index f0ffaf6032..d27aa2f047 100644 --- a/src/popup-survey.ts +++ b/src/popup-survey.ts @@ -23,7 +23,7 @@ export class PopupSurveyModel extends Base { } else { this.surveyValue = this.createSurvey(jsonObj); } - this.surveyValue.showTitle = false; + //this.surveyValue.showTitle = false; if ("undefined" !== typeof document) { this.windowElement = document.createElement("div"); } @@ -176,12 +176,6 @@ export class PopupSurveyModel extends Base { public get cssHeaderRoot(): string { return this.getPropertyValue("cssHeaderRoot", ""); } - public get cssHeaderTitle(): string { - return this.getPropertyValue("cssHeaderTitle", ""); - } - public get cssHeaderDescription(): string { - return this.getPropertyValue("cssHeaderDescription", ""); - } public get cssHeaderButtonsContainer(): string { return this.getPropertyValue("cssHeaderButtonsContainer", ""); } @@ -206,8 +200,6 @@ export class PopupSurveyModel extends Base { const cssHeader = cssWindow.header; if (!cssHeader) return; this.setPropertyValue("cssHeaderRoot", cssHeader.root); - this.setPropertyValue("cssHeaderTitle", cssHeader.title); - this.setPropertyValue("cssHeaderDescription", cssHeader.description); this.setPropertyValue("cssHeaderButtonsContainer", cssHeader.buttonsContainer); this.setPropertyValue("cssHeaderCollapseButton", cssHeader.collapseButton); this.setPropertyValue("cssHeaderCloseButton", cssHeader.closeButton); From 71c6d6663d8fcada83a7d23a086f4f64b0c5b950 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Mon, 18 Dec 2023 15:51:48 +0400 Subject: [PATCH 06/30] work for the https://github.com/surveyjs/service/issues/1668 --- tests/surveyWindowTests.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/tests/surveyWindowTests.ts b/tests/surveyWindowTests.ts index 7f8ce7c728..034cd70013 100644 --- a/tests/surveyWindowTests.ts +++ b/tests/surveyWindowTests.ts @@ -9,7 +9,7 @@ QUnit.test("Survey is created", function (assert) { const questions = window.survey.getAllQuestions(); assert.equal(questions.length, 1, "There is one question"); assert.equal(questions[0].name, "q1", "The question name is correct"); - assert.equal(window.survey.showTitle, false, "Do not show survey title by default"); + assert.equal(window.survey.showTitle, true, "Show survey title by default"); }); QUnit.test("isShowing/isExpanded properties", function (assert) { const window = new PopupSurveyModel({ elements: [{ type: "text", name: "q1" }] }); @@ -72,22 +72,18 @@ QUnit.test("cssStyles", function (assert) { const css = surveyCss.getCss(); const oldCssRoot = css.window.root; const oldCssHeaderRoot = css.window.header.root; - const oldCssHeaderTitle = css.window.header.title; const oldCssBody = css.window.body; css.window.root = "windowRoot"; css.window.header.root = "headerRoot"; - css.window.header.title = "headerTitle"; css.window.body = "windowBody"; const window = new PopupSurveyModel({ elements: [{ type: "text", name: "q1" }] }); window.show(); assert.equal(window.cssRoot, "windowRoot", "Root"); assert.equal(window.cssHeaderRoot, "headerRoot", "HeaderRoot"); - assert.equal(window.cssHeaderTitle, "headerTitle", "HeaderTitle"); assert.equal(window.cssBody, "windowBody", "windowBody"); css.window.root = oldCssRoot; css.window.header.root = oldCssHeaderRoot; - css.window.header.title = oldCssHeaderTitle; css.window.body = oldCssBody; }); From 1b5461dfd470fbe05c44e85a21dfca472fbc792c Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Mon, 18 Dec 2023 16:32:03 +0400 Subject: [PATCH 07/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 30 +++++++++++++++++++----------- src/defaultCss/cssmodern.ts | 2 ++ src/defaultCss/cssstandard.ts | 2 ++ src/defaultCss/defaultV2Css.ts | 2 ++ src/knockout/templates/window.html | 15 +++++++++++++-- src/popup-survey.ts | 12 +++++++++++- 6 files changed, 49 insertions(+), 14 deletions(-) diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index f6ad55fd70..0a26dd8eee 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -9,32 +9,39 @@ border: 1px solid $border-inside; background-clip: padding-box; z-index: 100; - max-height: 50vh; + max-height: 100vh; overflow: auto; } +.sv_window--collapsed { + .sv_window_header { + height: 32px; + padding: 8px 8px 8px 16px; + } +} + .sv_window_header { display: flex; background-color: $background; // padding: 0 8px; height: 8px; - cursor: pointer; display: flex; flex-direction: column; gap: 4px; } -.sv_window_header_title { - color: $font-editorfont-color; - /* UI / Medium Bold */ +.sv_window_header_title_collapsed { + color: $foreground-dim; + /* UI/Default Bold */ font-family: Open Sans; - font-size: 24px; + font-size: 16px; font-style: normal; - font-weight: 700; - line-height: 32px; /* 133.333% */ - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; + font-weight: 600; + line-height: 24px; /* 150% */ + flex: 1; + display: flex; + justify-content: start; + align-items: center; } .sv_window_header_description{ @@ -65,6 +72,7 @@ padding: 8px; justify-content: center; align-items: center; + cursor: pointer; svg use { fill: $foreground-dim-light; diff --git a/src/defaultCss/cssmodern.ts b/src/defaultCss/cssmodern.ts index 5d83065917..9e525eb636 100644 --- a/src/defaultCss/cssmodern.ts +++ b/src/defaultCss/cssmodern.ts @@ -430,9 +430,11 @@ export var modernCss = { }, window: { root: "sv_window", + rootCollapsedMod: "sv_window--collapsed", body: "sv_window_content", header: { root: "sv_window_header", + titleCollapsed: "sv_window_header_title_collapsed", buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", diff --git a/src/defaultCss/cssstandard.ts b/src/defaultCss/cssstandard.ts index e91f5fbd1d..87b631d8e4 100644 --- a/src/defaultCss/cssstandard.ts +++ b/src/defaultCss/cssstandard.ts @@ -365,9 +365,11 @@ export var defaultStandardCss = { }, window: { root: "sv_window", + rootCollapsedMod: "sv_window--collapsed", body: "sv_window_content", header: { root: "sv_window_header", + titleCollapsed: "sv_window_header_title_collapsed", buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", diff --git a/src/defaultCss/defaultV2Css.ts b/src/defaultCss/defaultV2Css.ts index d9782efeba..65c8428b25 100644 --- a/src/defaultCss/defaultV2Css.ts +++ b/src/defaultCss/defaultV2Css.ts @@ -648,9 +648,11 @@ export var defaultV2Css = { }, window: { root: "sv_window", + rootCollapsedMod: "sv_window--collapsed", body: "sv_window_content", header: { root: "sv_window_header", + titleCollapsed: "sv_window_header_title_collapsed", buttonsContainer: "sv_window_buttons_container", button: "sv_window_button", buttonExpanded: "", diff --git a/src/knockout/templates/window.html b/src/knockout/templates/window.html index 3a4714ec25..566796a86d 100644 --- a/src/knockout/templates/window.html +++ b/src/knockout/templates/window.html @@ -1,8 +1,19 @@ 
-
+
+ + +
+ +
-
+
+ + + + + +
diff --git a/src/popup-survey.ts b/src/popup-survey.ts index d27aa2f047..0e2c51d8e1 100644 --- a/src/popup-survey.ts +++ b/src/popup-survey.ts @@ -101,6 +101,9 @@ export class PopupSurveyModel extends Base { public set isExpanded(val: boolean) { this.setPropertyValue("isExpanded", val); } + public get isCollapsed(): boolean { + return !this.isExpanded; + } protected onExpandedChanged(): void { if (!!this.expandedChangedCallback) { this.expandedChangedCallback(); @@ -168,7 +171,9 @@ export class PopupSurveyModel extends Base { return this.getPropertyValue("cssButton", ""); } public get cssRoot(): string { - return this.getPropertyValue("cssRoot", ""); + let result = this.getPropertyValue("cssRoot", ""); + if (this.isCollapsed) result += " " + this.getPropertyValue("cssRootCollapsedMod", ""); + return result; } public get cssBody(): string { return this.getPropertyValue("cssBody", ""); @@ -176,6 +181,9 @@ export class PopupSurveyModel extends Base { public get cssHeaderRoot(): string { return this.getPropertyValue("cssHeaderRoot", ""); } + public get cssHeaderTitleCollapsed(): string { + return this.getPropertyValue("cssHeaderTitleCollapsed", ""); + } public get cssHeaderButtonsContainer(): string { return this.getPropertyValue("cssHeaderButtonsContainer", ""); } @@ -196,10 +204,12 @@ export class PopupSurveyModel extends Base { if (!this.css || !this.css.window) return; const cssWindow = this.css.window; this.setPropertyValue("cssRoot", cssWindow.root); + this.setPropertyValue("cssRootCollapsedMod", cssWindow.rootCollapsedMod); this.setPropertyValue("cssBody", cssWindow.body); const cssHeader = cssWindow.header; if (!cssHeader) return; this.setPropertyValue("cssHeaderRoot", cssHeader.root); + this.setPropertyValue("cssHeaderTitleCollapsed", cssHeader.titleCollapsed); this.setPropertyValue("cssHeaderButtonsContainer", cssHeader.buttonsContainer); this.setPropertyValue("cssHeaderCollapseButton", cssHeader.collapseButton); this.setPropertyValue("cssHeaderCloseButton", cssHeader.closeButton); From 806e2941238feef4bc4d982666ee5f0cd7d21c7e Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Mon, 18 Dec 2023 16:33:57 +0400 Subject: [PATCH 08/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/popup-survey.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/popup-survey.ts b/src/popup-survey.ts index 0e2c51d8e1..138e8d1ce6 100644 --- a/src/popup-survey.ts +++ b/src/popup-survey.ts @@ -172,7 +172,7 @@ export class PopupSurveyModel extends Base { } public get cssRoot(): string { let result = this.getPropertyValue("cssRoot", ""); - if (this.isCollapsed) result += " " + this.getPropertyValue("cssRootCollapsedMod", ""); + if (this.isCollapsed) result += " " + this.getPropertyValue("cssRootCollapsedMod", ""); return result; } public get cssBody(): string { From 1ca67e5bc667c2b964176b554985851f88186013 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Mon, 18 Dec 2023 16:41:21 +0400 Subject: [PATCH 09/30] work for the https://github.com/surveyjs/service/issues/1668 --- tests/surveyWindowTests.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/surveyWindowTests.ts b/tests/surveyWindowTests.ts index 034cd70013..cc0ec969e6 100644 --- a/tests/surveyWindowTests.ts +++ b/tests/surveyWindowTests.ts @@ -74,12 +74,15 @@ QUnit.test("cssStyles", function (assert) { const oldCssHeaderRoot = css.window.header.root; const oldCssBody = css.window.body; css.window.root = "windowRoot"; + css.window.rootCollapsedMod = "windowRoot--collapsed"; css.window.header.root = "headerRoot"; css.window.body = "windowBody"; const window = new PopupSurveyModel({ elements: [{ type: "text", name: "q1" }] }); window.show(); - assert.equal(window.cssRoot, "windowRoot", "Root"); + assert.equal(window.cssRoot, "windowRoot windowRoot--collapsed", "Root collapsed"); + window.changeExpandCollapse() + assert.equal(window.cssRoot, "windowRoot", "Root expanded"); assert.equal(window.cssHeaderRoot, "headerRoot", "HeaderRoot"); assert.equal(window.cssBody, "windowBody", "windowBody"); css.window.root = oldCssRoot; From a2cce8a41dc4768f86e9d0121b982e7159c08214 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Mon, 18 Dec 2023 16:42:25 +0400 Subject: [PATCH 10/30] work for the https://github.com/surveyjs/service/issues/1668 --- tests/surveyWindowTests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/surveyWindowTests.ts b/tests/surveyWindowTests.ts index cc0ec969e6..29b693e387 100644 --- a/tests/surveyWindowTests.ts +++ b/tests/surveyWindowTests.ts @@ -81,7 +81,7 @@ QUnit.test("cssStyles", function (assert) { const window = new PopupSurveyModel({ elements: [{ type: "text", name: "q1" }] }); window.show(); assert.equal(window.cssRoot, "windowRoot windowRoot--collapsed", "Root collapsed"); - window.changeExpandCollapse() + window.changeExpandCollapse(); assert.equal(window.cssRoot, "windowRoot", "Root expanded"); assert.equal(window.cssHeaderRoot, "headerRoot", "HeaderRoot"); assert.equal(window.cssBody, "windowBody", "windowBody"); From d61a6b1347b108807983a885761d030cf9462043 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Tue, 19 Dec 2023 11:17:31 +0400 Subject: [PATCH 11/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 50 ++++++++++++++++-------------- src/defaultCss/cssmodern.ts | 1 + src/defaultCss/cssstandard.ts | 1 + src/defaultCss/defaultV2Css.ts | 1 + src/images/close_16x16.svg | 3 ++ src/images/minimize_16x16.svg | 3 ++ src/images/restore_16x16.svg | 3 ++ src/knockout/templates/window.html | 44 +++++++++++++------------- src/popup-survey.ts | 4 +++ 9 files changed, 66 insertions(+), 44 deletions(-) create mode 100644 src/images/close_16x16.svg create mode 100644 src/images/minimize_16x16.svg create mode 100644 src/images/restore_16x16.svg diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index 0a26dd8eee..0316addca6 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -2,34 +2,36 @@ position: fixed; bottom: 16px; right: 16px; - background-color: $background; - //padding: 32px 32px 40px 32px; border-radius: 8px; box-shadow: $shadow-large; - border: 1px solid $border-inside; background-clip: padding-box; z-index: 100; max-height: 100vh; overflow: auto; + box-sizing: border-box; } +.sv_window_content { + box-shadow: $shadow-medium; + width: 100%; + height: 100%; + border: 1px solid $border-inside; + background-clip: padding-box; + border-radius: 8px; + box-sizing: border-box; + overflow: hidden; +} + .sv_window--collapsed { .sv_window_header { height: 32px; padding: 8px 8px 8px 16px; + border-radius: 8px; + display: flex; + background-color: $background-dim; } } -.sv_window_header { - display: flex; - background-color: $background; - // padding: 0 8px; - height: 8px; - display: flex; - flex-direction: column; - gap: 4px; -} - .sv_window_header_title_collapsed { color: $foreground-dim; /* UI/Default Bold */ @@ -72,19 +74,21 @@ padding: 8px; justify-content: center; align-items: center; + border-radius: 4px; cursor: pointer; - svg use { - fill: $foreground-dim-light; + &:hover, &:active { + background-color: $primary-light; + svg use { + fill: $primary; + } } -} -.sv_window_button_close { - svg { - transform: rotate(45deg); + &:active { + opacity: 0.5; } -} -// .sv_window_content { -// padding: 24px 8px 0 8px; -// } \ No newline at end of file + svg use { + fill: $foreground-dim-light; + } +} \ No newline at end of file diff --git a/src/defaultCss/cssmodern.ts b/src/defaultCss/cssmodern.ts index 9e525eb636..5f51779797 100644 --- a/src/defaultCss/cssmodern.ts +++ b/src/defaultCss/cssmodern.ts @@ -431,6 +431,7 @@ export var modernCss = { window: { root: "sv_window", rootCollapsedMod: "sv_window--collapsed", + rootContent: "sv_window_content", body: "sv_window_content", header: { root: "sv_window_header", diff --git a/src/defaultCss/cssstandard.ts b/src/defaultCss/cssstandard.ts index 87b631d8e4..d2aaadaa62 100644 --- a/src/defaultCss/cssstandard.ts +++ b/src/defaultCss/cssstandard.ts @@ -366,6 +366,7 @@ export var defaultStandardCss = { window: { root: "sv_window", rootCollapsedMod: "sv_window--collapsed", + rootContent: "sv_window_content", body: "sv_window_content", header: { root: "sv_window_header", diff --git a/src/defaultCss/defaultV2Css.ts b/src/defaultCss/defaultV2Css.ts index 65c8428b25..9386cd0e44 100644 --- a/src/defaultCss/defaultV2Css.ts +++ b/src/defaultCss/defaultV2Css.ts @@ -649,6 +649,7 @@ export var defaultV2Css = { window: { root: "sv_window", rootCollapsedMod: "sv_window--collapsed", + rootContent: "sv_window_content", body: "sv_window_content", header: { root: "sv_window_header", diff --git a/src/images/close_16x16.svg b/src/images/close_16x16.svg new file mode 100644 index 0000000000..8501a19a3f --- /dev/null +++ b/src/images/close_16x16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/minimize_16x16.svg b/src/images/minimize_16x16.svg new file mode 100644 index 0000000000..c98b028206 --- /dev/null +++ b/src/images/minimize_16x16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/restore_16x16.svg b/src/images/restore_16x16.svg new file mode 100644 index 0000000000..9f0e7a2f3a --- /dev/null +++ b/src/images/restore_16x16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/knockout/templates/window.html b/src/knockout/templates/window.html index 566796a86d..168cb2e453 100644 --- a/src/knockout/templates/window.html +++ b/src/knockout/templates/window.html @@ -1,28 +1,30 @@ 
-
+
+
- -
- - -
-
- - - - - - + +
+ + +
+
+ + + + + + + +
+ +
+ +
- -
- -
-
-
-
- +
+ +
\ No newline at end of file diff --git a/src/popup-survey.ts b/src/popup-survey.ts index 138e8d1ce6..4072172b94 100644 --- a/src/popup-survey.ts +++ b/src/popup-survey.ts @@ -175,6 +175,9 @@ export class PopupSurveyModel extends Base { if (this.isCollapsed) result += " " + this.getPropertyValue("cssRootCollapsedMod", ""); return result; } + public get cssRootContent(): string { + return this.getPropertyValue("cssRootContent"); + } public get cssBody(): string { return this.getPropertyValue("cssBody", ""); } @@ -205,6 +208,7 @@ export class PopupSurveyModel extends Base { const cssWindow = this.css.window; this.setPropertyValue("cssRoot", cssWindow.root); this.setPropertyValue("cssRootCollapsedMod", cssWindow.rootCollapsedMod); + this.setPropertyValue("cssRootContent", cssWindow.rootContent); this.setPropertyValue("cssBody", cssWindow.body); const cssHeader = cssWindow.header; if (!cssHeader) return; From f4d873661e698cee622a101e0ac1c8ee222f167a Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Tue, 26 Dec 2023 12:02:16 +0400 Subject: [PATCH 12/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index 0316addca6..1ba28b65a6 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -3,25 +3,15 @@ bottom: 16px; right: 16px; border-radius: 8px; - box-shadow: $shadow-large; + border: 1px solid $border-inside; + box-shadow: $shadow-large, $shadow-medium; background-clip: padding-box; z-index: 100; - max-height: 100vh; + max-height: 90vh; overflow: auto; box-sizing: border-box; } -.sv_window_content { - box-shadow: $shadow-medium; - width: 100%; - height: 100%; - border: 1px solid $border-inside; - background-clip: padding-box; - border-radius: 8px; - box-sizing: border-box; - overflow: hidden; -} - .sv_window--collapsed { .sv_window_header { height: 32px; From f4b0cca49ae482549b4f6db5043a5b69500b84e0 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Tue, 26 Dec 2023 18:44:08 +0400 Subject: [PATCH 13/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 39 ++++++-------- testCafe/helper.js | 51 +++++++++++++++++++ visualRegressionTests/helper.ts | 2 +- .../tests/defaultV2/survey-popup.ts | 47 +++++++++++++++++ 4 files changed, 115 insertions(+), 24 deletions(-) create mode 100644 visualRegressionTests/tests/defaultV2/survey-popup.ts diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index 1ba28b65a6..15eee4f673 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -1,8 +1,11 @@ +@import "../defaultV2-theme/variables.scss"; +@import "../defaultV2-theme/mixins.scss"; + .sv_window { position: fixed; - bottom: 16px; - right: 16px; - border-radius: 8px; + bottom: calcSize(2); + right: calcSize(2); + border-radius: calcSize(1); border: 1px solid $border-inside; box-shadow: $shadow-large, $shadow-medium; background-clip: padding-box; @@ -14,9 +17,9 @@ .sv_window--collapsed { .sv_window_header { - height: 32px; - padding: 8px 8px 8px 16px; - border-radius: 8px; + height: calcSize(4); + padding: calcSize(1) calcSize(1) calcSize(1) calcSize(2); + border-radius: calcSize(1); display: flex; background-color: $background-dim; } @@ -24,12 +27,7 @@ .sv_window_header_title_collapsed { color: $foreground-dim; - /* UI/Default Bold */ - font-family: Open Sans; - font-size: 16px; - font-style: normal; - font-weight: 600; - line-height: 24px; /* 150% */ + @include defaultBold; flex: 1; display: flex; justify-content: start; @@ -39,12 +37,7 @@ .sv_window_header_description{ color: $font-questiondescription-color; font-feature-settings: 'salt' on; - /* UI/Default */ - font-family: Open Sans; - font-size: 16px; - font-style: normal; - font-weight: 400; - line-height: 24px; /* 150% */ + @include defaultFont; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; @@ -52,19 +45,19 @@ .sv_window_buttons_container { position: absolute; - top: 8px; - right: 8px; + top: calcSize(1); + right: calcSize(1); display: flex; - gap: 8px; + gap: calcSize(1); z-index: 1; } .sv_window_button { display: flex; - padding: 8px; + padding: calcSize(1); justify-content: center; align-items: center; - border-radius: 4px; + border-radius: calcSize(0.5); cursor: pointer; &:hover, &:active { diff --git a/testCafe/helper.js b/testCafe/helper.js index 658753092d..1ab46cb916 100644 --- a/testCafe/helper.js +++ b/testCafe/helper.js @@ -81,6 +81,57 @@ export const initSurvey = ClientFunction( } ); +export const initSurveyPopup = ClientFunction( + (framework, json, events, isDesignMode, props) => { + // eslint-disable-next-line no-console + console.error = (msg) => { + throw new Error(msg); + }; + // eslint-disable-next-line no-console + console.warn = (msg) => { + throw new Error(msg); + }; + // eslint-disable-next-line no-console + console.log("surveyjs console.error and console.warn override"); + + const popupSurvey = new window["Survey"].PopupSurveyModel(json); + const model = popupSurvey.survey; + model.setDesignMode(isDesignMode); + + + if (framework === "knockout") { + popupSurvey.isExpanded = true; + popupSurvey.allowClose = true; + popupSurvey.closeOnCompleteTimeout = -1; + popupSurvey.show(); + } else if (framework === "react") { + document.getElementById("surveyElement").innerHTML = ""; + const root = window["ReactDOM"].createRoot(document.getElementById("surveyElement")); + window["root"] = root; + root.render( + window["React"].createElement(window["Survey"].PopupSurvey, { + model: popupSurvey, + isExpanded: true, + allowClose: true, + closeOnCompleteTimeout: -1 + }), + ); + } else if (framework === "vue") { + document.getElementById("surveyElement").innerHTML = + ""; + !!window["vueApp"] && window["vueApp"].$destroy(); + window["vueApp"] = new window["Vue"]({ + el: "#surveyElement", + data: { popupSurvey: popupSurvey }, + }); + } else if (framework === "angular" || framework == "vue3") { + window.setSurvey(model); + } + window["popupSurvey"] = popupSurvey; + window["survey"] = model; + } +); + export const registerCustomToolboxComponent = ClientFunction( (framework, json, events, isDesignMode, props) => { if (framework === "knockout") { diff --git a/visualRegressionTests/helper.ts b/visualRegressionTests/helper.ts index 8e4f1f4ea4..a6361666b7 100644 --- a/visualRegressionTests/helper.ts +++ b/visualRegressionTests/helper.ts @@ -69,4 +69,4 @@ export const screenshotComparerOptions = { highlightColor: { r: 0xff, g: 0, b: 0xff }, }; -export { initSurvey, frameworks, url, url_test, setOptions } from "../testCafe/helper"; +export { initSurvey, initSurveyPopup, frameworks, url, url_test, setOptions } from "../testCafe/helper"; diff --git a/visualRegressionTests/tests/defaultV2/survey-popup.ts b/visualRegressionTests/tests/defaultV2/survey-popup.ts new file mode 100644 index 0000000000..1226d708df --- /dev/null +++ b/visualRegressionTests/tests/defaultV2/survey-popup.ts @@ -0,0 +1,47 @@ +import { Selector, ClientFunction } from "testcafe"; +import { url, frameworks, initSurveyPopup, url_test, takeElementScreenshot, wrapVisualTest } from "../../helper"; + +const title = "Survey Popup Screenshot"; + +fixture`${title}`.page`${url}`; + +const applyTheme = ClientFunction(theme => { + (window).Survey.StylesManager.applyTheme(theme); +}); + +const theme = "defaultV2"; + +const json = { + "title": "Send Feedback to the SurveyJS team", + "description": "Need help? Visit our support page.", + "pages": [ + { + "name": "page1", + "elements": [ + { + "type": "comment", + "name": "feedback", + "title": "Describe your feedback", + "isRequired": true + } + ] + } + ], + "showQuestionNumbers": "off" + }; + +frameworks.forEach(framework => { + fixture`${framework} ${title} ${theme}` + .page`${url_test}${theme}/${framework}` + .beforeEach(async t => { + await applyTheme(theme); + }); + + test.only("Check Survey-Popup", async (t) => { + await wrapVisualTest(t, async (t, comparer) => { + await t.resizeWindow(800, 600); + await initSurveyPopup(framework, json); + await takeElementScreenshot("survey-popup.png", Selector(".sw_window"), t, comparer); + }); + }); +}); \ No newline at end of file From cd1ce11aa666c3f9c09852bb0e964dc7223b58ad Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Tue, 26 Dec 2023 18:54:40 +0400 Subject: [PATCH 14/30] work for the https://github.com/surveyjs/service/issues/1668 (lint) --- testCafe/helper.js | 1 - .../tests/defaultV2/survey-popup.ts | 26 +++++++++---------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/testCafe/helper.js b/testCafe/helper.js index 1ab46cb916..9d143ad9d3 100644 --- a/testCafe/helper.js +++ b/testCafe/helper.js @@ -98,7 +98,6 @@ export const initSurveyPopup = ClientFunction( const model = popupSurvey.survey; model.setDesignMode(isDesignMode); - if (framework === "knockout") { popupSurvey.isExpanded = true; popupSurvey.allowClose = true; diff --git a/visualRegressionTests/tests/defaultV2/survey-popup.ts b/visualRegressionTests/tests/defaultV2/survey-popup.ts index 1226d708df..512c26a1d0 100644 --- a/visualRegressionTests/tests/defaultV2/survey-popup.ts +++ b/visualRegressionTests/tests/defaultV2/survey-popup.ts @@ -15,20 +15,20 @@ const json = { "title": "Send Feedback to the SurveyJS team", "description": "Need help? Visit our support page.", "pages": [ - { - "name": "page1", - "elements": [ - { - "type": "comment", - "name": "feedback", - "title": "Describe your feedback", - "isRequired": true - } - ] - } + { + "name": "page1", + "elements": [ + { + "type": "comment", + "name": "feedback", + "title": "Describe your feedback", + "isRequired": true + } + ] + } ], "showQuestionNumbers": "off" - }; +}; frameworks.forEach(framework => { fixture`${framework} ${title} ${theme}` @@ -37,7 +37,7 @@ frameworks.forEach(framework => { await applyTheme(theme); }); - test.only("Check Survey-Popup", async (t) => { + test("Check Survey-Popup", async (t) => { await wrapVisualTest(t, async (t, comparer) => { await t.resizeWindow(800, 600); await initSurveyPopup(framework, json); From 8282d63635cce6f7a2cc0c695eedbb39e40cb0e9 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Thu, 28 Dec 2023 18:45:15 +0400 Subject: [PATCH 15/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 5 +++++ .../tests/defaultV2/etalons/survey-popup.png | Bin 0 -> 27750 bytes .../tests/defaultV2/survey-popup.ts | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 visualRegressionTests/tests/defaultV2/etalons/survey-popup.png diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index 15eee4f673..5d2b263602 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -15,6 +15,11 @@ box-sizing: border-box; } +.sv_window_content { + border-radius: calcSize(1); + overflow: hidden; +} + .sv_window--collapsed { .sv_window_header { height: calcSize(4); diff --git a/visualRegressionTests/tests/defaultV2/etalons/survey-popup.png b/visualRegressionTests/tests/defaultV2/etalons/survey-popup.png new file mode 100644 index 0000000000000000000000000000000000000000..a380cdcfe56747d186570902d02f18142d0207c0 GIT binary patch literal 27750 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 { await wrapVisualTest(t, async (t, comparer) => { await t.resizeWindow(800, 600); await initSurveyPopup(framework, json); - await takeElementScreenshot("survey-popup.png", Selector(".sw_window"), t, comparer); + await takeElementScreenshot("survey-popup.png", Selector(".sv_window"), t, comparer); }); }); }); \ No newline at end of file From a52300c9c93618370271d72489729c89cb9e7083 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Wed, 3 Jan 2024 20:13:14 +0400 Subject: [PATCH 16/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/react/react-popup-survey.tsx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/react/react-popup-survey.tsx b/src/react/react-popup-survey.tsx index 2c9f29da6d..ab049193cd 100644 --- a/src/react/react-popup-survey.tsx +++ b/src/react/react-popup-survey.tsx @@ -22,19 +22,17 @@ export class PopupSurvey extends Survey { protected renderElement(): JSX.Element { var header = this.renderWindowHeader(); var body = this.popup.isExpanded ? this.renderBody() : null; - let style: React.CSSProperties = { - position: "fixed", - bottom: 3, - right: 10 - }; + let style: React.CSSProperties = {}; if (!!this.popup.renderedWidth) { style.width = this.popup.renderedWidth; style.maxWidth = this.popup.renderedWidth; } return (
- {header} - {body} +
+ {header} + {body} +
); } @@ -44,6 +42,10 @@ export class PopupSurvey extends Survey { var glyphClassName = this.popup.cssButton; glyphClassName = "glyphicon pull-right " + glyphClassName; var title = SurveyElementBase.renderLocString(this.survey.locTitle); + var headerCss = this.popup.cssHeaderRoot; + if (this.popup.isCollapsed) { + headerCss += " " + this.popup.cssRootCollapsedMod; + } return (
From a6a36204ad55763924d788116a9555244da1205f Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Thu, 4 Jan 2024 19:56:23 +0400 Subject: [PATCH 17/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/react/react-popup-survey.tsx | 77 +++++++++++++++++--------------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/src/react/react-popup-survey.tsx b/src/react/react-popup-survey.tsx index ab049193cd..5add4d77c8 100644 --- a/src/react/react-popup-survey.tsx +++ b/src/react/react-popup-survey.tsx @@ -37,43 +37,50 @@ export class PopupSurvey extends Survey { ); } protected renderWindowHeader(): JSX.Element { - var styleA = { width: "100%", cursor: "pointer" }; - var styleTitle = { paddingRight: "10px" }; - var glyphClassName = this.popup.cssButton; - glyphClassName = "glyphicon pull-right " + glyphClassName; - var title = SurveyElementBase.renderLocString(this.survey.locTitle); - var headerCss = this.popup.cssHeaderRoot; - if (this.popup.isCollapsed) { - headerCss += " " + this.popup.cssRootCollapsedMod; + var popup = this.popup; + var headerCss = popup.cssHeaderRoot; + var titleCollapsed: JSX.Element | null = null; + var expandCollapseIcon; + var closeButton: JSX.Element | null = null; + + if (popup.isCollapsed) { + headerCss += " " + popup.cssRootCollapsedMod; + titleCollapsed = this.renderTitleCollapsed(popup); + expandCollapseIcon = this.renderExpandIcon(); + } else { + expandCollapseIcon = this.renderCollapseIcon(); + } + + if (popup.allowClose) { + closeButton = this.renderCloseButton(this.popup); } + + return ( +
+ {titleCollapsed} +
+
+ {expandCollapseIcon} +
+ {closeButton} +
+
+ ); + } + protected renderTitleCollapsed(popup: PopupSurveyModel): JSX.Element | null { + if (!popup.locTitle) return null; + return
{popup.locTitle.koRenderedHtml}
; + } + protected renderExpandIcon(): JSX.Element { + return ; + } + protected renderCollapseIcon(): JSX.Element { + return ; + } + protected renderCloseButton(popup: PopupSurveyModel): JSX.Element { return ( -
- - - {title} - - - {this.popup.allowClose ? ( - { this.popup.hide(); }} - style={{ transform: "rotate(45deg)", float: "right", cursor: "pointer", width: "24px", height: "24px" }} - > - - - - ) : null} - {this.popup.isExpanded ? ( - - - - - ) : null} +
{ popup.hide(); }}> +
); } From 42754430d5eaaeb293e53fbdbb36e2a837a813f6 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Mon, 8 Jan 2024 17:07:32 +0400 Subject: [PATCH 18/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/common-styles/window.scss | 12 ++++++++---- src/popup-survey.ts | 3 +++ src/react/react-popup-survey.tsx | 26 ++++++++++++++++++++------ 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/common-styles/window.scss b/src/common-styles/window.scss index 5d2b263602..39f3ff5008 100644 --- a/src/common-styles/window.scss +++ b/src/common-styles/window.scss @@ -67,8 +67,10 @@ &:hover, &:active { background-color: $primary-light; - svg use { - fill: $primary; + svg { + use, path { + fill: $primary; + } } } @@ -76,7 +78,9 @@ opacity: 0.5; } - svg use { - fill: $foreground-dim-light; + svg { + use, path { + fill: $foreground-dim-light; + } } } \ No newline at end of file diff --git a/src/popup-survey.ts b/src/popup-survey.ts index 4072172b94..aacbea21dc 100644 --- a/src/popup-survey.ts +++ b/src/popup-survey.ts @@ -175,6 +175,9 @@ export class PopupSurveyModel extends Base { if (this.isCollapsed) result += " " + this.getPropertyValue("cssRootCollapsedMod", ""); return result; } + public get cssRootCollapsedMod(): string { + return this.getPropertyValue("cssRootCollapsedMod"); + } public get cssRootContent(): string { return this.getPropertyValue("cssRootContent"); } diff --git a/src/react/react-popup-survey.tsx b/src/react/react-popup-survey.tsx index 5add4d77c8..bed601a92b 100644 --- a/src/react/react-popup-survey.tsx +++ b/src/react/react-popup-survey.tsx @@ -1,7 +1,7 @@ import * as React from "react"; import { Survey } from "./reactSurvey"; -import { SurveyElementBase } from "./reactquestion_element"; -import { Base, PopupSurveyModel } from "survey-core"; +import { Base } from "../base"; +import { PopupSurveyModel } from "../popup-survey"; import { SvgIcon } from "./components/svg-icon/svg-icon"; export class PopupSurvey extends Survey { @@ -69,18 +69,32 @@ export class PopupSurvey extends Survey { } protected renderTitleCollapsed(popup: PopupSurveyModel): JSX.Element | null { if (!popup.locTitle) return null; - return
{popup.locTitle.koRenderedHtml}
; + return
{popup.locTitle.renderedHtml}
; } protected renderExpandIcon(): JSX.Element { - return ; + /* see https://github.com/surveyjs/service/issues/1668#issuecomment-1880963345 */ + return + + ; + + //return ; } protected renderCollapseIcon(): JSX.Element { - return ; + /* see https://github.com/surveyjs/service/issues/1668#issuecomment-1880963345 */ + return + + + + // return ; } protected renderCloseButton(popup: PopupSurveyModel): JSX.Element { + /* see https://github.com/surveyjs/service/issues/1668#issuecomment-1880963345 */ return (
{ popup.hide(); }}> - + + + + {/* */}
); } From e819d60791403e19b689d333d966d1570073c5cf Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Mon, 8 Jan 2024 17:10:40 +0400 Subject: [PATCH 19/30] work for the https://github.com/surveyjs/service/issues/1668 (lint) --- src/react/react-popup-survey.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/react/react-popup-survey.tsx b/src/react/react-popup-survey.tsx index bed601a92b..55315ee3a4 100644 --- a/src/react/react-popup-survey.tsx +++ b/src/react/react-popup-survey.tsx @@ -74,17 +74,15 @@ export class PopupSurvey extends Survey { protected renderExpandIcon(): JSX.Element { /* see https://github.com/surveyjs/service/issues/1668#issuecomment-1880963345 */ return - + ; - //return ; } protected renderCollapseIcon(): JSX.Element { /* see https://github.com/surveyjs/service/issues/1668#issuecomment-1880963345 */ return - - + ; // return ; } protected renderCloseButton(popup: PopupSurveyModel): JSX.Element { @@ -92,7 +90,7 @@ export class PopupSurvey extends Survey { return (
{ popup.hide(); }}> - + {/* */}
From a78e37c5c7a74c132d8ddf1db19b1e5f8590b576 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Tue, 9 Jan 2024 14:32:45 +0400 Subject: [PATCH 20/30] work for the https://github.com/surveyjs/service/issues/1668 --- src/vue/popup-survey.vue | 68 ++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 27 deletions(-) diff --git a/src/vue/popup-survey.vue b/src/vue/popup-survey.vue index 3571878f29..7df1d69e27 100644 --- a/src/vue/popup-survey.vue +++ b/src/vue/popup-survey.vue @@ -1,36 +1,38 @@ @@ -48,6 +50,7 @@ export class PopupSurvey extends BaseVue { @Prop() isExpanded: boolean; @Prop() isexpanded: boolean; @Prop() allowClose: boolean; + @Prop() allowclose: boolean; @Prop() closeOnCompleteTimeout: number; surveyWindow: PopupSurveyModel; @@ -67,6 +70,9 @@ export class PopupSurvey extends BaseVue { if (this.closeOnCompleteTimeout !== undefined) { this.surveyWindow.closeOnCompleteTimeout = this.closeOnCompleteTimeout; } + if (this.allowclose !== undefined) { + this.surveyWindow.allowClose = this.allowclose; + } if (this.allowClose !== undefined) { this.surveyWindow.allowClose = this.allowClose; } @@ -76,6 +82,14 @@ export class PopupSurvey extends BaseVue { return this.surveyWindow; } + get cssHeaderRoot(): string { + let headerCss = this.surveyWindow.cssHeaderRoot; + if (this.surveyWindow.isCollapsed) { + headerCss += " " + this.surveyWindow.cssRootCollapsedMod; + } + return headerCss; + } + get windowSurvey(): SurveyModel { return this.surveyWindow.survey; } From 28a187a9cc3ab1a158f7788366ce56f663499480 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Tue, 9 Jan 2024 17:33:36 +0400 Subject: [PATCH 21/30] work for the https://github.com/surveyjs/service/issues/1668 --- .../src/popup.survey.component.html | 28 +++--- .../src/popup.survey.component.ts | 8 ++ packages/survey-vue3-ui/src/PopupSurvey.vue | 90 ++++++++----------- 3 files changed, 62 insertions(+), 64 deletions(-) diff --git a/packages/survey-angular-ui/src/popup.survey.component.html b/packages/survey-angular-ui/src/popup.survey.component.html index 0acff8226c..47a4afe2ef 100644 --- a/packages/survey-angular-ui/src/popup.survey.component.html +++ b/packages/survey-angular-ui/src/popup.survey.component.html @@ -1,17 +1,21 @@ -
-
- - {{popup.locTitle.renderedHtml}} - - - - - - - - +
+
+
+
+ {{popup.locTitle.renderedHtml}} +
+
+
+ + +
+
+
+ +
+
\ No newline at end of file diff --git a/packages/survey-angular-ui/src/popup.survey.component.ts b/packages/survey-angular-ui/src/popup.survey.component.ts index 6bee45af9d..df81964457 100644 --- a/packages/survey-angular-ui/src/popup.survey.component.ts +++ b/packages/survey-angular-ui/src/popup.survey.component.ts @@ -23,6 +23,14 @@ export class PopupSurveyComponent extends BaseAngular implemen protected override getShouldReattachChangeDetector(): boolean { return false; } + public getHeaderCss(): string { + let headerCss = this.popup.cssHeaderRoot; + if (this.popup.isCollapsed) { + headerCss += " " + this.popup.cssRootCollapsedMod; + } + return headerCss; + } + ngOnChanges(changes: SimpleChanges): void { if (changes["model"]?.currentValue !== changes["model"]?.previousValue) { this.popup = new PopupSurveyModel(null, this.model); diff --git a/packages/survey-vue3-ui/src/PopupSurvey.vue b/packages/survey-vue3-ui/src/PopupSurvey.vue index cf62c8f4ab..3dd86cc1a6 100644 --- a/packages/survey-vue3-ui/src/PopupSurvey.vue +++ b/packages/survey-vue3-ui/src/PopupSurvey.vue @@ -1,60 +1,38 @@ @@ -96,6 +74,14 @@ const doScroll = () => { surveyWindow.value.onScroll(); }; +const cssHeaderRoot = () => { + let headerCss = surveyWindow.value.cssHeaderRoot; + if (surveyWindow.value.isCollapsed) { + headerCss += " " + surveyWindow.value.cssRootCollapsedMod; + } + return headerCss; + } + useBase(() => surveyWindow.value); const stopWatch = watch( From 8fa14270b8ecc3b2f254a466218e98a3987bae91 Mon Sep 17 00:00:00 2001 From: dmitrykurmanov Date: Wed, 10 Jan 2024 17:03:34 +0400 Subject: [PATCH 22/30] work for the https://github.com/surveyjs/service/issues/1668 --- testCafe/helper.js | 6 +++--- .../tests/defaultV2/etalons/survey-popup.png | Bin 27750 -> 27533 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/testCafe/helper.js b/testCafe/helper.js index 9d143ad9d3..a5acec273d 100644 --- a/testCafe/helper.js +++ b/testCafe/helper.js @@ -109,7 +109,7 @@ export const initSurveyPopup = ClientFunction( window["root"] = root; root.render( window["React"].createElement(window["Survey"].PopupSurvey, { - model: popupSurvey, + model: model, isExpanded: true, allowClose: true, closeOnCompleteTimeout: -1 @@ -117,11 +117,11 @@ export const initSurveyPopup = ClientFunction( ); } else if (framework === "vue") { document.getElementById("surveyElement").innerHTML = - ""; + ""; !!window["vueApp"] && window["vueApp"].$destroy(); window["vueApp"] = new window["Vue"]({ el: "#surveyElement", - data: { popupSurvey: popupSurvey }, + data: { survey: model }, }); } else if (framework === "angular" || framework == "vue3") { window.setSurvey(model); diff --git a/visualRegressionTests/tests/defaultV2/etalons/survey-popup.png b/visualRegressionTests/tests/defaultV2/etalons/survey-popup.png index a380cdcfe56747d186570902d02f18142d0207c0..3ecf099bbb08e39d085ba38eb6dd83b60879bcc4 100644 GIT binary patch literal 27533 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 Date: Thu, 11 Jan 2024 14:30:58 +0400 Subject: [PATCH 23/30] work for the https://github.com/surveyjs/service/issues/1668 --- .../app/components/test/test.component.html | 2 +- .../src/components/test/TestCommon.vue | 11 +++--- packages/survey-vue3-ui/src/PopupSurvey.vue | 36 ++++++++++--------- testCafe/helper.js | 3 +- 4 files changed, 28 insertions(+), 24 deletions(-) diff --git a/packages/survey-angular-ui/example/src/app/components/test/test.component.html b/packages/survey-angular-ui/example/src/app/components/test/test.component.html index 94b5c14b73..ff1f987f55 100644 --- a/packages/survey-angular-ui/example/src/app/components/test/test.component.html +++ b/packages/survey-angular-ui/example/src/app/components/test/test.component.html @@ -1,4 +1,4 @@
- +
\ No newline at end of file diff --git a/packages/survey-vue3-ui/example/src/components/test/TestCommon.vue b/packages/survey-vue3-ui/example/src/components/test/TestCommon.vue index 801f7f039c..51458ed482 100644 --- a/packages/survey-vue3-ui/example/src/components/test/TestCommon.vue +++ b/packages/survey-vue3-ui/example/src/components/test/TestCommon.vue @@ -11,9 +11,10 @@ const isPopup = shallowRef(); } \ No newline at end of file diff --git a/packages/survey-vue3-ui/src/PopupSurvey.vue b/packages/survey-vue3-ui/src/PopupSurvey.vue index 3dd86cc1a6..c97912a1d2 100644 --- a/packages/survey-vue3-ui/src/PopupSurvey.vue +++ b/packages/survey-vue3-ui/src/PopupSurvey.vue @@ -1,9 +1,6 @@