/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@polymer/gold-cc-input@3.0.1/gold-cc-input.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
/**
@license
Copyright (c) 2016 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
*/
import"@polymer/polymer/polymer-legacy.js";import"@polymer/iron-flex-layout/iron-flex-layout.js";import"@polymer/paper-input/paper-input-container.js";import"@polymer/paper-input/paper-input-error.js";import"@polymer/iron-input/iron-input.js";import"@polymer/iron-icon/iron-icon.js";import{IronFormElementBehavior}from"@polymer/iron-form-element-behavior/iron-form-element-behavior.js";import{IronValidatableBehavior}from"@polymer/iron-validatable-behavior/iron-validatable-behavior.js";import{PaperInputBehavior}from"@polymer/paper-input/paper-input-behavior.js";import{Polymer}from"@polymer/polymer/lib/legacy/polymer-fn.js";import{html}from"@polymer/polymer/lib/utils/html-tag.js";import{validateCcInput}from"./cc-validator.js";Polymer({_template:html`
    <style>
    :host {
      display: block;
    }

    /* Use a container so that when hiding the icon, the layout doesn't jump around. */
    .icon-container {
      margin-left: 10px;
      height: 24px;
      @apply --gold-cc-input-icon-container;
    }

    iron-icon {
      --iron-icon-width: 40px;
      --iron-icon-height: 24px;
    }

    .container {
      @apply --layout-horizontal;
    }

    input {
      @apply --layout-flex;
    }

    input {
      position: relative; /* to make a stacking context */
      outline: none;
      box-shadow: none;
      padding: 0;
      width: 100%;
      max-width: 100%;
      background: transparent;
      border: none;
      color: var(--paper-input-container-input-color, var(--primary-text-color));
      -webkit-appearance: none;
      text-align: inherit;
      vertical-align: bottom;
      /* Firefox sets a min-width on the input, which can cause layout issues */
      min-width: 0;
      @apply --paper-font-subhead;
      @apply --paper-input-container-input;
    }
    input::-webkit-input-placeholder {
      color: var(--paper-input-container-color, var(--secondary-text-color));
    }
    input:-moz-placeholder {
      color: var(--paper-input-container-color, var(--secondary-text-color));
    }
    input::-moz-placeholder {
      color: var(--paper-input-container-color, var(--secondary-text-color));
    }
    input:-ms-input-placeholder {
      color: var(--paper-input-container-color, var(--secondary-text-color));
    }
    </style>

    <paper-input-container
        id="container"
        disabled$="[[disabled]]"
        no-label-float="[[noLabelFloat]]"
        always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholder)]]"
        invalid="[[invalid]]">
      <label slot="label" hidden$="[[!label]]">[[label]]</label>

      <iron-input
          id="input"
          slot="input"
          allowed-pattern="[0-9 ]"
          bind-value="{{value}}"
          invalid="{{invalid}}"
          maxlength="30">
        <input
            id="nativeInput"
            aria-labelledby$="[[_ariaLabelledBy]]"
            aria-describedby$="[[_ariaDescribedBy]]"
            invalid$="{{invalid}}"
            required$="[[required]]"
            type="tel"
            prevent-invalid-input
            autocomplete="cc-number"
            name$="[[name]]"
            disabled$="[[disabled]]"
            autofocus$="[[autofocus]]"
            inputmode$="[[inputmode]]"
            placeholder$="[[placeholder]]"
            readonly$="[[readonly]]"
            size$="[[size]]">
      </iron-input>
      <div class="icon-container" slot="suffix">
        <iron-icon id="icon"></iron-icon>
      </div>

      <template is="dom-if" if="[[errorMessage]]">
        <paper-input-error slot="add-on" id="error">
          [[errorMessage]]
        </paper-input-error>
      </template>
    </paper-input-container>
  `,is:"gold-cc-input",importMeta:import.meta,behaviors:[PaperInputBehavior,IronValidatableBehavior,IronFormElementBehavior],properties:{label:{type:String,value:"Card number"},cardType:{type:String,notify:!0},cardTypes:{type:Array,observer:"_onCardTypesChanged"},value:{type:String,observer:"_onValueChanged"}},observers:["_onFocusedChanged(focused)"],ready:function(){this.value||(this.value="")},get _focusableElement(){return this.inputElement._inputElement},listeners:{"iron-input-ready":"_onIronInputReady"},_onIronInputReady:function(){this.inputElement.bindValue&&this._handleAutoValidate()},_onCardTypesChanged:function(e,i){this.value&&this._handleAutoValidate()},_onValueChanged:function(e,i){if(null!=i){var t=this.$.input.selectionStart,a=!!e&&" "==this.value.charAt(t-1);e=e.replace(/\s+/g,"");for(var n="",o=0;o<e.length;o++)0!=o&&o%4==0&&(n+=" "),n+=e[o];this.updateValueAndPreserveCaret(n.trim()),a||" "!=this.value.charAt(t-1)||(this.$.input.selectionStart=t+1,this.$.input.selectionEnd=t+1),this._handleAutoValidate()}},validate:function(){if(!this.required&&""==this.value)return!0;var e=validateCcInput(this.value),i=e.valid&&e.length_valid;return i&&this.cardTypes&&this.cardTypes.length>0&&(i=-1!==this.cardTypes.indexOf(e.card_type.name)),this.cardType=i?e.card_type.name:"",this.$.container.invalid=!i,this.$.container.updateAddons({inputElement:this.$.input,value:this.value,invalid:!i}),i&&e.card_type.icon?(this.$.icon.src=this.resolveUrl(e.card_type.icon),this.$.icon.alt=this.cardType,this.$.icon.hidden=!1):(this.$.icon.src=null,this.$.icon.alt="",this.$.icon.hidden=!0),i},_onFocusedChanged:function(e){this._focusableElement&&(e||this._handleAutoValidate())}});
//# sourceMappingURL=/sm/1c97c175628273c52c5a270456e7a0e710fd1f3b80c610e84752394ce03962d3.map