diff --git a/packages/survey-creator-angular/src/question-widget.component.html b/packages/survey-creator-angular/src/question-widget.component.html index c19791ede9..28fc37286a 100644 --- a/packages/survey-creator-angular/src/question-widget.component.html +++ b/packages/survey-creator-angular/src/question-widget.component.html @@ -1,6 +1,13 @@ -
-
+
+
+
+
+
+
@@ -9,8 +16,8 @@
-
-
+
+
diff --git a/packages/survey-creator-knockout/src/question-widget.html b/packages/survey-creator-knockout/src/question-widget.html index 3ff6e83db0..0d651a1d55 100644 --- a/packages/survey-creator-knockout/src/question-widget.html +++ b/packages/survey-creator-knockout/src/question-widget.html @@ -2,6 +2,10 @@ data-bind="css: rootCss(), attr: { 'data-sv-drop-target-survey-element': element.name }, event: { mouseover: function(m, e) { hover(e, $element); }, mouseleave: function(m, e) { hover(e, $element); } }">
+
+
+
+
diff --git a/packages/survey-creator-vue/src/adorners/CustomWidget.vue b/packages/survey-creator-vue/src/adorners/CustomWidget.vue index c8dda0be6b..06e2b18a65 100644 --- a/packages/survey-creator-vue/src/adorners/CustomWidget.vue +++ b/packages/survey-creator-vue/src/adorners/CustomWidget.vue @@ -16,6 +16,18 @@ @click="model.select(model, $event)" data-bind="clickBubble: false" > +
+
+
+
{ await takeElementScreenshot("drag-drop-in-collapsed-page.png", ".svc-tab-designer_content", t, comparer); }); }); + +fixture`DragDrop custom widget Screenshot`.page`${url}`.beforeEach(async (t) => { +}); + +test("Drag indicator for custom widget", async (t) => { + await wrapVisualTest(t, async (t, comparer) => { + await ClientFunction(() => { + const widget = { + name: "peoplepicker", + title: "People Picker", + iconName: "search", + widgetIsLoaded: function () { return true; }, + isFit: function (question) { return question.getType() === "peoplepicker"; }, + activatedByChanged: function (activatedBy) { window["Survey"].Serializer.addClass("peoplepicker", [], null, "empty"); }, + isDefaultRender: false, + htmlTemplate: ` +
+ +
+ `, + afterRender: (question, element) => { + const input = element.getElementsByTagName("input")[0]; + input.style.width = "100%"; + input.style.padding = "8px auto"; + }, + }; + + window["Survey"].CustomWidgetCollection.Instance.addCustomWidget(widget, "customtype"); + + const widgetTemplateForKo = document.createElement("script"); + widgetTemplateForKo.setAttribute("id", "survey-widget-peoplepicker"); + widgetTemplateForKo.setAttribute("type", "text/html"); + widgetTemplateForKo.innerHTML = ` +
+ +
+ `; + document.body.appendChild(widgetTemplateForKo); + })(); + await t.resizeWindow(1252, 900); + + const json = { + elements: [{ type: "peoplepicker", name: "q1" }, { type: "peoplepicker", name: "q2" }] + }; + await setJSON(json); + + await patchDragDropToDisableDrop(); + + const q1 = Selector("[data-sv-drop-target-survey-element='q1']"); + await t + .hover(RatingToolboxItem) + .dragToElement(RatingToolboxItem, q1, { speed: 0.5, offsetX: 100, offsetY: 10 }); + + await takeElementScreenshot("drag-drop-over-custom-widget.png", Selector(".svc-page").nth(0), t, comparer); + }); +}); \ No newline at end of file diff --git a/visualRegressionTests/tests/designer/etalons/drag-drop-over-custom-widget.png b/visualRegressionTests/tests/designer/etalons/drag-drop-over-custom-widget.png new file mode 100644 index 0000000000..85a3f6e2eb Binary files /dev/null and b/visualRegressionTests/tests/designer/etalons/drag-drop-over-custom-widget.png differ