97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * @license
 | 
						|
 * Copyright (C) 2016 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.
 | 
						|
 */
 | 
						|
(function(window) {
 | 
						|
  'use strict';
 | 
						|
 | 
						|
  /**
 | 
						|
   * Ensure GrChangeReplyInterface instance has access to gr-reply-dialog
 | 
						|
   * element and retrieve if the interface was created before element.
 | 
						|
   * @param {!GrChangeReplyInterfaceOld} api
 | 
						|
   */
 | 
						|
  function ensureEl(api) {
 | 
						|
    if (!api._el) {
 | 
						|
      const sharedApiElement = document.createElement('gr-js-api-interface');
 | 
						|
      api._el = sharedApiElement.getElement(
 | 
						|
          sharedApiElement.Element.REPLY_DIALOG);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  /**
 | 
						|
   * @deprecated
 | 
						|
   */
 | 
						|
  function GrChangeReplyInterfaceOld(el) {
 | 
						|
    this._el = el;
 | 
						|
  }
 | 
						|
 | 
						|
  GrChangeReplyInterfaceOld.prototype.getLabelValue = function(label) {
 | 
						|
    ensureEl(this);
 | 
						|
    return this._el.getLabelValue(label);
 | 
						|
  };
 | 
						|
 | 
						|
  GrChangeReplyInterfaceOld.prototype.setLabelValue = function(label, value) {
 | 
						|
    ensureEl(this);
 | 
						|
    this._el.setLabelValue(label, value);
 | 
						|
  };
 | 
						|
 | 
						|
  GrChangeReplyInterfaceOld.prototype.send = function(opt_includeComments) {
 | 
						|
    ensureEl(this);
 | 
						|
    return this._el.send(opt_includeComments);
 | 
						|
  };
 | 
						|
 | 
						|
  function GrChangeReplyInterface(plugin, el) {
 | 
						|
    GrChangeReplyInterfaceOld.call(this, el);
 | 
						|
    this.plugin = plugin;
 | 
						|
    this._hookName = (plugin.getPluginName() || 'test') + '-autogenerated-'
 | 
						|
      + String(Math.random()).split('.')[1];
 | 
						|
  }
 | 
						|
  GrChangeReplyInterface.prototype._hookName = '';
 | 
						|
  GrChangeReplyInterface.prototype._hookClass = null;
 | 
						|
  GrChangeReplyInterface.prototype._hookPromise = null;
 | 
						|
 | 
						|
  GrChangeReplyInterface.prototype =
 | 
						|
    Object.create(GrChangeReplyInterfaceOld.prototype);
 | 
						|
  GrChangeReplyInterface.prototype.constructor = GrChangeReplyInterface;
 | 
						|
 | 
						|
  GrChangeReplyInterface.prototype.addReplyTextChangedCallback =
 | 
						|
    function(handler) {
 | 
						|
      this.plugin.hook('reply-text').onAttached(el => {
 | 
						|
        if (!el.content) { return; }
 | 
						|
        el.content.addEventListener('value-changed', e => {
 | 
						|
          handler(e.detail.value);
 | 
						|
        });
 | 
						|
      });
 | 
						|
    };
 | 
						|
 | 
						|
  GrChangeReplyInterface.prototype.addLabelValuesChangedCallback =
 | 
						|
    function(handler) {
 | 
						|
      this.plugin.hook('reply-label-scores').onAttached(el => {
 | 
						|
        if (!el.content) { return; }
 | 
						|
 | 
						|
        el.content.addEventListener('labels-changed', e => {
 | 
						|
          console.log('labels-changed', e.detail);
 | 
						|
          handler(e.detail);
 | 
						|
        });
 | 
						|
      });
 | 
						|
    };
 | 
						|
 | 
						|
  GrChangeReplyInterface.prototype.showMessage = function(message) {
 | 
						|
    return this._el.setPluginMessage(message);
 | 
						|
  };
 | 
						|
 | 
						|
  window.GrChangeReplyInterface = GrChangeReplyInterface;
 | 
						|
})(window);
 |