@recursyve/nice-stripe-kit.v2 12.0.0-beta.0 → 13.0.0-beta.4

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.
Files changed (20) hide show
  1. package/esm2020/lib/components/card-element/stripe-card-element.component.mjs +130 -0
  2. package/esm2020/lib/components/card-form/stripe-card-form.component.mjs +138 -0
  3. package/{esm2015/lib/components/card-form/stripe-card-form.form.js → esm2020/lib/components/card-form/stripe-card-form.form.mjs} +0 -0
  4. package/{esm2015/lib/nice-stripe-kit.constant.js → esm2020/lib/nice-stripe-kit.constant.mjs} +0 -0
  5. package/esm2020/lib/nice-stripe-kit.module.mjs +73 -0
  6. package/{esm2015/lib/nice-stripe-kit.options.js → esm2020/lib/nice-stripe-kit.options.mjs} +0 -0
  7. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  8. package/{esm2015/recursyve-nice-stripe-kit.v2.js → esm2020/recursyve-nice-stripe-kit.v2.mjs} +0 -0
  9. package/fesm2015/{recursyve-nice-stripe-kit.v2.js → recursyve-nice-stripe-kit.v2.mjs} +36 -53
  10. package/fesm2015/recursyve-nice-stripe-kit.v2.mjs.map +1 -0
  11. package/fesm2020/recursyve-nice-stripe-kit.v2.mjs +346 -0
  12. package/fesm2020/recursyve-nice-stripe-kit.v2.mjs.map +1 -0
  13. package/lib/nice-stripe-kit.module.d.ts +10 -11
  14. package/package.json +25 -12
  15. package/bundles/recursyve-nice-stripe-kit.v2.umd.js +0 -755
  16. package/bundles/recursyve-nice-stripe-kit.v2.umd.js.map +0 -1
  17. package/esm2015/lib/components/card-element/stripe-card-element.component.js +0 -141
  18. package/esm2015/lib/components/card-form/stripe-card-form.component.js +0 -144
  19. package/esm2015/lib/nice-stripe-kit.module.js +0 -80
  20. package/fesm2015/recursyve-nice-stripe-kit.v2.js.map +0 -1
