@recursyve/nice-stripe-kit.v2 15.0.0-beta.6 → 17.0.0-beta.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"recursyve-nice-stripe-kit.v2.mjs","sources":["../../../projects/nice-stripe-kit-v2/src/lib/components/card-element/stripe-card-element.component.ts","../../../projects/nice-stripe-kit-v2/src/lib/nice-stripe-kit.constant.ts","../../../projects/nice-stripe-kit-v2/src/lib/components/card-form/stripe-card-form.form.ts","../../../projects/nice-stripe-kit-v2/src/lib/components/card-form/stripe-card-form.component.ts","../../../projects/nice-stripe-kit-v2/src/lib/components/card-form/stripe-card-form.template.html","../../../projects/nice-stripe-kit-v2/src/lib/nice-stripe-kit.module.ts","../../../projects/nice-stripe-kit-v2/src/public-api.ts","../../../projects/nice-stripe-kit-v2/src/recursyve-nice-stripe-kit.v2.ts"],"sourcesContent":["import { coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n Optional,\n Self,\n ViewChild,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { StripeCardCvcElement, StripeCardExpiryElement, StripeCardNumberElement } from \"@stripe/stripe-js\";\nimport { Subject } from \"rxjs\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n@Component({\n selector: \"nice-stripe-card-element\",\n template: \"<div class='stripe-element' #element></div>\",\n styleUrls: [\"./stripe-card-element.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: NiceStripeCardElementComponent\n }\n ]\n})\nexport class NiceStripeCardElementComponent implements AfterViewInit, MatFormFieldControl<string> {\n private _placeholder: string;\n private _focused = false;\n private _required = false;\n private _disabled = false;\n\n @ViewChild(\"element\")\n private elementRef?: ElementRef;\n\n public element?: StripeCardNumberElement | StripeCardExpiryElement | StripeCardCvcElement;\n public value: string;\n public stateChanges = new Subject<void>();\n public empty = true;\n public errorState = false;\n public complete = false;\n\n @HostBinding(\"attr.aria-describedby\")\n public describedBy = \"\";\n\n @HostBinding()\n public id: string = uuidv4();\n\n @Input()\n public set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n this.stateChanges.next();\n }\n\n public get placeholder() {\n return this._placeholder;\n }\n\n @Input()\n public set focused(focused: boolean) {\n this._focused = focused;\n this.stateChanges.next();\n }\n\n public get focused() {\n return this._focused;\n }\n\n @Input()\n public get required() {\n return this._required;\n }\n\n public set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n @HostBinding(\"class.floating\")\n public get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n public setDescribedByIds(ids: string[]) {\n this.describedBy = ids.join(\" \");\n }\n\n constructor(@Optional() @Self() public ngControl: NgControl) {\n }\n\n public async ngAfterViewInit() {\n if (this.elementRef) {\n this.empty = !this.value;\n }\n }\n\n public async init(element: StripeCardNumberElement | StripeCardExpiryElement | StripeCardCvcElement) {\n this.element = element;\n this.element.mount(this.elementRef.nativeElement);\n this.stateChanges.next();\n\n this.element.update({\n placeholder: this.placeholder\n });\n\n (this.element as StripeCardNumberElement).on(\"blur\", () => {\n this.focused = false;\n if (this.empty && this._required) {\n this.errorState = true;\n }\n });\n (this.element as StripeCardNumberElement).on(\"focus\", () => {\n this.focused = true;\n });\n\n (this.element as StripeCardNumberElement).on(\"change\", event => {\n this.empty = event.empty;\n this.errorState = !!event.error;\n this.complete = event.complete;\n this.stateChanges.next();\n });\n }\n\n public markAsTouched(): void {\n this.errorState = !!this.empty;\n this.stateChanges.next();\n }\n\n public onContainerClick(event: MouseEvent): void {\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_STRIPE_OPTIONS = new InjectionToken(\"nice_stripe_options\");\n","import { Control, Required } from \"@recursyve/ngx-form-generator\";\n\nexport class StripeForm {\n @Control()\n @Required()\n public name: string;\n}\n","import { Component, Inject, Input, OnDestroy, OnInit, Optional, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { MatFormFieldAppearance } from \"@angular/material/form-field\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { GeneratedFormGroup, ngxFormGeneratorFactory } from \"@recursyve/ngx-form-generator\";\nimport { niceAnimations } from \"@recursyve/nice-ui-kit.v2\";\nimport {\n StripeCardCvcElement,\n StripeCardExpiryElement,\n StripeCardNumberElement,\n StripeCardNumberElementOptions,\n StripeElements\n} from \"@stripe/stripe-js\";\nimport { StripeService } from \"ngx-stripe\";\nimport { lastValueFrom } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { NICE_STRIPE_OPTIONS } from \"../../nice-stripe-kit.constant\";\nimport { NiceStripeKitOptions } from \"../../nice-stripe-kit.options\";\nimport { NiceStripeCardElementComponent } from \"../card-element/stripe-card-element.component\";\nimport { StripeForm } from \"./stripe-card-form.form\";\n\n@Component({\n selector: \"nice-stripe-card-form\",\n templateUrl: \"stripe-card-form.template.html\",\n styleUrls: [\"stripe-card-form.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: GeneratedFormGroup,\n useFactory: ngxFormGeneratorFactory(StripeForm)\n }\n ],\n animations: niceAnimations\n})\nexport class NiceStripeCardFormComponent implements OnInit, OnDestroy {\n @Input()\n public appearance: MatFormFieldAppearance;\n\n @Input()\n public showIcons = false;\n\n @ViewChild(\"cardNumber\")\n public cardNumberInput: NiceStripeCardElementComponent;\n\n @ViewChild(\"cardExpiry\")\n public cardExpiryInput: NiceStripeCardElementComponent;\n\n @ViewChild(\"cardCvc\")\n public cardCvcInput: NiceStripeCardElementComponent;\n\n public cardNumberElement: StripeCardNumberElement;\n public cardNumberError: string;\n public cardExpiryElement: StripeCardExpiryElement;\n public cardExpiryError: string;\n public cardCvcElement: StripeCardCvcElement;\n public cardCvcError: string;\n\n public stripeOptions: StripeCardNumberElementOptions;\n\n private elements: StripeElements;\n\n public get isValid(): boolean {\n return this.cardNumberInput.complete &&\n this.cardExpiryInput.complete &&\n this.cardCvcInput.complete &&\n this.formGroup.valid;\n }\n\n public get cardToken(): Promise<string> {\n if (!this.isValid) {\n return null;\n }\n\n return this.stripeService.createToken(this.cardNumberElement, {\n name: this.formGroup.get(\"name\").value\n }).pipe(\n map(x => x?.token?.id)\n ).toPromise();\n }\n\n constructor(\n @Optional() @Inject(NICE_STRIPE_OPTIONS) public options: NiceStripeKitOptions,\n public formGroup: GeneratedFormGroup<StripeForm>,\n private stripeService: StripeService,\n private translateService: TranslateService\n ) {\n }\n\n public async ngOnInit(): Promise<void> {\n this.stripeOptions = {\n placeholder: \"\",\n style: {\n base: this.options.styling\n }\n };\n\n this.elements = await lastValueFrom(\n this.stripeService.elements({\n locale: this.translateService.currentLang as any,\n fonts: this.options?.fonts ?? []\n })\n );\n\n this.initCardNumber();\n this.initCardExpiry();\n this.initCardCvc();\n }\n\n public initCardNumber() {\n this.cardNumberElement = this.elements.create(\"cardNumber\", {\n ...this.stripeOptions,\n });\n this.cardNumberElement.on(\"change\", event => {\n this.cardNumberError = event.error ? event.error.message : null;\n });\n this.cardNumberInput.init(this.cardNumberElement);\n }\n\n public initCardExpiry() {\n this.cardExpiryElement = this.elements.create(\"cardExpiry\", {\n ...this.stripeOptions,\n });\n this.cardExpiryElement.on(\"change\", event => {\n this.cardExpiryError = event.error ? event.error.message : null;\n });\n this.cardExpiryInput.init(this.cardExpiryElement);\n }\n\n public initCardCvc() {\n this.cardCvcElement = this.elements.create(\"cardCvc\", {\n ...this.stripeOptions,\n });\n this.cardCvcElement.on(\"change\", event => {\n this.cardCvcError = event.error ? event.error.message : null;\n });\n this.cardCvcInput.init(this.cardCvcElement);\n }\n\n public ngOnDestroy(): void {\n if (this.cardNumberElement) {\n this.cardNumberElement.unmount();\n }\n\n if (this.cardExpiryElement) {\n this.cardExpiryElement.unmount();\n }\n\n if (this.cardCvcElement) {\n this.cardCvcElement.unmount();\n }\n }\n\n public patchName(name: string) {\n this.formGroup.get(\"name\").patchValue(name);\n }\n\n public markAllAsTouched(): void {\n this.formGroup.markAllAsTouched();\n this.cardCvcInput.markAsTouched();\n this.cardNumberInput.markAsTouched();\n this.cardExpiryInput.markAsTouched();\n }\n\n private getYear(): number {\n const date = new Date();\n return +date.getFullYear().toString().substr(-2);\n }\n}\n","<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","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceFormErrorModule } from \"@recursyve/nice-ui-kit.v2\";\nimport { NgxStripeModule } from \"ngx-stripe\";\nimport { NiceStripeCardElementComponent } from \"./components/card-element/stripe-card-element.component\";\nimport { NiceStripeCardFormComponent } from \"./components/card-form/stripe-card-form.component\";\nimport { NICE_STRIPE_OPTIONS } from \"./nice-stripe-kit.constant\";\nimport { NiceStripeKitOptions } from \"./nice-stripe-kit.options\";\n\n@NgModule({\n imports: [\n NgxStripeModule,\n ReactiveFormsModule,\n TranslateModule,\n\n MatFormFieldModule,\n MatInputModule,\n MatListModule,\n NiceFormErrorModule,\n MatButtonModule,\n CommonModule\n ],\n declarations: [\n NiceStripeCardElementComponent,\n NiceStripeCardFormComponent\n ],\n exports: [\n NiceStripeCardFormComponent\n ]\n})\nexport class NiceStripeModule {\n public static forRoot(options?: NiceStripeKitOptions): ModuleWithProviders<NiceStripeModule> {\n return {\n ngModule: NiceStripeModule,\n providers: [\n {\n provide: NICE_STRIPE_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","/*\n * Public API Surface of nice-stripe-kit\n */\n\nexport * from \"./lib/nice-stripe-kit.module\";\nexport * from \"./lib/components/card-element/stripe-card-element.component\";\nexport * from \"./lib/components/card-form/stripe-card-form.component\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4","i1"],"mappings":"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"}
1
+ {"version":3,"file":"recursyve-nice-stripe-kit.v2.mjs","sources":["../../../projects/nice-stripe-kit-v2/src/lib/components/card-element/stripe-card-element.component.ts","../../../projects/nice-stripe-kit-v2/src/lib/nice-stripe-kit.constant.ts","../../../projects/nice-stripe-kit-v2/src/lib/components/card-form/stripe-card-form.form.ts","../../../projects/nice-stripe-kit-v2/src/lib/components/card-form/stripe-card-form.component.ts","../../../projects/nice-stripe-kit-v2/src/lib/components/card-form/stripe-card-form.template.html","../../../projects/nice-stripe-kit-v2/src/lib/nice-stripe-kit.module.ts","../../../projects/nice-stripe-kit-v2/src/public-api.ts","../../../projects/nice-stripe-kit-v2/src/recursyve-nice-stripe-kit.v2.ts"],"sourcesContent":["import { coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n Optional,\n Self,\n ViewChild,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { StripeCardCvcElement, StripeCardExpiryElement, StripeCardNumberElement } from \"@stripe/stripe-js\";\nimport { Subject } from \"rxjs\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n@Component({\n selector: \"nice-stripe-card-element\",\n template: \"<div class='stripe-element' #element></div>\",\n styleUrls: [\"./stripe-card-element.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: NiceStripeCardElementComponent\n }\n ]\n})\nexport class NiceStripeCardElementComponent implements AfterViewInit, MatFormFieldControl<string> {\n private _placeholder: string;\n private _focused = false;\n private _required = false;\n private _disabled = false;\n\n @ViewChild(\"element\")\n private elementRef?: ElementRef;\n\n public element?: StripeCardNumberElement | StripeCardExpiryElement | StripeCardCvcElement;\n public value: string;\n public stateChanges = new Subject<void>();\n public empty = true;\n public errorState = false;\n public complete = false;\n\n @HostBinding(\"attr.aria-describedby\")\n public describedBy = \"\";\n\n @HostBinding()\n public id: string = uuidv4();\n\n @Input()\n public set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n this.stateChanges.next();\n }\n\n public get placeholder() {\n return this._placeholder;\n }\n\n @Input()\n public set focused(focused: boolean) {\n this._focused = focused;\n this.stateChanges.next();\n }\n\n public get focused() {\n return this._focused;\n }\n\n @Input()\n public get required() {\n return this._required;\n }\n\n public set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n @HostBinding(\"class.floating\")\n public get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n public setDescribedByIds(ids: string[]) {\n this.describedBy = ids.join(\" \");\n }\n\n constructor(@Optional() @Self() public ngControl: NgControl) {\n }\n\n public async ngAfterViewInit() {\n if (this.elementRef) {\n this.empty = !this.value;\n }\n }\n\n public async init(element: StripeCardNumberElement | StripeCardExpiryElement | StripeCardCvcElement) {\n this.element = element;\n this.element.mount(this.elementRef.nativeElement);\n this.stateChanges.next();\n\n this.element.update({\n placeholder: this.placeholder\n });\n\n (this.element as StripeCardNumberElement).on(\"blur\", () => {\n this.focused = false;\n if (this.empty && this._required) {\n this.errorState = true;\n }\n });\n (this.element as StripeCardNumberElement).on(\"focus\", () => {\n this.focused = true;\n });\n\n (this.element as StripeCardNumberElement).on(\"change\", event => {\n this.empty = event.empty;\n this.errorState = !!event.error;\n this.complete = event.complete;\n this.stateChanges.next();\n });\n }\n\n public markAsTouched(): void {\n this.errorState = !!this.empty;\n this.stateChanges.next();\n }\n\n public onContainerClick(event: MouseEvent): void {\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_STRIPE_OPTIONS = new InjectionToken(\"nice_stripe_options\");\n","import { Control, Required } from \"@recursyve/ngx-form-generator\";\n\nexport class StripeForm {\n @Control()\n @Required()\n public name: string;\n}\n","import { Component, Inject, Input, OnDestroy, OnInit, Optional, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { MatFormFieldAppearance } from \"@angular/material/form-field\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { GeneratedFormGroup, ngxFormGeneratorFactory } from \"@recursyve/ngx-form-generator\";\nimport { niceAnimations } from \"@recursyve/nice-ui-kit.v2\";\nimport {\n StripeCardCvcElement,\n StripeCardExpiryElement,\n StripeCardNumberElement,\n StripeCardNumberElementOptions,\n StripeElements\n} from \"@stripe/stripe-js\";\nimport { StripeService } from \"ngx-stripe\";\nimport { lastValueFrom } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { NICE_STRIPE_OPTIONS } from \"../../nice-stripe-kit.constant\";\nimport { NiceStripeKitOptions } from \"../../nice-stripe-kit.options\";\nimport { NiceStripeCardElementComponent } from \"../card-element/stripe-card-element.component\";\nimport { StripeForm } from \"./stripe-card-form.form\";\n\n@Component({\n selector: \"nice-stripe-card-form\",\n templateUrl: \"stripe-card-form.template.html\",\n styleUrls: [\"stripe-card-form.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: GeneratedFormGroup,\n useFactory: ngxFormGeneratorFactory(StripeForm)\n }\n ],\n animations: niceAnimations\n})\nexport class NiceStripeCardFormComponent implements OnInit, OnDestroy {\n @Input()\n public appearance: MatFormFieldAppearance;\n\n @Input()\n public showIcons = false;\n\n @ViewChild(\"cardNumber\")\n public cardNumberInput: NiceStripeCardElementComponent;\n\n @ViewChild(\"cardExpiry\")\n public cardExpiryInput: NiceStripeCardElementComponent;\n\n @ViewChild(\"cardCvc\")\n public cardCvcInput: NiceStripeCardElementComponent;\n\n public cardNumberElement: StripeCardNumberElement;\n public cardNumberError: string;\n public cardExpiryElement: StripeCardExpiryElement;\n public cardExpiryError: string;\n public cardCvcElement: StripeCardCvcElement;\n public cardCvcError: string;\n\n public stripeOptions: StripeCardNumberElementOptions;\n\n private elements: StripeElements;\n\n public get isValid(): boolean {\n return this.cardNumberInput.complete &&\n this.cardExpiryInput.complete &&\n this.cardCvcInput.complete &&\n this.formGroup.valid;\n }\n\n public get cardToken(): Promise<string> {\n if (!this.isValid) {\n return null;\n }\n\n return this.stripeService.createToken(this.cardNumberElement, {\n name: this.formGroup.get(\"name\").value\n }).pipe(\n map(x => x?.token?.id)\n ).toPromise();\n }\n\n constructor(\n @Optional() @Inject(NICE_STRIPE_OPTIONS) public options: NiceStripeKitOptions,\n public formGroup: GeneratedFormGroup<StripeForm>,\n private stripeService: StripeService,\n private translateService: TranslateService\n ) {\n }\n\n public async ngOnInit(): Promise<void> {\n this.stripeOptions = {\n placeholder: \"\",\n style: {\n base: this.options.styling\n }\n };\n\n this.elements = await lastValueFrom(\n this.stripeService.elements({\n locale: this.translateService.currentLang as any,\n fonts: this.options?.fonts ?? []\n })\n );\n\n this.initCardNumber();\n this.initCardExpiry();\n this.initCardCvc();\n }\n\n public initCardNumber() {\n this.cardNumberElement = this.elements.create(\"cardNumber\", {\n ...this.stripeOptions,\n });\n this.cardNumberElement.on(\"change\", event => {\n this.cardNumberError = event.error ? event.error.message : null;\n });\n this.cardNumberInput.init(this.cardNumberElement);\n }\n\n public initCardExpiry() {\n this.cardExpiryElement = this.elements.create(\"cardExpiry\", {\n ...this.stripeOptions,\n });\n this.cardExpiryElement.on(\"change\", event => {\n this.cardExpiryError = event.error ? event.error.message : null;\n });\n this.cardExpiryInput.init(this.cardExpiryElement);\n }\n\n public initCardCvc() {\n this.cardCvcElement = this.elements.create(\"cardCvc\", {\n ...this.stripeOptions,\n });\n this.cardCvcElement.on(\"change\", event => {\n this.cardCvcError = event.error ? event.error.message : null;\n });\n this.cardCvcInput.init(this.cardCvcElement);\n }\n\n public ngOnDestroy(): void {\n if (this.cardNumberElement) {\n this.cardNumberElement.unmount();\n }\n\n if (this.cardExpiryElement) {\n this.cardExpiryElement.unmount();\n }\n\n if (this.cardCvcElement) {\n this.cardCvcElement.unmount();\n }\n }\n\n public patchName(name: string) {\n this.formGroup.get(\"name\").patchValue(name);\n }\n\n public markAllAsTouched(): void {\n this.formGroup.markAllAsTouched();\n this.cardCvcInput.markAsTouched();\n this.cardNumberInput.markAsTouched();\n this.cardExpiryInput.markAsTouched();\n }\n\n private getYear(): number {\n const date = new Date();\n return +date.getFullYear().toString().substr(-2);\n }\n}\n","<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","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceFormErrorModule } from \"@recursyve/nice-ui-kit.v2\";\nimport { NgxStripeModule } from \"ngx-stripe\";\nimport { NiceStripeCardElementComponent } from \"./components/card-element/stripe-card-element.component\";\nimport { NiceStripeCardFormComponent } from \"./components/card-form/stripe-card-form.component\";\nimport { NICE_STRIPE_OPTIONS } from \"./nice-stripe-kit.constant\";\nimport { NiceStripeKitOptions } from \"./nice-stripe-kit.options\";\n\n@NgModule({\n imports: [\n NgxStripeModule,\n ReactiveFormsModule,\n TranslateModule,\n\n MatFormFieldModule,\n MatInputModule,\n MatListModule,\n NiceFormErrorModule,\n MatButtonModule,\n CommonModule\n ],\n declarations: [\n NiceStripeCardElementComponent,\n NiceStripeCardFormComponent\n ],\n exports: [\n NiceStripeCardFormComponent\n ]\n})\nexport class NiceStripeModule {\n public static forRoot(options?: NiceStripeKitOptions): ModuleWithProviders<NiceStripeModule> {\n return {\n ngModule: NiceStripeModule,\n providers: [\n {\n provide: NICE_STRIPE_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","/*\n * Public API Surface of nice-stripe-kit\n */\n\nexport * from \"./lib/nice-stripe-kit.module\";\nexport * from \"./lib/components/card-element/stripe-card-element.component\";\nexport * from \"./lib/components/card-form/stripe-card-form.component\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4","i1"],"mappings":"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"}
@@ -35,5 +35,5 @@ export declare class NiceStripeCardElementComponent implements AfterViewInit, Ma
35
35
  markAsTouched(): void;
