{"version":3,"sources":["src/app/shared/pipes/map/map.pipe.ts","src/app/shared/components/error/error.component.ts","src/app/shared/components/error/error.component.html","node_modules/@angular/material/fesm2022/progress-spinner.mjs","src/app/shared/directives/datum/datum-either.directive.ts","src/app/shared/directives/datum/failure.directive.ts","src/app/shared/directives/datum/datum.directive.ts","src/app/shared/directives/datum/initial.directive.ts","src/app/shared/directives/datum/pending.directive.ts","src/app/shared/directives/datum/success.directive.ts","src/app/shared/directives/datum/datum.module.ts","src/app/shared/utilities/animations.ts","src/app/shared/components/loading/loading.component.ts","src/app/shared/components/loading/loading.component.html","src/app/shared/pipes/map/map-pipe.module.ts","src/app/shared/modules/stripe/stripe-factory.ts","src/app/shared/modules/stripe/stripe-definitions/index.ts","src/app/shared/modules/stripe/stripe-elements/stripe-elements.directive.ts","src/app/shared/modules/stripe/stripe-element.ts","src/app/shared/modules/stripe/stripe-control/stripe-control.directive.ts","src/app/shared/modules/stripe/stripe-material/stripe-material.directive.ts","src/app/shared/modules/stripe/stripe-card/stripe-card.component.ts","src/app/shared/modules/stripe/stripe.module.ts","src/app/shared/pipes/phone.pipe.ts","src/app/shared/components/banner/banner.component.ts","src/app/shared/components/banner/banner.component.html","src/app/shared/components/button/anchor.component.ts","src/app/shared/components/button/button.component.html","src/app/shared/components/button/button.module.ts","src/app/shared/pipes/is-pending.pipe.ts","src/app/shared/components/generic-confirm/generic-confirm.component.ts","src/app/shared/components/generic-confirm/generic-confirm.component.html","src/app/shared/components/modal-header/modal-header.component.ts","src/app/shared/components/modal-header/modal-header.component.html","src/app/shared/components/price-display/price-display.component.ts","src/app/shared/components/price-display/price-display.component.html","src/app/shared/components/price-display/price-display.module.ts","src/app/shared/pipes/display-vehicle-description.pipe.ts","src/app/shared/services/snippet.service.ts","src/app/shared/components/header/header.component.ts","src/app/shared/components/header/header.component.html","src/app/shared/components/error/fourohfour/fourohfour.component.ts","src/app/shared/components/error/fourohfour/fourohfour.component.html","src/app/shared/components/account-setup-modal/account-setup-modal.component.ts","src/app/shared/components/account-setup-modal/account-setup-modal.component.html","src/app/shared/components/small-loader/small-loader.component.ts","src/app/shared/components/small-loader/small-loader.component.html","src/app/shared/shared.module.ts"],"sourcesContent":["import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"map\",\n})\nexport class MapPipe implements PipeTransform {\n /**\n * Removed until https://github.com/angular/angular/issues/21224\n * is resolved.\n */\n // transform(value: T, fn: (v: T) => S): S {\n transform(\n value: T,\n fn: (v: T, ...m: any[]) => S,\n ...extraArgs: any[]\n ): any {\n return fn(value, ...extraArgs);\n }\n}\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n} from \"@angular/core\";\n\nimport { environment } from \"src/environments/environment\";\nimport { notNil } from \"@qqcw/qqsystem-util\";\nimport { OfflineAuthService } from \"src/app/core/services/offline-auth.service\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { log, LogLevels } from \"src/app/core/ngrx/logger\";\nimport { Store } from \"@ngrx/store\";\n\n@Component({\n selector: \"myqq-error\",\n templateUrl: \"./error.component.html\",\n styleUrls: [\"./error.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ErrorComponent implements OnInit {\n @Input()\n title = \"An Unexpected Error Occurred\";\n @Input()\n description?: string;\n @Input()\n error?: any;\n @Input()\n logLevel?: LogLevels;\n\n readonly showErrorDetail = environment.showErrorDetail;\n readonly errorImg = environment.cdnHost + \"/img/doctor-quackals.png\";\n readonly notNil = notNil;\n\n online: BehaviorSubject = new BehaviorSubject(true);\n\n constructor(private offlineAuth: OfflineAuthService, private store$: Store) {}\n\n ngOnInit() {\n this.online = this.offlineAuth.online$;\n this.store$.dispatch(\n log({\n level: this.logLevel ?? LogLevels.WARNING,\n message: this.title,\n data: {\n description: this.description ?? this.title,\n error: this.error,\n },\n actionType: {\n name: \"ERROR_COMPONENT\",\n type: \"FAILURE\",\n namespace: \"MYQQ\",\n },\n })\n );\n }\n}\n","
\n \n

\n {{ (online | async) ? title : \"Offline\" }}\n

\n

\n {{\n (online | async)\n ? description\n : \"We were unable to complete the requested action because you are offline.\n Please reconnect to the Internet and try again.\"\n }}\n

\n \n \n
Error Detail
\n
{{\n      error?.name === \"ValidationError\" ? error?.message : (error | json)\n    }}
\n \n
\n","import * as i0 from '@angular/core';\nimport { InjectionToken, ANIMATION_MODULE_TYPE, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, ViewChild, NgModule } from '@angular/core';\nimport { NgTemplateOutlet, CommonModule } from '@angular/common';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** Injection token to be used to override the default options for `mat-progress-spinner`. */\nconst _c0 = [\"determinateSpinner\"];\nfunction MatProgressSpinner_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 11);\n i0.ɵɵelement(1, \"circle\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"viewBox\", ctx_r0._viewBox());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"stroke-dasharray\", ctx_r0._strokeCircumference(), \"px\")(\"stroke-dashoffset\", ctx_r0._strokeCircumference() / 2, \"px\")(\"stroke-width\", ctx_r0._circleStrokeWidth(), \"%\");\n i0.ɵɵattribute(\"r\", ctx_r0._circleRadius());\n }\n}\nconst MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-progress-spinner-default-options', {\n providedIn: 'root',\n factory: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY() {\n return {\n diameter: BASE_SIZE\n };\n}\n/**\n * Base reference size of the spinner.\n */\nconst BASE_SIZE = 100;\n/**\n * Base reference stroke width of the spinner.\n */\nconst BASE_STROKE_WIDTH = 10;\nlet MatProgressSpinner = /*#__PURE__*/(() => {\n class MatProgressSpinner {\n // TODO: should be typed as `ThemePalette` but internal apps pass in arbitrary strings.\n /**\n * Theme color of the progress spinner. This API is supported in M2 themes only, it\n * has no effect in M3 themes.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.io/guide/theming#using-component-color-variants.\n */\n get color() {\n return this._color || this._defaultColor;\n }\n set color(value) {\n this._color = value;\n }\n constructor(_elementRef, animationMode, defaults) {\n this._elementRef = _elementRef;\n this._defaultColor = 'primary';\n this._value = 0;\n this._diameter = BASE_SIZE;\n this._noopAnimations = animationMode === 'NoopAnimations' && !!defaults && !defaults._forceAnimations;\n this.mode = _elementRef.nativeElement.nodeName.toLowerCase() === 'mat-spinner' ? 'indeterminate' : 'determinate';\n if (defaults) {\n if (defaults.color) {\n this.color = this._defaultColor = defaults.color;\n }\n if (defaults.diameter) {\n this.diameter = defaults.diameter;\n }\n if (defaults.strokeWidth) {\n this.strokeWidth = defaults.strokeWidth;\n }\n }\n }\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this.mode === 'determinate' ? this._value : 0;\n }\n set value(v) {\n this._value = Math.max(0, Math.min(100, v || 0));\n }\n /** The diameter of the progress spinner (will set width and height of svg). */\n get diameter() {\n return this._diameter;\n }\n set diameter(size) {\n this._diameter = size || 0;\n }\n /** Stroke width of the progress spinner. */\n get strokeWidth() {\n return this._strokeWidth ?? this.diameter / 10;\n }\n set strokeWidth(value) {\n this._strokeWidth = value || 0;\n }\n /** The radius of the spinner, adjusted for stroke width. */\n _circleRadius() {\n return (this.diameter - BASE_STROKE_WIDTH) / 2;\n }\n /** The view box of the spinner's svg element. */\n _viewBox() {\n const viewBox = this._circleRadius() * 2 + this.strokeWidth;\n return `0 0 ${viewBox} ${viewBox}`;\n }\n /** The stroke circumference of the svg circle. */\n _strokeCircumference() {\n return 2 * Math.PI * this._circleRadius();\n }\n /** The dash offset of the svg circle. */\n _strokeDashOffset() {\n if (this.mode === 'determinate') {\n return this._strokeCircumference() * (100 - this._value) / 100;\n }\n return null;\n }\n /** Stroke width of the circle in percent. */\n _circleStrokeWidth() {\n return this.strokeWidth / this.diameter * 100;\n }\n static {\n this.ɵfac = function MatProgressSpinner_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatProgressSpinner)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatProgressSpinner,\n selectors: [[\"mat-progress-spinner\"], [\"mat-spinner\"]],\n viewQuery: function MatProgressSpinner_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._determinateCircle = _t.first);\n }\n },\n hostAttrs: [\"role\", \"progressbar\", \"tabindex\", \"-1\", 1, \"mat-mdc-progress-spinner\", \"mdc-circular-progress\"],\n hostVars: 18,\n hostBindings: function MatProgressSpinner_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuemin\", 0)(\"aria-valuemax\", 100)(\"aria-valuenow\", ctx.mode === \"determinate\" ? ctx.value : null)(\"mode\", ctx.mode);\n i0.ɵɵclassMap(\"mat-\" + ctx.color);\n i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\")(\"--mdc-circular-progress-size\", ctx.diameter + \"px\")(\"--mdc-circular-progress-active-indicator-width\", ctx.diameter + \"px\");\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._noopAnimations)(\"mdc-circular-progress--indeterminate\", ctx.mode === \"indeterminate\");\n }\n },\n inputs: {\n color: \"color\",\n mode: \"mode\",\n value: [2, \"value\", \"value\", numberAttribute],\n diameter: [2, \"diameter\", \"diameter\", numberAttribute],\n strokeWidth: [2, \"strokeWidth\", \"strokeWidth\", numberAttribute]\n },\n exportAs: [\"matProgressSpinner\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n decls: 14,\n vars: 11,\n consts: [[\"circle\", \"\"], [\"determinateSpinner\", \"\"], [\"aria-hidden\", \"true\", 1, \"mdc-circular-progress__determinate-container\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"focusable\", \"false\", 1, \"mdc-circular-progress__determinate-circle-graphic\"], [\"cx\", \"50%\", \"cy\", \"50%\", 1, \"mdc-circular-progress__determinate-circle\"], [\"aria-hidden\", \"true\", 1, \"mdc-circular-progress__indeterminate-container\"], [1, \"mdc-circular-progress__spinner-layer\"], [1, \"mdc-circular-progress__circle-clipper\", \"mdc-circular-progress__circle-left\"], [3, \"ngTemplateOutlet\"], [1, \"mdc-circular-progress__gap-patch\"], [1, \"mdc-circular-progress__circle-clipper\", \"mdc-circular-progress__circle-right\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"focusable\", \"false\", 1, \"mdc-circular-progress__indeterminate-circle-graphic\"], [\"cx\", \"50%\", \"cy\", \"50%\"]],\n template: function MatProgressSpinner_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatProgressSpinner_ng_template_0_Template, 2, 8, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(2, \"div\", 2, 1);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(4, \"svg\", 3);\n i0.ɵɵelement(5, \"circle\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(6, \"div\", 5)(7, \"div\", 6)(8, \"div\", 7);\n i0.ɵɵelementContainer(9, 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"div\", 9);\n i0.ɵɵelementContainer(11, 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"div\", 10);\n i0.ɵɵelementContainer(13, 8);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const circle_r2 = i0.ɵɵreference(1);\n i0.ɵɵadvance(4);\n i0.ɵɵattribute(\"viewBox\", ctx._viewBox());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"stroke-dasharray\", ctx._strokeCircumference(), \"px\")(\"stroke-dashoffset\", ctx._strokeDashOffset(), \"px\")(\"stroke-width\", ctx._circleStrokeWidth(), \"%\");\n i0.ɵɵattribute(\"r\", ctx._circleRadius());\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n }\n },\n dependencies: [NgTemplateOutlet],\n styles: [\".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-app-primary))}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatProgressSpinner;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @deprecated Import Progress Spinner instead. Note that the\n * `mat-spinner` selector isn't deprecated.\n * @breaking-change 16.0.0\n */\n// tslint:disable-next-line:variable-name\nconst MatSpinner = MatProgressSpinner;\nlet MatProgressSpinnerModule = /*#__PURE__*/(() => {\n class MatProgressSpinnerModule {\n static {\n this.ɵfac = function MatProgressSpinnerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatProgressSpinnerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatProgressSpinnerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule]\n });\n }\n }\n return MatProgressSpinnerModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, MatProgressSpinner, MatProgressSpinnerModule, MatSpinner };\n","import {\n Directive,\n EmbeddedViewRef,\n Input,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { getEq as getEqEither, isLeft } from \"fp-ts/es6/Either\";\nimport { Eq } from \"fp-ts/es6/Eq\";\nimport { fold, fromNullable } from \"fp-ts/es6/Option\";\nimport { pipe } from \"fp-ts/es6/pipeable\";\nimport { DatumEither, initial } from \"@nll/datum/DatumEither\";\nimport {\n getEq,\n isInitial,\n isPending,\n isRefresh,\n isReplete,\n} from \"@nll/datum/Datum\";\n\ninterface DatumEitherCaseView {\n viewContainerRef: ViewContainerRef;\n templateRef: TemplateRef;\n}\n\nconst objEq: Eq = {\n equals: (a, b) => a === b,\n};\nconst datumEitherEq = getEq(getEqEither(objEq, objEq));\nconst isNil = (t: T | undefined | null): boolean =>\n t === null || t === undefined;\n\n@Directive({\n selector: \"[useDatumEither]\",\n})\nexport class DatumEitherDirective {\n private datum: DatumEither = initial;\n\n initialCases: DatumEitherCaseView[] = [];\n pendingCases: DatumEitherCaseView[] = [];\n failureCases: DatumEitherCaseView[] = [];\n successCases: DatumEitherCaseView[] = [];\n\n mountedCases: DatumEitherCaseView[] = [];\n\n @Input()\n set useDatumEither(datum: DatumEither | undefined | null) {\n if (isNil(datum)) {\n // Many common pipes will return null in awkward situations, cast to initial in those cases\n datum = initial;\n }\n\n // If new and old ADT are different, unmount previous viewRefs\n if (!datumEitherEq.equals(datum, this.datum)) {\n this.mountedCases.forEach(this.removeCaseView);\n }\n\n if (isInitial(datum)) {\n this.initialCases.forEach(this.ensureCaseView);\n this.mountedCases = this.initialCases;\n }\n\n if (isPending(datum)) {\n this.pendingCases.forEach(this.ensureCaseView);\n this.mountedCases = this.pendingCases;\n }\n\n if (isRefresh(datum)) {\n if (isLeft(datum.value)) {\n const context = {\n $implicit: datum.value.left,\n refreshing: true,\n };\n this.failureCases.forEach((cv) => this.ensureCaseView(cv, context));\n this.mountedCases = this.failureCases;\n } else {\n const context = {\n $implicit: datum.value.right,\n refreshing: true,\n };\n this.successCases.forEach((cv) => this.ensureCaseView(cv, context));\n this.mountedCases = this.successCases;\n }\n }\n\n if (isReplete(datum)) {\n if (isLeft(datum.value)) {\n const context = {\n $implicit: datum.value.left,\n refreshing: false,\n };\n this.failureCases.forEach((cv) => this.ensureCaseView(cv, context));\n this.mountedCases = this.failureCases;\n } else {\n const context = {\n $implicit: datum.value.right,\n refreshing: false,\n };\n this.successCases.forEach((cv) => this.ensureCaseView(cv, context));\n this.mountedCases = this.successCases;\n }\n }\n\n this.datum = datum;\n }\n\n registerInitial = (\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef\n ) => this.initialCases.push({ viewContainerRef, templateRef });\n registerPending = (\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef\n ) => this.pendingCases.push({ viewContainerRef, templateRef });\n registerFailure = (\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef\n ) => this.failureCases.push({ viewContainerRef, templateRef });\n registerSuccess = (\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef\n ) => this.successCases.push({ viewContainerRef, templateRef });\n\n ensureCaseView = (caseView: DatumEitherCaseView, context?: any) => {\n pipe(\n fromNullable(>caseView.viewContainerRef.get(0)),\n fold(\n () => this.createCaseView(caseView, context),\n (vr) => this.updateViewRef(vr, context)\n )\n );\n };\n\n createCaseView = (caseView: DatumEitherCaseView, context?: any) => {\n caseView.viewContainerRef.createEmbeddedView(caseView.templateRef, context);\n };\n\n removeCaseView = (caseView: DatumEitherCaseView) =>\n caseView.viewContainerRef.clear();\n\n updateViewRef = (viewRef: EmbeddedViewRef, context?: any) => {\n if (context) {\n Object.keys(context).forEach((key) => {\n viewRef.context[key] = context[key];\n });\n viewRef.detectChanges();\n }\n };\n}\n","import {\n Directive,\n Host,\n Optional,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { DatumEitherDirective } from \"./datum-either.directive\";\n\n@Directive({\n selector: \"[onFailure]\",\n})\nexport class FailureDirective {\n constructor(\n readonly viewContainer: ViewContainerRef,\n readonly templateRef: TemplateRef,\n @Optional() @Host() readonly datumEitherDirective: DatumEitherDirective\n ) {\n if (!!datumEitherDirective) {\n datumEitherDirective.registerFailure(viewContainer, templateRef);\n } else {\n console.warn(\n \"FailureDirective instantiated without parent DatumEitherDirective\"\n );\n }\n }\n}\n","import {\n Directive,\n EmbeddedViewRef,\n Input,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { Eq } from \"fp-ts/es6/Eq\";\nimport { fold, fromNullable } from \"fp-ts/es6/Option\";\nimport { pipe } from \"fp-ts/es6/pipeable\";\nimport {\n getEq,\n Datum,\n initial,\n isInitial,\n isPending,\n isRefresh,\n isReplete,\n} from \"@nll/datum/Datum\";\n\ninterface DatumCaseView {\n viewContainerRef: ViewContainerRef;\n templateRef: TemplateRef;\n}\n\nconst objEq: Eq = {\n equals: (a, b) => a === b,\n};\nconst datumEq = getEq(objEq);\nconst isNil = (t: T | undefined | null): boolean =>\n t === null || t === undefined;\n\n@Directive({\n selector: \"[useDatum]\",\n})\nexport class DatumDirective {\n private datum: Datum = initial;\n\n initialCases: DatumCaseView[] = [];\n pendingCases: DatumCaseView[] = [];\n refreshCases: DatumCaseView[] = [];\n repleteCases: DatumCaseView[] = [];\n\n mountedCases: DatumCaseView[] = [];\n\n @Input()\n set useDatum(datum: Datum | undefined | null) {\n if (isNil(datum)) {\n // Many common pipes will return null in awkward situations, cast to initial in those cases\n datum = initial;\n }\n\n // If new and old ADT are different, unmount previous viewRefs\n if (!datumEq.equals(datum, this.datum)) {\n this.mountedCases.forEach(this.removeCaseView);\n }\n\n if (isInitial(datum)) {\n this.initialCases.forEach(this.ensureCaseView);\n this.mountedCases = this.initialCases;\n }\n\n if (isPending(datum)) {\n this.pendingCases.forEach(this.ensureCaseView);\n this.mountedCases = this.pendingCases;\n }\n\n if (isRefresh(datum)) {\n const context = {\n $implicit: datum.value,\n refreshing: true,\n };\n this.refreshCases.forEach((cv) => this.ensureCaseView(cv, context));\n this.mountedCases = this.refreshCases;\n }\n\n if (isReplete(datum)) {\n const context = {\n $implicit: datum.value,\n refreshing: false,\n };\n this.repleteCases.forEach((cv) => this.ensureCaseView(cv, context));\n this.mountedCases = this.repleteCases;\n }\n\n this.datum = datum;\n }\n\n registerInitial = (\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef\n ) => this.initialCases.push({ viewContainerRef, templateRef });\n registerPending = (\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef\n ) => this.pendingCases.push({ viewContainerRef, templateRef });\n registerRefresh = (\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef\n ) => this.refreshCases.push({ viewContainerRef, templateRef });\n registerReplete = (\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef\n ) => this.repleteCases.push({ viewContainerRef, templateRef });\n\n ensureCaseView = (caseView: DatumCaseView, context?: any) => {\n pipe(\n fromNullable(>caseView.viewContainerRef.get(0)),\n fold(\n () => this.createCaseView(caseView, context),\n (vr) => this.updateViewRef(vr, context)\n )\n );\n };\n\n createCaseView = (caseView: DatumCaseView, context?: any) => {\n caseView.viewContainerRef.createEmbeddedView(caseView.templateRef, context);\n };\n\n removeCaseView = (caseView: DatumCaseView) =>\n caseView.viewContainerRef.clear();\n\n updateViewRef = (viewRef: EmbeddedViewRef, context?: any) => {\n if (context) {\n Object.keys(context).forEach((key) => {\n viewRef.context[key] = context[key];\n });\n viewRef.detectChanges();\n }\n };\n}\n","import {\n Directive,\n Host,\n Optional,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { DatumEitherDirective } from \"./datum-either.directive\";\nimport { DatumDirective } from \"./datum.directive\";\n\n@Directive({\n selector: \"[onInitial]\",\n})\nexport class InitialDirective {\n constructor(\n readonly viewContainer: ViewContainerRef,\n readonly templateRef: TemplateRef,\n @Optional() @Host() readonly datumEitherDirective: DatumEitherDirective,\n @Optional() @Host() readonly datumDirective: DatumDirective\n ) {\n if (!!datumEitherDirective) {\n datumEitherDirective.registerInitial(viewContainer, templateRef);\n } else if (!!datumDirective) {\n datumDirective.registerInitial(viewContainer, templateRef);\n } else {\n console.warn(\n \"InitialDirective instantiated without parent DatumDirective or DatumEitherDirective\"\n );\n }\n }\n}\n","import {\n Directive,\n Host,\n Optional,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { DatumEitherDirective } from \"./datum-either.directive\";\nimport { DatumDirective } from \"./datum.directive\";\n\n@Directive({\n selector: \"[onPending]\",\n})\nexport class PendingDirective {\n constructor(\n readonly viewContainer: ViewContainerRef,\n readonly templateRef: TemplateRef,\n @Optional() @Host() readonly datumEitherDirective: DatumEitherDirective,\n @Optional() @Host() readonly datumDirective: DatumDirective\n ) {\n if (!!datumEitherDirective) {\n datumEitherDirective.registerPending(viewContainer, templateRef);\n } else if (!!datumDirective) {\n datumDirective.registerPending(viewContainer, templateRef);\n } else {\n console.warn(\n \"PendingDirective instantiated without parent DatumDirective or DatumEitherDirective\"\n );\n }\n }\n}\n","import {\n Directive,\n Host,\n Optional,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { DatumEitherDirective } from \"./datum-either.directive\";\n\n@Directive({\n selector: \"[onSuccess]\",\n})\nexport class SuccessDirective {\n constructor(\n readonly viewContainer: ViewContainerRef,\n readonly templateRef: TemplateRef,\n @Optional() @Host() readonly datumEitherDirective: DatumEitherDirective\n ) {\n if (!!datumEitherDirective) {\n datumEitherDirective.registerSuccess(viewContainer, templateRef);\n } else {\n console.warn(\n \"SuccessDirective instantiated without parent DatumEitherDirective\"\n );\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { DatumEitherDirective } from \"./datum-either.directive\";\nimport { DatumDirective } from \"./datum.directive\";\nimport { FailureDirective } from \"./failure.directive\";\nimport { InitialDirective } from \"./initial.directive\";\nimport { PendingDirective } from \"./pending.directive\";\nimport { RefreshDirective } from \"./refresh.directive\";\nimport { RepleteDirective } from \"./replete.directive\";\nimport { SuccessDirective } from \"./success.directive\";\n\nconst DIRECTIVES = [\n DatumDirective,\n DatumEitherDirective,\n InitialDirective,\n PendingDirective,\n RefreshDirective,\n RepleteDirective,\n FailureDirective,\n SuccessDirective,\n];\n\n@NgModule({\n declarations: DIRECTIVES,\n imports: [],\n exports: DIRECTIVES,\n})\nexport class DatumModule {}\n","import { trigger, transition, style, animate } from \"@angular/animations\";\n\nexport const fadeInOut = (name: string, milliseconds: number = 250) =>\n trigger(name, [\n transition(\":enter\", [\n style({ opacity: 0 }),\n animate(`${milliseconds}ms`, style({ opacity: 1 })),\n ]),\n transition(\":leave\", [animate(`${milliseconds}ms`, style({ opacity: 0 }))]),\n ]);\n\nexport const rollDownUp = (name: string, milliseconds: number = 250) =>\n trigger(name, [\n transition(\":enter\", [\n style({ height: \"0px\", opacity: 0 }),\n animate(`${milliseconds}ms`, style({ height: \"*\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n animate(`${milliseconds}ms`, style({ height: \"0px\", opacity: 0 })),\n ]),\n ]);\n\nexport const scaleInOut = (name: string, milliseconds: number = 250) =>\n trigger(name, [\n transition(\":enter\", [\n style({ transform: \"scale(0.5)\", opacity: 0 }),\n animate(\n `${milliseconds}ms`,\n style({ transform: \"scale(1)\", opacity: 1 })\n ),\n ]),\n transition(\":leave\", [\n animate(\n `${milliseconds}ms`,\n style({ transform: \"scale(0.5)\", opacity: 0 })\n ),\n ]),\n ]);\n","import { Component, ChangeDetectionStrategy } from \"@angular/core\";\nimport { fadeInOut } from \"../../utilities/animations\";\n\n@Component({\n selector: \"myqq-loading\",\n templateUrl: \"./loading.component.html\",\n styleUrls: [\"./loading.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [fadeInOut(\"fadeInOut\", 350)],\n})\nexport class LoadingComponent {\n constructor() {}\n}\n","
\n \n \n
\n","import { NgModule } from \"@angular/core\";\n\nimport { MapPipe } from \"./map.pipe\";\n\n@NgModule({\n imports: [],\n exports: [MapPipe],\n declarations: [MapPipe],\n providers: [],\n})\nexport class MapPipeModule {}\n","import { InjectionToken } from \"@angular/core\";\nimport {\n ElementsOptions,\n ElementType,\n ElementOptions,\n} from \"./stripe-definitions/element\";\nimport { StripeJS, Stripe, StripeOptions } from \"./stripe-definitions\";\n\nexport interface StripeConfig {\n publicKey: string;\n options?: StripeOptions;\n elementsOptions?: ElementsOptions;\n elementOptions?: ElementOptions;\n}\n\nexport const StripeConfigToken = new InjectionToken(\n \"StripeConfig\"\n);\n\n/** Retrives the global StripeJS object */\nexport function getStripeJS(): StripeJS {\n return !!window ? (window as any).Stripe : undefined;\n}\n\n/** Stripe.js v3 script loader */\nexport function loadStripeJS(): Promise {\n // Verifies whenever stripejs has already being loaded\n const StripeJS = getStripeJS();\n\n // Returns the existing stripejs instance or load the script\n return StripeJS\n ? Promise.resolve(StripeJS)\n : new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://js.stripe.com/v3/\";\n script.type = \"text/javascript\";\n script.defer = true;\n script.async = true;\n\n script.onerror = () => {\n if (window?.navigator?.onLine) {\n reject(new Error(\"Unable to load StripeJS\"));\n } else {\n // If they are offline when trying to load stripe,\n // they will have to reload the app to continue e.g.for keycloak init,\n // so this will be handled on the next reload\n resolve({} as StripeJS);\n }\n };\n script.onload = () => resolve(getStripeJS());\n\n document.body.appendChild(script);\n });\n}\n\n/** Instantiates a Stripe istance accoding to the provided options */\nexport function stripeFactory(config: StripeConfig): Stripe {\n const StripeJS = getStripeJS();\n if (!StripeJS) {\n throw new Error(\"StripeJS loading failed\");\n }\n\n if (!config || typeof config.publicKey !== \"string\") {\n throw new Error(\"A valid publicKey must be provided\");\n }\n\n return StripeJS(config.publicKey, config.options);\n}\n","import {\n PaymentIntentData,\n CardPaymentIntentData,\n IdealPaymentIntentData,\n IbanPaymentIntentData,\n PaymentIntentOptions,\n PaymentIntentResult,\n} from \"./payment-intent\";\nimport {\n TokenData,\n BankTokenData,\n PiiTokenData,\n IbanTokenData,\n TokenResult,\n} from \"./token\";\nimport { PaymentMethodData, PaymentMethodResult } from \"./payment-method\";\nimport { Elements, ElementsOptions, Element } from \"./element\";\nimport { CheckoutOptions, CheckoutResult } from \"./checkout\";\nimport { SourceData, SourceResult } from \"./source\";\nimport { PaymentOptions } from \"./payment-request\";\n\nexport interface StripeOptions {\n /**\n * For usage with Connect only.\n * Specifying a connected account ID (e.g., acct_24BFMpJ1svR5A89k) allows you to perform actions on behalf of that account.\n */\n stripeAccount?: string;\n /**\n * The IETF language tag used to globally configure localization in Stripe.js.\n * Setting the locale here will localize error strings for all Stripe.js methods.\n * It will also configure the locale for Elements and Checkout.\n * @default 'auto' (Stripe detects the locale of the browser).\n * Supported values depend on which features you are using.\n * Checkout supports a slightly different set of locales than the rest of Stripe.js.\n * If you are planning on using Checkout, make sure to use a value that it supports.\n */\n locale?: \"auto\" | string;\n}\n\nexport interface StripeJS {\n /**\n * Initialization function for StripeJS\n * @see https://stripe.com/docs/js/initializing\n * @param key - The public key of the user\n * @param [options] - Any options to configure StripeJS\n * @return StripeJS instance\n */\n (publicKey: string, options?: StripeOptions): Stripe;\n\n /** StripeJS version number */\n version: number;\n}\n\nexport abstract class Stripe {\n /**\n * Create an instance of elements which can be used to manage a group of StripeJS elements\n * @see https://stripe.com/docs/js/elements_object\n * @param [options] - Configuration options for the elements object\n * @return an instance of `Elements` to manage a group of elements\n */\n abstract elements(options?: ElementsOptions): Elements;\n\n /**\n * to redirect your customers to Checkout, a Stripe-hosted page to securely collect payment information.\n * When the customer completes their purchase, they are redirected back to your website.\n * @see https://stripe.com/docs/js/checkout/redirect_to_checkout\n * @param options - Configuration options for the redirection\n * @return a Promise which resolves with a result object.\n * If this method fails, the result object will contain a localized error message in the error.message field.\n */\n abstract redirectToCheckout(\n options?: CheckoutOptions\n ): Promise;\n\n /** -- TOKEN & SOURCES ------\n * The Charges API is the fastest way to accept U.S. and Canadian payments for your startup or prototype.\n * Stripe.js provides the following methods to create Tokens and Sources, which are part of the Charges API.\n * To accept payments globally, use the Payment Intents API instead.\n * @see https://stripe.com/docs/js/tokens_sources\n * To convert information collected by Elements into a single-use token that you safely pass to your server\n * to use in an API call\n * @param element - The element from which the data should be extracted\n * @param [data] - an object containing additional payment information you might have collected\n * @return an object containing the generated token or an error\n */\n abstract createToken(\n element: Element<\"card\" | \"cardNumber\" | \"cardCvc\">,\n data?: TokenData\n ): Promise;\n abstract createToken(\n element: Element<\"iban\">,\n data?: IbanTokenData\n ): Promise;\n abstract createToken(\n type: \"bank_account\",\n data?: BankTokenData\n ): Promise;\n abstract createToken(type: \"pii\", data?: PiiTokenData): Promise;\n\n /**\n * Convert payment information collected by Elements into a Source object that you safely pass to your server to use in an API call\n * NOTE: You cannot pass raw card information without an `Element`!\n * @see https://stripe.com/docs/js/tokens_sources/create_source\n * @param element - The element from which information should be extracted\n * @param data - An object containing the type of Source you want to create and any additional payment source information\n * @return an object containing the generated Source or an error\n */\n abstract createSource(\n element: Element<\"card\" | \"cardNumber\" | \"cardCvc\" | \"iban\">,\n sourceData?: SourceData\n ): Promise;\n abstract createSource(options: SourceData): Promise;\n\n /**\n * Retrieve a Source using its unique ID and client secret.\n * @see https://stripe.com/docs/js/tokens_sources/retrieve_source\n * @param id - Unique identifier of the source\n * @param client_secret - A secret available to the web client that created the Source\n * @return an object containing the generated Source or an error\n */\n abstract retrieveSource({\n id,\n client_secret,\n }: {\n id: string;\n client_secret: string;\n }): Promise;\n\n /** -- PAYMENT INTENTS ------\n * Accept global payments online with the Payment Intents APIs.\n * For step-by-step instructions on using the Payment Intents APIs, see the accept a payment guide.\n * The following Stripe.js methods are available to use as part of your integration.\n * @see https://stripe.com/docs/js/payment_intents\n * Use when the customer submits your payment form.\n * When called, it will confirm the PaymentIntent with data you provide and carry out 3DS or other next actions if they are required.\n * @see https://stripe.com/docs/js/payment_intents/confirm_card_payment\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data Data to be sent with the request.\n * @param options An options object to control the behavior of this method.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmCardPayment(\n clientSecret: string,\n data?: PaymentIntentData,\n options?: PaymentIntentOptions\n ): Promise;\n\n /**\n * Use with payment data from an Element by passing a card or cardNumber Element.\n * The new PaymentMethod will be created with data collected by the Element and will be used to confirm the PaymentIntent.\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data an object to confirm using data collected by a card or cardNumber Element.\n * @param options An options object to control the behavior of this method.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmCardPayment(\n clientSecret: string,\n data?: CardPaymentIntentData,\n options?: PaymentIntentOptions\n ): Promise;\n\n /** Use in the iDEAL Payments with Payment Methods flow when the customer submits your payment form.\n * When called, it will confirm the PaymentIntent with data you provide, and it will automatically redirect the customer to the authorize the transaction.\n * Once authorization is complete, the customer will be redirected back to your specified return_url.\n * @see https://stripe.com/docs/js/payment_intents/confirm_ideal_payment\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data Data to be sent with the request.\n * @param options An options object to control the behavior of this method.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmIdealPayment(\n clientSecret: string,\n data?: PaymentIntentData,\n options?: PaymentIntentOptions\n ): Promise;\n\n /**\n * Create and attach a new PaymentMethod by passing an idealBank Element.\n * The new PaymentMethod will be created with the bank code collected by the Element and will be used to confirm the PaymentIntent.\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data Pass an object to confirm using data collected by an idealBank Element.\n * @param options An options object to control the behavior of this method.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmIdealPayment(\n clientSecret: string,\n data?: IdealPaymentIntentData,\n options?: PaymentIntentOptions\n ): Promise;\n\n /**\n * Use in the SEPA Direct Debit Payments with Payment Methods flow when the customer submits your payment form.\n * When called, it will confirm the PaymentIntent with data you provide.\n * https://stripe.com/docs/js/payment_intents/confirm_sepa_debit_payment\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data Data to be sent with the request.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmSepaDebitPayment(\n clientSecret: string,\n data?: PaymentIntentData\n ): Promise;\n\n /**\n * Create and attach a new PaymentMethod by passing an iban Element.\n * The new PaymentMethod will be created with the data collected by the Element and will be used to confirm the PaymentIntent.\n * Additionally, to create a SEPA Direct Debit PaymentMethod, you are required to collect and include the customer’s name and email address.\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data Pass an object to confirm the payment using data collected by an iban Element.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmSepaDebitPayment(\n clientSecret: string,\n data?: IbanPaymentIntentData\n ): Promise;\n\n /** Use in the Payment Intents API manual confirmation flow to handle a PaymentIntent with the requires_action status.\n * It will throw an error if the PaymentIntent has a different status.\n * @see https://stripe.com/docs/js/payment_intents/handle_card_action\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract handleCardAction(clientSecret: string): Promise;\n\n /**\n * Use to convert payment information collected by elements into a PaymentMethod object that you safely pass to your server to use in an API call.\n * @see https://stripe.com/docs/js/payment_intents/create_payment_method\n * @param data the payment method data object\n * @return an object containing the generated PaymentMethod or an error\n */\n abstract createPaymentMethod(\n data: PaymentMethodData\n ): Promise;\n\n /**\n * Retrieve a PaymentIntent using its client secret.\n * @see https://stripe.com/docs/js/payment_intents/retrieve_payment_intent\n * @param clientSecret the client secret\n * @return an object containing the retrived PaymentIntent or an error\n */\n abstract retrievePaymentIntent(\n clientSecret: string\n ): Promise;\n\n /** -- SETUP INTENTS ------\n * Use the Setup Intents APIs to save a card and charge it later.\n * @see https://stripe.com/docs/js/setup_intents\n * Use in the Setup Intents API flow when the customer submits your payment form.\n * When called, it will confirm the SetupIntent with data you provide and carry out 3DS or other next actions if they are required.\n * @see https://stripe.com/docs/js/setup_intents/confirm_card_setup\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data Data to be sent with the request.\n * @param options An options object to control the behavior of this method.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmCardSetup(\n clientSecret: string,\n data?: PaymentIntentData,\n options?: PaymentIntentOptions\n ): Promise;\n\n /**\n * Use with payment data from an Element by passing a card or cardNumber Element.\n * The new PaymentMethod will be created with data collected by the Element and will be used to confirm the SetupIntent.\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data an object to confirm using data collected by a card or cardNumber Element.\n * @param options An options object to control the behavior of this method.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmCardSetup(\n clientSecret: string,\n data?: CardPaymentIntentData,\n options?: PaymentIntentOptions\n ): Promise;\n\n /**\n * Use in the SEPA Direct Debit with Setup Intents flow when the customer submits your payment form.\n * When called, it will confirm the SetupIntent with data you provide.\n * @see https://stripe.com/docs/js/setup_intents/confirm_sepa_debit_setup\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data Data to be sent with the request.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmSepaDebitSetup(\n clientSecret: string,\n data?: PaymentIntentData\n ): Promise;\n\n /**\n * Create and attach a new PaymentMethod by passing an iban Element.\n * The new PaymentMethod will be created with the data collected by the Element and will be used to confirm the SetupIntent.\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @param data Pass an object to confirm the payment using data collected by an iban Element.\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract confirmSepaDebitSetup(\n clientSecret: string,\n data?: IbanPaymentIntentData\n ): Promise;\n\n /**\n * Retrieve a SetupIntent using its client secret.\n * @see https://stripe.com/docs/js/setup_intents/retrieve_setup_intent\n * @param client_secret - A secret available to the web client that created the PaymentIntent\n * @return an object containing the generated PaymentIntent or an error\n */\n abstract retrieveSetupIntent(\n clientSecret: string\n ): Promise;\n\n /**\n * Create a PaymentRequest object. Creating a PaymentRequest requires that you configure it with an options object.\n * In Safari uses Apple Pay, and in other browsers it uses the Payment Request API standard.\n * @see https://stripe.com/docs/js/payment_request/createPaymentMethod\n * @param options payment request option\n * @return an object containing the generated PaymentRequest\n */\n abstract paymentRequest(options: PaymentOptions): PaymentRequest;\n}\n","import {\n Directive,\n OnInit,\n OnChanges,\n SimpleChanges,\n Input,\n Inject,\n} from \"@angular/core\";\nimport {\n Elements,\n Element,\n ElementType,\n ElementOptions,\n} from \"../stripe-definitions/element\";\nimport { StripeConfig, StripeConfigToken } from \"../stripe-factory\";\nimport { Stripe } from \"../stripe-definitions\";\n\n@Directive({\n selector: \"myqq-stripe-elements, [StripeElements]\",\n exportAs: \"StripeElements\",\n})\nexport class StripeElements implements OnInit, OnChanges, Elements {\n @Input() locale: string;\n\n public elements: Elements;\n\n constructor(\n readonly stripe: Stripe,\n @Inject(StripeConfigToken) private config: StripeConfig\n ) {}\n\n // Implements Elements functions\n\n public create(\n elementType: T,\n options?: ElementOptions\n ): Element {\n return this.elements && this.elements.create(elementType, options);\n }\n\n public getElement(type: T): Element {\n return this.elements.getElement(type);\n }\n\n ngOnInit() {\n const options = { ...this.config.elementsOptions, locale: this.locale };\n\n this.elements = this.stripe.elements(options);\n }\n\n ngOnChanges(_: SimpleChanges) {\n this.elements && this.ngOnInit();\n }\n}\n","import {\n OnInit,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n ElementRef,\n Output,\n EventEmitter,\n Directive,\n DoCheck,\n} from \"@angular/core\";\n\nimport {\n Element,\n ElementType,\n ElementOptions,\n ChangeEventObject,\n} from \"./stripe-definitions/element\";\nimport { StripeError } from \"./stripe-definitions/error\";\nimport { StripeElements } from \"./stripe-elements\";\nimport { StripeConfig } from \"./stripe-factory\";\n\n/** StripeElement types */\nexport type StripeElementType = Exclude;\n\nconst isFunction = (fn: unknown): fn is Function => typeof fn === \"function\";\n\n/**\n * Abstract generic class turning a StripeElement into an Angular component with basic features\n * To be used as the base class for all the Stripe related specific components: StripeCard...\n */\n@Directive()\nexport abstract class StripeElementDirective\n implements OnInit, OnChanges, OnDestroy, DoCheck {\n constructor(\n readonly elementType: T,\n private elements: StripeElements,\n private config: StripeConfig,\n private ref: ElementRef\n ) {}\n\n /**\n * Implement this getter to provide component specific options during element creation and update\n */\n protected abstract get options(): ElementOptions;\n\n /** The stripe element */\n public element: Element;\n\n /** The latest change value */\n public value: ChangeEventObject;\n\n /** True whenever the element is fully loaded */\n public ready = false;\n\n /** True whenever the element is focused */\n public focused: boolean;\n\n /** True whenever the element is disabled */\n public disabled: boolean;\n\n public locale: string;\n\n /** True whenever the element is empty */\n public get empty(): boolean {\n return !this.value || this.value.empty;\n }\n\n /** True whenever the element is complete and valid */\n public get complete(): boolean {\n return !!this.value && this.value.complete;\n }\n\n /** The StripeError or null */\n public get error(): StripeError | null {\n return (!!this.value && this.value.error) || null;\n }\n\n ngOnInit() {\n // Keeps track of the current Elements locale\n this.locale = this.elements.locale;\n\n // Resets the local variables\n this.focused = this.disabled = this.value = undefined;\n\n // Creates the requested Stripe element\n this.element = this.elements.create(this.elementType, {\n ...this.config.elementOptions,\n ...this.options,\n });\n\n // Hooks on the element's events\n this.element.on(\"ready\", (value) => {\n this.ready = true;\n this.readyChange.emit(value);\n });\n this.element.on(\"focus\", (value) => {\n this.focused = true;\n this.focusChange.emit(value);\n });\n this.element.on(\"blur\", (value) => {\n this.focused = false;\n this.blurChange.emit(value);\n });\n this.element.on(\"change\", (value: ChangeEventObject) =>\n this.valueChange.emit((this.value = value))\n );\n\n // Mounts the element on the DOM\n this.element.mount(this.ref.nativeElement);\n }\n\n ngOnChanges(_: SimpleChanges) {\n // Updates the element on input changes\n this.update(this.options);\n }\n\n ngDoCheck() {\n // Whenever the StripeElements locale has changed...\n if (this.locale !== this.elements.locale) {\n // Disposed of the current element\n this.ngOnDestroy();\n // Creates a ne element\n this.ngOnInit();\n // Updates the locale\n this.locale = this.elements.locale;\n }\n }\n\n ngOnDestroy() {\n // Resets the ready flag\n this.ready = false;\n // Disposes of the element\n if (typeof this.element?.destroy === \"function\") {\n this.element.destroy();\n }\n }\n\n /** Updates the element */\n public update(options: ElementOptions) {\n if (!this.element) {\n return;\n }\n\n // Ensures to correctly reflect the disabled status\n if (\"disabled\" in options) {\n this.disabled = options.disabled;\n }\n\n // Updates the element\n this.element.update(options);\n }\n\n /** Focus the element */\n public focus() {\n if (isFunction(this.element?.focus)) {\n this.element.focus();\n }\n }\n\n /** Blurs the element */\n public blur() {\n if (isFunction(this.element?.blur)) {\n this.element.blur();\n }\n }\n\n /** Clears the element */\n public clear() {\n if (isFunction(this.element?.clear)) {\n this.element.clear();\n }\n }\n\n /** Emits when fully loaded */\n // tslint:disable-next-line\n @Output(\"ready\")\n readyChange = new EventEmitter();\n\n /** Emits when focused */\n // tslint:disable-next-line\n @Output(\"focus\")\n focusChange = new EventEmitter();\n\n /** Emits when blurred */\n // tslint:disable-next-line\n @Output(\"blur\")\n blurChange = new EventEmitter();\n\n /** Emits on status changes */\n // tslint:disable-next-line\n @Output(\"change\")\n valueChange = new EventEmitter>();\n}\n","import { Directive, forwardRef } from \"@angular/core\";\nimport {\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n AbstractControl,\n ControlValueAccessor,\n Validator,\n ValidationErrors,\n} from \"@angular/forms\";\nimport { StripeElementDirective } from \"../stripe-element\";\n\n/**\n * Bridges the StripeElementDirective with the Angular's form API implementing both a ControlValueAccessor\n * and a sync Validator enabling the use with FormControl\n */\n@Directive({\n selector:\n \"myqq-stripe-card[formControl], myqq-stripe-card[formControlName]\\\n myqq-stripe-card-number[formControl], myqq-stripe-card-number[formControlName]\\\n myqq-stripe-card-expiry[formControl], myqq-stripe-card-expiry[formControlName]\\\n myqq-stripe-card-cvc[formControl], myqq-stripe-card-cvc[formControlName]\\\n myqq-stripe-iban[formControl], myqq-stripe-iban[formControlName]\\\n myqq-stripe-ideal[formControl], myqq-stripe-ideal[formControlName]\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StripeControl),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => StripeControl),\n multi: true,\n },\n ],\n})\nexport class StripeControl implements ControlValueAccessor, Validator {\n constructor(readonly element: StripeElementDirective) {}\n\n /**\n * Called by the forms API to write to the view when programmatic changes from model to view are requested.\n * NOTE: Only clearing the control is allowed\n */\n writeValue(value: any): void {\n !value && this.element.clear();\n }\n\n /**\n * Registers a callback function that is called when the control's value changes in the UI.\n * The value passed along the FormControl is the stripe Element instance to be used in the\n * payment_method object to setup or confirm the payment.\n */\n registerOnChange(fn: (_: any) => void): void {\n this.element.valueChange.subscribe((value) =>\n fn(value.complete ? this.element.element : null)\n );\n }\n\n /** Registers a callback function is called by the forms API on initialization to update the form model on blur. */\n registerOnTouched(fn: () => void): void {\n this.element.blurChange.subscribe(() => fn());\n }\n\n /**\n * Function that is called by the forms API when the control status changes to or from 'DISABLED'.\n * Depending on the status, it enables or disables the appropriate DOM element.\n */\n setDisabledState(disabled: boolean): void {\n this.element.update({ disabled });\n }\n\n /** Performs synchronous validation against the provided control. */\n validate(_: AbstractControl): ValidationErrors | null {\n const errorType = this.element.error && this.element.error.type;\n\n return errorType ? { [errorType]: true } : null;\n }\n}\n","import { Directive, forwardRef } from \"@angular/core\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { NgControl } from \"@angular/forms\";\nimport { StripeElementDirective } from \"../stripe-element\";\nimport { Observable, merge } from \"rxjs\";\n\n/**\n * MatFormFieldControl implementation for StripeElementDirective\n */\n@Directive({\n selector: \"[matStripe]\",\n host: { class: \"myqq-stripe-material\" },\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: forwardRef(() => StripeMaterialDirective),\n },\n ],\n})\nexport class StripeMaterialDirective implements MatFormFieldControl {\n constructor(readonly element: StripeElementDirective) {\n this.stateChanges = merge(\n element.readyChange,\n element.focusChange,\n element.blurChange,\n element.valueChange\n );\n }\n\n /** The value of the control. */\n get value(): any | null {\n return this.element.value || null;\n }\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n get focused(): boolean {\n return this.element.focused;\n }\n\n /** Whether the control is empty. */\n get empty(): boolean {\n return !this.element.empty;\n }\n\n /** Whether the control is disabled. */\n get disabled(): boolean {\n return this.element.disabled;\n }\n\n /** Whether the `MatFormField` label should try to float. */\n get shouldLabelFloat(): boolean {\n return true;\n }\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is in an error state. */\n get errorState(): boolean {\n const value = this.element.value;\n return !!value && !!value.error;\n }\n\n /** Sets the list of element IDs that currently describe this control. */\n setDescribedByIds(_: string[]): void {}\n\n /** Handles a click on the control's container. */\n onContainerClick(_: MouseEvent): void {\n this.element.focus();\n }\n}\n","import {\n Component,\n Inject,\n forwardRef,\n Input,\n ElementRef,\n} from \"@angular/core\";\nimport { coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { IconStyle, CardElementOptions } from \"../stripe-definitions/element\";\nimport { StripeConfig, StripeConfigToken } from \"../stripe-factory\";\nimport { StripeElements } from \"../stripe-elements\";\nimport { StripeElementDirective } from \"../stripe-element\";\n\n/** Stripe Card Element for Angular */\n@Component({\n selector: \"myqq-stripe-card\",\n template: \"\",\n providers: [\n {\n provide: StripeElementDirective,\n useExisting: forwardRef(() => StripeCard),\n },\n ],\n})\nexport class StripeCard extends StripeElementDirective<\"card\"> {\n constructor(\n elements: StripeElements,\n @Inject(StripeConfigToken) config: StripeConfig,\n ref: ElementRef\n ) {\n super(\"card\", elements, config, ref);\n }\n\n /** Card specific options */\n protected get options(): CardElementOptions {\n return {\n disabled: this.disabled,\n hidePostalCode: this.hidePostalCode,\n hideIcon: this.hideIcon,\n iconStyle: this.iconStyle,\n style: {\n base: {\n fontSize: \"16px\",\n },\n },\n };\n }\n\n /** The brand of the Card */\n get brand(): string {\n return \"\";\n }\n\n /** Disables the Card control */\n @Input(\"disabled\") set disableSetter(value: boolean) {\n this.disabled = coerceBooleanProperty(value);\n }\n public disabled = false;\n\n /** Hides the card icon */\n @Input(\"hideIcon\") set hideIconSetter(value: boolean) {\n this.hideIcon = coerceBooleanProperty(value);\n }\n public hideIcon: boolean;\n\n /** Hides the postal code */\n @Input(\"hidePostalCode\") set hidePostalCodeSetter(value: boolean) {\n this.hidePostalCode = coerceBooleanProperty(value);\n }\n public hidePostalCode: boolean;\n\n /** Selects the icon style */\n @Input() iconStyle: IconStyle;\n}\n","import {\n APP_INITIALIZER,\n PLATFORM_ID,\n NgModule,\n ModuleWithProviders,\n Inject,\n Optional,\n forwardRef,\n} from \"@angular/core\";\nimport {\n StripeConfig,\n StripeConfigToken,\n stripeFactory,\n loadStripeJS,\n} from \"./stripe-factory\";\nimport { isPlatformBrowser } from \"@angular/common\";\nimport { StripeControl } from \"./stripe-control\";\nimport { StripeConnect } from \"./stripe-connect\";\nimport { StripeMaterialDirective } from \"./stripe-material\";\nimport { StripeElements } from \"./stripe-elements\";\nimport { StripeCard } from \"./stripe-card\";\nimport { StripeCardNumber } from \"./stripe-card-number\";\nimport { StripeCardExpiry } from \"./stripe-card-expiry\";\nimport { StripeCardCvc } from \"./stripe-card-cvc\";\nimport { StripeIban } from \"./stripe-iban\";\nimport { StripeIdeal } from \"./stripe-ideal\";\nimport { Stripe } from \"./stripe-definitions\";\n\nexport const STRIPE_EXPORTS = [\n StripeControl,\n StripeConnect,\n StripeMaterialDirective,\n StripeElements,\n StripeCard,\n StripeCardNumber,\n StripeCardExpiry,\n StripeCardCvc,\n StripeIban,\n StripeIdeal,\n];\n\n@NgModule({\n imports: [\n /*CommonModule*/\n ],\n declarations: STRIPE_EXPORTS,\n exports: STRIPE_EXPORTS,\n})\nexport class StripeModule {\n constructor(@Inject(PLATFORM_ID) platformId: Object) {\n if (!isPlatformBrowser(platformId)) {\n throw new Error(\"StripeModule package supports Browsers only\");\n }\n }\n\n static init(config: StripeConfig): ModuleWithProviders {\n return {\n ngModule: StripeModule,\n providers: [\n { provide: APP_INITIALIZER, useValue: loadStripeJS, multi: true },\n { provide: StripeConfigToken, useValue: config },\n {\n provide: Stripe,\n useFactory: stripeFactory,\n deps: [[new Optional(), new Inject(StripeConfigToken)]],\n },\n {\n provide: StripeElements,\n useFactory: (stripe: Stripe, config: StripeConfig) =>\n stripe.elements(config.elementsOptions),\n deps: [\n forwardRef(() => Stripe),\n [new Optional(), new Inject(StripeConfigToken)],\n ],\n },\n ],\n };\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"phone\",\n})\nexport class PhonePipe implements PipeTransform {\n transform(phoneNumber: string): unknown {\n let ph = phoneNumber?.replace(/[^\\d]/g, \"\");\n\n if (ph.charAt(0) === \"1\") {\n ph = ph.slice(1);\n }\n\n if (ph.length === 10) {\n ph = \"(\" + ph.slice(0, 3) + \") \" + ph.slice(3, 6) + \"-\" + ph.slice(6, 10);\n } else if (ph.length === 7) {\n ph = ph.slice(3, 5) + \"-\" + ph.slice(6, 10);\n } else {\n ph = phoneNumber;\n }\n\n return ph;\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: \"myqq-banner\",\n templateUrl: \"./banner.component.html\",\n styleUrls: [\"./banner.component.scss\"],\n})\nexport class BannerComponent {\n @Input() message: string;\n @Input() showContactCustomerSupport: boolean = true;\n @Output()\n readonly dismiss = new EventEmitter();\n\n supportNumber = environment.supportNumber;\n cdnHost = environment.cdnHost;\n}\n","
\n
\n \n
\n

{{ message }}

\n

\n If the problem persists, please contact Customer Care at\n {{ supportNumber | phone }}\n

\n \n
\n
\n
\n \n
\n
\n","import { FocusMonitor } from \"@angular/cdk/a11y\";\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { MyqqButton } from \"./button.component\";\n\n@Component({\n selector: `a[myqq-button]`,\n exportAs: \"myqqButton, myqqAnchor\",\n // tslint:disable-next-line: no-host-metadata-property\n host: {\n // Note that we ignore the user-specified tabindex when it's disabled for\n // consistency with the `myqq-button` applied on native buttons where even\n // though they have an index, they're not tabbable.\n \"[attr.tabindex]\": \"disabled ? -1 : (tabIndex || 0)\",\n \"[attr.disabled]\": \"disabled || null\",\n \"[attr.aria-disabled]\": \"disabled.toString()\",\n \"(click)\": \"_haltDisabledEvents($event)\",\n \"[class.myqq-button-disabled]\": \"disabled\",\n class: \"myqq-button myqq-anchor\",\n },\n // tslint:disable-next-line: no-inputs-metadata-property\n inputs: [\"disabled\", \"color\"],\n templateUrl: \"./button.component.html\",\n styleUrls: [\"./button.component.scss\"],\n // tslint:disable-next-line: use-component-view-encapsulation\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// tslint:disable-next-line: component-class-suffix\nexport class MyqqAnchor extends MyqqButton {\n /** Tabindex of the button. */\n @Input() tabIndex: number;\n\n constructor(elementRef: ElementRef, focusMonitor: FocusMonitor) {\n super(elementRef, focusMonitor);\n }\n\n _haltDisabledEvents(event: Event) {\n // A disabled button shouldn't apply any actions\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","\n {{ matIcon }}\n\n\n\n\n\n \n\n","import { A11yModule } from \"@angular/cdk/a11y\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { MyqqButton } from \"./button.component\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MyqqAnchor } from \"./anchor.component\";\n\n@NgModule({\n imports: [A11yModule, CommonModule, MatIconModule],\n exports: [MyqqButton, MyqqAnchor],\n declarations: [MyqqButton, MyqqAnchor],\n providers: [],\n})\nexport class MyqqButtonModule {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { Datum, isPending } from \"@nll/datum/Datum\";\n\n@Pipe({\n name: \"isDatumPending\",\n})\nexport class IsDatumPendingPipe implements PipeTransform {\n transform(datum: Datum | undefined | null) {\n return isPending(datum);\n }\n}\n","import { Component, Inject } from \"@angular/core\";\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\n@Component({\n selector: \"myqq-generic-confirm\",\n templateUrl: \"./generic-confirm.component.html\",\n styleUrls: [\"./generic-confirm.component.scss\"],\n})\nexport class GenericConfirmComponent {\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: { title: string; message: string | string[] },\n public dialogRef: MatDialogRef\n ) {}\n\n get title() {\n return (this.data && this.data.title) || \"\";\n }\n\n get message() {\n return (this.data && this.data.message) || \"\";\n }\n\n close(selection: boolean) {\n this.dialogRef.close(selection);\n }\n}\n","
\n

{{ title }}

\n
\n\n
\n {{ message }}\n
\n\n
\n
\n \n\n \n Yes\n \n
\n\n
\n \n\n \n YES\n \n
\n
\n","import { Component, ChangeDetectionStrategy, Input } from \"@angular/core\";\nimport { MatDialogRef } from \"@angular/material/dialog\";\n\n@Component({\n selector: \"myqq-modal-header\",\n templateUrl: \"./modal-header.component.html\",\n styleUrls: [\"./modal-header.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalHeaderComponent {\n @Input()\n showMenu = true;\n\n constructor(readonly dialogRef: MatDialogRef) {}\n\n close() {\n this.dialogRef.close();\n }\n}\n","\n

\n\n \n cancel\n \n\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { Money } from \"@qqcw/qqsystem-util\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { MoneyRepresentation } from \"../../utilities/types\";\n\n@Component({\n selector: \"myqq-price\",\n templateUrl: \"./price-display.component.html\",\n styleUrls: [\"./price-display.component.scss\"],\n})\nexport class PriceDisplayComponent implements OnInit {\n @Input() price?: null | string | number | Money;\n @Input() prepend?: string;\n @Input() append?: string;\n @Input() priceOverride?: MoneyRepresentation;\n @Input() crossOutDefaultPrice?: boolean = false;\n @Input() customPriceImgUrl?: string;\n\n free$ = new BehaviorSubject(false);\n\n ngOnInit() {\n this.free$.next(this.free(this.priceOverride));\n }\n\n free = (price: MoneyRepresentation) => {\n try {\n switch (typeof price) {\n case \"string\":\n return parseFloat(price) == 0;\n case \"number\":\n return price == 0;\n case \"object\":\n return price?.value == 0;\n default:\n return false;\n }\n } catch {\n return false;\n }\n };\n\n dollars = (price: MoneyRepresentation) => {\n if (!price && price !== 0) {\n return \"\";\n }\n\n return `${Money.getWholeDollars(price)}`;\n };\n\n cents = (price: MoneyRepresentation) => {\n if (!price && price !== 0) {\n return \"\";\n }\n\n return `${Money.getFractionalCents(Money.absolute(price))}`;\n };\n}\n","\n
\n \n {{ prepend }}\n {{ priceOverride | map: dollars }} \n {{ priceOverride | map: cents }} \n \n \n Free!\n \n
\n\n\n \n\n\n
\n {{ prepend }}\n \n {{ price | map: dollars }}\n {{ price | map: cents }} \n \n {{ append }}\n
\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { MapPipeModule } from \"../../pipes/map\";\nimport { PriceDisplayComponent } from \"./price-display.component\";\n\n@NgModule({\n imports: [CommonModule, MapPipeModule],\n exports: [PriceDisplayComponent],\n declarations: [PriceDisplayComponent],\n providers: [],\n})\nexport class PriceDisplayModule {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { TitleCasePipe } from \"@angular/common\";\nimport { Vehicle } from \"src/app/core/services/myqq\";\n\nconst { transform: titleCase } = new TitleCasePipe();\n@Pipe({\n name: \"displayVehicleDescription\",\n})\nexport class DisplayVehicleDescriptionPipe implements PipeTransform {\n transform(vehicle: Vehicle): string {\n if (!vehicle) {\n return \"\";\n }\n\n const fields = <[\"year\", \"color\", \"make\", \"model\"]>[\n \"year\",\n \"color\",\n \"make\",\n \"model\",\n ];\n\n return titleCase(\n fields\n .map((field) => vehicle[field])\n .filter((field) => !!(field && field.trim()))\n .join(\" \")\n );\n }\n}\n","import { Inject, Injectable, Renderer2, RendererFactory2 } from \"@angular/core\";\nimport { v4 as uuid } from \"uuid\";\nimport { Store } from \"@ngrx/store\";\nimport { isSuccess } from \"@nll/datum/DatumEither\";\nimport { KeycloakService } from \"keycloak-angular\";\n\nimport { Observable, merge, of, timer } from \"rxjs\";\nimport {\n delayWhen,\n filter,\n map,\n mapTo,\n retryWhen,\n switchMap,\n take,\n} from \"rxjs/operators\";\nimport { selectProfile } from \"src/app/core/ngrx/myqq\";\nimport { selectKeycloakInitialized } from \"src/app/core/ngrx/ui\";\n\nimport { WINDOW } from \"src/app/core/services/window.service\";\nimport { environment } from \"src/environments/environment\";\nimport { UnleashService } from \"./unleash.service\";\nimport { PwaService } from \"./pwa.service\";\ninterface NewWindow extends Window {\n consentManagerConfig: any;\n}\n@Injectable({\n providedIn: \"root\",\n})\nexport class SnippetService {\n segmentScriptAdded = false;\n refinerScriptAdded = false;\n googleTagManagerScriptAdded = false;\n kcInitTimeout = 5000; // ms\n surveyRetries = 10;\n surveyDelay = 250; // ms\n surveyAnalyticsError = new Error(\"Analytics not initialized\");\n surveyFlagName = \"enable-surveys\";\n private consentContainer: HTMLElement | null = null;\n\n private _renderer: Renderer2;\n\n private get renderer(): Renderer2 {\n if (!this._renderer) {\n this._renderer = this.rendererFactory.createRenderer(null, null);\n }\n return this._renderer;\n }\n\n constructor(\n private store$: Store,\n private rendererFactory: RendererFactory2,\n private auth: KeycloakService,\n private unleash: UnleashService,\n private pwa: PwaService,\n @Inject(WINDOW) private window: Window\n ) {}\n\n generateSnippets(): Observable {\n const loadSegment =\n environment.segmentConfig.track && !this.segmentScriptAdded;\n const loadRefiner =\n environment.refinerConfig?.enable &&\n !this.refinerScriptAdded &&\n environment.unleash;\n const loadConsentManager = !(this.pwa.standalone && this.pwa.isInstalled);\n const kcInitializationObservableWithTimeout = merge(\n this.store$.select(selectKeycloakInitialized),\n timer(this.kcInitTimeout).pipe(mapTo(false))\n );\n\n // Refiner is a Segment integration, short-circuit if Segment will not be loaded\n if (!loadSegment) {\n return of(false);\n }\n\n return kcInitializationObservableWithTimeout.pipe(\n filter((init) => init !== null),\n take(1), // Observable must complete\n map((initialized) => {\n if (!initialized) {\n return true;\n }\n if (!this.googleTagManagerScriptAdded) {\n this.addGoogleTagManager();\n }\n if (loadConsentManager) {\n this.enableConsentManager();\n }\n if (loadSegment) {\n this.addSegmentSnippet();\n this.addFeatherySnippet();\n }\n if (loadRefiner) {\n this.addRefinerSnippet();\n }\n\n return true;\n })\n );\n }\n\n private addSegmentSnippet() {\n const analyticsScript = this.renderer.createElement(\"script\");\n analyticsScript.type = \"text/javascript\";\n analyticsScript.async = true;\n analyticsScript.text = environment.segmentConfig.snippet;\n\n this.renderer.appendChild(this.window.document.head, analyticsScript);\n\n this.segmentScriptAdded = true;\n }\n\n private addFeatherySnippet() {\n const featheryScript = this.renderer.createElement(\"script\");\n featheryScript.type = \"text/javascript\";\n featheryScript.async = true;\n featheryScript.src =\n \"https://cdn.jsdelivr.net/npm/@feathery/react@latest/umd/index.js\";\n\n this.renderer.appendChild(this.window.document.head, featheryScript);\n\n this.segmentScriptAdded = true;\n }\n\n private enableConsentManager() {\n const win = this.window as NewWindow;\n\n win.consentManagerConfig = () => ({\n ...environment.consentManagerInput,\n writeKey: environment.segmentConfig.writeKey,\n reloadPage: false,\n });\n const contentElement = this.renderer.createElement(\"div\");\n contentElement.id = \"consent\";\n this.consentContainer = contentElement;\n const consentManagerScript = this.renderer.createElement(\"script\");\n consentManagerScript.type = \"text/javascript\";\n this.renderer.setAttribute(\n consentManagerScript,\n \"src\",\n environment.consentManagerUrl\n );\n this.renderer.setAttribute(consentManagerScript, \"defer\", \"true\");\n\n this.renderer.appendChild(this.window.document.body, contentElement);\n this.renderer.appendChild(this.window.document.head, consentManagerScript);\n\n // detect that the container is now empty, and then remove it.\n const observer = new MutationObserver((mutations, obs) => {\n // If the container has no child nodes, assume the banner has been closed.\n if (contentElement.children.length === 0) {\n if (this.consentContainer) {\n this.renderer.removeChild(\n this.window.document.body,\n this.consentContainer\n );\n this.consentContainer = null;\n console.log(\"Consent container removed after banner dismissed.\");\n }\n // Stop observing once we've removed the container.\n obs.disconnect();\n }\n });\n\n observer.observe(contentElement, { childList: true, subtree: true });\n }\n\n private async addRefinerSnippet() {\n // Wait for first successful profile load with an account id\n // Segment user id will then have been set to the account id\n // This way, refiner and segment have the same id and data can be linked\n this.store$\n .select(selectProfile)\n .pipe(\n filter(isSuccess),\n map((res) => res.value.right.profile.info.qsysAccount),\n filter((accountId) => !!accountId),\n take(1),\n switchMap(() => this.unleash.enableSurveys$.pipe(take(1))),\n switchMap(() =>\n of(this.auth.isLoggedIn()).pipe(\n map((isLoggedIn) => {\n if (this.surveyRetries < 1) {\n return false;\n }\n // Make sure analytics is fully initialized\n if (\n this.window.analytics &&\n typeof this.window.analytics.user === \"function\" &&\n typeof this.window.analytics.user().id === \"function\" &&\n typeof this.window.analytics.user().anonymousId === \"function\"\n ) {\n return isLoggedIn;\n }\n this.surveyRetries--;\n\n throw this.surveyAnalyticsError; // Throw error to retry\n }),\n retryWhen((errors) =>\n errors.pipe(delayWhen(() => timer(this.surveyDelay)))\n )\n )\n )\n )\n .subscribe((showSurvey) => {\n if (showSurvey) {\n const refinerScript = environment.refinerConfig?.snippet;\n if (!refinerScript) {\n return;\n }\n const refinerScriptElement = this.renderer.createElement(\"script\");\n refinerScriptElement.type = \"text/javascript\";\n refinerScriptElement.text = refinerScript;\n\n this.renderer.appendChild(\n this.window.document.body,\n refinerScriptElement\n );\n\n const kcProfile = this.auth.getKeycloakInstance().profile;\n const segmentId =\n this.window.analytics.user().id() ??\n this.window.analytics.user().anonymousId() ??\n uuid();\n\n const identity = {\n id: segmentId,\n email: kcProfile.email,\n name: kcProfile.firstName + \" \" + kcProfile.lastName,\n };\n\n const refiner = (this.window as any)._refiner;\n if (refiner && typeof refiner === \"function\") {\n refiner(\"identifyUser\", identity);\n\n this.refinerScriptAdded = true;\n }\n }\n });\n }\n\n // Call this function with the form id to show the survey\n public async showSurvey(formId: string) {\n const refiner = (this.window as any)._refiner;\n\n if (refiner && typeof refiner === \"function\") {\n refiner(\"showForm\", formId);\n }\n }\n\n private addGoogleTagManager() {\n if (!environment.googleTagManagerConfig) {\n }\n\n const gtmScript = this.renderer.createElement(\"script\");\n gtmScript.type = \"text/javascript\";\n gtmScript.text = environment.googleTagManagerConfig.snippetHeader;\n\n this.renderer.appendChild(this.window.document.head, gtmScript);\n this.googleTagManagerScriptAdded = true;\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n@Component({\n selector: \"myqq-header\",\n templateUrl: \"./header.component.html\",\n styleUrls: [\"./header.component.scss\"],\n})\nexport class HeaderComponent {\n @Input()\n showBackButton: boolean = false;\n @Input()\n headerTitle: string;\n @Output()\n readonly back = new EventEmitter();\n}\n","
\n \n \n arrow_back\n \n \n

{{ headerTitle }}

\n
\n","import { Component } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { PwaService } from \"src/app/shared/services/pwa.service\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: \"myqq-fourohfour\",\n templateUrl: \"./fourohfour.component.html\",\n styleUrls: [\"./fourohfour.component.scss\"],\n})\nexport class FourohfourComponent {\n supportEmail = environment.supportEmail;\n cdnHost = environment.cdnHost;\n\n constructor(private pwa: PwaService, private router: Router) {}\n\n refresh() {\n try {\n this.pwa.updateAndReload();\n } catch (e) {\n console.error(e);\n this.router.navigate([\"/\"]);\n }\n }\n}\n","\n \n
\n

404

\n

\n Sorry friend, we can't find the page you're looking for…let's start\n again:\n

\n \n

\n If you've found your way to this page twice --\n please contact us.\n

\n
\n \n \n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { MatDialogRef } from \"@angular/material/dialog\";\n@Component({\n selector: \"myqq-account-setup-modal\",\n templateUrl: \"./account-setup-modal.component.html\",\n styleUrls: [\"./account-setup-modal.component.scss\"],\n})\nexport class AccountSetupModalComponent implements OnInit {\n processing = false;\n constructor(readonly dialogRef: MatDialogRef) {}\n ngOnInit(): void {\n this.dialogRef.addPanelClass(\"myqq-alert-dialog\");\n }\n selectedMember() {\n if (!this.processing) {\n this.processing = true;\n this.dialogRef.close({ member: true });\n }\n }\n selectedNonMember() {\n if (!this.processing) {\n this.processing = true;\n this.dialogRef.close({ member: false });\n }\n }\n}\n"," \n
\n

\n Thank you for signing up.
\n Are you currently a member?\n

\n\n
\n \n {{ processing ? \"\" : \"Member\" }}\n\n \n \n \n {{ processing ? \"\" : \"Non-Member\" }}\n \n \n
\n
\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"myqq-small-loader\",\n templateUrl: \"./small-loader.component.html\",\n styleUrls: [\"./small-loader.component.scss\"],\n})\nexport class SmallLoaderComponent {\n @Input() show?: boolean = false;\n @Input() status?: string;\n}\n","
\n \n
{{ status }}
\n
\n","import { APP_INITIALIZER, NgModule } from \"@angular/core\";\nimport { RouterModule } from \"@angular/router\";\nimport { A11yModule } from \"@angular/cdk/a11y\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatInputModule } from \"@angular/material/input\";\n\nimport { DatumModule } from \"./directives/datum\";\nimport { LayoutsModule } from \"./components/layouts/layouts.module\";\nimport { ErrorComponent } from \"./components/error/error.component\";\nimport { GenericConfirmComponent } from \"./components/generic-confirm/generic-confirm.component\";\nimport { LoadingComponent } from \"./components/loading/loading.component\";\nimport { ModalHeaderComponent } from \"./components/modal-header/modal-header.component\";\nimport { PriceDisplayComponent } from \"./components/price-display/price-display.component\";\nimport { PriceDisplayModule } from \"./components/price-display\";\n\nimport { StripeModule } from \"./modules/stripe\";\nimport { MapPipeModule } from \"./pipes/map\";\n\nimport { DisplayPersonNamePipe } from \"./pipes/display-person-name.pipe\";\nimport { DisplayVehicleDescriptionPipe } from \"./pipes/display-vehicle-description.pipe\";\nimport { DisplayVehiclePlatePipe } from \"./pipes/display-vehicle-plate.pipe\";\nimport { DisplayOrderVehiclePlatePipe } from \"./pipes/display-vehicle-plate.pipe\";\nimport { ParenthesizeNegativeNumbersPipe } from \"./pipes/parenthesize-negative-numbers.pipe\";\nimport { PhonePipe } from \"./pipes/phone.pipe\";\n\nimport { SnippetService } from \"./services/snippet.service\";\nimport { WINDOW_PROVIDERS } from \"../core/services/window.service\";\nimport { HeaderComponent } from \"./components/header/header.component\";\nimport { FourohfourComponent } from \"./components/error/fourohfour/fourohfour.component\";\nimport { BannerComponent } from \"./components/banner/banner.component\";\nimport { MyqqButtonModule } from \"src/app/shared/components/button/button.module\";\nimport { AccountSetupModalComponent } from \"./components/account-setup-modal/account-setup-modal.component\";\nimport { UpdateAppComponent } from \"./components/update-app/update-app.component\";\nimport { IsDatumPendingPipe } from \"./pipes/is-pending.pipe\";\nimport { SmallLoaderComponent } from \"./components/small-loader/small-loader.component\";\n\n@NgModule({\n declarations: [\n AccountSetupModalComponent,\n GenericConfirmComponent,\n IsDatumPendingPipe,\n LoadingComponent,\n ModalHeaderComponent,\n HeaderComponent,\n ErrorComponent,\n DisplayPersonNamePipe,\n DisplayVehicleDescriptionPipe,\n DisplayVehiclePlatePipe,\n DisplayOrderVehiclePlatePipe,\n ParenthesizeNegativeNumbersPipe,\n PhonePipe,\n FourohfourComponent,\n BannerComponent,\n UpdateAppComponent,\n SmallLoaderComponent,\n ],\n imports: [\n A11yModule,\n LayoutsModule,\n CommonModule,\n DatumModule,\n FormsModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatDialogModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MyqqButtonModule,\n ReactiveFormsModule,\n RouterModule,\n PriceDisplayModule,\n MatInputModule,\n MapPipeModule,\n ],\n exports: [\n AccountSetupModalComponent,\n A11yModule,\n GenericConfirmComponent,\n DisplayPersonNamePipe,\n DisplayVehicleDescriptionPipe,\n DisplayVehiclePlatePipe,\n DisplayOrderVehiclePlatePipe,\n ParenthesizeNegativeNumbersPipe,\n LoadingComponent,\n ModalHeaderComponent,\n HeaderComponent,\n ErrorComponent,\n StripeModule,\n PriceDisplayComponent,\n LayoutsModule,\n PhonePipe,\n IsDatumPendingPipe,\n BannerComponent,\n UpdateAppComponent,\n SmallLoaderComponent,\n ],\n providers: [\n SnippetService,\n {\n provide: APP_INITIALIZER,\n useFactory: (service: SnippetService) => () => service.generateSnippets(),\n deps: [SnippetService],\n multi: true,\n },\n WINDOW_PROVIDERS,\n ],\n})\nexport class SharedModule {}\n"],"mappings":"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","names":["MapPipe","transform","value","fn","extraArgs","pure","_MapPipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ctx_r0","online","description","ɵɵtextInterpolate","error","name","message","ErrorComponent","constructor","offlineAuth","store$","title","showErrorDetail","environment","errorImg","cdnHost","notNil","BehaviorSubject","ngOnInit","online$","dispatch","log","level","logLevel","LogLevels","WARNING","data","actionType","type","namespace","ɵɵdirectiveInject","OfflineAuthService","Store","selectors","inputs","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","ErrorComponent_p_6_Template","ɵɵprojection","ErrorComponent_section_9_Template","ɵɵproperty","ɵɵsanitizeUrl","ɵɵpipeBind2","_ErrorComponent","_c0","MatProgressSpinner_ng_template_0_Template","rf","ctx","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵattribute","ɵɵadvance","ɵɵstyleProp","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS","InjectionToken","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY","BASE_SIZE","BASE_STROKE_WIDTH","MatProgressSpinner","_MatProgressSpinner","value","_elementRef","animationMode","defaults","v","size","viewBox","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵclassMap","ɵɵclassProp","numberAttribute","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","ɵɵtemplate","ɵɵtemplateRefExtractor","ɵɵnamespaceHTML","ɵɵelementContainer","circle_r2","ɵɵreference","ɵɵproperty","NgTemplateOutlet","MatProgressSpinnerModule","_MatProgressSpinnerModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","MatCommonModule","objEq","equals","a","b","datumEitherEq","getEq","getEqEither","isNil","t","DatumEitherDirective","constructor","datum","initial","initialCases","pendingCases","failureCases","successCases","mountedCases","registerInitial","viewContainerRef","templateRef","push","registerPending","registerFailure","registerSuccess","ensureCaseView","caseView","context","pipe","fromNullable","get","fold","createCaseView","vr","updateViewRef","createEmbeddedView","removeCaseView","clear","viewRef","Object","keys","forEach","key","detectChanges","useDatumEither","isInitial","isPending","isRefresh","isLeft","value","$implicit","left","refreshing","cv","right","isReplete","selectors","inputs","_DatumEitherDirective","FailureDirective","constructor","viewContainer","templateRef","datumEitherDirective","registerFailure","console","warn","ɵɵdirectiveInject","ViewContainerRef","TemplateRef","DatumEitherDirective","selectors","_FailureDirective","objEq","equals","a","b","datumEq","getEq","isNil","t","DatumDirective","constructor","datum","initial","initialCases","pendingCases","refreshCases","repleteCases","mountedCases","registerInitial","viewContainerRef","templateRef","push","registerPending","registerRefresh","registerReplete","ensureCaseView","caseView","context","pipe","fromNullable","get","fold","createCaseView","vr","updateViewRef","createEmbeddedView","removeCaseView","clear","viewRef","Object","keys","forEach","key","detectChanges","useDatum","isInitial","isPending","isRefresh","$implicit","value","refreshing","cv","isReplete","selectors","inputs","_DatumDirective","InitialDirective","constructor","viewContainer","templateRef","datumEitherDirective","datumDirective","registerInitial","console","warn","ɵɵdirectiveInject","ViewContainerRef","TemplateRef","DatumEitherDirective","DatumDirective","selectors","_InitialDirective","PendingDirective","constructor","viewContainer","templateRef","datumEitherDirective","datumDirective","registerPending","console","warn","ɵɵdirectiveInject","ViewContainerRef","TemplateRef","DatumEitherDirective","DatumDirective","selectors","_PendingDirective","SuccessDirective","constructor","viewContainer","templateRef","datumEitherDirective","registerSuccess","console","warn","ɵɵdirectiveInject","ViewContainerRef","TemplateRef","DatumEitherDirective","selectors","_SuccessDirective","DatumModule","_DatumModule","fadeInOut","name","milliseconds","trigger","transition","style","opacity","animate","scaleInOut","name","milliseconds","trigger","transition","style","transform","opacity","animate","LoadingComponent","constructor","selectors","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵprojection","ɵɵelementEnd","ɵɵproperty","undefined","fadeInOut","changeDetection","_LoadingComponent","MapPipeModule","_MapPipeModule","StripeConfigToken","InjectionToken","getStripeJS","window","Stripe","undefined","loadStripeJS","StripeJS","Promise","resolve","reject","script","document","createElement","src","type","defer","async","onerror","navigator","onLine","Error","onload","body","appendChild","stripeFactory","config","publicKey","options","Stripe","StripeElements","constructor","stripe","config","create","elementType","options","elements","getElement","type","ngOnInit","__spreadProps","__spreadValues","elementsOptions","locale","ngOnChanges","_","ɵɵdirectiveInject","Stripe","StripeConfigToken","selectors","inputs","exportAs","features","ɵɵNgOnChangesFeature","_StripeElements","isFunction","fn","StripeElementDirective","constructor","elementType","elements","config","ref","ready","readyChange","EventEmitter","focusChange","blurChange","valueChange","empty","value","complete","error","ngOnInit","locale","focused","disabled","undefined","element","create","__spreadValues","elementOptions","options","on","emit","mount","nativeElement","ngOnChanges","_","update","ngDoCheck","ngOnDestroy","destroy","focus","blur","clear","outputs","features","ɵɵNgOnChangesFeature","_StripeElementDirective","StripeControl","constructor","element","writeValue","value","clear","registerOnChange","fn","valueChange","subscribe","complete","registerOnTouched","blurChange","setDisabledState","disabled","update","validate","_","errorType","error","type","ɵɵdirectiveInject","StripeElementDirective","selectors","features","ɵɵProvidersFeature","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","NG_VALIDATORS","_StripeControl","StripeMaterialDirective","constructor","element","stateChanges","merge","readyChange","focusChange","blurChange","valueChange","value","focused","empty","disabled","shouldLabelFloat","errorState","error","setDescribedByIds","_","onContainerClick","focus","ɵɵdirectiveInject","StripeElementDirective","selectors","hostAttrs","features","ɵɵProvidersFeature","provide","MatFormFieldControl","useExisting","forwardRef","_StripeMaterialDirective","StripeCard","StripeElementDirective","constructor","elements","config","ref","disabled","options","hidePostalCode","hideIcon","iconStyle","style","base","fontSize","brand","disableSetter","value","coerceBooleanProperty","hideIconSetter","hidePostalCodeSetter","ɵɵdirectiveInject","StripeElements","StripeConfigToken","ElementRef","selectors","inputs","features","ɵɵProvidersFeature","provide","useExisting","forwardRef","ɵɵInheritDefinitionFeature","decls","vars","template","rf","ctx","encapsulation","_StripeCard","StripeModule","constructor","platformId","isPlatformBrowser","Error","init","config","ngModule","providers","provide","APP_INITIALIZER","useValue","loadStripeJS","multi","StripeConfigToken","Stripe","useFactory","stripeFactory","deps","Optional","Inject","StripeElements","stripe","elements","elementsOptions","forwardRef","ɵɵinject","PLATFORM_ID","_StripeModule","PhonePipe","transform","phoneNumber","ph","replace","charAt","slice","length","pure","_PhonePipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ctx_r0","supportNumber","BannerComponent","constructor","showContactCustomerSupport","dismiss","EventEmitter","environment","cdnHost","selectors","inputs","message","outputs","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","BannerComponent_p_6_Template","ɵɵprojection","ɵɵlistener","emit","ɵɵpropertyInterpolate1","ɵɵsanitizeUrl","ɵɵtextInterpolate","ɵɵproperty","_BannerComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ctx_r0","iconColor","color","ɵɵadvance","ɵɵtextInterpolate1","matIcon","ɵɵelement","svgIcon","MyqqAnchor","MyqqButton","constructor","elementRef","focusMonitor","_haltDisabledEvents","event","disabled","preventDefault","stopImmediatePropagation","ɵɵdirectiveInject","ElementRef","FocusMonitor","selectors","hostAttrs","hostVars","hostBindings","rf","ctx","ɵɵlistener","$event","tabIndex","toString","ɵɵclassProp","ɵɵtemplate","MyqqAnchor_mat_icon_0_Template","MyqqAnchor_mat_icon_1_Template","ɵɵprojection","_MyqqAnchor","MyqqButtonModule","A11yModule","CommonModule","MatIconModule","_MyqqButtonModule","IsDatumPendingPipe","transform","datum","isPending","pure","_IsDatumPendingPipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","title","GenericConfirmComponent","constructor","data","dialogRef","message","close","selection","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","GenericConfirmComponent_header_0_Template","ɵɵlistener","ɵɵproperty","ɵɵtextInterpolate1","_GenericConfirmComponent","ModalHeaderComponent","constructor","dialogRef","showMenu","close","ɵɵdirectiveInject","MatDialogRef","selectors","inputs","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵlistener","$event","preventDefault","ɵɵtext","_ModalHeaderComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","prepend","ɵɵpipeBind2","priceOverride","dollars","cents","ɵɵtemplate","PriceDisplayComponent_div_0_span_2_Template","PriceDisplayComponent_div_0_strong_4_Template","ɵɵproperty","ɵɵpipeBind1","free$","ɵɵelement","customPriceImgUrl","ɵɵsanitizeUrl","PriceDisplayComponent_ng_template_1_img_0_Template","PriceDisplayComponent","constructor","crossOutDefaultPrice","BehaviorSubject","free","price","parseFloat","value","Money","getWholeDollars","getFractionalCents","absolute","ngOnInit","next","selectors","inputs","append","decls","vars","consts","template","rf","ctx","PriceDisplayComponent_div_0_Template","PriceDisplayComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","customPriceOverride_r2","ɵɵclassProp","ɵɵtextInterpolate","_PriceDisplayComponent","PriceDisplayModule","CommonModule","MapPipeModule","_PriceDisplayModule","transform","titleCase","TitleCasePipe","SnippetService","renderer","_renderer","rendererFactory","createRenderer","constructor","store$","auth","unleash","pwa","window","segmentScriptAdded","refinerScriptAdded","googleTagManagerScriptAdded","kcInitTimeout","surveyRetries","surveyDelay","surveyAnalyticsError","Error","surveyFlagName","consentContainer","generateSnippets","loadSegment","environment","segmentConfig","track","loadRefiner","refinerConfig","enable","loadConsentManager","standalone","isInstalled","kcInitializationObservableWithTimeout","merge","select","selectKeycloakInitialized","timer","pipe","mapTo","filter","init","take","map","initialized","addGoogleTagManager","enableConsentManager","addSegmentSnippet","addFeatherySnippet","addRefinerSnippet","of","analyticsScript","createElement","type","async","text","snippet","appendChild","document","head","featheryScript","src","win","consentManagerConfig","__spreadProps","__spreadValues","consentManagerInput","writeKey","reloadPage","contentElement","id","consentManagerScript","setAttribute","consentManagerUrl","body","MutationObserver","mutations","obs","children","length","removeChild","console","log","disconnect","observe","childList","subtree","__async","selectProfile","isSuccess","res","value","right","profile","info","qsysAccount","accountId","switchMap","enableSurveys$","isLoggedIn","analytics","user","anonymousId","retryWhen","errors","delayWhen","subscribe","showSurvey","refinerScript","refinerScriptElement","kcProfile","getKeycloakInstance","identity","uuid","email","name","firstName","lastName","refiner","_refiner","formId","googleTagManagerConfig","gtmScript","snippetHeader","ɵɵinject","Store","RendererFactory2","KeycloakService","UnleashService","PwaService","WINDOW","factory","ɵfac","providedIn","_SnippetService","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","back","emit","$event","i0","preventDefault","ɵɵtext","ɵɵelementEnd","HeaderComponent","constructor","showBackButton","EventEmitter","selectors","inputs","headerTitle","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","HeaderComponent_ng_container_1_Template","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate","_HeaderComponent","FourohfourComponent","constructor","pwa","router","supportEmail","environment","cdnHost","refresh","updateAndReload","e","console","error","navigate","ɵɵdirectiveInject","PwaService","Router","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵelement","ɵɵadvance","ɵɵpropertyInterpolate1","ɵɵsanitizeUrl","_FourohfourComponent","ɵɵelement","AccountSetupModalComponent","constructor","dialogRef","processing","ngOnInit","addPanelClass","selectedMember","close","member","selectedNonMember","ɵɵdirectiveInject","MatDialogRef","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","$event","preventDefault","ɵɵtemplate","AccountSetupModalComponent_mat_spinner_9_Template","AccountSetupModalComponent_mat_spinner_12_Template","ɵɵadvance","ɵɵclassMap","ɵɵtextInterpolate1","ɵɵproperty","_AccountSetupModalComponent","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","status","SmallLoaderComponent","constructor","show","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SmallLoaderComponent_div_0_Template","ɵɵproperty","_SmallLoaderComponent","SharedModule","SnippetService","provide","APP_INITIALIZER","useFactory","service","generateSnippets","deps","multi","WINDOW_PROVIDERS","imports","A11yModule","LayoutsModule","CommonModule","DatumModule","FormsModule","ReactiveFormsModule","MatButtonModule","MatDialogModule","MatIconModule","MatProgressSpinnerModule","MyqqButtonModule","RouterModule","PriceDisplayModule","MatInputModule","MapPipeModule","StripeModule","_SharedModule"],"x_google_ignoreList":[3]}