@@ -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,138 @@
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
+ export class NiceStripeCardFormComponent {
22
+ constructor(options, formGroup, stripeService, translateService) {
23
+ this.options = options;
24
+ this.formGroup = formGroup;
25
+ this.stripeService = stripeService;
26
+ this.translateService = translateService;
27
+ this.showIcons = false;
28
+ }
29
+ get isValid() {
30
+ return this.cardNumberInput.complete &&
31
+ this.cardExpiryInput.complete &&
32
+ this.cardCvcInput.complete &&
33
+ this.formGroup.valid;
34
+ }
35
+ get cardToken() {
36
+ if (!this.isValid) {
37
+ return null;
38
+ }
39
+ return this.stripeService.createToken(this.cardNumberElement, {
40
+ name: this.formGroup.get("name").value
41
+ }).pipe(map(x => x?.token?.id)).toPromise();
42
+ }
43
+ async ngOnInit() {
44
+ this.stripeOptions = {
45
+ placeholder: "",
46
+ style: {
47
+ base: this.options.styling
48
+ }
49
+ };
50
+ this.elements = await this.stripeService.elements({
51
+ locale: this.translateService.currentLang,
52
+ fonts: this.options?.fonts ?? []
53
+ }).toPromise();
54
+ this.initCardNumber();
55
+ this.initCardExpiry();
56
+ this.initCardCvc();
57
+ }
58
+ initCardNumber() {
59
+ this.cardNumberElement = this.elements.create("cardNumber", {
60
+ ...this.stripeOptions,
61
+ });
62
+ this.cardNumberElement.on("change", event => {
63
+ this.cardNumberError = event.error ? event.error.message : null;
64
+ });
65
+ this.cardNumberInput.init(this.cardNumberElement);
66
+ }
67
+ initCardExpiry() {
68
+ this.cardExpiryElement = this.elements.create("cardExpiry", {
69
+ ...this.stripeOptions,
70
+ });
71
+ this.cardExpiryElement.on("change", event => {
72
+ this.cardExpiryError = event.error ? event.error.message : null;
73
+ });
74
+ this.cardExpiryInput.init(this.cardExpiryElement);
75
+ }
76
+ initCardCvc() {
77
+ this.cardCvcElement = this.elements.create("cardCvc", {
78
+ ...this.stripeOptions,
79
+ });
80
+ this.cardCvcElement.on("change", event => {
81
+ this.cardCvcError = event.error ? event.error.message : null;
82
+ });
83
+ this.cardCvcInput.init(this.cardCvcElement);
84
+ }
85
+ ngOnDestroy() {
86
+ this.cardNumberElement.unmount();
87
+ this.cardExpiryElement.unmount();
88
+ this.cardCvcElement.unmount();
89
+ }
90
+ patchName(name) {
91
+ this.formGroup.get("name").patchValue(name);
92
+ }
93
+ markAllAsTouched() {
94
+ this.formGroup.markAllAsTouched();
95
+ this.cardCvcInput.markAsTouched();
96
+ this.cardNumberInput.markAsTouched();
97
+ this.cardExpiryInput.markAsTouched();
98
+ }
99
+ getYear() {
100
+ const date = new Date();
101
+ return +date.getFullYear().toString().substr(-2);
102
+ }
103
+ }
104
+ 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 });
105
+ 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: [
106
+ {
107
+ provide: GeneratedFormGroup,
108
+ useFactory: ngxFormGeneratorFactory(StripeForm)
109
+ }
110
+ ], 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=\"pl-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-user-circle accent-fg\"></i>\n </div>\n </mat-form-field>\n </mat-list-item>\n <mat-list-item>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex flex-row\">\n <mat-form-field class=\"flex-full max-w-full\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.card_number.label\" | translate }}</mat-label>\n <div matPrefix class=\"pl-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-credit-card accent-fg\"></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 class=\"flex flex-row gap-4\">\n <mat-form-field class=\"flex flex-full max-w-1/2\" [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 class=\"flex flex-full max-w-1/2\" [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: i5.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i3.TranslatePipe }, animations: niceAnimations, encapsulation: i0.ViewEncapsulation.None });
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeCardFormComponent, decorators: [{
112
+ type: Component,
113
+ args: [{ selector: "nice-stripe-card-form", encapsulation: ViewEncapsulation.None, providers: [
114
+ {
115
+ provide: GeneratedFormGroup,
116
+ useFactory: ngxFormGeneratorFactory(StripeForm)
117
+ }
118
+ ], 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=\"pl-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-user-circle accent-fg\"></i>\n </div>\n </mat-form-field>\n </mat-list-item>\n <mat-list-item>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex flex-row\">\n <mat-form-field class=\"flex-full max-w-full\" [appearance]=\"appearance\" floatLabel=\"always\">\n <mat-label>{{ \"nice_ui_kit.stripe.card_number.label\" | translate }}</mat-label>\n <div matPrefix class=\"pl-2\" *ngIf=\"showIcons\">\n <i class=\"fad fa-credit-card accent-fg\"></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 class=\"flex flex-row gap-4\">\n <mat-form-field class=\"flex flex-full max-w-1/2\" [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 class=\"flex flex-full max-w-1/2\" [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"] }]
119
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
120
+ type: Optional
121
+ }, {
122
+ type: Inject,
123
+ args: [NICE_STRIPE_OPTIONS]
124
+ }] }, { type: i1.GeneratedFormGroup }, { type: i2.StripeService }, { type: i3.TranslateService }]; }, propDecorators: { appearance: [{
125
+ type: Input
126
+ }], showIcons: [{
127
+ type: Input
128
+ }], cardNumberInput: [{
129
+ type: ViewChild,
130
+ args: ["cardNumber"]
131
+ }], cardExpiryInput: [{
132
+ type: ViewChild,
133
+ args: ["cardExpiry"]
134
+ }], cardCvcInput: [{
135
+ type: ViewChild,
136
+ args: ["cardCvc"]
137
+ }] } });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLWNhcmQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXN0cmlwZS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZm9ybS9zdHJpcGUtY2FyZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2Utc3RyaXBlLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1mb3JtL3N0cmlwZS1jYXJkLWZvcm0udGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUTNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBZXJELE1BQU0sT0FBTywyQkFBMkI7SUE4Q3BDLFlBQ29ELE9BQTZCLEVBQ3RFLFNBQXlDLEVBQ3hDLGFBQTRCLEVBQzVCLGdCQUFrQztRQUhNLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQ3RFLGNBQVMsR0FBVCxTQUFTLENBQWdDO1FBQ3hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUE3Q3ZDLGNBQVMsR0FBRyxLQUFLLENBQUM7SUErQ3pCLENBQUM7SUF6QkQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVE7WUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLO1NBQ3pDLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDekIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBVU0sS0FBSyxDQUFDLFFBQVE7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNqQixXQUFXLEVBQUUsRUFBRTtZQUNmLEtBQUssRUFBRTtnQkFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQzdCO1NBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztZQUM5QyxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQWtCO1lBQ2hELEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO1NBQ25DLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDeEQsR0FBRyxJQUFJLENBQUMsYUFBYTtTQUN4QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ3hELEdBQUcsSUFBSSxDQUFDLGFBQWE7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNsRCxHQUFHLElBQUksQ0FBQyxhQUFhO1NBQ3hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU8sT0FBTztRQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDOzt3SEExSFEsMkJBQTJCLGtCQStDWixtQkFBbUI7NEdBL0NsQywyQkFBMkIsOEdBUnpCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFVBQVUsRUFBRSx1QkFBdUIsQ0FBQyxVQUFVLENBQUM7U0FDbEQ7S0FDSixtVUM3Qkwsa3RGQXlDQSx3NEVEWGdCLGNBQWM7MkZBRWpCLDJCQUEyQjtrQkFidkMsU0FBUzsrQkFDSSx1QkFBdUIsaUJBR2xCLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLHVCQUF1QixDQUFDLFVBQVUsQ0FBQzt5QkFDbEQ7cUJBQ0osY0FDVyxjQUFjOzswQkFpRHJCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CO3dJQTdDcEMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxZQUFZO2dCQUloQixlQUFlO3NCQURyQixTQUFTO3VCQUFDLFlBQVk7Z0JBSWhCLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBHZW5lcmF0ZWRGb3JtR3JvdXAsIG5neEZvcm1HZW5lcmF0b3JGYWN0b3J5IH0gZnJvbSBcIkByZWN1cnN5dmUvbmd4LWZvcm0tZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBuaWNlQW5pbWF0aW9ucyB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQge1xuICAgIFN0cmlwZUNhcmRDdmNFbGVtZW50LFxuICAgIFN0cmlwZUNhcmRFeHBpcnlFbGVtZW50LFxuICAgIFN0cmlwZUNhcmROdW1iZXJFbGVtZW50LFxuICAgIFN0cmlwZUNhcmROdW1iZXJFbGVtZW50T3B0aW9ucyxcbiAgICBTdHJpcGVFbGVtZW50c1xufSBmcm9tIFwiQHN0cmlwZS9zdHJpcGUtanNcIjtcbmltcG9ydCB7IFN0cmlwZVNlcnZpY2UgfSBmcm9tIFwibmd4LXN0cmlwZVwiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBOSUNFX1NUUklQRV9PUFRJT05TIH0gZnJvbSBcIi4uLy4uL25pY2Utc3RyaXBlLWtpdC5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZVN0cmlwZUtpdE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vbmljZS1zdHJpcGUta2l0Lm9wdGlvbnNcIjtcbmltcG9ydCB7IE5pY2VTdHJpcGVDYXJkRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuLi9jYXJkLWVsZW1lbnQvc3RyaXBlLWNhcmQtZWxlbWVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFN0cmlwZUZvcm0gfSBmcm9tIFwiLi9zdHJpcGUtY2FyZC1mb3JtLmZvcm1cIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1zdHJpcGUtY2FyZC1mb3JtXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwic3RyaXBlLWNhcmQtZm9ybS50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJzdHJpcGUtY2FyZC1mb3JtLnN0eWxlLnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogR2VuZXJhdGVkRm9ybUdyb3VwLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogbmd4Rm9ybUdlbmVyYXRvckZhY3RvcnkoU3RyaXBlRm9ybSlcbiAgICAgICAgfVxuICAgIF0sXG4gICAgYW5pbWF0aW9uczogbmljZUFuaW1hdGlvbnNcbn0pXG5leHBvcnQgY2xhc3MgTmljZVN0cmlwZUNhcmRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93SWNvbnMgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoXCJjYXJkTnVtYmVyXCIpXG4gICAgcHVibGljIGNhcmROdW1iZXJJbnB1dDogTmljZVN0cmlwZUNhcmRFbGVtZW50Q29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChcImNhcmRFeHBpcnlcIilcbiAgICBwdWJsaWMgY2FyZEV4cGlyeUlucHV0OiBOaWNlU3RyaXBlQ2FyZEVsZW1lbnRDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFwiY2FyZEN2Y1wiKVxuICAgIHB1YmxpYyBjYXJkQ3ZjSW5wdXQ6IE5pY2VTdHJpcGVDYXJkRWxlbWVudENvbXBvbmVudDtcblxuICAgIHB1YmxpYyBjYXJkTnVtYmVyRWxlbWVudDogU3RyaXBlQ2FyZE51bWJlckVsZW1lbnQ7XG4gICAgcHVibGljIGNhcmROdW1iZXJFcnJvcjogc3RyaW5nO1xuICAgIHB1YmxpYyBjYXJkRXhwaXJ5RWxlbWVudDogU3RyaXBlQ2FyZEV4cGlyeUVsZW1lbnQ7XG4gICAgcHVibGljIGNhcmRFeHBpcnlFcnJvcjogc3RyaW5nO1xuICAgIHB1YmxpYyBjYXJkQ3ZjRWxlbWVudDogU3RyaXBlQ2FyZEN2Y0VsZW1lbnQ7XG4gICAgcHVibGljIGNhcmRDdmNFcnJvcjogc3RyaW5nO1xuXG4gICAgcHVibGljIHN0cmlwZU9wdGlvbnM6IFN0cmlwZUNhcmROdW1iZXJFbGVtZW50T3B0aW9ucztcblxuICAgIHByaXZhdGUgZWxlbWVudHM6IFN0cmlwZUVsZW1lbnRzO1xuXG4gICAgcHVibGljIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJkTnVtYmVySW5wdXQuY29tcGxldGUgJiZcbiAgICAgICAgICAgIHRoaXMuY2FyZEV4cGlyeUlucHV0LmNvbXBsZXRlICYmXG4gICAgICAgICAgICB0aGlzLmNhcmRDdmNJbnB1dC5jb21wbGV0ZSAmJlxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAudmFsaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjYXJkVG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaXBlU2VydmljZS5jcmVhdGVUb2tlbih0aGlzLmNhcmROdW1iZXJFbGVtZW50LCB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLmZvcm1Hcm91cC5nZXQoXCJuYW1lXCIpLnZhbHVlXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoeCA9PiB4Py50b2tlbj8uaWQpXG4gICAgICAgICkudG9Qcm9taXNlKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTklDRV9TVFJJUEVfT1BUSU9OUykgcHVibGljIG9wdGlvbnM6IE5pY2VTdHJpcGVLaXRPcHRpb25zLFxuICAgICAgICBwdWJsaWMgZm9ybUdyb3VwOiBHZW5lcmF0ZWRGb3JtR3JvdXA8U3RyaXBlRm9ybT4sXG4gICAgICAgIHByaXZhdGUgc3RyaXBlU2VydmljZTogU3RyaXBlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnN0cmlwZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgYmFzZTogdGhpcy5vcHRpb25zLnN0eWxpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmVsZW1lbnRzID0gYXdhaXQgdGhpcy5zdHJpcGVTZXJ2aWNlLmVsZW1lbnRzKHtcbiAgICAgICAgICAgIGxvY2FsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIGFzIGFueSxcbiAgICAgICAgICAgIGZvbnRzOiB0aGlzLm9wdGlvbnM/LmZvbnRzID8/IFtdXG4gICAgICAgIH0pLnRvUHJvbWlzZSgpO1xuXG4gICAgICAgIHRoaXMuaW5pdENhcmROdW1iZXIoKTtcbiAgICAgICAgdGhpcy5pbml0Q2FyZEV4cGlyeSgpO1xuICAgICAgICB0aGlzLmluaXRDYXJkQ3ZjKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDYXJkTnVtYmVyKCkge1xuICAgICAgICB0aGlzLmNhcmROdW1iZXJFbGVtZW50ID0gdGhpcy5lbGVtZW50cy5jcmVhdGUoXCJjYXJkTnVtYmVyXCIsIHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RyaXBlT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FyZE51bWJlckVsZW1lbnQub24oXCJjaGFuZ2VcIiwgZXZlbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYXJkTnVtYmVyRXJyb3IgPSBldmVudC5lcnJvciA/IGV2ZW50LmVycm9yLm1lc3NhZ2UgOiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYXJkTnVtYmVySW5wdXQuaW5pdCh0aGlzLmNhcmROdW1iZXJFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdENhcmRFeHBpcnkoKSB7XG4gICAgICAgIHRoaXMuY2FyZEV4cGlyeUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRzLmNyZWF0ZShcImNhcmRFeHBpcnlcIiwge1xuICAgICAgICAgICAgLi4udGhpcy5zdHJpcGVPcHRpb25zLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYXJkRXhwaXJ5RWxlbWVudC5vbihcImNoYW5nZVwiLCBldmVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhcmRFeHBpcnlFcnJvciA9IGV2ZW50LmVycm9yID8gZXZlbnQuZXJyb3IubWVzc2FnZSA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhcmRFeHBpcnlJbnB1dC5pbml0KHRoaXMuY2FyZEV4cGlyeUVsZW1lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0Q2FyZEN2YygpIHtcbiAgICAgICAgdGhpcy5jYXJkQ3ZjRWxlbWVudCA9IHRoaXMuZWxlbWVudHMuY3JlYXRlKFwiY2FyZEN2Y1wiLCB7XG4gICAgICAgICAgICAuLi50aGlzLnN0cmlwZU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhcmRDdmNFbGVtZW50Lm9uKFwiY2hhbmdlXCIsIGV2ZW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FyZEN2Y0Vycm9yID0gZXZlbnQuZXJyb3IgPyBldmVudC5lcnJvci5tZXNzYWdlIDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FyZEN2Y0lucHV0LmluaXQodGhpcy5jYXJkQ3ZjRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhcmROdW1iZXJFbGVtZW50LnVubW91bnQoKTtcbiAgICAgICAgdGhpcy5jYXJkRXhwaXJ5RWxlbWVudC51bm1vdW50KCk7XG4gICAgICAgIHRoaXMuY2FyZEN2Y0VsZW1lbnQudW5tb3VudCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXRjaE5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcIm5hbWVcIikucGF0Y2hWYWx1ZShuYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFya0FsbEFzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmNhcmRDdmNJbnB1dC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2FyZE51bWJlcklucHV0Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5jYXJkRXhwaXJ5SW5wdXQubWFya0FzVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0WWVhcigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgcmV0dXJuICtkYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKS5zdWJzdHIoLTIpO1xuICAgIH1cbn1cbiIsIjxtYXQtbGlzdCBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiIG5pY2VDb250cm9sU3RhdHVzIGZsb2F0TGFiZWw9XCJhbHdheXNcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgXCJuaWNlX3VpX2tpdC5zdHJpcGUubmFtZV9vbl9jYXJkLmxhYmVsXCIgIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cIiduaWNlX3VpX2tpdC5zdHJpcGUubmFtZV9vbl9jYXJkLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiIG1hdElucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcmVxdWlyZWQvPlxuICAgICAgICAgICAgPGRpdiBtYXRQcmVmaXggY2xhc3M9XCJwbC0yXCIgKm5nSWY9XCJzaG93SWNvbnNcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhZCBmYS11c2VyLWNpcmNsZSBhY2NlbnQtZmdcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgPG1hdC1saXN0LWl0ZW0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWZ1bGwgbWF4LXctZnVsbFwiIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgXCJuaWNlX3VpX2tpdC5zdHJpcGUuY2FyZF9udW1iZXIubGFiZWxcIiAgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBtYXRQcmVmaXggY2xhc3M9XCJwbC0yXCIgKm5nSWY9XCJzaG93SWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFkIGZhLWNyZWRpdC1jYXJkIGFjY2VudC1mZ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxuaWNlLXN0cmlwZS1jYXJkLWVsZW1lbnQgW3BsYWNlaG9sZGVyXT1cIiduaWNlX3VpX2tpdC5zdHJpcGUuY2FyZF9udW1iZXIucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2FyZE51bWJlciByZXF1aXJlZD48L25pY2Utc3RyaXBlLWNhcmQtZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbQHNsaWRlSW5Cb3R0b21dICpuZ0lmPVwiY2FyZE51bWJlckVycm9yXCI+e3sgY2FyZE51bWJlckVycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4IGZsZXgtZnVsbCBtYXgtdy0xLzJcIiBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgZmxvYXRMYWJlbD1cImFsd2F5c1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7IFwibmljZV91aV9raXQuc3RyaXBlLmV4cGlyYXRpb24ubGFiZWxcIiAgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPG5pY2Utc3RyaXBlLWNhcmQtZWxlbWVudCBbcGxhY2Vob2xkZXJdPVwiJ25pY2VfdWlfa2l0LnN0cmlwZS5leHBpcmF0aW9uLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NhcmRFeHBpcnkgcmVxdWlyZWQ+PC9uaWNlLXN0cmlwZS1jYXJkLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgW0BzbGlkZUluQm90dG9tXSAqbmdJZj1cImNhcmRFeHBpcnlFcnJvclwiPnt7IGNhcmRFeHBpcnlFcnJvciB9fTwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleCBmbGV4LWZ1bGwgbWF4LXctMS8yXCIgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiIGZsb2F0TGFiZWw9XCJhbHdheXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57eyBcIm5pY2VfdWlfa2l0LnN0cmlwZS5jdmMubGFiZWxcIiAgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPG5pY2Utc3RyaXBlLWNhcmQtZWxlbWVudCBbcGxhY2Vob2xkZXJdPVwiJ25pY2VfdWlfa2l0LnN0cmlwZS5jdmMucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCIgI2NhcmRDdmNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD48L25pY2Utc3RyaXBlLWNhcmQtZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbQHNsaWRlSW5Cb3R0b21dICpuZ0lmPVwiY2FyZEN2Y0Vycm9yXCI+e3sgY2FyZEN2Y0Vycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG48L21hdC1saXN0PlxuIl19
@@ -0,0 +1,73 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { ReactiveFormsModule } from "@angular/forms";
4
+ import { MatButtonModule } from "@angular/material/button";
5
+ import { MatFormFieldModule } from "@angular/material/form-field";
6
+ import { MatInputModule } from "@angular/material/input";
7
+ import { MatListModule } from "@angular/material/list";
8
+ import { TranslateModule } from "@ngx-translate/core";
9
+ import { NiceFormErrorModule } from "@recursyve/nice-ui-kit.v2";
10
+ import { NgxStripeModule } from "ngx-stripe";
11
+ import { NiceStripeCardElementComponent } from "./components/card-element/stripe-card-element.component";
12
+ import { NiceStripeCardFormComponent } from "./components/card-form/stripe-card-form.component";
13
+ import { NICE_STRIPE_OPTIONS } from "./nice-stripe-kit.constant";
14
+ import * as i0 from "@angular/core";
15
+ export class NiceStripeModule {
16
+ static forRoot(options) {
17
+ return {
18
+ ngModule: NiceStripeModule,
19
+ providers: [
20
+ {
21
+ provide: NICE_STRIPE_OPTIONS,
22
+ useValue: options
23
+ }
24
+ ]
25
+ };
26
+ }
27
+ }
28
+ NiceStripeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
29
+ NiceStripeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, declarations: [NiceStripeCardElementComponent,
30
+ NiceStripeCardFormComponent], imports: [NgxStripeModule,
31
+ ReactiveFormsModule,
32
+ TranslateModule,
33
+ MatFormFieldModule,
34
+ MatInputModule,
35
+ MatListModule,
36
+ NiceFormErrorModule,
37
+ MatButtonModule,
38
+ CommonModule], exports: [NiceStripeCardFormComponent] });
39
+ NiceStripeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, imports: [[
40
+ NgxStripeModule,
41
+ ReactiveFormsModule,
42
+ TranslateModule,
43
+ MatFormFieldModule,
44
+ MatInputModule,
45
+ MatListModule,
46
+ NiceFormErrorModule,
47
+ MatButtonModule,
48
+ CommonModule
49
+ ]] });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceStripeModule, decorators: [{
51
+ type: NgModule,
52
+ args: [{
53
+ imports: [
54
+ NgxStripeModule,
55
+ ReactiveFormsModule,
56
+ TranslateModule,
57
+ MatFormFieldModule,
58
+ MatInputModule,
59
+ MatListModule,
60
+ NiceFormErrorModule,
61
+ MatButtonModule,
62
+ CommonModule
63
+ ],
64
+ declarations: [
65
+ NiceStripeCardElementComponent,
66
+ NiceStripeCardFormComponent
67
+ ],
68
+ exports: [
69
+ NiceStripeCardFormComponent
70
+ ]
71
+ }]
72
+ }] });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS1zdHJpcGUta2l0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2Utc3RyaXBlLWtpdC12Mi9zcmMvbGliL25pY2Utc3RyaXBlLWtpdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQXdCakUsTUFBTSxPQUFPLGdCQUFnQjtJQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQThCO1FBQ2hELE9BQU87WUFDSCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsbUJBQW1CO29CQUM1QixRQUFRLEVBQUUsT0FBTztpQkFDcEI7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDOzs2R0FYUSxnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFQckIsOEJBQThCO1FBQzlCLDJCQUEyQixhQWIzQixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLGVBQWU7UUFFZixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLFlBQVksYUFPWiwyQkFBMkI7OEdBR3RCLGdCQUFnQixZQXBCaEI7WUFDTCxlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGVBQWU7WUFFZixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLFlBQVk7U0FDZjsyRkFTUSxnQkFBZ0I7a0JBckI1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFFZixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsWUFBWTtxQkFDZjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsOEJBQThCO3dCQUM5QiwyQkFBMkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRTt3QkFDTCwyQkFBMkI7cUJBQzlCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xpc3RcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBOaWNlRm9ybUVycm9yTW9kdWxlIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcbmltcG9ydCB7IE5neFN0cmlwZU1vZHVsZSB9IGZyb20gXCJuZ3gtc3RyaXBlXCI7XG5pbXBvcnQgeyBOaWNlU3RyaXBlQ2FyZEVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NhcmQtZWxlbWVudC9zdHJpcGUtY2FyZC1lbGVtZW50LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZVN0cmlwZUNhcmRGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jYXJkLWZvcm0vc3RyaXBlLWNhcmQtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7IE5JQ0VfU1RSSVBFX09QVElPTlMgfSBmcm9tIFwiLi9uaWNlLXN0cmlwZS1raXQuY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VTdHJpcGVLaXRPcHRpb25zIH0gZnJvbSBcIi4vbmljZS1zdHJpcGUta2l0Lm9wdGlvbnNcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5neFN0cmlwZU1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXG4gICAgICAgIE5pY2VGb3JtRXJyb3JNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTmljZVN0cmlwZUNhcmRFbGVtZW50Q29tcG9uZW50LFxuICAgICAgICBOaWNlU3RyaXBlQ2FyZEZvcm1Db21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgTmljZVN0cmlwZUNhcmRGb3JtQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlU3RyaXBlTW9kdWxlIHtcbiAgICBwdWJsaWMgc3RhdGljIGZvclJvb3Qob3B0aW9ucz86IE5pY2VTdHJpcGVLaXRPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOaWNlU3RyaXBlTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogTmljZVN0cmlwZU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTklDRV9TVFJJUEVfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19