36
36
  onContainerClick(event: MouseEvent): void;
37
37
  static ɵfac: i0.ɵɵFactoryDeclaration<NiceStripeCardElementComponent, [{ optional: true; self: true; }]>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<NiceStripeCardElementComponent, "nice-stripe-card-element", never, { "placeholder": "placeholder"; "focused": "focused"; "required": "required"; "disabled": "disabled"; }, {}, never, never, false, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<NiceStripeCardElementComponent, "nice-stripe-card-element", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "focused": { "alias": "focused"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
39
39
  }
@@ -38,5 +38,5 @@ export declare class NiceStripeCardFormComponent implements OnInit, OnDestroy {
38
38
  markAllAsTouched(): void;
39
39
  private getYear;
40
40
  static ɵfac: i0.ɵɵFactoryDeclaration<NiceStripeCardFormComponent, [{ optional: true; }, null, null, null]>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<NiceStripeCardFormComponent, "nice-stripe-card-form", never, { "appearance": "appearance"; "showIcons": "showIcons"; }, {}, never, never, false, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<NiceStripeCardFormComponent, "nice-stripe-card-form", never, { "appearance": { "alias": "appearance"; "required": false; }; "showIcons": { "alias": "showIcons"; "required": false; }; }, {}, never, never, false, never>;
42
42
  }
