/* global Stripe */ Application.Directives.directive('stripeForm', ['$window', function ($window) { return ({ restrict: 'A', link: ($scope, element, attributes) => { const stripe = Stripe('<%= Rails.application.secrets.stripe_publishable_key %>'); const elements = stripe.elements(); const style = { base: { color: '#32325d', fontFamily: '"Helvetica Neue", Helvetica, sans-serif', fontSmoothing: 'antialiased', fontSize: '16px', '::placeholder': { color: '#aab7c4' } }, invalid: { color: '#fa755a', iconColor: '#fa755a' } }; const card = elements.create('card', { style, hidePostalCode: true }); card.addEventListener('change', function ({ error }) { const displayError = document.getElementById('card-errors'); if (error) { displayError.textContent = error.message; } else { displayError.textContent = ''; } }); // Add an instance of the card Element into the `card-element`