@recursyve/nice-stripe-kit.v2 12.0.0-beta.2 → 13.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,130 @@
1
+ import { coerceBooleanProperty } from "@angular/cdk/coercion";
2
+ import { Component, ElementRef, HostBinding, Input, Optional, Self, ViewChild, ViewEncapsulation } from "@angular/core";
3
+ import { NgControl } from "@angular/forms";
4
+ import { MatFormFieldControl } from "@angular/material/form-field";
5
+ import { Subject } from "rxjs";
6
+ import { v4 as uuidv4 } from "uuid";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ export class NiceStripeCardElementComponent {
10
+ constructor(ngControl) {
11
+ this.ngControl = ngControl;
12
+ this._focused = false;
13
+ this._required = false;
14
+ this._disabled = false;
15
+ this.stateChanges = new Subject();
16
+ this.empty = true;
17
+ this.errorState = false;
18
+ this.complete = false;
19
+ this.describedBy = "";
20
+ this.id = uuidv4();
21
+ }
22
+ set placeholder(placeholder) {
23
+ this._placeholder = placeholder;
24
+ this.stateChanges.next();
25
+ }
26
+ get placeholder() {
27
+ return this._placeholder;
28
+ }
29
+ set focused(focused) {
30
+ this._focused = focused;
31
+ this.stateChanges.next();
32
+ }
33
+ get focused() {
34
+ return this._focused;
35
+ }
36
+ get required() {
37
+ return this._required;
38
+ }
39
+ set required(req) {
40
+ this._required = coerceBooleanProperty(req);
41
+ this.stateChanges.next();
42
+ }
43
+ get disabled() {
44
+ return this._disabled;
45
+ }
46
+ set disabled(value) {
47
+ this._disabled = coerceBooleanProperty(value);
48
+ this.stateChanges.next();
49
+ }
50
+ get shouldLabelFloat() {
51
+ return this.focused || !this.empty;
52
+ }
53
+ setDescribedByIds(ids) {
54
+ this.describedBy = ids.join(" ");
55
+ }
56
+ async ngAfterViewInit() {
57
+ if (this.elementRef) {
58
+ this.empty = !this.value;
59
+ }
60
+ }
61
+ async init(element) {
62
+ this.element = element;
63
+ this.element.mount(this.elementRef.nativeElement);
64
+ this.stateChanges.next();
65
+ this.element.update({
66
+ placeholder: this.placeholder
67
+ });
68
+ this.element.on("blur", () => {
69
+ this.focused = false;
70
+ if (this.empty && this._required) {
71
+ this.errorState = true;
72
+ }
73
+ });
74
+ this.element.on("focus", () => {
75
+ this.focused = true;
76
+ });
77
+ this.element.on("change", event => {
78
+ this.empty = event.empty;
79
+ this.errorState = !!event.error;
80
+ this.complete = event.complete;
81
+ this.stateChanges.next();
82
+ });
83
+ }
84
+ markAsTouched() {
85
+ this.errorState = !!this.empty;
86
+ this.stateChanges.next();
87
+ }
88
+ onContainerClick(event) {
89
+ }
90
+ }
91
+ NiceStripeCardElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeCardElementComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
92
+ NiceStripeCardElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: NiceStripeCardElementComponent, selector: "nice-stripe-card-element", inputs: { placeholder: "placeholder", focused: "focused", required: "required", disabled: "disabled" }, host: { properties: { "attr.aria-describedby": "this.describedBy", "id": "this.id", "class.floating": "this.shouldLabelFloat" } }, providers: [
93
+ {
94
+ provide: MatFormFieldControl,
95
+ useExisting: NiceStripeCardElementComponent
96
+ }
97
+ ], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["element"], descendants: true }], ngImport: i0, template: "<div class='stripe-element' #element></div>", isInline: true, styles: ["nice-stripe-card-element .stripe-element{height:15px}\n"], encapsulation: i0.ViewEncapsulation.None });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeCardElementComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: "nice-stripe-card-element", template: "<div class='stripe-element' #element></div>", encapsulation: ViewEncapsulation.None, providers: [
101
+ {
102
+ provide: MatFormFieldControl,
103
+ useExisting: NiceStripeCardElementComponent
104
+ }
105
+ ], styles: ["nice-stripe-card-element .stripe-element{height:15px}\n"] }]
106
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
107
+ type: Optional
108
+ }, {
109
+ type: Self
110
+ }] }]; }, propDecorators: { elementRef: [{
111
+ type: ViewChild,
112
+ args: ["element"]
113
+ }], describedBy: [{
114
+ type: HostBinding,
115
+ args: ["attr.aria-describedby"]
116
+ }], id: [{
117
+ type: HostBinding
118
+ }], placeholder: [{
119
+ type: Input
120
+ }], focused: [{
121
+ type: Input
122
+ }], required: [{
123
+ type: Input
124
+ }], disabled: [{
125
+ type: Input
126
+ }], shouldLabelFloat: [{
127
+ type: HostBinding,
128
+ args: ["class.floating"]
129
+ }] } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLWNhcmQtZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXN0cmlwZS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZWxlbWVudC9zdHJpcGUtY2FyZC1lbGVtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBY3BDLE1BQU0sT0FBTyw4QkFBOEI7SUF1RXZDLFlBQXVDLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFyRW5ELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBT25CLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNuQyxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBR2pCLE9BQUUsR0FBVyxNQUFNLEVBQUUsQ0FBQztJQW9EN0IsQ0FBQztJQWxERCxJQUNX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LENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGFBQWE7UUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFpQjtJQUN6QyxDQUFDOzsySEFqSFEsOEJBQThCOytHQUE5Qiw4QkFBOEIsOFJBUDVCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSw4QkFBOEI7U0FDOUM7S0FDSixpSUFSUyw2Q0FBNkM7MkZBVTlDLDhCQUE4QjtrQkFaMUMsU0FBUzsrQkFDSSwwQkFBMEIsWUFDMUIsNkNBQTZDLGlCQUV4QyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsZ0NBQWdDO3lCQUM5QztxQkFDSjs7MEJBeUVZLFFBQVE7OzBCQUFJLElBQUk7NENBaEVyQixVQUFVO3NCQURqQixTQUFTO3VCQUFDLFNBQVM7Z0JBV2IsV0FBVztzQkFEakIsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBSTdCLEVBQUU7c0JBRFIsV0FBVztnQkFJRCxXQUFXO3NCQURyQixLQUFLO2dCQVdLLE9BQU87c0JBRGpCLEtBQUs7Z0JBV0ssUUFBUTtzQkFEbEIsS0FBSztnQkFXSyxRQUFRO3NCQURsQixLQUFLO2dCQVdLLGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBTdHJpcGVDYXJkQ3ZjRWxlbWVudCwgU3RyaXBlQ2FyZEV4cGlyeUVsZW1lbnQsIFN0cmlwZUNhcmROdW1iZXJFbGVtZW50IH0gZnJvbSBcIkBzdHJpcGUvc3RyaXBlLWpzXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gXCJ1dWlkXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2Utc3RyaXBlLWNhcmQtZWxlbWVudFwiLFxuICAgIHRlbXBsYXRlOiBcIjxkaXYgY2xhc3M9J3N0cmlwZS1lbGVtZW50JyAjZWxlbWVudD48L2Rpdj5cIixcbiAgICBzdHlsZVVybHM6IFtcIi4vc3RyaXBlLWNhcmQtZWxlbWVudC5zdHlsZS5zY3NzXCJdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmljZVN0cmlwZUNhcmRFbGVtZW50Q29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VTdHJpcGVDYXJkRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPiB7XG4gICAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBwcml2YXRlIF9mb2N1c2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZChcImVsZW1lbnRcIilcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY/OiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIGVsZW1lbnQ/OiBTdHJpcGVDYXJkTnVtYmVyRWxlbWVudCB8IFN0cmlwZUNhcmRFeHBpcnlFbGVtZW50IHwgU3RyaXBlQ2FyZEN2Y0VsZW1lbnQ7XG4gICAgcHVibGljIHZhbHVlOiBzdHJpbmc7XG4gICAgcHVibGljIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHVibGljIGVtcHR5ID0gdHJ1ZTtcbiAgICBwdWJsaWMgZXJyb3JTdGF0ZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBjb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKFwiYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XCIpXG4gICAgcHVibGljIGRlc2NyaWJlZEJ5ID0gXCJcIjtcblxuICAgIEBIb3N0QmluZGluZygpXG4gICAgcHVibGljIGlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9mb2N1c2VkID0gZm9jdXNlZDtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWQ7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByZXF1aXJlZChyZXEpIHtcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZmxvYXRpbmdcIilcbiAgICBwdWJsaWMgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcbiAgICAgICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKFwiIFwiKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZW1wdHkgPSAhdGhpcy52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBpbml0KGVsZW1lbnQ6IFN0cmlwZUNhcmROdW1iZXJFbGVtZW50IHwgU3RyaXBlQ2FyZEV4cGlyeUVsZW1lbnQgfCBTdHJpcGVDYXJkQ3ZjRWxlbWVudCkge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLmVsZW1lbnQubW91bnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50LnVwZGF0ZSh7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5wbGFjZWhvbGRlclxuICAgICAgICB9KTtcblxuICAgICAgICAodGhpcy5lbGVtZW50IGFzIFN0cmlwZUNhcmROdW1iZXJFbGVtZW50KS5vbihcImJsdXJcIiwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5lbXB0eSAmJiB0aGlzLl9yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAodGhpcy5lbGVtZW50IGFzIFN0cmlwZUNhcmROdW1iZXJFbGVtZW50KS5vbihcImZvY3VzXCIsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICh0aGlzLmVsZW1lbnQgYXMgU3RyaXBlQ2FyZE51bWJlckVsZW1lbnQpLm9uKFwiY2hhbmdlXCIsIGV2ZW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW1wdHkgPSBldmVudC5lbXB0eTtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9ICEhZXZlbnQuZXJyb3I7XG4gICAgICAgICAgICB0aGlzLmNvbXBsZXRlID0gZXZlbnQuY29tcGxldGU7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVycm9yU3RhdGUgPSAhIXRoaXMuZW1wdHk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,139 @@
1
+ import { Component, Inject, Input, Optional, ViewChild, ViewEncapsulation } from "@angular/core";
2
+ import { TranslateService } from "@ngx-translate/core";
3
+ import { GeneratedFormGroup, ngxFormGeneratorFactory } from "@recursyve/ngx-form-generator";
4
+ import { niceAnimations } from "@recursyve/nice-ui-kit.v2";
5
+ import { StripeService } from "ngx-stripe";
6
+ import { map } from "rxjs/operators";
7
+ import { NICE_STRIPE_OPTIONS } from "../../nice-stripe-kit.constant";
8
+ import { NiceStripeCardElementComponent } from "../card-element/stripe-card-element.component";
9
+ import { StripeForm } from "./stripe-card-form.form";
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@recursyve/ngx-form-generator";
12
+ import * as i2 from "ngx-stripe";
13
+ import * as i3 from "@ngx-translate/core";
14
+ import * as i4 from "@angular/material/list";
15
+ import * as i5 from "@angular/material/form-field";
16
+ import * as i6 from "../card-element/stripe-card-element.component";
17
+ import * as i7 from "@angular/forms";
18
+ import * as i8 from "@recursyve/nice-ui-kit.v2";
19
+ import * as i9 from "@angular/material/input";
20
+ import * as i10 from "@angular/common";
21
+ import * as i11 from "@angular/flex-layout";
22
+ export class NiceStripeCardFormComponent {
23
+ constructor(options, formGroup, stripeService, translateService) {
24
+ this.options = options;
25
+ this.formGroup = formGroup;
26
+ this.stripeService = stripeService;
27
+ this.translateService = translateService;
28
+ this.showIcons = false;
29
+ }
30
+ get isValid() {
31
+ return this.cardNumberInput.complete &&
32
+ this.cardExpiryInput.complete &&
33
+ this.cardCvcInput.complete &&
34
+ this.formGroup.valid;
35
+ }
36
+ get cardToken() {
37
+ if (!this.isValid) {
38
+ return null;
39
+ }
40
+ return this.stripeService.createToken(this.cardNumberElement, {
41
+ name: this.formGroup.get("name").value
42
+ }).pipe(map(x => x?.token?.id)).toPromise();
43
+ }
44
+ async ngOnInit() {
45
+ this.stripeOptions = {
46
+ placeholder: "",
47
+ style: {
48
+ base: this.options.styling
49
+ }
50
+ };
51
+ this.elements = await this.stripeService.elements({
52
+ locale: this.translateService.currentLang,
53
+ fonts: this.options?.fonts ?? []
54
+ }).toPromise();
55
+ this.initCardNumber();
56
+ this.initCardExpiry();
57
+ this.initCardCvc();
58
+ }
59
+ initCardNumber() {
60
+ this.cardNumberElement = this.elements.create("cardNumber", {
61
+ ...this.stripeOptions,
62
+ });
63
+ this.cardNumberElement.on("change", event => {
64
+ this.cardNumberError = event.error ? event.error.message : null;
65
+ });
66
+ this.cardNumberInput.init(this.cardNumberElement);
67
+ }
68
+ initCardExpiry() {
69
+ this.cardExpiryElement = this.elements.create("cardExpiry", {
70
+ ...this.stripeOptions,
71
+ });
72
+ this.cardExpiryElement.on("change", event => {
73
+ this.cardExpiryError = event.error ? event.error.message : null;
74
+ });
75
+ this.cardExpiryInput.init(this.cardExpiryElement);
76
+ }
77
+ initCardCvc() {
78
+ this.cardCvcElement = this.elements.create("cardCvc", {
79
+ ...this.stripeOptions,
80
+ });
81
+ this.cardCvcElement.on("change", event => {
82
+ this.cardCvcError = event.error ? event.error.message : null;
83
+ });
84
+ this.cardCvcInput.init(this.cardCvcElement);
85
+ }
86
+ ngOnDestroy() {
87
+ this.cardNumberElement.unmount();
88
+ this.cardExpiryElement.unmount();
89
+ this.cardCvcElement.unmount();
90
+ }
91
+ patchName(name) {
92
+ this.formGroup.get("name").patchValue(name);
93
+ }
94
+ markAllAsTouched() {
95
+ this.formGroup.markAllAsTouched();
96
+ this.cardCvcInput.markAsTouched();
97
+ this.cardNumberInput.markAsTouched();
98
+ this.cardExpiryInput.markAsTouched();
99
+ }
100
+ getYear() {
101
+ const date = new Date();
102
+ return +date.getFullYear().toString().substr(-2);
103
+ }
104
+ }
105
+ NiceStripeCardFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeCardFormComponent, deps: [{ token: NICE_STRIPE_OPTIONS, optional: true }, { token: i1.GeneratedFormGroup }, { token: i2.StripeService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
106
+ NiceStripeCardFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: NiceStripeCardFormComponent, selector: "nice-stripe-card-form", inputs: { appearance: "appearance", showIcons: "showIcons" }, providers: [
107
+ {
108
+ provide: GeneratedFormGroup,
109
+ useFactory: ngxFormGeneratorFactory(StripeForm)
110
+ }
111
+ ], viewQueries: [{ propertyName: "cardNumberInput", first: true, predicate: ["cardNumber"], descendants: true }, { propertyName: "cardExpiryInput", first: true, predicate: ["cardExpiry"], descendants: true }, { propertyName: "cardCvcInput", first: true, predicate: ["cardCvc"], descendants: true }], ngImport: i0, template: "<mat-list [formGroup]=\"formGroup\">\n <mat-list-item>\n <mat-form-field [appearance]=\"appearance\" niceControlStatus floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.name_on_card.label\" | translate}}</mat-label>\n <input [placeholder]=\"'nice_ui_kit.stripe.name_on_card.placeholder' | translate\" matInput type=\"text\"\n formControlName=\"name\" required/>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-user-circle text-accent form-icons\"></i>\n </div>\n </mat-form-field>\n </mat-list-item>\n <mat-list-item>\n <div fxLayout=\"column\" class=\"w-full\">\n <div fxLayout=\"row\">\n <mat-form-field fxFlex=\"100\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.card_number.label\" | translate}}</mat-label>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-credit-card text-accent form-icons\"></i>\n </div>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.card_number.placeholder' | translate\"\n #cardNumber required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardNumberError\">{{ cardNumberError }}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutGap=\"15px\">\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.expiration.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.expiration.placeholder' | translate\"\n #cardExpiry required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardExpiryError\">{{ cardExpiryError }}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.cvc.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.cvc.placeholder' | translate\" #cardCvc\n required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardCvcError\">{{ cardCvcError }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n </mat-list-item>\n</mat-list>\n", styles: ["nice-stripe-card-form mat-list-item{height:auto!important}nice-stripe-card-form .form-icons{font-size:24px!important;width:24px!important;height:24px!important;line-height:24px!important}\n"], components: [{ type: i4.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.NiceStripeCardElementComponent, selector: "nice-stripe-card-element", inputs: ["placeholder", "focused", "required", "disabled"] }], directives: [{ type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NiceControlStatusDirective, selector: "[niceControlStatus]" }, { type: i5.MatLabel, selector: "mat-label" }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatPrefix, selector: "[matPrefix]" }, { type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }], pipes: { "translate": i3.TranslatePipe }, animations: niceAnimations, encapsulation: i0.ViewEncapsulation.None });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeCardFormComponent, decorators: [{
113
+ type: Component,
114
+ args: [{ selector: "nice-stripe-card-form", encapsulation: ViewEncapsulation.None, providers: [
115
+ {
116
+ provide: GeneratedFormGroup,
117
+ useFactory: ngxFormGeneratorFactory(StripeForm)
118
+ }
119
+ ], animations: niceAnimations, template: "<mat-list [formGroup]=\"formGroup\">\n <mat-list-item>\n <mat-form-field [appearance]=\"appearance\" niceControlStatus floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.name_on_card.label\" | translate}}</mat-label>\n <input [placeholder]=\"'nice_ui_kit.stripe.name_on_card.placeholder' | translate\" matInput type=\"text\"\n formControlName=\"name\" required/>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-user-circle text-accent form-icons\"></i>\n </div>\n </mat-form-field>\n </mat-list-item>\n <mat-list-item>\n <div fxLayout=\"column\" class=\"w-full\">\n <div fxLayout=\"row\">\n <mat-form-field fxFlex=\"100\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.card_number.label\" | translate}}</mat-label>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-credit-card text-accent form-icons\"></i>\n </div>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.card_number.placeholder' | translate\"\n #cardNumber required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardNumberError\">{{ cardNumberError }}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutGap=\"15px\">\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.expiration.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.expiration.placeholder' | translate\"\n #cardExpiry required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardExpiryError\">{{ cardExpiryError }}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.cvc.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.cvc.placeholder' | translate\" #cardCvc\n required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardCvcError\">{{ cardCvcError }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n </mat-list-item>\n</mat-list>\n", styles: ["nice-stripe-card-form mat-list-item{height:auto!important}nice-stripe-card-form .form-icons{font-size:24px!important;width:24px!important;height:24px!important;line-height:24px!important}\n"] }]
120
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
121
+ type: Optional
122
+ }, {
123
+ type: Inject,
124
+ args: [NICE_STRIPE_OPTIONS]
125
+ }] }, { type: i1.GeneratedFormGroup }, { type: i2.StripeService }, { type: i3.TranslateService }]; }, propDecorators: { appearance: [{
126
+ type: Input
127
+ }], showIcons: [{
128
+ type: Input
129
+ }], cardNumberInput: [{
130
+ type: ViewChild,
131
+ args: ["cardNumber"]
132
+ }], cardExpiryInput: [{
133
+ type: ViewChild,
134
+ args: ["cardExpiry"]
135
+ }], cardCvcInput: [{
136
+ type: ViewChild,
137
+ args: ["cardCvc"]
138
+ }] } });
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLWNhcmQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXN0cmlwZS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZm9ybS9zdHJpcGUtY2FyZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2Utc3RyaXBlLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1mb3JtL3N0cmlwZS1jYXJkLWZvcm0udGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUTNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWVyRCxNQUFNLE9BQU8sMkJBQTJCO0lBOENwQyxZQUNvRCxPQUE2QixFQUN0RSxTQUF5QyxFQUN4QyxhQUE0QixFQUM1QixnQkFBa0M7UUFITSxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUN0RSxjQUFT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QUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7d0hBMUhRLDJCQUEyQixrQkErQ1osbUJBQW1COzRHQS9DbEMsMkJBQTJCLDhHQVJ6QjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixVQUFVLEVBQUUsdUJBQXVCLENBQUMsVUFBVSxDQUFDO1NBQ2xEO0tBQ0osbVVDN0JMLDZ0RkF5Q0EsazlIRFhnQixjQUFjOzJGQUVqQiwyQkFBMkI7a0JBYnZDLFNBQVM7K0JBQ0ksdUJBQXVCLGlCQUdsQixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFVBQVUsRUFBRSx1QkFBdUIsQ0FBQyxVQUFVLENBQUM7eUJBQ2xEO3FCQUNKLGNBQ1csY0FBYzs7MEJBaURyQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjt3SUE3Q3BDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLFNBQVM7dUJBQUMsWUFBWTtnQkFJaEIsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxZQUFZO2dCQUloQixZQUFZO3NCQURsQixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgR2VuZXJhdGVkRm9ybUdyb3VwLCBuZ3hGb3JtR2VuZXJhdG9yRmFjdG9yeSB9IGZyb20gXCJAcmVjdXJzeXZlL25neC1mb3JtLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgbmljZUFuaW1hdGlvbnMgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uaWNlLXVpLWtpdC52MlwiO1xuaW1wb3J0IHtcbiAgICBTdHJpcGVDYXJkQ3ZjRWxlbWVudCxcbiAgICBTdHJpcGVDYXJkRXhwaXJ5RWxlbWVudCxcbiAgICBTdHJpcGVDYXJkTnVtYmVyRWxlbWVudCxcbiAgICBTdHJpcGVDYXJkTnVtYmVyRWxlbWVudE9wdGlvbnMsXG4gICAgU3RyaXBlRWxlbWVudHNcbn0gZnJvbSBcIkBzdHJpcGUvc3RyaXBlLWpzXCI7XG5pbXBvcnQgeyBTdHJpcGVTZXJ2aWNlIH0gZnJvbSBcIm5neC1zdHJpcGVcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTklDRV9TVFJJUEVfT1BUSU9OUyB9IGZyb20gXCIuLi8uLi9uaWNlLXN0cmlwZS1raXQuY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VTdHJpcGVLaXRPcHRpb25zIH0gZnJvbSBcIi4uLy4uL25pY2Utc3RyaXBlLWtpdC5vcHRpb25zXCI7XG5pbXBvcnQgeyBOaWNlU3RyaXBlQ2FyZEVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi4vY2FyZC1lbGVtZW50L3N0cmlwZS1jYXJkLWVsZW1lbnQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdHJpcGVGb3JtIH0gZnJvbSBcIi4vc3RyaXBlLWNhcmQtZm9ybS5mb3JtXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2Utc3RyaXBlLWNhcmQtZm9ybVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcInN0cmlwZS1jYXJkLWZvcm0udGVtcGxhdGUuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wic3RyaXBlLWNhcmQtZm9ybS5zdHlsZS5zY3NzXCJdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEdlbmVyYXRlZEZvcm1Hcm91cCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IG5neEZvcm1HZW5lcmF0b3JGYWN0b3J5KFN0cmlwZUZvcm0pXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGFuaW1hdGlvbnM6IG5pY2VBbmltYXRpb25zXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VTdHJpcGVDYXJkRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0ljb25zID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKFwiY2FyZE51bWJlclwiKVxuICAgIHB1YmxpYyBjYXJkTnVtYmVySW5wdXQ6IE5pY2VTdHJpcGVDYXJkRWxlbWVudENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoXCJjYXJkRXhwaXJ5XCIpXG4gICAgcHVibGljIGNhcmRFeHBpcnlJbnB1dDogTmljZVN0cmlwZUNhcmRFbGVtZW50Q29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChcImNhcmRDdmNcIilcbiAgICBwdWJsaWMgY2FyZEN2Y0lucHV0OiBOaWNlU3RyaXBlQ2FyZEVsZW1lbnRDb21wb25lbnQ7XG5cbiAgICBwdWJsaWMgY2FyZE51bWJlckVsZW1lbnQ6IFN0cmlwZUNhcmROdW1iZXJFbGVtZW50O1xuICAgIHB1YmxpYyBjYXJkTnVtYmVyRXJyb3I6IHN0cmluZztcbiAgICBwdWJsaWMgY2FyZEV4cGlyeUVsZW1lbnQ6IFN0cmlwZUNhcmRFeHBpcnlFbGVtZW50O1xuICAgIHB1YmxpYyBjYXJkRXhwaXJ5RXJyb3I6IHN0cmluZztcbiAgICBwdWJsaWMgY2FyZEN2Y0VsZW1lbnQ6IFN0cmlwZUNhcmRDdmNFbGVtZW50O1xuICAgIHB1YmxpYyBjYXJkQ3ZjRXJyb3I6IHN0cmluZztcblxuICAgIHB1YmxpYyBzdHJpcGVPcHRpb25zOiBTdHJpcGVDYXJkTnVtYmVyRWxlbWVudE9wdGlvbnM7XG5cbiAgICBwcml2YXRlIGVsZW1lbnRzOiBTdHJpcGVFbGVtZW50cztcblxuICAgIHB1YmxpYyBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FyZE51bWJlcklucHV0LmNvbXBsZXRlICYmXG4gICAgICAgICAgICB0aGlzLmNhcmRFeHBpcnlJbnB1dC5jb21wbGV0ZSAmJlxuICAgICAgICAgICAgdGhpcy5jYXJkQ3ZjSW5wdXQuY29tcGxldGUgJiZcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbGlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2FyZFRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnN0cmlwZVNlcnZpY2UuY3JlYXRlVG9rZW4odGhpcy5jYXJkTnVtYmVyRWxlbWVudCwge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5mb3JtR3JvdXAuZ2V0KFwibmFtZVwiKS52YWx1ZVxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHggPT4geD8udG9rZW4/LmlkKVxuICAgICAgICApLnRvUHJvbWlzZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5JQ0VfU1RSSVBFX09QVElPTlMpIHB1YmxpYyBvcHRpb25zOiBOaWNlU3RyaXBlS2l0T3B0aW9ucyxcbiAgICAgICAgcHVibGljIGZvcm1Hcm91cDogR2VuZXJhdGVkRm9ybUdyb3VwPFN0cmlwZUZvcm0+LFxuICAgICAgICBwcml2YXRlIHN0cmlwZVNlcnZpY2U6IFN0cmlwZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zdHJpcGVPcHRpb25zID0ge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiXCIsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgIGJhc2U6IHRoaXMub3B0aW9ucy5zdHlsaW5nXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IGF3YWl0IHRoaXMuc3RyaXBlU2VydmljZS5lbGVtZW50cyh7XG4gICAgICAgICAgICBsb2NhbGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyBhcyBhbnksXG4gICAgICAgICAgICBmb250czogdGhpcy5vcHRpb25zPy5mb250cyA/PyBbXVxuICAgICAgICB9KS50b1Byb21pc2UoKTtcblxuICAgICAgICB0aGlzLmluaXRDYXJkTnVtYmVyKCk7XG4gICAgICAgIHRoaXMuaW5pdENhcmRFeHBpcnkoKTtcbiAgICAgICAgdGhpcy5pbml0Q2FyZEN2YygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0Q2FyZE51bWJlcigpIHtcbiAgICAgICAgdGhpcy5jYXJkTnVtYmVyRWxlbWVudCA9IHRoaXMuZWxlbWVudHMuY3JlYXRlKFwiY2FyZE51bWJlclwiLCB7XG4gICAgICAgICAgICAuLi50aGlzLnN0cmlwZU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhcmROdW1iZXJFbGVtZW50Lm9uKFwiY2hhbmdlXCIsIGV2ZW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FyZE51bWJlckVycm9yID0gZXZlbnQuZXJyb3IgPyBldmVudC5lcnJvci5tZXNzYWdlIDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FyZE51bWJlcklucHV0LmluaXQodGhpcy5jYXJkTnVtYmVyRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDYXJkRXhwaXJ5KCkge1xuICAgICAgICB0aGlzLmNhcmRFeHBpcnlFbGVtZW50ID0gdGhpcy5lbGVtZW50cy5jcmVhdGUoXCJjYXJkRXhwaXJ5XCIsIHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RyaXBlT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FyZEV4cGlyeUVsZW1lbnQub24oXCJjaGFuZ2VcIiwgZXZlbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYXJkRXhwaXJ5RXJyb3IgPSBldmVudC5lcnJvciA/IGV2ZW50LmVycm9yLm1lc3NhZ2UgOiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYXJkRXhwaXJ5SW5wdXQuaW5pdCh0aGlzLmNhcmRFeHBpcnlFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdENhcmRDdmMoKSB7XG4gICAgICAgIHRoaXMuY2FyZEN2Y0VsZW1lbnQgPSB0aGlzLmVsZW1lbnRzLmNyZWF0ZShcImNhcmRDdmNcIiwge1xuICAgICAgICAgICAgLi4udGhpcy5zdHJpcGVPcHRpb25zLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYXJkQ3ZjRWxlbWVudC5vbihcImNoYW5nZVwiLCBldmVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhcmRDdmNFcnJvciA9IGV2ZW50LmVycm9yID8gZXZlbnQuZXJyb3IubWVzc2FnZSA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhcmRDdmNJbnB1dC5pbml0KHRoaXMuY2FyZEN2Y0VsZW1lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYXJkTnVtYmVyRWxlbWVudC51bm1vdW50KCk7XG4gICAgICAgIHRoaXMuY2FyZEV4cGlyeUVsZW1lbnQudW5tb3VudCgpO1xuICAgICAgICB0aGlzLmNhcmRDdmNFbGVtZW50LnVubW91bnQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGF0Y2hOYW1lKG5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJuYW1lXCIpLnBhdGNoVmFsdWUobmFtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG1hcmtBbGxBc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5jYXJkQ3ZjSW5wdXQubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmNhcmROdW1iZXJJbnB1dC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2FyZEV4cGlyeUlucHV0Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFllYXIoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHJldHVybiArZGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkuc3Vic3RyKC0yKTtcbiAgICB9XG59XG4iLCI8bWF0LWxpc3QgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIiBuaWNlQ29udHJvbFN0YXR1cyBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7IFwibmljZV91aV9raXQuc3RyaXBlLm5hbWVfb25fY2FyZC5sYWJlbFwiICB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cIiduaWNlX3VpX2tpdC5zdHJpcGUubmFtZV9vbl9jYXJkLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiIG1hdElucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcmVxdWlyZWQvPlxuICAgICAgICAgICAgPGRpdiBtYXRQcmVmaXggY2xhc3M9XCJwci0yXCIgKm5nSWY9XCJzaG93SWNvbnNcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhZCBmYS11c2VyLWNpcmNsZSB0ZXh0LWFjY2VudCBmb3JtLWljb25zXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwXCIgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiIGZsb2F0TGFiZWw9XCJhbHdheXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57eyBcIm5pY2VfdWlfa2l0LnN0cmlwZS5jYXJkX251bWJlci5sYWJlbFwiICB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbWF0UHJlZml4IGNsYXNzPVwicHItMlwiICpuZ0lmPVwic2hvd0ljb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhZCBmYS1jcmVkaXQtY2FyZCB0ZXh0LWFjY2VudCBmb3JtLWljb25zXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG5pY2Utc3RyaXBlLWNhcmQtZWxlbWVudCBbcGxhY2Vob2xkZXJdPVwiJ25pY2VfdWlfa2l0LnN0cmlwZS5jYXJkX251bWJlci5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNjYXJkTnVtYmVyIHJlcXVpcmVkPjwvbmljZS1zdHJpcGUtY2FyZC1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yIFtAc2xpZGVJbkJvdHRvbV0gKm5nSWY9XCJjYXJkTnVtYmVyRXJyb3JcIj57eyBjYXJkTnVtYmVyRXJyb3IgfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxNXB4XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjUwXCIgZnhGbGV4Lmx0LW1kPVwiNDhcIiBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgZmxvYXRMYWJlbD1cImFsd2F5c1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7IFwibmljZV91aV9raXQuc3RyaXBlLmV4cGlyYXRpb24ubGFiZWxcIiAgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8bmljZS1zdHJpcGUtY2FyZC1lbGVtZW50IFtwbGFjZWhvbGRlcl09XCInbmljZV91aV9raXQuc3RyaXBlLmV4cGlyYXRpb24ucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2FyZEV4cGlyeSByZXF1aXJlZD48L25pY2Utc3RyaXBlLWNhcmQtZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbQHNsaWRlSW5Cb3R0b21dICpuZ0lmPVwiY2FyZEV4cGlyeUVycm9yXCI+e3sgY2FyZEV4cGlyeUVycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiNTBcIiBmeEZsZXgubHQtbWQ9XCI0OFwiIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgXCJuaWNlX3VpX2tpdC5zdHJpcGUuY3ZjLmxhYmVsXCIgIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPG5pY2Utc3RyaXBlLWNhcmQtZWxlbWVudCBbcGxhY2Vob2xkZXJdPVwiJ25pY2VfdWlfa2l0LnN0cmlwZS5jdmMucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCIgI2NhcmRDdmNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD48L25pY2Utc3RyaXBlLWNhcmQtZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbQHNsaWRlSW5Cb3R0b21dICpuZ0lmPVwiY2FyZEN2Y0Vycm9yXCI+e3sgY2FyZEN2Y0Vycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG48L21hdC1saXN0PlxuIl19
@@ -26,8 +26,8 @@ export class NiceStripeModule {
26
26
  };
