forked from joshnuss/svelte-stripe
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCardNumber.svelte
More file actions
59 lines (41 loc) · 1.27 KB
/
Copy pathCardNumber.svelte
File metadata and controls
59 lines (41 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<script>
import { onMount, getContext, createEventDispatcher } from 'svelte'
import { mount } from './util'
/** @type {import('@stripe/stripe-js').StripeElementClasses} */
export let classes = {}
/** @type {import('@stripe/stripe-js').StripeElementStyle} */
export let style = {}
/** @type {string} */
export let placeholder = 'Card number'
/** @type {boolean?} */
export let disabled = false
/** @type {boolean?} */
export let showIcon = true
/** @type {'default' | 'solid'} */
export let iconStyle = 'default'
/** @type {import('@stripe/stripe-js').StripeElementBase?} */
export let element = null
/** @type {HTMLElement?} */
let wrapper
const dispatch = createEventDispatcher()
/** @type {import("./types").ElementsContext} */
const { elements } = getContext('stripe')
onMount(() => {
const options = { classes, style, placeholder, disabled, showIcon, iconStyle }
element = mount(wrapper, 'cardNumber', elements, dispatch, options)
return () => element.destroy()
})
export function blur() {
element.blur()
}
export function clear() {
element.clear()
}
export function destroy() {
element.destroy()
}
export function focus() {
element.focus()
}
</script>
<div bind:this={wrapper}></div>