Introduce Gerrit.FireBehavior
This will replace the deprecated fire method from Polymer core.
Change-Id: I0db19ff764210e31a4f0bfa593d2c7364d962cad
diff --git a/polygerrit-ui/app/behaviors/fire-behavior/fire-behavior.html b/polygerrit-ui/app/behaviors/fire-behavior/fire-behavior.html
new file mode 100644
index 0000000..b5afab1
--- /dev/null
+++ b/polygerrit-ui/app/behaviors/fire-behavior/fire-behavior.html
@@ -0,0 +1,55 @@
+<!--
+@license
+Copyright (C) 2019 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<script>
+(function(window) {
+ 'use strict';
+
+ window.Gerrit = window.Gerrit || {};
+
+ /** @polymerBehavior Gerrit.FireBehavior */
+ Gerrit.FireBehavior = {
+ /**
+ * Dispatches a custom event with an optional detail value.
+ *
+ * @param {string} type Name of event type.
+ * @param {*=} detail Detail value containing event-specific
+ * payload.
+ * @param {{ bubbles: (boolean|undefined), cancelable: (boolean|undefined),
+ * composed: (boolean|undefined) }=}
+ * options Object specifying options. These may include:
+ * `bubbles` (boolean, defaults to `true`),
+ * `cancelable` (boolean, defaults to false), and
+ * `composed` (boolean, defaults to true).
+ * @return {!Event} The new event that was fired.
+ * @override
+ */
+ fire(type, detail, options) {
+ options = options || {};
+ detail = (detail === null || detail === undefined) ? {} : detail;
+ const event = new Event(type, {
+ bubbles: options.bubbles === undefined ? true : options.bubbles,
+ cancelable: Boolean(options.cancelable),
+ composed: options.composed === undefined ? true: options.composed,
+ });
+ event.detail = detail;
+ this.dispatchEvent(event);
+ return event;
+ },
+ };
+})(window);
+</script>