27
27
  }
28
28
  }
29
- NiceStripeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
30
- NiceStripeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeModule, declarations: [NiceStripeCardElementComponent,
29
+ NiceStripeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
30
+ NiceStripeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, declarations: [NiceStripeCardElementComponent,
31
31
  NiceStripeCardFormComponent], imports: [FlexModule,
32
32
  NgxStripeModule,
33
33
  ReactiveFormsModule,
@@ -39,7 +39,7 @@ NiceStripeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
39
39
  MatButtonModule,
40
40
  CommonModule,
41
41
  ExtendedModule], exports: [NiceStripeCardFormComponent] });
42
- NiceStripeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeModule, imports: [[
42
+ NiceStripeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, imports: [[
43
43
  FlexModule,
44
44
  NgxStripeModule,
45
45
  ReactiveFormsModule,
@@ -52,7 +52,7 @@ NiceStripeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
52
52
  CommonModule,
53
53
  ExtendedModule
54
54
  ]] });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeModule, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, decorators: [{
56
56
  type: NgModule,
57
57
  args: [{
58
58
  imports: [
@@ -113,32 +113,28 @@ class NiceStripeCardElementComponent {
113
113
  onContainerClick(event) {
114
114
  }
115
115
  }
116
- NiceStripeCardElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeCardElementComponent, deps: [{ token: i7.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
117
- NiceStripeCardElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.0", type: NiceStripeCardElementComponent, selector: "nice-stripe-card-element", inputs: { placeholder: "placeholder", focused: "focused", required: "required", disabled: "disabled" }, host: { properties: { "attr.aria-describedby": "this.describedBy", "id": "this.id", "class.floating": "this.shouldLabelFloat" } }, providers: [
116
+ NiceStripeCardElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeCardElementComponent, deps: [{ token: i7.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
117
+ NiceStripeCardElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: NiceStripeCardElementComponent, selector: "nice-stripe-card-element", inputs: { placeholder: "placeholder", focused: "focused", required: "required", disabled: "disabled" }, host: { properties: { "attr.aria-describedby": "this.describedBy", "id": "this.id", "class.floating": "this.shouldLabelFloat" } }, providers: [
118
118
  {
119
119
  provide: MatFormFieldControl,
120
120
  useExisting: NiceStripeCardElementComponent
121
121
  }
122
- ], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["element"], descendants: true }], ngImport: i0, template: "<div class='stripe-element' #element></div>", isInline: true, styles: ["nice-stripe-card-element .stripe-element{height:15px}"], encapsulation: i0.ViewEncapsulation.None });
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeCardElementComponent, decorators: [{
122
+ ], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["element"], descendants: true }], ngImport: i0, template: "<div class='stripe-element' #element></div>", isInline: true, styles: ["nice-stripe-card-element .stripe-element{height:15px}\n"], encapsulation: i0.ViewEncapsulation.None });
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeCardElementComponent, decorators: [{
124
124
  type: Component,
125
- args: [{
126
- selector: "nice-stripe-card-element",
127
- template: "<div class='stripe-element' #element></div>",
128
- styleUrls: ["./stripe-card-element.style.scss"],
129
- encapsulation: ViewEncapsulation.None,
130
- providers: [
125
+ args: [{ selector: "nice-stripe-card-element", template: "<div class='stripe-element' #element></div>", encapsulation: ViewEncapsulation.None, providers: [
131
126
  {
132
127
  provide: MatFormFieldControl,
133
128
  useExisting: NiceStripeCardElementComponent
134
129
  }
135
- ]
136
- }]
137
- }], ctorParameters: function () { return [{ type: i7.NgControl, decorators: [{
138
- type: Optional
139
- }, {
140
- type: Self
141
- }] }]; }, propDecorators: { elementRef: [{
130
+ ], styles: ["nice-stripe-card-element .stripe-element{height:15px}\n"] }]
131
+ }], ctorParameters: function () {
132
+ return [{ type: i7.NgControl, decorators: [{
133
+ type: Optional
134
+ }, {
135
+ type: Self
136
+ }] }];
137
+ }, propDecorators: { elementRef: [{
142
138
  type: ViewChild,
143
139
  args: ["element"]
144
140
  }], describedBy: [{
@@ -249,34 +245,29 @@ class NiceStripeCardFormComponent {
249
245
  return +date.getFullYear().toString().substr(-2);
250
246
  }
251
247
  }
252
- NiceStripeCardFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeCardFormComponent, deps: [{ token: NICE_STRIPE_OPTIONS, optional: true }, { token: i1.GeneratedFormGroup }, { token: i2.StripeService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
253
- NiceStripeCardFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.0", type: NiceStripeCardFormComponent, selector: "nice-stripe-card-form", inputs: { appearance: "appearance", showIcons: "showIcons" }, providers: [
248
+ NiceStripeCardFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeCardFormComponent, deps: [{ token: NICE_STRIPE_OPTIONS, optional: true }, { token: i1.GeneratedFormGroup }, { token: i2.StripeService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
249
+ NiceStripeCardFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: NiceStripeCardFormComponent, selector: "nice-stripe-card-form", inputs: { appearance: "appearance", showIcons: "showIcons" }, providers: [
254
250
  {
255
251
  provide: GeneratedFormGroup,
256
252
  useFactory: ngxFormGeneratorFactory(StripeForm)
257
253
  }
258
- ], viewQueries: [{ propertyName: "cardNumberInput", first: true, predicate: ["cardNumber"], descendants: true }, { propertyName: "cardExpiryInput", first: true, predicate: ["cardExpiry"], descendants: true }, { propertyName: "cardCvcInput", first: true, predicate: ["cardCvc"], descendants: true }], ngImport: i0, template: "<mat-list [formGroup]=\"formGroup\">\n <mat-list-item>\n <mat-form-field [appearance]=\"appearance\" niceControlStatus floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.name_on_card.label\" | translate}}</mat-label>\n <input [placeholder]=\"'nice_ui_kit.stripe.name_on_card.placeholder' | translate\" matInput type=\"text\"\n formControlName=\"name\" required/>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-user-circle text-accent form-icons\"></i>\n </div>\n </mat-form-field>\n </mat-list-item>\n <mat-list-item>\n <div fxLayout=\"column\" class=\"w-full\">\n <div fxLayout=\"row\">\n <mat-form-field fxFlex=\"100\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.card_number.label\" | translate}}</mat-label>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-credit-card text-accent form-icons\"></i>\n </div>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.card_number.placeholder' | translate\"\n #cardNumber required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardNumberError\">{{ cardNumberError }}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutGap=\"15px\">\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.expiration.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.expiration.placeholder' | translate\"\n #cardExpiry required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardExpiryError\">{{ cardExpiryError }}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.cvc.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.cvc.placeholder' | translate\" #cardCvc\n required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardCvcError\">{{ cardCvcError }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n </mat-list-item>\n</mat-list>\n", styles: ["nice-stripe-card-form mat-list-item{height:auto!important}nice-stripe-card-form .form-icons{font-size:24px!important;width:24px!important;height:24px!important;line-height:24px!important}"], components: [{ type: i4.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: NiceStripeCardElementComponent, selector: "nice-stripe-card-element", inputs: ["placeholder", "focused", "required", "disabled"] }], directives: [{ type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NiceControlStatusDirective, selector: "[niceControlStatus]" }, { type: i5.MatLabel, selector: "mat-label" }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatPrefix, selector: "[matPrefix]" }, { type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }], pipes: { "translate": i3.TranslatePipe }, animations: niceAnimations, encapsulation: i0.ViewEncapsulation.None });
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeCardFormComponent, decorators: [{
254
+ ], viewQueries: [{ propertyName: "cardNumberInput", first: true, predicate: ["cardNumber"], descendants: true }, { propertyName: "cardExpiryInput", first: true, predicate: ["cardExpiry"], descendants: true }, { propertyName: "cardCvcInput", first: true, predicate: ["cardCvc"], descendants: true }], ngImport: i0, template: "<mat-list [formGroup]=\"formGroup\">\n <mat-list-item>\n <mat-form-field [appearance]=\"appearance\" niceControlStatus floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.name_on_card.label\" | translate}}</mat-label>\n <input [placeholder]=\"'nice_ui_kit.stripe.name_on_card.placeholder' | translate\" matInput type=\"text\"\n formControlName=\"name\" required/>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-user-circle text-accent form-icons\"></i>\n </div>\n </mat-form-field>\n </mat-list-item>\n <mat-list-item>\n <div fxLayout=\"column\" class=\"w-full\">\n <div fxLayout=\"row\">\n <mat-form-field fxFlex=\"100\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.card_number.label\" | translate}}</mat-label>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-credit-card text-accent form-icons\"></i>\n </div>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.card_number.placeholder' | translate\"\n #cardNumber required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardNumberError\">{{ cardNumberError }}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutGap=\"15px\">\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.expiration.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.expiration.placeholder' | translate\"\n #cardExpiry required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardExpiryError\">{{ cardExpiryError }}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.cvc.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.cvc.placeholder' | translate\" #cardCvc\n required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardCvcError\">{{ cardCvcError }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n </mat-list-item>\n</mat-list>\n", styles: ["nice-stripe-card-form mat-list-item{height:auto!important}nice-stripe-card-form .form-icons{font-size:24px!important;width:24px!important;height:24px!important;line-height:24px!important}\n"], components: [{ type: i4.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: NiceStripeCardElementComponent, selector: "nice-stripe-card-element", inputs: ["placeholder", "focused", "required", "disabled"] }], directives: [{ type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NiceControlStatusDirective, selector: "[niceControlStatus]" }, { type: i5.MatLabel, selector: "mat-label" }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatPrefix, selector: "[matPrefix]" }, { type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }], pipes: { "translate": i3.TranslatePipe }, animations: niceAnimations, encapsulation: i0.ViewEncapsulation.None });
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeCardFormComponent, decorators: [{
260
256
  type: Component,
261
- args: [{
262
- selector: "nice-stripe-card-form",
263
- templateUrl: "stripe-card-form.template.html",
264
- styleUrls: ["stripe-card-form.style.scss"],
265
- encapsulation: ViewEncapsulation.None,
266
- providers: [
257
+ args: [{ selector: "nice-stripe-card-form", encapsulation: ViewEncapsulation.None, providers: [
267
258
  {
268
259
  provide: GeneratedFormGroup,
269
260
  useFactory: ngxFormGeneratorFactory(StripeForm)
270
261
  }
271
- ],
272
- animations: niceAnimations
273
- }]
274
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
275
- type: Optional
276
- }, {
277
- type: Inject,
278
- args: [NICE_STRIPE_OPTIONS]
279
- }] }, { type: i1.GeneratedFormGroup }, { type: i2.StripeService }, { type: i3.TranslateService }]; }, propDecorators: { appearance: [{
262
+ ], animations: niceAnimations, template: "<mat-list [formGroup]=\"formGroup\">\n <mat-list-item>\n <mat-form-field [appearance]=\"appearance\" niceControlStatus floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.name_on_card.label\" | translate}}</mat-label>\n <input [placeholder]=\"'nice_ui_kit.stripe.name_on_card.placeholder' | translate\" matInput type=\"text\"\n formControlName=\"name\" required/>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-user-circle text-accent form-icons\"></i>\n </div>\n </mat-form-field>\n </mat-list-item>\n <mat-list-item>\n <div fxLayout=\"column\" class=\"w-full\">\n <div fxLayout=\"row\">\n <mat-form-field fxFlex=\"100\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.card_number.label\" | translate}}</mat-label>\n <div matPrefix class=\"pr-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-credit-card text-accent form-icons\"></i>\n </div>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.card_number.placeholder' | translate\"\n #cardNumber required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardNumberError\">{{ cardNumberError }}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row\" fxLayoutGap=\"15px\">\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.expiration.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.expiration.placeholder' | translate\"\n #cardExpiry required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardExpiryError\">{{ cardExpiryError }}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"50\" fxFlex.lt-md=\"48\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.cvc.label\" | translate}}</mat-label>\n <nice-stripe-card-element [placeholder]=\"'nice_ui_kit.stripe.cvc.placeholder' | translate\" #cardCvc\n required></nice-stripe-card-element>\n <mat-error [@slideInBottom] *ngIf=\"cardCvcError\">{{ cardCvcError }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n </mat-list-item>\n</mat-list>\n", styles: ["nice-stripe-card-form mat-list-item{height:auto!important}nice-stripe-card-form .form-icons{font-size:24px!important;width:24px!important;height:24px!important;line-height:24px!important}\n"] }]
263
+ }], ctorParameters: function () {
264
+ return [{ type: undefined, decorators: [{
265
+ type: Optional
266
+ }, {
267
+ type: Inject,
268
+ args: [NICE_STRIPE_OPTIONS]
269
+ }] }, { type: i1.GeneratedFormGroup }, { type: i2.StripeService }, { type: i3.TranslateService }];
270
+ }, propDecorators: { appearance: [{
280
271
  type: Input
281
272
  }], showIcons: [{
282
273
  type: Input
@@ -304,8 +295,8 @@ class NiceStripeModule {
304
295
  };
305
296
  }
306
297
  }
307
- NiceStripeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
308
- NiceStripeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeModule, declarations: [NiceStripeCardElementComponent,
298
+ NiceStripeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
299
+ NiceStripeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, declarations: [NiceStripeCardElementComponent,
309
300
  NiceStripeCardFormComponent], imports: [FlexModule,
310
301
  NgxStripeModule,
311
302
  ReactiveFormsModule,
@@ -317,7 +308,7 @@ NiceStripeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
317
308
  MatButtonModule,
318
309
  CommonModule,
319
310
  ExtendedModule], exports: [NiceStripeCardFormComponent] });
320
- NiceStripeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeModule, imports: [[
311
+ NiceStripeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, imports: [[
321
312
  FlexModule,
322
313
  NgxStripeModule,
323
314
  ReactiveFormsModule,
@@ -330,7 +321,7 @@ NiceStripeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
330
321
  CommonModule,
331
322
  ExtendedModule
332
323
  ]] });
333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: NiceStripeModule, decorators: [{
324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, decorators: [{
334
325
  type: NgModule,
335
326
  args: [{
336
327
  imports: [
@@ -365,4 +356,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImpor
365
356
  */
366
357
 
367
358
  export { NiceStripeCardElementComponent, NiceStripeCardFormComponent, NiceStripeModule };
368
- //# sourceMappingURL=recursyve-nice-stripe-kit.v2.js.map
359
+ //# sourceMappingURL=recursyve-nice-stripe-kit.v2.mjs.map