package/package.json CHANGED
@@ -1,23 +1,19 @@
1
1
  {
2
2
  "name": "@recursyve/nice-stripe-kit.v2",
3
- "version": "15.0.0-beta.6",
3
+ "version": "17.0.0-beta.8",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },
7
7
  "peerDependencies": {
8
- "@angular/common": "^15.0.0",
9
- "@angular/core": "^15.0.0",
10
- "@recursyve/nice-ui-kit.v2": ">= 15.0.0-beta.107",
11
- "@recursyve/ngx-form-generator": ">= 15.0.0-beta.37",
12
- "@stripe/stripe-js": "^1.52.1",
13
- "ngx-stripe": "^15.6.0",
8
+ "@angular/common": "^17.0.0",
9
+ "@angular/core": "^17.0.0",
10
+ "@recursyve/nice-ui-kit.v2": ">= 17.0.0-beta.140",
11
+ "@recursyve/ngx-form-generator": ">= 17.0.0-beta.50",
12
+ "@stripe/stripe-js": "^3.4.0",
13
+ "ngx-stripe": "^17.2.0",
14
14
  "uuid": ">= 9.0.0"
15
15
  },
16
- "module": "fesm2015/recursyve-nice-stripe-kit.v2.mjs",
17
- "es2020": "fesm2020/recursyve-nice-stripe-kit.v2.mjs",
18
- "esm2020": "esm2020/recursyve-nice-stripe-kit.v2.mjs",
19
- "fesm2020": "fesm2020/recursyve-nice-stripe-kit.v2.mjs",
20
- "fesm2015": "fesm2015/recursyve-nice-stripe-kit.v2.mjs",
16
+ "module": "fesm2022/recursyve-nice-stripe-kit.v2.mjs",
21
17
  "typings": "index.d.ts",
