Relay the bind-value-changed event from gr-textarea

The reply dialog listens for bind-value-changed on its textarea so that
the dialog can be repositioned. However, when the textarea had been
upgraded from an iron-autogrow-textarea to a specialized gr-textarea,
the bind-value-changed events were being swallowed. With this change,
gr-textarea's handler for these events relays them for handling above.

Bug: Issue 6768
Change-Id: Ida6ffd37ce37055e260ab196de2e5f5118c0e682
diff --git a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.js b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.js
index 7da0688..1bc565d 100644
--- a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.js
+++ b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.js
@@ -53,6 +53,10 @@
   Polymer({
     is: 'gr-textarea',
 
+    /**
+     * @event bind-value-changed
+     */
+
     properties: {
       autocomplete: Boolean,
       disabled: Boolean,
@@ -240,6 +244,9 @@
      * autocomplete options.
      */
     _onValueChanged(e) {
+      // Relay the event.
+      this.fire('bind-value-changed', e);
+
       // If cursor is not in textarea (just opened with colon as last char),
       // Don't do anything.
       if (!e.currentTarget.focused) { return; }
diff --git a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.html b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.html
index 637fbbfc..95e3a8d 100644
--- a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.html
@@ -196,6 +196,14 @@
       assert.isTrue(resetSpy.called);
     });
 
+    test('_onValueChanged fires bind-value-changed', () => {
+      const listenerStub = sinon.stub();
+      const eventObject = {currentTarget: {focused: false}};
+      element.addEventListener('bind-value-changed', listenerStub);
+      element._onValueChanged(eventObject);
+      assert.isTrue(listenerStub.called);
+    });
+
     suite('keyboard shortcuts', () => {
       function setupDropdown() {
         MockInteractions.focus(element.$.textarea);