text: define(["exports", "../polymer/polymer-legacy.js", "../iron-form-element-behavior/iron-form-element-behavior.js", "../iron-validatable-behavior/iron-validatable-behavior.js"], function (_exports, _polymerLegacy, _ironFormElementBehavior, _ironValidatableBehavior) {
    "use strict";
  
    Object.defineProperty(_exports, "__esModule", {
      value: true
    });
    _exports.IronCheckedElementBehavior = _exports.IronCheckedElementBehaviorImpl = void 0;
  
    /**
    @license
    Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at
    http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
    http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
    found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
    part of the polymer project is also subject to an additional IP rights grant
    found at http://polymer.github.io/PATENTS.txt
    */
  
    /**
     * Use `IronCheckedElementBehavior` to implement a custom element that has a
     * `checked` property, which can be used for validation if the element is also
     * `required`. Element instances implementing this behavior will also be
     * registered for use in an `iron-form` element.
     *
     * @demo demo/index.html
     * @polymerBehavior IronCheckedElementBehavior
     */
    var IronCheckedElementBehaviorImpl = {
      properties: {
        /**
         * Fired when the checked state changes.
         *
         * @event iron-change
         */
  
        /**
         * Gets or sets the state, `true` is checked and `false` is unchecked.
         */
        checked: {
          type: Boolean,
          value: false,
          reflectToAttribute: true,
          notify: true,
          observer: '_checkedChanged'
        },
  
        /**
         * If true, the button toggles the active state with each tap or press
         * of the spacebar.
         */
        toggles: {
          type: Boolean,
          value: true,
          reflectToAttribute: true
        },
  
        /* Overriden from IronFormElementBehavior */
        value: {
          type: String,
          value: 'on',
          observer: '_valueChanged'
        }
      },
      observers: ['_requiredChanged(required)'],
      created: function created() {
        // Used by `iron-form` to handle the case that an element with this behavior
        // doesn't have a role of 'checkbox' or 'radio', but should still only be
        // included when the form is serialized if `this.checked === true`.
        this._hasIronCheckedElementBehavior = true;
      },
  
      /**
       * Returns false if the element is required and not checked, and true
       * otherwise.
       * @param {*=} _value Ignored.
       * @return {boolean} true if `required` is false or if `checked` is true.
       */
      _getValidity: function _getValidity(_value) {
        return this.disabled || !this.required || this.checked;
      },
  
      /**
       * Update the aria-required label when `required` is changed.
       */
      _requiredChanged: function _requiredChanged() {
        if (this.required) {
          this.setAttribute('aria-required', 'true');
        } else {
          this.removeAttribute('aria-required');
        }
      },
  
      /**
       * Fire `iron-changed` when the checked state changes.
       */
      _checkedChanged: function _checkedChanged() {
        this.active = this.checked;
        this.fire('iron-change');
      },
  
      /**
       * Reset value to 'on' if it is set to `undefined`.
       */
      _valueChanged: function _valueChanged() {
        if (this.value === undefined || this.value === null) {
          this.value = 'on';
        }
      }
    };
    /** @polymerBehavior */
  
    _exports.IronCheckedElementBehaviorImpl = IronCheckedElementBehaviorImpl;
    var IronCheckedElementBehavior = [_ironFormElementBehavior.IronFormElementBehavior, _ironValidatableBehavior.IronValidatableBehavior, IronCheckedElementBehaviorImpl];
    _exports.IronCheckedElementBehavior = IronCheckedElementBehavior;
  });