22
18
  "exports": {
23
19
  "./package.json": {
@@ -25,11 +21,9 @@
25
21
  },
26
22
  ".": {
27
23
  "types": "./index.d.ts",
28
- "esm2020": "./esm2020/recursyve-nice-stripe-kit.v2.mjs",
29
- "es2020": "./fesm2020/recursyve-nice-stripe-kit.v2.mjs",
30
- "es2015": "./fesm2015/recursyve-nice-stripe-kit.v2.mjs",
31
- "node": "./fesm2015/recursyve-nice-stripe-kit.v2.mjs",
32
- "default": "./fesm2020/recursyve-nice-stripe-kit.v2.mjs"
24
+ "esm2022": "./esm2022/recursyve-nice-stripe-kit.v2.mjs",
25
+ "esm": "./esm2022/recursyve-nice-stripe-kit.v2.mjs",
26
+ "default": "./fesm2022/recursyve-nice-stripe-kit.v2.mjs"
33
27
  }
34
28
  },
35
29
  "sideEffects": false
@@ -1,130 +0,0 @@
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
- set placeholder(placeholder) {
11
- this._placeholder = placeholder;
12
- this.stateChanges.next();
13
- }
14
- get placeholder() {
15
- return this._placeholder;
16
- }
17
- set focused(focused) {
18
- this._focused = focused;
19
- this.stateChanges.next();
20
- }
21
- get focused() {
22
- return this._focused;
23
- }
24
- get required() {
25
- return this._required;
26
- }
27
- set required(req) {
28
- this._required = coerceBooleanProperty(req);
29
- this.stateChanges.next();
30
- }
31
- get disabled() {
32
- return this._disabled;
33
- }
34
- set disabled(value) {
35
- this._disabled = coerceBooleanProperty(value);
36
- this.stateChanges.next();
37
- }
38
- get shouldLabelFloat() {
39
- return this.focused || !this.empty;
40
- }
41
- setDescribedByIds(ids) {
42
- this.describedBy = ids.join(" ");
43
- }
44
- constructor(ngControl) {
45
- this.ngControl = ngControl;
46
- this._focused = false;
47
- this._required = false;
48
- this._disabled = false;
49
- this.stateChanges = new Subject();
50
- this.empty = true;
51
- this.errorState = false;
52
- this.complete = false;
53
- this.describedBy = "";
54
- this.id = uuidv4();
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: "15.2.9", ngImport: i0, type: NiceStripeCardElementComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
92
- NiceStripeCardElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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: "15.2.9", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLWNhcmQtZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXN0cmlwZS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZWxlbWVudC9zdHJpcGUtY2FyZC1lbGVtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBY3BDLE1BQU0sT0FBTyw4QkFBOEI7SUFzQnZDLElBQ1csV0FBVyxDQUFDLFdBQW1CO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQ1csT0FBTyxDQUFDLE9BQWdCO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxD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Q0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sYUFBYTtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWlCO0lBQ3pDLENBQUM7OzJIQWpIUSw4QkFBOEI7K0dBQTlCLDhCQUE4Qiw4UkFQNUI7UUFDUDtZQUNJLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsV0FBVyxFQUFFLDhCQUE4QjtTQUM5QztLQUNKLGlJQVJTLDZDQUE2QzsyRkFVOUMsOEJBQThCO2tCQVoxQyxTQUFTOytCQUNJLDBCQUEwQixZQUMxQiw2Q0FBNkMsaUJBRXhDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxnQ0FBZ0M7eUJBQzlDO3FCQUNKOzswQkF5RVksUUFBUTs7MEJBQUksSUFBSTs0Q0FoRXJCLFVBQVU7c0JBRGpCLFNBQVM7dUJBQUMsU0FBUztnQkFXYixXQUFXO3NCQURqQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFJN0IsRUFBRTtzQkFEUixXQUFXO2dCQUlELFdBQVc7c0JBRHJCLEtBQUs7Z0JBV0ssT0FBTztzQkFEakIsS0FBSztnQkFXSyxRQUFRO3NCQURsQixLQUFLO2dCQVdLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBV0ssZ0JBQWdCO3NCQUQxQixXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IFN0cmlwZUNhcmRDdmNFbGVtZW50LCBTdHJpcGVDYXJkRXhwaXJ5RWxlbWVudCwgU3RyaXBlQ2FyZE51bWJlckVsZW1lbnQgfSBmcm9tIFwiQHN0cmlwZS9zdHJpcGUtanNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSBcInV1aWRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1zdHJpcGUtY2FyZC1lbGVtZW50XCIsXG4gICAgdGVtcGxhdGU6IFwiPGRpdiBjbGFzcz0nc3RyaXBlLWVsZW1lbnQnICNlbGVtZW50PjwvZGl2PlwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9zdHJpcGUtY2FyZC1lbGVtZW50LnN0eWxlLnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBOaWNlU3RyaXBlQ2FyZEVsZW1lbnRDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmljZVN0cmlwZUNhcmRFbGVtZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgTWF0Rm9ybUZpZWxkQ29udHJvbDxzdHJpbmc+IHtcbiAgICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIHByaXZhdGUgX2ZvY3VzZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKFwiZWxlbWVudFwiKVxuICAgIHByaXZhdGUgZWxlbWVudFJlZj86IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgZWxlbWVudD86IFN0cmlwZUNhcmROdW1iZXJFbGVtZW50IHwgU3RyaXBlQ2FyZEV4cGlyeUVsZW1lbnQgfCBTdHJpcGVDYXJkQ3ZjRWxlbWVudDtcbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZztcbiAgICBwdWJsaWMgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwdWJsaWMgZW1wdHkgPSB0cnVlO1xuICAgIHB1YmxpYyBlcnJvclN0YXRlID0gZmFsc2U7XG4gICAgcHVibGljIGNvbXBsZXRlID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoXCJhdHRyLmFyaWEtZGVzY3JpYmVkYnlcIilcbiAgICBwdWJsaWMgZGVzY3JpYmVkQnkgPSBcIlwiO1xuXG4gICAgQEhvc3RCaW5kaW5nKClcbiAgICBwdWJsaWMgaWQ6IHN0cmluZyA9IHV1aWR2NCgpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzZWQgPSBmb2N1c2VkO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNlZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgcmVxdWlyZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJlcXVpcmVkKHJlcSkge1xuICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5mbG9hdGluZ1wiKVxuICAgIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oXCIgXCIpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5lbXB0eSA9ICF0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXQoZWxlbWVudDogU3RyaXBlQ2FyZE51bWJlckVsZW1lbnQgfCBTdHJpcGVDYXJkRXhwaXJ5RWxlbWVudCB8IFN0cmlwZUNhcmRDdmNFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuZWxlbWVudC5tb3VudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblxuICAgICAgICB0aGlzLmVsZW1lbnQudXBkYXRlKHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyXG4gICAgICAgIH0pO1xuXG4gICAgICAgICh0aGlzLmVsZW1lbnQgYXMgU3RyaXBlQ2FyZE51bWJlckVsZW1lbnQpLm9uKFwiYmx1clwiLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmVtcHR5ICYmIHRoaXMuX3JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvclN0YXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgICh0aGlzLmVsZW1lbnQgYXMgU3RyaXBlQ2FyZE51bWJlckVsZW1lbnQpLm9uKFwiZm9jdXNcIiwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgKHRoaXMuZWxlbWVudCBhcyBTdHJpcGVDYXJkTnVtYmVyRWxlbWVudCkub24oXCJjaGFuZ2VcIiwgZXZlbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbXB0eSA9IGV2ZW50LmVtcHR5O1xuICAgICAgICAgICAgdGhpcy5lcnJvclN0YXRlID0gISFldmVudC5lcnJvcjtcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGUgPSBldmVudC5jb21wbGV0ZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG1hcmtBc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9ICEhdGhpcy5lbXB0eTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgfVxufVxuIl19
@@ -1,145 +0,0 @@
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 { lastValueFrom } from "rxjs";
7
- import { map } from "rxjs/operators";
8
- import { NICE_STRIPE_OPTIONS } from "../../nice-stripe-kit.constant";
9
- import { NiceStripeCardElementComponent } from "../card-element/stripe-card-element.component";
10
- import { StripeForm } from "./stripe-card-form.form";
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@recursyve/ngx-form-generator";
13
- import * as i2 from "ngx-stripe";
14
- import * as i3 from "@ngx-translate/core";
15
- import * as i4 from "@angular/forms";
16
- import * as i5 from "@angular/material/form-field";
17
- import * as i6 from "@angular/material/input";
18
- import * as i7 from "@angular/material/list";
19
- import * as i8 from "@recursyve/nice-ui-kit.v2";
20
- import * as i9 from "@angular/common";
21
- import * as i10 from "../card-element/stripe-card-element.component";
22
- export class NiceStripeCardFormComponent {
23
- get isValid() {
24
- return this.cardNumberInput.complete &&
25
- this.cardExpiryInput.complete &&
26
- this.cardCvcInput.complete &&
27
- this.formGroup.valid;
28
- }
29
- get cardToken() {
30
- if (!this.isValid) {
31
- return null;
32
- }
33
- return this.stripeService.createToken(this.cardNumberElement, {
34
- name: this.formGroup.get("name").value
35
- }).pipe(map(x => x?.token?.id)).toPromise();
36
- }
37
- constructor(options, formGroup, stripeService, translateService) {
38
- this.options = options;
39
- this.formGroup = formGroup;
40
- this.stripeService = stripeService;
41
- this.translateService = translateService;
42
- this.showIcons = false;
43
- }
44
- async ngOnInit() {
45
- this.stripeOptions = {
46
- placeholder: "",
47
- style: {
48
- base: this.options.styling
49
- }
50
- };
51
- this.elements = await lastValueFrom(this.stripeService.elements({
52
- locale: this.translateService.currentLang,
53
- fonts: this.options?.fonts ?? []
54
- }));
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
- if (this.cardNumberElement) {
88
- this.cardNumberElement.unmount();
89
- }
90
- if (this.cardExpiryElement) {
91
- this.cardExpiryElement.unmount();
92
- }
93
- if (this.cardCvcElement) {
94
- this.cardCvcElement.unmount();
95
- }
96
- }
97
- patchName(name) {
98
- this.formGroup.get("name").patchValue(name);
99
- }
100
- markAllAsTouched() {
101
- this.formGroup.markAllAsTouched();
102
- this.cardCvcInput.markAsTouched();
103
- this.cardNumberInput.markAsTouched();
104
- this.cardExpiryInput.markAsTouched();
105
- }
106
- getYear() {
107
- const date = new Date();
108
- return +date.getFullYear().toString().substr(-2);
109
- }
110
- }
111
- NiceStripeCardFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceStripeCardFormComponent, deps: [{ token: NICE_STRIPE_OPTIONS, optional: true }, { token: i1.GeneratedFormGroup }, { token: i2.StripeService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
112
- NiceStripeCardFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceStripeCardFormComponent, selector: "nice-stripe-card-form", inputs: { appearance: "appearance", showIcons: "showIcons" }, providers: [
113
- {
114
- provide: GeneratedFormGroup,
115
- useFactory: ngxFormGeneratorFactory(StripeForm)
116
- }
117
- ], 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"], dependencies: [{ kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i7.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i8.NiceControlStatusDirective, selector: "[niceControlStatus]" }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i10.NiceStripeCardElementComponent, selector: "nice-stripe-card-element", inputs: ["placeholder", "focused", "required", "disabled"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: niceAnimations, encapsulation: i0.ViewEncapsulation.None });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceStripeCardFormComponent, decorators: [{
119
- type: Component,
120
- args: [{ selector: "nice-stripe-card-form", encapsulation: ViewEncapsulation.None, providers: [
121
- {
122
- provide: GeneratedFormGroup,
123
- useFactory: ngxFormGeneratorFactory(StripeForm)
124
- }
125
- ], 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"] }]
126
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
127
- type: Optional
128
- }, {
129
- type: Inject,
130
- args: [NICE_STRIPE_OPTIONS]
131
- }] }, { type: i1.GeneratedFormGroup }, { type: i2.StripeService }, { type: i3.TranslateService }]; }, propDecorators: { appearance: [{
132
- type: Input
133
- }], showIcons: [{
134
- type: Input
135
- }], cardNumberInput: [{
136
- type: ViewChild,
137
- args: ["cardNumber"]
138
- }], cardExpiryInput: [{
139
- type: ViewChild,
140
- args: ["cardExpiry"]
141
- }], cardCvcInput: [{
142
- type: ViewChild,
143
- args: ["cardCvc"]
144
- }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLWNhcmQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXN0cmlwZS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZm9ybS9zdHJpcGUtY2FyZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2Utc3RyaXBlLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1mb3JtL3N0cmlwZS1jYXJkLWZvcm0udGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUTNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFckUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDL0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7QUFlckQsTUFBTSxPQUFPLDJCQUEyQjtJQTJCcEMsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVE7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YSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU8sT0FBTztRQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDOzt3SEFwSVEsMkJBQTJCLGtCQStDWixtQkFBbUI7NEdBL0NsQywyQkFBMkIsOEdBUnpCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFVBQVUsRUFBRSx1QkFBdUIsQ0FBQyxVQUFVLENBQUM7U0FDbEQ7S0FDSixtVUM5Qkwsa3RGQXlDQSwydEZEVmdCLGNBQWM7MkZBRWpCLDJCQUEyQjtrQkFidkMsU0FBUzsrQkFDSSx1QkFBdUIsaUJBR2xCLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLHVCQUF1QixDQUFDLFVBQVUsQ0FBQzt5QkFDbEQ7cUJBQ0osY0FDVyxjQUFjOzswQkFpRHJCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CO3dJQTdDcEMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxZQUFZO2dCQUloQixlQUFlO3NCQURyQixTQUFTO3VCQUFDLFlBQVk7Z0JBSWhCLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBHZW5lcmF0ZWRGb3JtR3JvdXAsIG5neEZvcm1HZW5lcmF0b3JGYWN0b3J5IH0gZnJvbSBcIkByZWN1cnN5dmUvbmd4LWZvcm0tZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBuaWNlQW5pbWF0aW9ucyB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQge1xuICAgIFN0cmlwZUNhcmRDdmNFbGVtZW50LFxuICAgIFN0cmlwZUNhcmRFeHBpcnlFbGVtZW50LFxuICAgIFN0cmlwZUNhcmROdW1iZXJFbGVtZW50LFxuICAgIFN0cmlwZUNhcmROdW1iZXJFbGVtZW50T3B0aW9ucyxcbiAgICBTdHJpcGVFbGVtZW50c1xufSBmcm9tIFwiQHN0cmlwZS9zdHJpcGUtanNcIjtcbmltcG9ydCB7IFN0cmlwZVNlcnZpY2UgfSBmcm9tIFwibmd4LXN0cmlwZVwiO1xuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IE5JQ0VfU1RSSVBFX09QVElPTlMgfSBmcm9tIFwiLi4vLi4vbmljZS1zdHJpcGUta2l0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlU3RyaXBlS2l0T3B0aW9ucyB9IGZyb20gXCIuLi8uLi9uaWNlLXN0cmlwZS1raXQub3B0aW9uc1wiO1xuaW1wb3J0IHsgTmljZVN0cmlwZUNhcmRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL2NhcmQtZWxlbWVudC9zdHJpcGUtY2FyZC1lbGVtZW50LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3RyaXBlRm9ybSB9IGZyb20gXCIuL3N0cmlwZS1jYXJkLWZvcm0uZm9ybVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLXN0cmlwZS1jYXJkLWZvcm1cIixcbiAgICB0ZW1wbGF0ZVVybDogXCJzdHJpcGUtY2FyZC1mb3JtLnRlbXBsYXRlLmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcInN0cmlwZS1jYXJkLWZvcm0uc3R5bGUuc2Nzc1wiXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBHZW5lcmF0ZWRGb3JtR3JvdXAsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBuZ3hGb3JtR2VuZXJhdG9yRmFjdG9yeShTdHJpcGVGb3JtKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBhbmltYXRpb25zOiBuaWNlQW5pbWF0aW9uc1xufSlcbmV4cG9ydCBjbGFzcyBOaWNlU3RyaXBlQ2FyZEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dJY29ucyA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZChcImNhcmROdW1iZXJcIilcbiAgICBwdWJsaWMgY2FyZE51bWJlcklucHV0OiBOaWNlU3RyaXBlQ2FyZEVsZW1lbnRDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFwiY2FyZEV4cGlyeVwiKVxuICAgIHB1YmxpYyBjYXJkRXhwaXJ5SW5wdXQ6IE5pY2VTdHJpcGVDYXJkRWxlbWVudENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoXCJjYXJkQ3ZjXCIpXG4gICAgcHVibGljIGNhcmRDdmNJbnB1dDogTmljZVN0cmlwZUNhcmRFbGVtZW50Q29tcG9uZW50O1xuXG4gICAgcHVibGljIGNhcmROdW1iZXJFbGVtZW50OiBTdHJpcGVDYXJkTnVtYmVyRWxlbWVudDtcbiAgICBwdWJsaWMgY2FyZE51bWJlckVycm9yOiBzdHJpbmc7XG4gICAgcHVibGljIGNhcmRFeHBpcnlFbGVtZW50OiBTdHJpcGVDYXJkRXhwaXJ5RWxlbWVudDtcbiAgICBwdWJsaWMgY2FyZEV4cGlyeUVycm9yOiBzdHJpbmc7XG4gICAgcHVibGljIGNhcmRDdmNFbGVtZW50OiBTdHJpcGVDYXJkQ3ZjRWxlbWVudDtcbiAgICBwdWJsaWMgY2FyZEN2Y0Vycm9yOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgc3RyaXBlT3B0aW9uczogU3RyaXBlQ2FyZE51bWJlckVsZW1lbnRPcHRpb25zO1xuXG4gICAgcHJpdmF0ZSBlbGVtZW50czogU3RyaXBlRWxlbWVudHM7XG5cbiAgICBwdWJsaWMgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmROdW1iZXJJbnB1dC5jb21wbGV0ZSAmJlxuICAgICAgICAgICAgdGhpcy5jYXJkRXhwaXJ5SW5wdXQuY29tcGxldGUgJiZcbiAgICAgICAgICAgIHRoaXMuY2FyZEN2Y0lucHV0LmNvbXBsZXRlICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWxpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNhcmRUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zdHJpcGVTZXJ2aWNlLmNyZWF0ZVRva2VuKHRoaXMuY2FyZE51bWJlckVsZW1lbnQsIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuZm9ybUdyb3VwLmdldChcIm5hbWVcIikudmFsdWVcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCh4ID0+IHg/LnRva2VuPy5pZClcbiAgICAgICAgKS50b1Byb21pc2UoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOSUNFX1NUUklQRV9PUFRJT05TKSBwdWJsaWMgb3B0aW9uczogTmljZVN0cmlwZUtpdE9wdGlvbnMsXG4gICAgICAgIHB1YmxpYyBmb3JtR3JvdXA6IEdlbmVyYXRlZEZvcm1Hcm91cDxTdHJpcGVGb3JtPixcbiAgICAgICAgcHJpdmF0ZSBzdHJpcGVTZXJ2aWNlOiBTdHJpcGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc3RyaXBlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlwiLFxuICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICBiYXNlOiB0aGlzLm9wdGlvbnMuc3R5bGluZ1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5zdHJpcGVTZXJ2aWNlLmVsZW1lbnRzKHtcbiAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyBhcyBhbnksXG4gICAgICAgICAgICAgICAgZm9udHM6IHRoaXMub3B0aW9ucz8uZm9udHMgPz8gW11cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5pbml0Q2FyZE51bWJlcigpO1xuICAgICAgICB0aGlzLmluaXRDYXJkRXhwaXJ5KCk7XG4gICAgICAgIHRoaXMuaW5pdENhcmRDdmMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdENhcmROdW1iZXIoKSB7XG4gICAgICAgIHRoaXMuY2FyZE51bWJlckVsZW1lbnQgPSB0aGlzLmVsZW1lbnRzLmNyZWF0ZShcImNhcmROdW1iZXJcIiwge1xuICAgICAgICAgICAgLi4udGhpcy5zdHJpcGVPcHRpb25zLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYXJkTnVtYmVyRWxlbWVudC5vbihcImNoYW5nZVwiLCBldmVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhcmROdW1iZXJFcnJvciA9IGV2ZW50LmVycm9yID8gZXZlbnQuZXJyb3IubWVzc2FnZSA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhcmROdW1iZXJJbnB1dC5pbml0KHRoaXMuY2FyZE51bWJlckVsZW1lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0Q2FyZEV4cGlyeSgpIHtcbiAgICAgICAgdGhpcy5jYXJkRXhwaXJ5RWxlbWVudCA9IHRoaXMuZWxlbWVudHMuY3JlYXRlKFwiY2FyZEV4cGlyeVwiLCB7XG4gICAgICAgICAgICAuLi50aGlzLnN0cmlwZU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhcmRFeHBpcnlFbGVtZW50Lm9uKFwiY2hhbmdlXCIsIGV2ZW50ID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FyZEV4cGlyeUVycm9yID0gZXZlbnQuZXJyb3IgPyBldmVudC5lcnJvci5tZXNzYWdlIDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FyZEV4cGlyeUlucHV0LmluaXQodGhpcy5jYXJkRXhwaXJ5RWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDYXJkQ3ZjKCkge1xuICAgICAgICB0aGlzLmNhcmRDdmNFbGVtZW50ID0gdGhpcy5lbGVtZW50cy5jcmVhdGUoXCJjYXJkQ3ZjXCIsIHtcbiAgICAgICAgICAgIC4uLnRoaXMuc3RyaXBlT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FyZEN2Y0VsZW1lbnQub24oXCJjaGFuZ2VcIiwgZXZlbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYXJkQ3ZjRXJyb3IgPSBldmVudC5lcnJvciA/IGV2ZW50LmVycm9yLm1lc3NhZ2UgOiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYXJkQ3ZjSW5wdXQuaW5pdCh0aGlzLmNhcmRDdmNFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhcmROdW1iZXJFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNhcmROdW1iZXJFbGVtZW50LnVubW91bnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNhcmRFeHBpcnlFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNhcmRFeHBpcnlFbGVtZW50LnVubW91bnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNhcmRDdmNFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNhcmRDdmNFbGVtZW50LnVubW91bnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBwYXRjaE5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcIm5hbWVcIikucGF0Y2hWYWx1ZShuYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFya0FsbEFzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmNhcmRDdmNJbnB1dC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2FyZE51bWJlcklucHV0Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5jYXJkRXhwaXJ5SW5wdXQubWFya0FzVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0WWVhcigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgcmV0dXJuICtkYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKS5zdWJzdHIoLTIpO1xuICAgIH1cbn1cbiIsIjxtYXQtbGlzdCBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiIG5pY2VDb250cm9sU3RhdHVzIGZsb2F0TGFiZWw9XCJhbHdheXNcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgXCJuaWNlX3VpX2tpdC5zdHJpcGUubmFtZV9vbl9jYXJkLmxhYmVsXCIgIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cIiduaWNlX3VpX2tpdC5zdHJpcGUubmFtZV9vbl9jYXJkLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiIG1hdElucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcmVxdWlyZWQvPlxuICAgICAgICAgICAgPGRpdiBtYXRQcmVmaXggY2xhc3M9XCJwbC0yXCIgKm5nSWY9XCJzaG93SWNvbnNcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhZCBmYS11c2VyLWNpcmNsZSBhY2NlbnQtZmdcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgPG1hdC1saXN0LWl0ZW0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWZ1bGwgbWF4LXctZnVsbFwiIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgXCJuaWNlX3VpX2tpdC5zdHJpcGUuY2FyZF9udW1iZXIubGFiZWxcIiAgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBtYXRQcmVmaXggY2xhc3M9XCJwbC0yXCIgKm5nSWY9XCJzaG93SWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFkIGZhLWNyZWRpdC1jYXJkIGFjY2VudC1mZ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxuaWNlLXN0cmlwZS1jYXJkLWVsZW1lbnQgW3BsYWNlaG9sZGVyXT1cIiduaWNlX3VpX2tpdC5zdHJpcGUuY2FyZF9udW1iZXIucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2FyZE51bWJlciByZXF1aXJlZD48L25pY2Utc3RyaXBlLWNhcmQtZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbQHNsaWRlSW5Cb3R0b21dICpuZ0lmPVwiY2FyZE51bWJlckVycm9yXCI+e3sgY2FyZE51bWJlckVycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4IGZsZXgtZnVsbCBtYXgtdy0xLzJcIiBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgZmxvYXRMYWJlbD1cImFsd2F5c1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7IFwibmljZV91aV9raXQuc3RyaXBlLmV4cGlyYXRpb24ubGFiZWxcIiAgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPG5pY2Utc3RyaXBlLWNhcmQtZWxlbWVudCBbcGxhY2Vob2xkZXJdPVwiJ25pY2VfdWlfa2l0LnN0cmlwZS5leHBpcmF0aW9uLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NhcmRFeHBpcnkgcmVxdWlyZWQ+PC9uaWNlLXN0cmlwZS1jYXJkLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgW0BzbGlkZUluQm90dG9tXSAqbmdJZj1cImNhcmRFeHBpcnlFcnJvclwiPnt7IGNhcmRFeHBpcnlFcnJvciB9fTwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleCBmbGV4LWZ1bGwgbWF4LXctMS8yXCIgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiIGZsb2F0TGFiZWw9XCJhbHdheXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57eyBcIm5pY2VfdWlfa2l0LnN0cmlwZS5jdmMubGFiZWxcIiAgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPG5pY2Utc3RyaXBlLWNhcmQtZWxlbWVudCBbcGxhY2Vob2xkZXJdPVwiJ25pY2VfdWlfa2l0LnN0cmlwZS5jdmMucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCIgI2NhcmRDdmNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD48L25pY2Utc3RyaXBlLWNhcmQtZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciBbQHNsaWRlSW5Cb3R0b21dICpuZ0lmPVwiY2FyZEN2Y0Vycm9yXCI+e3sgY2FyZEN2Y0Vycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG48L21hdC1saXN0PlxuIl19