From 8d938182aa0d082b6eca6cb5b5c30904a1a30a45 Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio.bekerle@tugraz.at>
Date: Wed, 28 Aug 2019 15:19:15 +0200
Subject: [PATCH] Don't do a change event if value was not changed

---
 packages/person-select/src/person-select.js | 25 ++++++++++++---------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/packages/person-select/src/person-select.js b/packages/person-select/src/person-select.js
index f63b4b1a..3e981145 100644
--- a/packages/person-select/src/person-select.js
+++ b/packages/person-select/src/person-select.js
@@ -125,22 +125,25 @@ class PersonSelect extends VPULitElementJQuery {
                 }
             }
         }).on("select2:select", function (e) {
-            // set value custom element
+            // set custom element attributes
             const identifier = e.params.data.id;
-            $this.attr("value", identifier);
-            $this.val(identifier);
-
             const object = findObjectInApiResults(identifier, lastResult);
+
             $this.attr("data-object", JSON.stringify(object));
             $this.data("object", object);
+            $this.val(identifier);
 
-            // fire a change event
-            that.dispatchEvent(new CustomEvent('change', {
-                detail: {
-                    value: identifier,
-                },
-                bubbles: true
-            }));
+            if ($this.attr("value") !== identifier) {
+                $this.attr("value", identifier);
+
+                // fire a change event
+                that.dispatchEvent(new CustomEvent('change', {
+                    detail: {
+                        value: identifier,
+                    },
+                    bubbles: true
+                }));
+            }
         });
 
         // preset a person
-- 
GitLab