@carefirst/library 4.8.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/fesm2022/carefirst-library.mjs +1264 -508
  2. package/fesm2022/carefirst-library.mjs.map +1 -1
  3. package/index.d.ts +1045 -2
  4. package/package.json +5 -7
  5. package/public/interfaces/carefirst.shared.interfaces.ts +6 -5
  6. package/public/styles/app.scss +5 -3
  7. package/public/styles/font.scss +4 -2
  8. package/public/styles/index.scss +6 -6
  9. package/esm2022/carefirst-library.mjs +0 -2
  10. package/esm2022/lib/components/alert/alert.component.mjs +0 -55
  11. package/esm2022/lib/components/badge/badge.component.mjs +0 -49
  12. package/esm2022/lib/components/button/button.component.mjs +0 -101
  13. package/esm2022/lib/components/calendar/calendar.component.mjs +0 -39
  14. package/esm2022/lib/components/chat-bubble/chat-bubble.component.mjs +0 -38
  15. package/esm2022/lib/components/form-input/form-input.component.mjs +0 -101
  16. package/esm2022/lib/components/form-input-currency/form-input-currency.component.mjs +0 -82
  17. package/esm2022/lib/components/form-input-search/form-input-search.component.mjs +0 -67
  18. package/esm2022/lib/components/form-input-select/form-input-select.component.mjs +0 -49
  19. package/esm2022/lib/components/form-input-string-date/form-input-string-date.component.mjs +0 -84
  20. package/esm2022/lib/components/form-input-text-area/form-input-text-area.component.mjs +0 -64
  21. package/esm2022/lib/components/form-validation/form-validation.component.mjs +0 -23
  22. package/esm2022/lib/components/icon/icon.component.mjs +0 -38
  23. package/esm2022/lib/components/logo/logo.component.mjs +0 -26
  24. package/esm2022/lib/components/mix-p/mix-p.component.mjs +0 -41
  25. package/esm2022/lib/components/notification/notification.component.mjs +0 -49
  26. package/esm2022/lib/components/page/page.component.mjs +0 -69
  27. package/esm2022/lib/components/spacer/spacer.component.mjs +0 -30
  28. package/esm2022/lib/components/spinner/spinner.component.mjs +0 -19
  29. package/esm2022/lib/components/verification-code/verification-code.component.mjs +0 -150
  30. package/esm2022/lib/directives/button-loader.directive.mjs +0 -41
  31. package/esm2022/lib/interfaces/alert.interface.mjs +0 -2
  32. package/esm2022/lib/interfaces/badge.interface.mjs +0 -15
  33. package/esm2022/lib/interfaces/icon.interface.mjs +0 -79
  34. package/esm2022/lib/interfaces/input.interface.mjs +0 -2
  35. package/esm2022/lib/interfaces/internal.interface.mjs +0 -7
  36. package/esm2022/lib/interfaces/notification.interface.mjs +0 -2
  37. package/esm2022/lib/interfaces/spacer.interface.mjs +0 -2
  38. package/esm2022/lib/interfaces/verification-code.interface.mjs +0 -3
  39. package/esm2022/lib/library.module.mjs +0 -125
  40. package/esm2022/lib/utils/attribute.util.mjs +0 -34
  41. package/esm2022/lib/utils/form-validators-utility.mjs +0 -169
  42. package/esm2022/public-api.mjs +0 -31
  43. package/lib/components/alert/alert.component.d.ts +0 -18
  44. package/lib/components/badge/badge.component.d.ts +0 -20
  45. package/lib/components/button/button.component.d.ts +0 -35
  46. package/lib/components/calendar/calendar.component.d.ts +0 -15
  47. package/lib/components/chat-bubble/chat-bubble.component.d.ts +0 -15
  48. package/lib/components/form-input/form-input.component.d.ts +0 -36
  49. package/lib/components/form-input-currency/form-input-currency.component.d.ts +0 -25
  50. package/lib/components/form-input-search/form-input-search.component.d.ts +0 -26
  51. package/lib/components/form-input-select/form-input-select.component.d.ts +0 -22
  52. package/lib/components/form-input-string-date/form-input-string-date.component.d.ts +0 -24
  53. package/lib/components/form-input-text-area/form-input-text-area.component.d.ts +0 -28
  54. package/lib/components/form-validation/form-validation.component.d.ts +0 -10
  55. package/lib/components/icon/icon.component.d.ts +0 -16
  56. package/lib/components/logo/logo.component.d.ts +0 -11
  57. package/lib/components/mix-p/mix-p.component.d.ts +0 -16
  58. package/lib/components/notification/notification.component.d.ts +0 -16
  59. package/lib/components/page/page.component.d.ts +0 -28
  60. package/lib/components/spacer/spacer.component.d.ts +0 -14
  61. package/lib/components/spinner/spinner.component.d.ts +0 -9
  62. package/lib/components/verification-code/verification-code.component.d.ts +0 -35
  63. package/lib/directives/button-loader.directive.d.ts +0 -12
  64. package/lib/interfaces/alert.interface.d.ts +0 -18
  65. package/lib/interfaces/badge.interface.d.ts +0 -2
  66. package/lib/interfaces/icon.interface.d.ts +0 -4
  67. package/lib/interfaces/input.interface.d.ts +0 -4
  68. package/lib/interfaces/internal.interface.d.ts +0 -6
  69. package/lib/interfaces/notification.interface.d.ts +0 -14
  70. package/lib/interfaces/spacer.interface.d.ts +0 -3
  71. package/lib/interfaces/verification-code.interface.d.ts +0 -12
  72. package/lib/library.module.d.ts +0 -30
  73. package/lib/utils/attribute.util.d.ts +0 -4
  74. package/lib/utils/form-validators-utility.d.ts +0 -10
  75. package/public-api.d.ts +0 -30
@@ -1,41 +0,0 @@
1
- import { Component, Input, HostListener } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- export class MixPComponent {
5
- mobile = 'body-standard';
6
- desktop = 'body-standard';
7
- pClass = 'body-standard';
8
- inputMobile = undefined;
9
- inputDesktop = undefined;
10
- getScreenWidth = 0;
11
- ngOnInit() {
12
- this.getScreenWidth = window.innerWidth;
13
- this.updateClass();
14
- }
15
- ngOnChanges(changes) {
16
- this.inputMobile = changes['mobile']?.currentValue;
17
- this.inputDesktop = changes['desktop']?.currentValue;
18
- this.updateClass();
19
- }
20
- onWindowResize() {
21
- this.getScreenWidth = window.innerWidth;
22
- this.updateClass();
23
- }
24
- updateClass() {
25
- this.pClass = (this.getScreenWidth < 768 ? this.inputMobile : this.inputDesktop) || 'body-standard';
26
- }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MixPComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MixPComponent, selector: "cf-mix-p", inputs: { mobile: "mobile", desktop: "desktop" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, usesOnChanges: true, ngImport: i0, template: "<!-- Desktop -->\n<p [ngClass]=\"pClass\"><ng-content></ng-content></p>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MixPComponent, decorators: [{
31
- type: Component,
32
- args: [{ selector: 'cf-mix-p', template: "<!-- Desktop -->\n<p [ngClass]=\"pClass\"><ng-content></ng-content></p>\n" }]
33
- }], propDecorators: { mobile: [{
34
- type: Input
35
- }], desktop: [{
36
- type: Input
37
- }], onWindowResize: [{
38
- type: HostListener,
39
- args: ['window:resize', ['$event']]
40
- }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWl4LXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL21peC1wL21peC1wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9taXgtcC9taXgtcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBc0MsWUFBWSxFQUFlLE1BQU0sZUFBZSxDQUFDOzs7QUFPaEgsTUFBTSxPQUFPLGFBQWE7SUFDZixNQUFNLEdBQVcsZUFBZSxDQUFDO0lBQ2pDLE9BQU8sR0FBVyxlQUFlLENBQUM7SUFFM0MsTUFBTSxHQUFXLGVBQWUsQ0FBQztJQUd6QixXQUFXLEdBQXVCLFNBQVMsQ0FBQztJQUM1QyxZQUFZLEdBQXVCLFNBQVMsQ0FBQztJQUM3QyxjQUFjLEdBQVcsQ0FBQyxDQUFDO0lBT25DLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFPRCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDO1FBRW5ELElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFlBQVksQ0FBQztRQUdyRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQVFELGNBQWM7UUFDWixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFPRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksZUFBZSxDQUFDO0lBQ3RHLENBQUM7d0dBdERVLGFBQWE7NEZBQWIsYUFBYSwyTENoQjFCLDJFQUVBOzs0RkRjYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFVBQVU7OEJBS1gsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkF3Q04sY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZUZpcnN0IE1peCBQXG4gKlxuICogQGZpbGUgICAgICAgICAgbWl4LXAuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBBIGNvbXBvbmVudCB0aGF0IGdlbmVyYXRlcyBhIHAgdGFnIHdpdGggZGlmZmVyZW50IGZvbnRzIGZvciBkZXNrdG9wIGFuZCBtb2JpbGVcbiAqIEBhdXRob3IgICAgICAgIEphY3F1ZXMgQ29ldHplZVxuICogQHNpbmNlICAgICAgICAgMjAyNCAtIDAzIC0gMjVcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzLCBIb3N0TGlzdGVuZXIsIHR5cGUgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLW1peC1wJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21peC1wLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21peC1wLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTWl4UENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbW9iaWxlOiBzdHJpbmcgPSAnYm9keS1zdGFuZGFyZCc7XG4gIEBJbnB1dCgpIGRlc2t0b3A6IHN0cmluZyA9ICdib2R5LXN0YW5kYXJkJztcblxuICBwQ2xhc3M6IHN0cmluZyA9ICdib2R5LXN0YW5kYXJkJztcblxuICAvLy0tLSBMb2NhbCB2YXJpYWJsZXNcbiAgcHJpdmF0ZSBpbnB1dE1vYmlsZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIGlucHV0RGVza3RvcDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIGdldFNjcmVlbldpZHRoOiBudW1iZXIgPSAwO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkluaXRcbiAgICogQGRlc2NyaXB0aW9uICAgVXBkYXRlIHZhcmlvdXMgdmFsdWVzIG9uIGNvbXBvbmVudCBpbml0aWFsaXphdGlvblxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICB0aGlzLnVwZGF0ZUNsYXNzKCk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVwZGF0ZSB2YXJpb3VzIHZhbHVlcyBvbiBpbnB1dCBjaGFuZ2VzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIE1vYmlsZVxuICAgIHRoaXMuaW5wdXRNb2JpbGUgPSBjaGFuZ2VzWydtb2JpbGUnXT8uY3VycmVudFZhbHVlO1xuICAgIC8vLS0tIERlc2t0b3BcbiAgICB0aGlzLmlucHV0RGVza3RvcCA9IGNoYW5nZXNbJ2Rlc2t0b3AnXT8uY3VycmVudFZhbHVlO1xuXG4gICAgLy8tLS0gVXBkYXRlIENsYXNzXG4gICAgdGhpcy51cGRhdGVDbGFzcygpO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBvbldpbmRvd1Jlc2l6ZVxuICAgKiBAZGVzY3JpcHRpb24gICBBZGQgYSBob3N0IGxpc3RlbmVyIHRvIHNjcmVlbiBzaXplIGNoYW5nZXNcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRTY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIHRoaXMudXBkYXRlQ2xhc3MoKTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgdXBkYXRlQ2xhc3NcbiAgICogQGRlc2NyaXB0aW9uICAgVXBkYXRlIFAgZWxlbWVudCBjbGFzcyBiYXNlZCBvbiBzY3JlZW4gc2l6ZSBhbmQgJGNmLXNjcmVlbi1icmVha3BvaW50XG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgdXBkYXRlQ2xhc3MoKTogdm9pZCB7XG4gICAgdGhpcy5wQ2xhc3MgPSAodGhpcy5nZXRTY3JlZW5XaWR0aCA8IDc2OCA/IHRoaXMuaW5wdXRNb2JpbGUgOiB0aGlzLmlucHV0RGVza3RvcCkgfHwgJ2JvZHktc3RhbmRhcmQnO1xuICB9XG59XG4iLCI8IS0tIERlc2t0b3AgLS0+XG48cCBbbmdDbGFzc109XCJwQ2xhc3NcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9wPlxuIl19
@@ -1,49 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@ionic/angular";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../button/button.component";
6
- import * as i4 from "../spacer/spacer.component";
7
- import * as i5 from "../icon/icon.component";
8
- export class NotificationComponent {
9
- data;
10
- dataChange = new EventEmitter();
11
- buttonClick = new EventEmitter();
12
- closeClick = new EventEmitter();
13
- autoClose = new EventEmitter();
14
- autoCloseTimeOut;
15
- ngOnChanges(changes) {
16
- if (changes['data'] && this.data?.autoClose) {
17
- this.startAutoCloseTimer();
18
- }
19
- }
20
- startAutoCloseTimer() {
21
- if (this.autoCloseTimeOut) {
22
- clearTimeout(this.autoCloseTimeOut);
23
- }
24
- const autoCloseTime = this.data?.autoClose ?? 0;
25
- if (autoCloseTime > 0) {
26
- this.autoCloseTimeOut = setTimeout(() => {
27
- this.data = undefined;
28
- this.autoClose.emit();
29
- }, autoCloseTime * 1000);
30
- }
31
- }
32
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NotificationComponent, selector: "cf-notification", inputs: { data: "data" }, outputs: { dataChange: "dataChange", buttonClick: "buttonClick", closeClick: "closeClick", autoClose: "autoClose" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"data\">\n <cf-spacer mobile=\"16\" desktop=\"24\"></cf-spacer>\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"12\">\n <div id=\"notification-container\" [ngClass]=\"data.status === 'accent' ? 'accent-background-opacity-50' : data.status\">\n <ion-grid>\n <ion-row>\n <ion-col class=\"ion-align-self-center ion-text-start\">\n <p class=\"body-medium bold\">{{ data.heading }}</p>\n </ion-col>\n <ion-col size=\"auto\">\n <cf-icon\n style=\"cursor: pointer\"\n icon=\"close\"\n *ngIf=\"data.buttons && data.buttons.closeButton\"\n (click)=\"closeClick.emit(data.buttons.identifier); data = undefined\"\n [height]=\"10\"\n [iconColor]=\"data.status\">\n </cf-icon>\n </ion-col>\n <ion-col *ngIf=\"data.message\" size=\"12\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-small\">{{ data.message }}</p>\n </ion-col>\n <ion-col *ngIf=\"data.buttons && data.buttons.actionButton?.buttonHeading\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-medium bold\">{{ data.buttons.actionButton?.buttonHeading }}</p>\n </ion-col>\n <ion-col size=\"12\">\n <ng-content></ng-content>\n </ion-col>\n <ion-col size=\"12\" *ngIf=\"data.buttons && data.buttons.actionButton\">\n <cf-spacer default=\"8\"></cf-spacer>\n <cf-btn type=\"primary\" fontSize=\"large\" action snug (click)=\"buttonClick.emit(data.buttons.identifier); data = undefined\">\n {{ data.buttons.actionButton.buttonText }}\n </cf-btn>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n</div>\n", styles: ["#notification-container{border-radius:4px;text-align:start;padding:12px;margin-inline:auto;max-width:640px}#notification-container.success{border:1.5px solid var(--cf-app-system-color-success);background-color:var(--cf-app-system-color-light-success)}#notification-container.warning{border:1.5px solid var(--cf-app-system-color-warning);background-color:var(--cf-app-system-color-light-warning)}#notification-container.error{border:1.5px solid var(--cf-app-system-color-error);background-color:var(--cf-app-system-color-light-error)}\n"], dependencies: [{ kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "cf-btn", inputs: ["type", "disabled", "alert", "action", "white", "snug", "accent", "fontSize", "iconStart", "iconEnd", "loading", "loadingText", "customColor"] }, { kind: "component", type: i4.SpacerComponent, selector: "cf-spacer", inputs: ["default", "mobile", "desktop"] }, { kind: "component", type: i5.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "heightMobile", "heightDesktop", "iconColor", "iconColorCustom"] }] });
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationComponent, decorators: [{
36
- type: Component,
37
- args: [{ selector: 'cf-notification', template: "<div *ngIf=\"data\">\n <cf-spacer mobile=\"16\" desktop=\"24\"></cf-spacer>\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"12\">\n <div id=\"notification-container\" [ngClass]=\"data.status === 'accent' ? 'accent-background-opacity-50' : data.status\">\n <ion-grid>\n <ion-row>\n <ion-col class=\"ion-align-self-center ion-text-start\">\n <p class=\"body-medium bold\">{{ data.heading }}</p>\n </ion-col>\n <ion-col size=\"auto\">\n <cf-icon\n style=\"cursor: pointer\"\n icon=\"close\"\n *ngIf=\"data.buttons && data.buttons.closeButton\"\n (click)=\"closeClick.emit(data.buttons.identifier); data = undefined\"\n [height]=\"10\"\n [iconColor]=\"data.status\">\n </cf-icon>\n </ion-col>\n <ion-col *ngIf=\"data.message\" size=\"12\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-small\">{{ data.message }}</p>\n </ion-col>\n <ion-col *ngIf=\"data.buttons && data.buttons.actionButton?.buttonHeading\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-medium bold\">{{ data.buttons.actionButton?.buttonHeading }}</p>\n </ion-col>\n <ion-col size=\"12\">\n <ng-content></ng-content>\n </ion-col>\n <ion-col size=\"12\" *ngIf=\"data.buttons && data.buttons.actionButton\">\n <cf-spacer default=\"8\"></cf-spacer>\n <cf-btn type=\"primary\" fontSize=\"large\" action snug (click)=\"buttonClick.emit(data.buttons.identifier); data = undefined\">\n {{ data.buttons.actionButton.buttonText }}\n </cf-btn>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n</div>\n", styles: ["#notification-container{border-radius:4px;text-align:start;padding:12px;margin-inline:auto;max-width:640px}#notification-container.success{border:1.5px solid var(--cf-app-system-color-success);background-color:var(--cf-app-system-color-light-success)}#notification-container.warning{border:1.5px solid var(--cf-app-system-color-warning);background-color:var(--cf-app-system-color-light-warning)}#notification-container.error{border:1.5px solid var(--cf-app-system-color-error);background-color:var(--cf-app-system-color-light-error)}\n"] }]
38
- }], propDecorators: { data: [{
39
- type: Input
40
- }], dataChange: [{
41
- type: Output
42
- }], buttonClick: [{
43
- type: Output
44
- }], closeClick: [{
45
- type: Output
46
- }], autoClose: [{
47
- type: Output
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFVdkUsTUFBTSxPQUFPLHFCQUFxQjtJQUV2QixJQUFJLENBQW1DO0lBQ3RDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUVsRCxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTJELENBQUM7SUFDMUYsVUFBVSxHQUFHLElBQUksWUFBWSxFQUEyRCxDQUFDO0lBQ3pGLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBR3ZDLGdCQUFnQixDQUFpQztJQVF6RCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQVFPLG1CQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixDQUFDLEVBQUUsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO3dHQXpDVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiwyTkNwQmxDLG1oRUE2Q0E7OzRGRHpCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQU1sQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZUZpcnN0IExpYnJhcnkgLSBOb3RpZmljYXRpb25cbiAqXG4gKiBAZmlsZSAgICAgICAgICBub3RpZmljYXRpb24uY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IE5vdGlmaWNhdGlvblxuICogQGF1dGhvciAgICAgICAgQXJubyBKYW5zZW4gdmFuIFZ1dXJlblxuICogQHNpbmNlICAgICAgICAgMjAyMyAtIDExIC0gMjdcbiAqIEB1c2FnZSAgICAgICAgIDxjZi1ub3RpZmljYXRpb24gW2RhdGFdPVwie2hlYWRpbmcsIHN0YXR1cywgJW1lc3NhZ2UlLCAlY2FuQ2xvc2UlLCAlYnV0dG9uJSwgJWF1dG9DbG9zZSV9XCIgKGJ1dHRvbkNsaWNrKT1cIlwiPjwvY2Ytbm90aWZpY2F0aW9uPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8tLS0gSW50ZXJmYWNlc1xuaW1wb3J0IHR5cGUgeyBOb3RpZmljYXRpb25QYXlsb2FkSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLW5vdGlmaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgLy8tLS0gbmdNb2RlbFxuICBASW5wdXQoKSBkYXRhOiBOb3RpZmljYXRpb25QYXlsb2FkSSB8IHVuZGVmaW5lZDtcbiAgQE91dHB1dCgpIGRhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHR5cGVvZiB0aGlzLmRhdGE+KCk7XG5cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxSZXF1aXJlZDxOb3RpZmljYXRpb25QYXlsb2FkST5bJ2J1dHRvbnMnXVsnaWRlbnRpZmllciddPigpO1xuICBAT3V0cHV0KCkgY2xvc2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UmVxdWlyZWQ8Tm90aWZpY2F0aW9uUGF5bG9hZEk+WydidXR0b25zJ11bJ2lkZW50aWZpZXInXT4oKTtcbiAgQE91dHB1dCgpIGF1dG9DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvLy0tLSBQcml2YXRlXG4gIHByaXZhdGUgYXV0b0Nsb3NlVGltZU91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgTGlzdGVucyBmb3IgY2hhbmdlcyB0byBkYXRhIGFuZCBzdGFydHMgdGltZXIgd2hlbi9pZiAnYXV0b0Nsb3NlJyBpcyBzZXQuXG4gICAqIEBwYXJhbSAgICAgICAgIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10gJiYgdGhpcy5kYXRhPy5hdXRvQ2xvc2UpIHtcbiAgICAgIHRoaXMuc3RhcnRBdXRvQ2xvc2VUaW1lcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgc3RhcnRBdXRvQ2xvc2VUaW1lclxuICAgKiBAZGVzY3JpcHRpb24gICBTdGFydCB0aW1lciB0byBhdXRvbWF0aWNhbGx5IGNsb3NlIG5vdGlmaWNhdGlvbiBhZnRlciBzcGVjaWZpZWQgZHVyYXRpb24uXG4gICAqIEBkZXNjcmlwdGlvbiAgIElmIHByZXZpb3VzIGF1dG9DbG9zZSB0aW1lIGV4aXN0cywgaXQgaXMgY2xlYXJlZCBiZWZvcmUgc3RhcnRpbmcgbmV3IG9uZS5cbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBwcml2YXRlIHN0YXJ0QXV0b0Nsb3NlVGltZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b0Nsb3NlVGltZU91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b0Nsb3NlVGltZU91dCk7XG4gICAgfVxuICAgIGNvbnN0IGF1dG9DbG9zZVRpbWUgPSB0aGlzLmRhdGE/LmF1dG9DbG9zZSA/PyAwO1xuICAgIGlmIChhdXRvQ2xvc2VUaW1lID4gMCkge1xuICAgICAgdGhpcy5hdXRvQ2xvc2VUaW1lT3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5hdXRvQ2xvc2UuZW1pdCgpO1xuICAgICAgfSwgYXV0b0Nsb3NlVGltZSAqIDEwMDApO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRhdGFcIj5cbiAgPGNmLXNwYWNlciBtb2JpbGU9XCIxNlwiIGRlc2t0b3A9XCIyNFwiPjwvY2Ytc3BhY2VyPlxuICA8aW9uLWdyaWQ+XG4gICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCI+XG4gICAgICAgIDxkaXYgaWQ9XCJub3RpZmljYXRpb24tY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiZGF0YS5zdGF0dXMgPT09ICdhY2NlbnQnID8gJ2FjY2VudC1iYWNrZ3JvdW5kLW9wYWNpdHktNTAnIDogZGF0YS5zdGF0dXNcIj5cbiAgICAgICAgICA8aW9uLWdyaWQ+XG4gICAgICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tYWxpZ24tc2VsZi1jZW50ZXIgaW9uLXRleHQtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImJvZHktbWVkaXVtIGJvbGRcIj57eyBkYXRhLmhlYWRpbmcgfX08L3A+XG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICAgICAgICA8Y2YtaWNvblxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgaWNvbj1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5idXR0b25zICYmIGRhdGEuYnV0dG9ucy5jbG9zZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VDbGljay5lbWl0KGRhdGEuYnV0dG9ucy5pZGVudGlmaWVyKTsgZGF0YSA9IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjEwXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uQ29sb3JdPVwiZGF0YS5zdGF0dXNcIj5cbiAgICAgICAgICAgICAgICA8L2NmLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJkYXRhLm1lc3NhZ2VcIiBzaXplPVwiMTJcIj5cbiAgICAgICAgICAgICAgICA8Y2Ytc3BhY2VyIGRlZmF1bHQ9XCI4XCI+PC9jZi1zcGFjZXI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJib2R5LXNtYWxsXCI+e3sgZGF0YS5tZXNzYWdlIH19PC9wPlxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICAgIDxpb24tY29sICpuZ0lmPVwiZGF0YS5idXR0b25zICYmIGRhdGEuYnV0dG9ucy5hY3Rpb25CdXR0b24/LmJ1dHRvbkhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICA8Y2Ytc3BhY2VyIGRlZmF1bHQ9XCI4XCI+PC9jZi1zcGFjZXI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJib2R5LW1lZGl1bSBib2xkXCI+e3sgZGF0YS5idXR0b25zLmFjdGlvbkJ1dHRvbj8uYnV0dG9uSGVhZGluZyB9fTwvcD5cbiAgICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgKm5nSWY9XCJkYXRhLmJ1dHRvbnMgJiYgZGF0YS5idXR0b25zLmFjdGlvbkJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjhcIj48L2NmLXNwYWNlcj5cbiAgICAgICAgICAgICAgICA8Y2YtYnRuIHR5cGU9XCJwcmltYXJ5XCIgZm9udFNpemU9XCJsYXJnZVwiIGFjdGlvbiBzbnVnIChjbGljayk9XCJidXR0b25DbGljay5lbWl0KGRhdGEuYnV0dG9ucy5pZGVudGlmaWVyKTsgZGF0YSA9IHVuZGVmaW5lZFwiPlxuICAgICAgICAgICAgICAgICAge3sgZGF0YS5idXR0b25zLmFjdGlvbkJ1dHRvbi5idXR0b25UZXh0IH19XG4gICAgICAgICAgICAgICAgPC9jZi1idG4+XG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgIDwvaW9uLXJvdz5cbiAgICAgICAgICA8L2lvbi1ncmlkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvaW9uLWdyaWQ+XG48L2Rpdj5cbiJdfQ==
@@ -1,69 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { checkTruthAttribute } from '../../utils/attribute.util';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ionic/angular";
5
- import * as i2 from "@angular/common";
6
- export class PageComponent {
7
- centerH;
8
- centerV;
9
- headerInheritanceOff;
10
- stickyHeaderOff;
11
- dark;
12
- noScroll;
13
- devMode;
14
- buttonsVertical;
15
- stickyButtonOn;
16
- noStickyButtonFade;
17
- scrollEvent = new EventEmitter();
18
- inputCenterH = false;
19
- inputCenterV = false;
20
- inputHeaderInheritanceOff = false;
21
- inputStickyHeaderOff = false;
22
- inputDark = false;
23
- inputNoScroll = false;
24
- inputDevMode = false;
25
- inputButtonsVertical = false;
26
- inputStickyButtonOn = false;
27
- inputNoStickyButtonFade = false;
28
- ngOnChanges(changes) {
29
- this.inputCenterH = checkTruthAttribute(changes, 'centerH', this.inputCenterH);
30
- this.inputCenterV = checkTruthAttribute(changes, 'centerV', this.inputCenterV);
31
- this.inputHeaderInheritanceOff = checkTruthAttribute(changes, 'headerInheritanceOff', this.inputHeaderInheritanceOff);
32
- this.inputStickyHeaderOff = checkTruthAttribute(changes, 'stickyHeaderOff', this.inputStickyHeaderOff);
33
- this.inputDark = checkTruthAttribute(changes, 'dark', this.inputDark);
34
- this.inputNoScroll = checkTruthAttribute(changes, 'noScroll', this.inputNoScroll);
35
- this.inputDevMode = checkTruthAttribute(changes, 'devMode', this.inputDevMode);
36
- this.inputButtonsVertical = checkTruthAttribute(changes, 'buttonsVertical', this.inputButtonsVertical);
37
- this.inputNoStickyButtonFade = checkTruthAttribute(changes, 'noStickyButtonFade', this.inputNoStickyButtonFade);
38
- this.inputStickyButtonOn = checkTruthAttribute(changes, 'stickyButtonOn', this.inputStickyButtonOn);
39
- }
40
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageComponent, selector: "cf-page", inputs: { centerH: "centerH", centerV: "centerV", headerInheritanceOff: "headerInheritanceOff", stickyHeaderOff: "stickyHeaderOff", dark: "dark", noScroll: "noScroll", devMode: "devMode", buttonsVertical: "buttonsVertical", stickyButtonOn: "stickyButtonOn", noStickyButtonFade: "noStickyButtonFade" }, outputs: { scrollEvent: "scrollEvent" }, usesOnChanges: true, ngImport: i0, template: "<ion-content\n scrollEvents=\"true\"\n class=\"ion-page cf-page\"\n [ngClass]=\"{ 'bg-dark': inputDark, 'no-scroll': inputNoScroll, 'dev-mode': inputDevMode }\"\n (ionScroll)=\"scrollEvent.emit($event)\">\n <div id=\"page-setup\" [ngClass]=\"{ 'center-v': inputCenterV }\">\n <!-- Header -->\n <div\n id=\"header\"\n [ngClass]=\"{\n 'center-h': inputCenterH && !inputHeaderInheritanceOff,\n 'center-v': inputCenterV && !inputHeaderInheritanceOff,\n 'sticky-header-off': inputStickyHeaderOff,\n 'ion-no-border': true,\n }\">\n <div class=\"header-content content-base\">\n <ng-content select=\"[cf-page-header]\"></ng-content>\n </div>\n </div>\n <!-- Content and Buttons -->\n <div id=\"device-spacing\" [ngClass]=\"{ 'center-h': inputCenterH, 'center-v': inputCenterV }\">\n <div class=\"content content-base\">\n <ng-content></ng-content>\n </div>\n <div id=\"page-buttons\">\n <div class=\"content\" [ngClass]=\"{ 'vertical-buttons': inputButtonsVertical }\">\n <ng-content select=\"[cf-page-buttons]\"></ng-content>\n </div>\n </div>\n </div>\n <!-- Footer -->\n <div id=\"footer\">\n <div class=\"content content-base\">\n <ng-content select=\"[cf-page-footer]\"></ng-content>\n </div>\n </div>\n <!-- Sticky-buttons -->\n <div id=\"sticky-buttons\" *ngIf=\"inputStickyButtonOn\">\n <div id=\"overlay\" [ngClass]=\"{ off: inputNoStickyButtonFade }\"> </div>\n <div id=\"buttons-container-background\">\n <div id=\"buttons-container\">\n <div class=\"content content-base\" [ngClass]=\"{ 'vertical-buttons': inputButtonsVertical }\">\n <ng-content select=\"[cf-page-sticky-buttons]\"></ng-content>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ion-content>\n", styles: ["ion-content.cf-page{--page-background-color: var(--cf-page-main-bg-color, var(--cf-app-background-light))}ion-content.cf-page.bg-dark{--page-background-color: var(--cf-app-background-dark)}ion-content.cf-page::part(scroll){background-color:var(--page-background-color);-ms-overflow-style:none;scrollbar-width:none}ion-content.cf-page::part(scroll)::-webkit-scrollbar{display:none}ion-content.cf-page.no-scroll::part(scroll){overflow:hidden}ion-content.cf-page{--main-page-block-padding: 24px}@media (min-width: 768px){ion-content.cf-page{--main-page-block-padding: 48px}}ion-content.cf-page .content-base{display:flex;flex-direction:column}ion-content.cf-page .content-base>*{max-width:100%}ion-content.cf-page #page-setup{position:relative;width:100%;min-height:100%;height:fit-content;flex-direction:column;display:flex}ion-content.cf-page #page-setup>*{width:100%;padding-inline:var(--cf-page-inline-padding, 16px)}@media (min-width: 768px){ion-content.cf-page #page-setup>*{padding-inline:var(--cf-page-inline-padding, 72px)}}ion-content.cf-page #page-setup .content{width:100%}ion-content.cf-page #page-setup #header{display:flex;flex-direction:column;align-items:center;position:sticky;top:0;z-index:10;background-color:var(--page-background-color)}ion-content.cf-page #page-setup #header .header-content{width:100%;max-width:var(--cf-page-mobile-header-max-width)}@media (min-width: 768px){ion-content.cf-page #page-setup #header .header-content{max-width:var(--cf-page-desktop-header-max-width)}}ion-content.cf-page #page-setup #header.sticky-header-off{position:relative}ion-content.cf-page #page-setup #device-spacing{flex-grow:1;display:flex;flex-direction:column}ion-content.cf-page #page-setup #device-spacing>.content:first-child{flex-grow:1;width:min(var(--cf-page-content-mobile-max-width, 100%),100%)}@media (min-width: 768px){ion-content.cf-page #page-setup #device-spacing>.content:first-child{flex-grow:0;width:min(var(--cf-page-content-desktop-max-width, 100%),100%)}}ion-content.cf-page #page-setup #device-spacing #page-buttons{width:100%}ion-content.cf-page #page-setup #device-spacing #page-buttons>.content{justify-content:center;flex-wrap:nowrap;gap:16px;width:min(var(--cf-page-content-mobile-max-width, 100%),100%);margin-inline:auto}ion-content.cf-page #page-setup #device-spacing #page-buttons>.content:not(:empty){padding-bottom:var(--main-page-block-padding)}@media (min-width: 768px){ion-content.cf-page #page-setup #device-spacing #page-buttons>.content{flex-direction:row;width:min(var(--cf-page-content-desktop-max-width, 100%),100%)}}@media (min-width: 768px){ion-content.cf-page #page-setup #device-spacing #page-buttons>.content.vertical-buttons{flex-direction:column;align-items:center}}ion-content.cf-page #page-setup #header.center-h,ion-content.cf-page #page-setup #device-spacing.center-h,ion-content.cf-page #page-setup #device-spacing.center-h>.content{align-items:center;text-align:center}ion-content.cf-page #page-setup #header.center-v,ion-content.cf-page #page-setup #device-spacing.center-v,ion-content.cf-page #page-setup #device-spacing.center-v>.content{justify-content:center}ion-content.cf-page #page-setup #footer{display:flex;flex-direction:column;align-items:center;background-color:var(--cf-page-footer-bg-color, transparent)}ion-content.cf-page #page-setup #sticky-buttons{--fade-height: var(--cf-page-sticky-button-fade-height, 48px);display:flex;flex-direction:column;align-items:center;position:sticky;bottom:0;z-index:10;background-color:transparent;margin-inline:auto;padding-inline:0px}ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background{background-color:var(--page-background-color);width:100%;display:flex;flex-direction:column;align-items:center;margin-top:var(--fade-height);padding-inline:var(--cf-page-inline-padding, 16px)}@media (min-width: 768px){ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background{padding-inline:var(--cf-page-inline-padding, 72px)}}ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container{width:100%;padding-top:12px}ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container>.content{justify-content:center;flex-wrap:nowrap;gap:16px;width:min(var(--cf-page-content-mobile-max-width, 100%),100%);margin-inline:auto}ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container>.content:not(:empty){padding-bottom:var(--main-page-block-padding)}@media (min-width: 768px){ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container>.content{flex-direction:row;width:min(var(--cf-page-content-desktop-max-width, 100%),100%)}}@media (min-width: 768px){ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container>.content.vertical-buttons{flex-direction:column;align-items:center}}@media (min-width: 768px){ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container{padding-top:24px}}ion-content.cf-page #page-setup #sticky-buttons #overlay{width:100%;height:var(--fade-height);position:absolute;background-image:linear-gradient(to bottom,transparent,var(--page-background-color) 80%)}ion-content.cf-page #page-setup #sticky-buttons #overlay.off{background-color:var(--page-background-color)}#page-setup.center-v{justify-content:center}ion-content.cf-page.dev-mode #page-setup{background-color:#0ff}ion-content.cf-page.dev-mode #page-setup #header{background-color:#00f}ion-content.cf-page.dev-mode #page-setup .header-content{background-color:#ff0}ion-content.cf-page.dev-mode #page-setup .content{background-color:green}ion-content.cf-page.dev-mode #page-setup #page-buttons>.content{background-color:tomato}ion-content.cf-page.dev-mode #page-setup #footer{background-color:brown}ion-content.cf-page.dev-mode #page-setup #sticky-buttons #buttons-container-background{background-color:#7fff00}\n"], dependencies: [{ kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageComponent, decorators: [{
44
- type: Component,
45
- args: [{ selector: 'cf-page', template: "<ion-content\n scrollEvents=\"true\"\n class=\"ion-page cf-page\"\n [ngClass]=\"{ 'bg-dark': inputDark, 'no-scroll': inputNoScroll, 'dev-mode': inputDevMode }\"\n (ionScroll)=\"scrollEvent.emit($event)\">\n <div id=\"page-setup\" [ngClass]=\"{ 'center-v': inputCenterV }\">\n <!-- Header -->\n <div\n id=\"header\"\n [ngClass]=\"{\n 'center-h': inputCenterH && !inputHeaderInheritanceOff,\n 'center-v': inputCenterV && !inputHeaderInheritanceOff,\n 'sticky-header-off': inputStickyHeaderOff,\n 'ion-no-border': true,\n }\">\n <div class=\"header-content content-base\">\n <ng-content select=\"[cf-page-header]\"></ng-content>\n </div>\n </div>\n <!-- Content and Buttons -->\n <div id=\"device-spacing\" [ngClass]=\"{ 'center-h': inputCenterH, 'center-v': inputCenterV }\">\n <div class=\"content content-base\">\n <ng-content></ng-content>\n </div>\n <div id=\"page-buttons\">\n <div class=\"content\" [ngClass]=\"{ 'vertical-buttons': inputButtonsVertical }\">\n <ng-content select=\"[cf-page-buttons]\"></ng-content>\n </div>\n </div>\n </div>\n <!-- Footer -->\n <div id=\"footer\">\n <div class=\"content content-base\">\n <ng-content select=\"[cf-page-footer]\"></ng-content>\n </div>\n </div>\n <!-- Sticky-buttons -->\n <div id=\"sticky-buttons\" *ngIf=\"inputStickyButtonOn\">\n <div id=\"overlay\" [ngClass]=\"{ off: inputNoStickyButtonFade }\"> </div>\n <div id=\"buttons-container-background\">\n <div id=\"buttons-container\">\n <div class=\"content content-base\" [ngClass]=\"{ 'vertical-buttons': inputButtonsVertical }\">\n <ng-content select=\"[cf-page-sticky-buttons]\"></ng-content>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ion-content>\n", styles: ["ion-content.cf-page{--page-background-color: var(--cf-page-main-bg-color, var(--cf-app-background-light))}ion-content.cf-page.bg-dark{--page-background-color: var(--cf-app-background-dark)}ion-content.cf-page::part(scroll){background-color:var(--page-background-color);-ms-overflow-style:none;scrollbar-width:none}ion-content.cf-page::part(scroll)::-webkit-scrollbar{display:none}ion-content.cf-page.no-scroll::part(scroll){overflow:hidden}ion-content.cf-page{--main-page-block-padding: 24px}@media (min-width: 768px){ion-content.cf-page{--main-page-block-padding: 48px}}ion-content.cf-page .content-base{display:flex;flex-direction:column}ion-content.cf-page .content-base>*{max-width:100%}ion-content.cf-page #page-setup{position:relative;width:100%;min-height:100%;height:fit-content;flex-direction:column;display:flex}ion-content.cf-page #page-setup>*{width:100%;padding-inline:var(--cf-page-inline-padding, 16px)}@media (min-width: 768px){ion-content.cf-page #page-setup>*{padding-inline:var(--cf-page-inline-padding, 72px)}}ion-content.cf-page #page-setup .content{width:100%}ion-content.cf-page #page-setup #header{display:flex;flex-direction:column;align-items:center;position:sticky;top:0;z-index:10;background-color:var(--page-background-color)}ion-content.cf-page #page-setup #header .header-content{width:100%;max-width:var(--cf-page-mobile-header-max-width)}@media (min-width: 768px){ion-content.cf-page #page-setup #header .header-content{max-width:var(--cf-page-desktop-header-max-width)}}ion-content.cf-page #page-setup #header.sticky-header-off{position:relative}ion-content.cf-page #page-setup #device-spacing{flex-grow:1;display:flex;flex-direction:column}ion-content.cf-page #page-setup #device-spacing>.content:first-child{flex-grow:1;width:min(var(--cf-page-content-mobile-max-width, 100%),100%)}@media (min-width: 768px){ion-content.cf-page #page-setup #device-spacing>.content:first-child{flex-grow:0;width:min(var(--cf-page-content-desktop-max-width, 100%),100%)}}ion-content.cf-page #page-setup #device-spacing #page-buttons{width:100%}ion-content.cf-page #page-setup #device-spacing #page-buttons>.content{justify-content:center;flex-wrap:nowrap;gap:16px;width:min(var(--cf-page-content-mobile-max-width, 100%),100%);margin-inline:auto}ion-content.cf-page #page-setup #device-spacing #page-buttons>.content:not(:empty){padding-bottom:var(--main-page-block-padding)}@media (min-width: 768px){ion-content.cf-page #page-setup #device-spacing #page-buttons>.content{flex-direction:row;width:min(var(--cf-page-content-desktop-max-width, 100%),100%)}}@media (min-width: 768px){ion-content.cf-page #page-setup #device-spacing #page-buttons>.content.vertical-buttons{flex-direction:column;align-items:center}}ion-content.cf-page #page-setup #header.center-h,ion-content.cf-page #page-setup #device-spacing.center-h,ion-content.cf-page #page-setup #device-spacing.center-h>.content{align-items:center;text-align:center}ion-content.cf-page #page-setup #header.center-v,ion-content.cf-page #page-setup #device-spacing.center-v,ion-content.cf-page #page-setup #device-spacing.center-v>.content{justify-content:center}ion-content.cf-page #page-setup #footer{display:flex;flex-direction:column;align-items:center;background-color:var(--cf-page-footer-bg-color, transparent)}ion-content.cf-page #page-setup #sticky-buttons{--fade-height: var(--cf-page-sticky-button-fade-height, 48px);display:flex;flex-direction:column;align-items:center;position:sticky;bottom:0;z-index:10;background-color:transparent;margin-inline:auto;padding-inline:0px}ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background{background-color:var(--page-background-color);width:100%;display:flex;flex-direction:column;align-items:center;margin-top:var(--fade-height);padding-inline:var(--cf-page-inline-padding, 16px)}@media (min-width: 768px){ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background{padding-inline:var(--cf-page-inline-padding, 72px)}}ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container{width:100%;padding-top:12px}ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container>.content{justify-content:center;flex-wrap:nowrap;gap:16px;width:min(var(--cf-page-content-mobile-max-width, 100%),100%);margin-inline:auto}ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container>.content:not(:empty){padding-bottom:var(--main-page-block-padding)}@media (min-width: 768px){ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container>.content{flex-direction:row;width:min(var(--cf-page-content-desktop-max-width, 100%),100%)}}@media (min-width: 768px){ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container>.content.vertical-buttons{flex-direction:column;align-items:center}}@media (min-width: 768px){ion-content.cf-page #page-setup #sticky-buttons #buttons-container-background #buttons-container{padding-top:24px}}ion-content.cf-page #page-setup #sticky-buttons #overlay{width:100%;height:var(--fade-height);position:absolute;background-image:linear-gradient(to bottom,transparent,var(--page-background-color) 80%)}ion-content.cf-page #page-setup #sticky-buttons #overlay.off{background-color:var(--page-background-color)}#page-setup.center-v{justify-content:center}ion-content.cf-page.dev-mode #page-setup{background-color:#0ff}ion-content.cf-page.dev-mode #page-setup #header{background-color:#00f}ion-content.cf-page.dev-mode #page-setup .header-content{background-color:#ff0}ion-content.cf-page.dev-mode #page-setup .content{background-color:green}ion-content.cf-page.dev-mode #page-setup #page-buttons>.content{background-color:tomato}ion-content.cf-page.dev-mode #page-setup #footer{background-color:brown}ion-content.cf-page.dev-mode #page-setup #sticky-buttons #buttons-container-background{background-color:#7fff00}\n"] }]
46
- }], propDecorators: { centerH: [{
47
- type: Input
48
- }], centerV: [{
49
- type: Input
50
- }], headerInheritanceOff: [{
51
- type: Input
52
- }], stickyHeaderOff: [{
53
- type: Input
54
- }], dark: [{
55
- type: Input
56
- }], noScroll: [{
57
- type: Input
58
- }], devMode: [{
59
- type: Input
60
- }], buttonsVertical: [{
61
- type: Input
62
- }], stickyButtonOn: [{
63
- type: Input
64
- }], noStickyButtonFade: [{
65
- type: Input
66
- }], scrollEvent: [{
67
- type: Output
68
- }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS9wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9wYWdlL3BhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0NBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBT2pFLE1BQU0sT0FBTyxhQUFhO0lBQ2YsT0FBTyxDQUFnQztJQUN2QyxPQUFPLENBQWdDO0lBQ3ZDLG9CQUFvQixDQUFnQztJQUNwRCxlQUFlLENBQWdDO0lBQy9DLElBQUksQ0FBZ0M7SUFDcEMsUUFBUSxDQUFnQztJQUN4QyxPQUFPLENBQWdDO0lBQ3ZDLGVBQWUsQ0FBZ0M7SUFDL0MsY0FBYyxDQUFnQztJQUM5QyxrQkFBa0IsQ0FBZ0M7SUFFakQsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFHeEQsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQUNsQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDN0IsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDckIsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQzdCLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUM1Qix1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFPaEMsV0FBVyxDQUFDLE9BQXNCO1FBRWhDLElBQUksQ0FBQyxZQUFZLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXRILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFdkcsSUFBSSxDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsYUFBYSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxZQUFZLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV2RyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRWhILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEcsQ0FBQzt3R0FwRFUsYUFBYTs0RkFBYixhQUFhLDJaQzlDMUIscTJEQWlEQTs7NEZESGEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxTQUFTOzhCQUtWLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZUZpcnN0IExpYnJhcnkgLSBQYWdlXG4gKlxuICogQGZpbGUgICAgICAgICAgcGFnZS5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgYSBiYXNpYyBDYXJlRmlyc3QgUGFnZSBzdHJ1Y3R1cmVcbiAqIEBhdXRob3IgICAgICAgIEphY3F1ZXMgQ29ldHplZVxuICogQHNpbmNlICAgICAgICAgMjAyMyAtIDExIC0gMDdcbiAqIEB1c2FnZSAgICAgICAgIDxjZi1wYWdlXG4gKiAgICAgICAgICAgICAgICAgICAgJWNlbnRlckglXG4gKiAgICAgICAgICAgICAgICAgICAgJWNlbnRlclYlXG4gKiAgICAgICAgICAgICAgICAgICAgJWhlYWRlckluaGVyaXRhbmNlT2ZmJVxuICogICAgICAgICAgICAgICAgICAgICVzdGlja3lIZWFkZXJPZmYlXG4gKiAgICAgICAgICAgICAgICAgICAgJWRhcmslXG4gKiAgICAgICAgICAgICAgICAgICAgJW5vU2Nyb2xsJVxuICogICAgICAgICAgICAgICAgICAgICVkZXZNb2RlJVxuICogICAgICAgICAgICAgICAgICAgICVidXR0b25zVmVydGljYWwlXG4gKiAgICAgICAgICAgICAgICAgICAgJXN0aWNreUJ1dHRvbk9uJVxuICogICAgICAgICAgICAgICAgICAgICVub1N0aWNreUJ1dHRvbkZhZGUlXG4gKiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJcbiAqICAgICAgICAgICAgICAgICAgICAgICAlLS1jZi1wYWdlLW1haW4tYmctY29sb3I6IGxpZ2h0OyVcbiAqICAgICAgICAgICAgICAgICAgICAgICAlLS1jZi1wYWdlLWlubGluZS1wYWRkaW5nOiAxNnB4OyVcbiAqICAgICAgICAgICAgICAgICAgICAgICAlLS1jZi1wYWdlLW1vYmlsZS1tYXgtd2lkdGg6IDM1OHB4OyVcbiAqICAgICAgICAgICAgICAgICAgICAgICAlLS1jZi1wYWdlLWRlc2t0b3AtbWF4LXdpZHRoOiAxMzAwcHg7JVxuICogICAgICAgICAgICAgICAgICAgICAgICUtLWNmLXBhZ2UtbW9iaWxlLWhlYWRlci1tYXgtd2lkdGg6IG5vLWRlZmF1bHQ7JVxuICogICAgICAgICAgICAgICAgICAgICAgICUtLWNmLXBhZ2UtZGVza3RvcC1oZWFkZXItbWF4LXdpZHRoOiBuby1kZWZhdWx0OyVcbiAqICAgICAgICAgICAgICAgICAgICAgICAlLS1jZi1wYWdlLWNvbnRlbnQtbW9iaWxlLW1heC13aWR0aDogMTAwJTslXG4gKiAgICAgICAgICAgICAgICAgICAgICAgJS0tY2YtcGFnZS1jb250ZW50LWRlc2t0b3AtbWF4LXdpZHRoOiAxMDAlOyVcbiAqICAgICAgICAgICAgICAgICAgICAgICAlLS1jZi1wYWdlLWZvb3Rlci1iZy1jb2xvcjogdHJhbnNwYXJlbnQ7JVxuICogICAgICAgICAgICAgICAgICAgICAgICUtLWNmLXBhZ2Utc3RpY2t5LWJ1dHRvbi1mYWRlLWhlaWdodDogMjRweDslXG4gKiAgICAgICAgICAgICAgICAgICAgXCI+XG4gKiAgICAgICAgICAgICAgICAgIENPTlRFTlRcbiAqICAgICAgICAgICAgICAgICAgJTxuZy1jb250YWluZXIgY2YtcGFnZS1oZWFkZXI+PC9uZy1jb250YWluZXI+JVxuICogICAgICAgICAgICAgICAgICAlPG5nLWNvbnRhaW5lciBjZi1wYWdlLWJ1dHRvbnM+PC9uZy1jb250YWluZXI+JVxuICogICAgICAgICAgICAgICAgICAlPG5nLWNvbnRhaW5lciBjZi1wYWdlLWZvb3Rlcj48L25nLWNvbnRhaW5lcj4lXG4gKiAgICAgICAgICAgICAgICAgICU8bmctY29udGFpbmVyIGNmLXBhZ2Utc3RpY2t5LWJ1dHRvbnM+PC9uZy1jb250YWluZXI+JVxuICogICAgICAgICAgICAgICAgPC9jZi1wYWdlPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcywgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja1RydXRoQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjZW50ZXJIPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY2VudGVyVj86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGhlYWRlckluaGVyaXRhbmNlT2ZmPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc3RpY2t5SGVhZGVyT2ZmPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZGFyaz86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG5vU2Nyb2xsPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZGV2TW9kZT86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGJ1dHRvbnNWZXJ0aWNhbD86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHN0aWNreUJ1dHRvbk9uPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbm9TdGlja3lCdXR0b25GYWRlPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KCkgc2Nyb2xsRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PigpO1xuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dENlbnRlckggPSBmYWxzZTtcbiAgaW5wdXRDZW50ZXJWID0gZmFsc2U7XG4gIGlucHV0SGVhZGVySW5oZXJpdGFuY2VPZmYgPSBmYWxzZTtcbiAgaW5wdXRTdGlja3lIZWFkZXJPZmYgPSBmYWxzZTtcbiAgaW5wdXREYXJrID0gZmFsc2U7XG4gIGlucHV0Tm9TY3JvbGwgPSBmYWxzZTtcbiAgaW5wdXREZXZNb2RlID0gZmFsc2U7XG4gIGlucHV0QnV0dG9uc1ZlcnRpY2FsID0gZmFsc2U7XG4gIGlucHV0U3RpY2t5QnV0dG9uT24gPSBmYWxzZTtcbiAgaW5wdXROb1N0aWNreUJ1dHRvbkZhZGUgPSBmYWxzZTtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVwZGF0ZSB2YXJpb3VzIHZhbHVlcyBvbiBpbnB1dCBjaGFuZ2VzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIENlbnRlciBIXG4gICAgdGhpcy5pbnB1dENlbnRlckggPSBjaGVja1RydXRoQXR0cmlidXRlKGNoYW5nZXMsICdjZW50ZXJIJywgdGhpcy5pbnB1dENlbnRlckgpO1xuICAgIC8vLS0tIENlbnRlciBWXG4gICAgdGhpcy5pbnB1dENlbnRlclYgPSBjaGVja1RydXRoQXR0cmlidXRlKGNoYW5nZXMsICdjZW50ZXJWJywgdGhpcy5pbnB1dENlbnRlclYpO1xuICAgIC8vLS0tIEhlYWRlciBDRiBQYWdlIENlbnRlciBJbmhlcml0YW5jZVxuICAgIHRoaXMuaW5wdXRIZWFkZXJJbmhlcml0YW5jZU9mZiA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2hlYWRlckluaGVyaXRhbmNlT2ZmJywgdGhpcy5pbnB1dEhlYWRlckluaGVyaXRhbmNlT2ZmKTtcbiAgICAvLy0tLSBIZWFkZXIgTm8gU3RpY2t5IFBvc2l0aW9uXG4gICAgdGhpcy5pbnB1dFN0aWNreUhlYWRlck9mZiA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ3N0aWNreUhlYWRlck9mZicsIHRoaXMuaW5wdXRTdGlja3lIZWFkZXJPZmYpO1xuICAgIC8vLS0tIERhcmtcbiAgICB0aGlzLmlucHV0RGFyayA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2RhcmsnLCB0aGlzLmlucHV0RGFyayk7XG4gICAgLy8tLS0gTm8gU2Nyb2xsXG4gICAgdGhpcy5pbnB1dE5vU2Nyb2xsID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnbm9TY3JvbGwnLCB0aGlzLmlucHV0Tm9TY3JvbGwpO1xuICAgIC8vLS0tIERldiBNb2RlXG4gICAgdGhpcy5pbnB1dERldk1vZGUgPSBjaGVja1RydXRoQXR0cmlidXRlKGNoYW5nZXMsICdkZXZNb2RlJywgdGhpcy5pbnB1dERldk1vZGUpO1xuICAgIC8vLS0tIFBhZ2UgQnV0dG9ucyBWZXJ0aWNhbFxuICAgIHRoaXMuaW5wdXRCdXR0b25zVmVydGljYWwgPSBjaGVja1RydXRoQXR0cmlidXRlKGNoYW5nZXMsICdidXR0b25zVmVydGljYWwnLCB0aGlzLmlucHV0QnV0dG9uc1ZlcnRpY2FsKTtcbiAgICAvLy0tLSBObyBTdGlja3kgQnV0dG9uIEZhZGVcbiAgICB0aGlzLmlucHV0Tm9TdGlja3lCdXR0b25GYWRlID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnbm9TdGlja3lCdXR0b25GYWRlJywgdGhpcy5pbnB1dE5vU3RpY2t5QnV0dG9uRmFkZSk7XG4gICAgLy8tLS0gU3RpY2t5IEJ1dHRvbiBTZWN0aW9uIE9uXG4gICAgdGhpcy5pbnB1dFN0aWNreUJ1dHRvbk9uID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnc3RpY2t5QnV0dG9uT24nLCB0aGlzLmlucHV0U3RpY2t5QnV0dG9uT24pO1xuICB9XG59XG4iLCI8aW9uLWNvbnRlbnRcbiAgc2Nyb2xsRXZlbnRzPVwidHJ1ZVwiXG4gIGNsYXNzPVwiaW9uLXBhZ2UgY2YtcGFnZVwiXG4gIFtuZ0NsYXNzXT1cInsgJ2JnLWRhcmsnOiBpbnB1dERhcmssICduby1zY3JvbGwnOiBpbnB1dE5vU2Nyb2xsLCAnZGV2LW1vZGUnOiBpbnB1dERldk1vZGUgfVwiXG4gIChpb25TY3JvbGwpPVwic2Nyb2xsRXZlbnQuZW1pdCgkZXZlbnQpXCI+XG4gIDxkaXYgaWQ9XCJwYWdlLXNldHVwXCIgW25nQ2xhc3NdPVwieyAnY2VudGVyLXYnOiBpbnB1dENlbnRlclYgfVwiPlxuICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgIDxkaXZcbiAgICAgIGlkPVwiaGVhZGVyXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2NlbnRlci1oJzogaW5wdXRDZW50ZXJIICYmICFpbnB1dEhlYWRlckluaGVyaXRhbmNlT2ZmLFxuICAgICAgICAnY2VudGVyLXYnOiBpbnB1dENlbnRlclYgJiYgIWlucHV0SGVhZGVySW5oZXJpdGFuY2VPZmYsXG4gICAgICAgICdzdGlja3ktaGVhZGVyLW9mZic6IGlucHV0U3RpY2t5SGVhZGVyT2ZmLFxuICAgICAgICAnaW9uLW5vLWJvcmRlcic6IHRydWUsXG4gICAgICB9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRlbnQgY29udGVudC1iYXNlXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjZi1wYWdlLWhlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIENvbnRlbnQgYW5kIEJ1dHRvbnMgLS0+XG4gICAgPGRpdiBpZD1cImRldmljZS1zcGFjaW5nXCIgW25nQ2xhc3NdPVwieyAnY2VudGVyLWgnOiBpbnB1dENlbnRlckgsICdjZW50ZXItdic6IGlucHV0Q2VudGVyViB9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudCBjb250ZW50LWJhc2VcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwicGFnZS1idXR0b25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgW25nQ2xhc3NdPVwieyAndmVydGljYWwtYnV0dG9ucyc6IGlucHV0QnV0dG9uc1ZlcnRpY2FsIH1cIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY2YtcGFnZS1idXR0b25zXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZvb3RlciAtLT5cbiAgICA8ZGl2IGlkPVwiZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudCBjb250ZW50LWJhc2VcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NmLXBhZ2UtZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gU3RpY2t5LWJ1dHRvbnMgLS0+XG4gICAgPGRpdiBpZD1cInN0aWNreS1idXR0b25zXCIgKm5nSWY9XCJpbnB1dFN0aWNreUJ1dHRvbk9uXCI+XG4gICAgICA8ZGl2IGlkPVwib3ZlcmxheVwiIFtuZ0NsYXNzXT1cInsgb2ZmOiBpbnB1dE5vU3RpY2t5QnV0dG9uRmFkZSB9XCI+IDwvZGl2PlxuICAgICAgPGRpdiBpZD1cImJ1dHRvbnMtY29udGFpbmVyLWJhY2tncm91bmRcIj5cbiAgICAgICAgPGRpdiBpZD1cImJ1dHRvbnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQgY29udGVudC1iYXNlXCIgW25nQ2xhc3NdPVwieyAndmVydGljYWwtYnV0dG9ucyc6IGlucHV0QnV0dG9uc1ZlcnRpY2FsIH1cIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjZi1wYWdlLXN0aWNreS1idXR0b25zXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2lvbi1jb250ZW50PlxuIl19
@@ -1,30 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { validateNumberValue } from '../../utils/attribute.util';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class SpacerComponent {
6
- default;
7
- mobile;
8
- desktop;
9
- inputDefault = undefined;
10
- inputMobile = undefined;
11
- inputDesktop = undefined;
12
- ngOnChanges(changes) {
13
- this.inputDefault = validateNumberValue(changes, 'default', this.inputDefault);
14
- this.inputMobile = validateNumberValue(changes, 'mobile', this.inputMobile);
15
- this.inputDesktop = validateNumberValue(changes, 'desktop', this.inputDesktop);
16
- }
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpacerComponent, selector: "cf-spacer", inputs: { default: "default", mobile: "mobile", desktop: "desktop" }, usesOnChanges: true, ngImport: i0, template: "<!-- Mobile Only OR Default -->\n<div *ngIf=\"inputMobile || inputDefault\" class=\"mobile-only\" [ngStyle]=\"{ height: (inputMobile || inputDefault || 0) + 'px' }\"> </div>\n<!-- Desktop Only OR Default-->\n<div *ngIf=\"inputDesktop || inputDefault\" class=\"desktop-only\" [ngStyle]=\"{ height: (inputDesktop || inputDefault || 0) + 'px' }\"> </div>\n", styles: ["@media not (min-width: 768px){div.mobile-only{display:block}div.desktop-only{display:none}}@media (min-width: 768px){div.mobile-only{display:none}div.desktop-only{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpacerComponent, decorators: [{
21
- type: Component,
22
- args: [{ selector: 'cf-spacer', template: "<!-- Mobile Only OR Default -->\n<div *ngIf=\"inputMobile || inputDefault\" class=\"mobile-only\" [ngStyle]=\"{ height: (inputMobile || inputDefault || 0) + 'px' }\"> </div>\n<!-- Desktop Only OR Default-->\n<div *ngIf=\"inputDesktop || inputDefault\" class=\"desktop-only\" [ngStyle]=\"{ height: (inputDesktop || inputDefault || 0) + 'px' }\"> </div>\n", styles: ["@media not (min-width: 768px){div.mobile-only{display:block}div.desktop-only{display:none}}@media (min-width: 768px){div.mobile-only{display:none}div.desktop-only{display:block}}\n"] }]
23
- }], propDecorators: { default: [{
24
- type: Input
25
- }], mobile: [{
26
- type: Input
27
- }], desktop: [{
28
- type: Input
29
- }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9zcGFjZXIvc3BhY2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9zcGFjZXIvc3BhY2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBUWpFLE1BQU0sT0FBTyxlQUFlO0lBQ2pCLE9BQU8sQ0FBNkM7SUFDcEQsTUFBTSxDQUE2QztJQUNuRCxPQUFPLENBQTZDO0lBRzdELFlBQVksR0FBdUIsU0FBUyxDQUFDO0lBQzdDLFdBQVcsR0FBdUIsU0FBUyxDQUFDO0lBQzVDLFlBQVksR0FBdUIsU0FBUyxDQUFDO0lBTzdDLFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9FLElBQUksQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRixDQUFDO3dHQXRCVSxlQUFlOzRGQUFmLGVBQWUsNElDbkI1QixtV0FJQTs7NEZEZWEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxXQUFXOzhCQUtaLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlRmlyc3QgTGlicmFyeSAtIFNwYWNlclxuICpcbiAqIEBmaWxlICAgICAgICAgIHNwYWNlci5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgYSBDYXJlRmlyc3QgRGl2IFNwYWNlclxuICogQGF1dGhvciAgICAgICAgSmFjcXVlcyBDb2V0emVlXG4gKiBAc2luY2UgICAgICAgICAyMDIzIC0gMTEgLSAwN1xuICogQHVzYWdlICAgICAgICAgPGNmLXNwYWNlciAlZGVmYXVsdD1cIlwiJSAlbW9iaWxlPVwiXCIlICVkZXNrdG9wPVwiXCIlPkNPTlRFTlQ8L2NmLXNwYWNlcj5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB2YWxpZGF0ZU51bWJlclZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuaW1wb3J0IHR5cGUgeyBTcGFjZXJOdW1iZXJULCBTcGFjZXJTdHJpbmdUIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zcGFjZXIuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2Ytc3BhY2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwYWNlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwYWNlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTcGFjZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkZWZhdWx0PzogU3BhY2VyU3RyaW5nVCB8IFNwYWNlck51bWJlclQgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1vYmlsZT86IFNwYWNlclN0cmluZ1QgfCBTcGFjZXJOdW1iZXJUIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBkZXNrdG9wPzogU3BhY2VyU3RyaW5nVCB8IFNwYWNlck51bWJlclQgfCB1bmRlZmluZWQ7XG5cbiAgLy8tLS0gTG9jYWwgdmFyaWFibGVzXG4gIGlucHV0RGVmYXVsdDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBpbnB1dE1vYmlsZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBpbnB1dERlc2t0b3A6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVwZGF0ZSB2YXJpb3VzIHZhbHVlcyBvbiBpbnB1dCBjaGFuZ2VzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIERlZmF1bHRcbiAgICB0aGlzLmlucHV0RGVmYXVsdCA9IHZhbGlkYXRlTnVtYmVyVmFsdWUoY2hhbmdlcywgJ2RlZmF1bHQnLCB0aGlzLmlucHV0RGVmYXVsdCk7XG4gICAgLy8tLS0gTW9iaWxlXG4gICAgdGhpcy5pbnB1dE1vYmlsZSA9IHZhbGlkYXRlTnVtYmVyVmFsdWUoY2hhbmdlcywgJ21vYmlsZScsIHRoaXMuaW5wdXRNb2JpbGUpO1xuICAgIC8vLS0tIERlc2t0b3BcbiAgICB0aGlzLmlucHV0RGVza3RvcCA9IHZhbGlkYXRlTnVtYmVyVmFsdWUoY2hhbmdlcywgJ2Rlc2t0b3AnLCB0aGlzLmlucHV0RGVza3RvcCk7XG4gIH1cbn1cbiIsIjwhLS0gTW9iaWxlIE9ubHkgT1IgRGVmYXVsdCAtLT5cbjxkaXYgKm5nSWY9XCJpbnB1dE1vYmlsZSB8fCBpbnB1dERlZmF1bHRcIiBjbGFzcz1cIm1vYmlsZS1vbmx5XCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IChpbnB1dE1vYmlsZSB8fCBpbnB1dERlZmF1bHQgfHwgMCkgKyAncHgnIH1cIj4gPC9kaXY+XG48IS0tIERlc2t0b3AgT25seSBPUiBEZWZhdWx0LS0+XG48ZGl2ICpuZ0lmPVwiaW5wdXREZXNrdG9wIHx8IGlucHV0RGVmYXVsdFwiIGNsYXNzPVwiZGVza3RvcC1vbmx5XCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IChpbnB1dERlc2t0b3AgfHwgaW5wdXREZWZhdWx0IHx8IDApICsgJ3B4JyB9XCI+IDwvZGl2PlxuIl19
@@ -1,19 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { validateNumberValue } from '../../utils/attribute.util';
3
- import * as i0 from "@angular/core";
4
- export class SpinnerComponent {
5
- size = 20;
6
- inputSize = 20;
7
- ngOnChanges(changes) {
8
- this.inputSize = validateNumberValue(changes, 'size', this.inputSize) || this.inputSize;
9
- }
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpinnerComponent, selector: "cf-spinner", inputs: { size: "size" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"spinner\" [style]=\"'font-size: ' + inputSize + 'px'\"></div>\n", styles: ["#spinner{width:1em;height:1em;border:.15em solid var(--cf-app-system-color-outline);border-radius:50%;border-top-color:var(--cf-app-color-accent);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] });
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinnerComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'cf-spinner', template: "<div id=\"spinner\" [style]=\"'font-size: ' + inputSize + 'px'\"></div>\n", styles: ["#spinner{width:1em;height:1em;border:.15em solid var(--cf-app-system-color-outline);border-radius:50%;border-top-color:var(--cf-app-color-accent);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
16
- }], propDecorators: { size: [{
17
- type: Input
18
- }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXNDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU9qRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ2xCLElBQUksR0FBb0IsRUFBRSxDQUFDO0lBR3BDLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFPdkIsV0FBVyxDQUFDLE9BQXNCO1FBRWhDLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxRixDQUFDO3dHQWRVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLGlHQ2pCN0IsMkVBQ0E7OzRGRGdCYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTs4QkFLYixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcmVGaXJzdCBMaWJyYXJ5IC0gU3Bpbm5lclxuICpcbiAqIEBmaWxlICAgICAgICAgIHNwaW5uZXIuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IFNwaW5uZXJcbiAqIEBhdXRob3IgICAgICAgIEphY3F1ZXMgQ29ldHplZVxuICogQHNpbmNlICAgICAgICAgMjAyNCAtIDAyIC0gMjNcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB2YWxpZGF0ZU51bWJlclZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1zcGlubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3Bpbm5lci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNwaW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzaXplOiBudW1iZXIgfCBzdHJpbmcgPSAyMDtcblxuICAvLy0tLSBMb2NhbCB2YXJpYWJsZXNcbiAgaW5wdXRTaXplOiBudW1iZXIgPSAyMDtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVwZGF0ZSB2YXJpb3VzIHZhbHVlcyBvbiBpbnB1dCBjaGFuZ2VzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIFNpemVcbiAgICB0aGlzLmlucHV0U2l6ZSA9IHZhbGlkYXRlTnVtYmVyVmFsdWUoY2hhbmdlcywgJ3NpemUnLCB0aGlzLmlucHV0U2l6ZSkgfHwgdGhpcy5pbnB1dFNpemU7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJzcGlubmVyXCIgW3N0eWxlXT1cIidmb250LXNpemU6ICcgKyBpbnB1dFNpemUgKyAncHgnXCI+PC9kaXY+XG4iXX0=
@@ -1,150 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@ionic/angular";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../spacer/spacer.component";
6
- import * as i4 from "../spinner/spinner.component";
7
- export class VerificationCodeComponent {
8
- valueToVerify;
9
- status;
10
- userFeedbackMessages;
11
- outcome = new EventEmitter();
12
- resendClickEvent = new EventEmitter();
13
- myInput1;
14
- myInput2;
15
- myInput3;
16
- myInput4;
17
- myInput5;
18
- validationCodeError = false;
19
- verificationCodeInputArr = [null, null, null, null, null];
20
- loading = false;
21
- commsSentCount = 0;
22
- commsInputCount = 0;
23
- commsInputCountExceeded = false;
24
- validationCode;
25
- statusSub$;
26
- ionViewDidEnter() {
27
- this.commsSentCount = 0;
28
- }
29
- ngOnChanges(changes) {
30
- if (changes['valueToVerify']?.currentValue !== changes['valueToVerify']?.previousValue ||
31
- changes['code']?.currentValue !== changes['code']?.previousValue) {
32
- this.commsSentCount = 0;
33
- this.validationCodeError = false;
34
- this.resetAllInputFields();
35
- }
36
- if (changes['status']) {
37
- this.statusSub$ = changes['status'].currentValue.subscribe((stat) => {
38
- if (stat === 'invalid') {
39
- this.validationCodeError = true;
40
- }
41
- this.resetAllInputFields();
42
- this.setFocusToNext(0);
43
- });
44
- }
45
- }
46
- resendVerificationCode() {
47
- this.commsInputCount = 0;
48
- this.commsInputCountExceeded = false;
49
- this.validationCodeError = false;
50
- this.commsSentCount++;
51
- this.status.next('initial');
52
- this.resendClickEvent.emit(true);
53
- }
54
- formulateAndCheckVerificationCode(event, index) {
55
- const value = event.detail.value;
56
- if (!value || !(typeof value === 'string') || !(+value < 10)) {
57
- this.clearCodeInput(index);
58
- return;
59
- }
60
- this.setFocusToNext(index);
61
- this.verificationCodeInputArr[index - 1] = +value;
62
- this.validationCodeError = false;
63
- if (this.verificationCodeInputArr.every((val) => val !== null)) {
64
- this.validationCode = this.verificationCodeInputArr.join('');
65
- this.outcome.emit(this.validationCode);
66
- this.commsInputCount++;
67
- this.commsInputCountExceeded = this.commsInputCount >= 3;
68
- }
69
- }
70
- resetAllInputFields() {
71
- this.clearCodeInput(1);
72
- this.clearCodeInput(2);
73
- this.clearCodeInput(3);
74
- this.clearCodeInput(4);
75
- this.clearCodeInput(5);
76
- this.verificationCodeInputArr.fill(null);
77
- }
78
- setFocusToNext(currentIndex) {
79
- if (currentIndex === 5)
80
- return;
81
- currentIndex === 0
82
- ? this.myInput1?.setFocus()
83
- : currentIndex === 1
84
- ? this.myInput2?.setFocus()
85
- : currentIndex === 2
86
- ? this.myInput3?.setFocus()
87
- : currentIndex === 3
88
- ? this.myInput4?.setFocus()
89
- : this.myInput5?.setFocus();
90
- }
91
- clearCodeInput(index) {
92
- switch (index) {
93
- case 1:
94
- if (this.myInput1)
95
- this.myInput1.value = null;
96
- break;
97
- case 2:
98
- if (this.myInput2)
99
- this.myInput2.value = null;
100
- break;
101
- case 3:
102
- if (this.myInput3)
103
- this.myInput3.value = null;
104
- break;
105
- case 4:
106
- if (this.myInput4)
107
- this.myInput4.value = null;
108
- break;
109
- case 5:
110
- if (this.myInput5)
111
- this.myInput5.value = null;
112
- break;
113
- }
114
- }
115
- ionViewWillLeave() {
116
- this.statusSub$?.unsubscribe();
117
- }
118
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VerificationCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
119
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VerificationCodeComponent, selector: "cf-verification-code", inputs: { valueToVerify: "valueToVerify", status: "status", userFeedbackMessages: "userFeedbackMessages" }, outputs: { outcome: "outcome", resendClickEvent: "resendClickEvent" }, viewQueries: [{ propertyName: "myInput1", first: true, predicate: ["input1"], descendants: true }, { propertyName: "myInput2", first: true, predicate: ["input2"], descendants: true }, { propertyName: "myInput3", first: true, predicate: ["input3"], descendants: true }, { propertyName: "myInput4", first: true, predicate: ["input4"], descendants: true }, { propertyName: "myInput5", first: true, predicate: ["input5"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- ---<> rethink if statement logic -->\n<div id=\"verification-container\">\n <ion-grid id=\"verification-grid\" [ngStyle]=\"status.value === 'processing' ? { visibility: 'hidden' } : {}\">\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ng-container *ngIf=\"status.value !== 'disabled'\">\n <ion-col *ngIf=\"validationCodeError && !commsInputCountExceeded\" size=\"auto\">\n <p\n class=\"body-small error ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.error?.errorMessage || ['Invalid Code - Please Retry']\"\n >{{ string }}</p\n >\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n <ion-col *ngIf=\"commsInputCountExceeded\" size=\"auto\">\n <p class=\"body-small error ion-text-center\">Invalid Code - Max attempts exceeded</p>\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n <ion-col *ngIf=\"status.value === 'initial'\">\n <p *ngFor=\"let string of userFeedbackMessages?.initial || ['Code sent, Please check your inbox']\" class=\"body-small good ion-text-center\">{{\n string\n }}</p>\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n </ng-container>\n <ion-col\n *ngIf=\"\n (!validationCodeError && status.value === 'disabled') || status.value === 'disabled' || (status.value === 'invalid' && !validationCodeError)\n \">\n <cf-spacer default=\"32\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col>\n <div class=\"single-container\" [ngClass]=\"{ error: validationCodeError }\">\n <ion-input\n #input1\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 1)\"></ion-input>\n <ion-input\n #input2\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 2)\"></ion-input>\n <ion-input\n #input3\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 3)\"></ion-input>\n <ion-input\n #input4\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 4)\"></ion-input>\n <ion-input\n #input5\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 5)\"></ion-input>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <ng-container *ngIf=\"!loading && status.value !== 'disabled'\">\n <cf-spacer default=\"16\"></cf-spacer>\n <button *ngIf=\"commsSentCount < 3\" (click)=\"resendVerificationCode()\" style=\"background-color: transparent\">\n <ng-container *ngIf=\"validationCodeError\">\n <p class=\"body-small ion-text-center\" *ngFor=\"let string of userFeedbackMessages?.error?.resend || ['Resend Code']\">\n {{ string }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"!validationCodeError\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.standardResend || ['Didn`t get a code? Please resend the code']\">\n {{ string }}\n </p>\n </ng-container>\n </button>\n <ng-container *ngIf=\"commsSentCount >= 3\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"\n let string of userFeedbackMessages?.limitReached || ['Still struggling with your code?', 'Please contact support for assistance']\n \"\n >{{ string }}</p\n >\n </ng-container>\n </ng-container>\n <cf-spacer *ngIf=\"status.value === 'disabled'\" default=\"32\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\"> </ion-col>\n </ion-row>\n </ion-grid>\n <cf-spinner style=\"position: absolute\" [size]=\"40\" [ngClass]=\"{ 'block-hidden': status.value !== 'processing' }\"></cf-spinner>\n</div>\n", styles: ["#verification-container{min-height:124px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}#verification-grid{width:100%;display:flex;flex-direction:column}.single-container{display:flex;justify-content:space-between}.single-container .single-digit-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;height:60px;width:60px;--border-radius: 12px;--background: var(--cf-app-system-color-outline);--highlight-color-focused: var(--cf-app-color-accent);color:var(--cf-app-text-color-default)}.single-container.error .single-digit-input{--border-color: var(--cf-app-system-color-error)}.block-hidden{display:none}p.error{color:var(--cf-app-system-color-error)}p.good{color:var(--cf-app-system-color-success)}\n"], dependencies: [{ kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.SpacerComponent, selector: "cf-spacer", inputs: ["default", "mobile", "desktop"] }, { kind: "component", type: i4.SpinnerComponent, selector: "cf-spinner", inputs: ["size"] }] });
120
- }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VerificationCodeComponent, decorators: [{
122
- type: Component,
123
- args: [{ selector: 'cf-verification-code', template: "<!-- ---<> rethink if statement logic -->\n<div id=\"verification-container\">\n <ion-grid id=\"verification-grid\" [ngStyle]=\"status.value === 'processing' ? { visibility: 'hidden' } : {}\">\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ng-container *ngIf=\"status.value !== 'disabled'\">\n <ion-col *ngIf=\"validationCodeError && !commsInputCountExceeded\" size=\"auto\">\n <p\n class=\"body-small error ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.error?.errorMessage || ['Invalid Code - Please Retry']\"\n >{{ string }}</p\n >\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n <ion-col *ngIf=\"commsInputCountExceeded\" size=\"auto\">\n <p class=\"body-small error ion-text-center\">Invalid Code - Max attempts exceeded</p>\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n <ion-col *ngIf=\"status.value === 'initial'\">\n <p *ngFor=\"let string of userFeedbackMessages?.initial || ['Code sent, Please check your inbox']\" class=\"body-small good ion-text-center\">{{\n string\n }}</p>\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n </ng-container>\n <ion-col\n *ngIf=\"\n (!validationCodeError && status.value === 'disabled') || status.value === 'disabled' || (status.value === 'invalid' && !validationCodeError)\n \">\n <cf-spacer default=\"32\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col>\n <div class=\"single-container\" [ngClass]=\"{ error: validationCodeError }\">\n <ion-input\n #input1\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 1)\"></ion-input>\n <ion-input\n #input2\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 2)\"></ion-input>\n <ion-input\n #input3\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 3)\"></ion-input>\n <ion-input\n #input4\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 4)\"></ion-input>\n <ion-input\n #input5\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 5)\"></ion-input>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <ng-container *ngIf=\"!loading && status.value !== 'disabled'\">\n <cf-spacer default=\"16\"></cf-spacer>\n <button *ngIf=\"commsSentCount < 3\" (click)=\"resendVerificationCode()\" style=\"background-color: transparent\">\n <ng-container *ngIf=\"validationCodeError\">\n <p class=\"body-small ion-text-center\" *ngFor=\"let string of userFeedbackMessages?.error?.resend || ['Resend Code']\">\n {{ string }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"!validationCodeError\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.standardResend || ['Didn`t get a code? Please resend the code']\">\n {{ string }}\n </p>\n </ng-container>\n </button>\n <ng-container *ngIf=\"commsSentCount >= 3\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"\n let string of userFeedbackMessages?.limitReached || ['Still struggling with your code?', 'Please contact support for assistance']\n \"\n >{{ string }}</p\n >\n </ng-container>\n </ng-container>\n <cf-spacer *ngIf=\"status.value === 'disabled'\" default=\"32\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\"> </ion-col>\n </ion-row>\n </ion-grid>\n <cf-spinner style=\"position: absolute\" [size]=\"40\" [ngClass]=\"{ 'block-hidden': status.value !== 'processing' }\"></cf-spinner>\n</div>\n", styles: ["#verification-container{min-height:124px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}#verification-grid{width:100%;display:flex;flex-direction:column}.single-container{display:flex;justify-content:space-between}.single-container .single-digit-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;height:60px;width:60px;--border-radius: 12px;--background: var(--cf-app-system-color-outline);--highlight-color-focused: var(--cf-app-color-accent);color:var(--cf-app-text-color-default)}.single-container.error .single-digit-input{--border-color: var(--cf-app-system-color-error)}.block-hidden{display:none}p.error{color:var(--cf-app-system-color-error)}p.good{color:var(--cf-app-system-color-success)}\n"] }]
124
- }], propDecorators: { valueToVerify: [{
125
- type: Input
126
- }], status: [{
127
- type: Input
128
- }], userFeedbackMessages: [{
129
- type: Input
130
- }], outcome: [{
131
- type: Output
132
- }], resendClickEvent: [{
133
- type: Output
134
- }], myInput1: [{
135
- type: ViewChild,
136
- args: [`input1`]
137
- }], myInput2: [{
138
- type: ViewChild,
139
- args: ['input2']
140
- }], myInput3: [{
141
- type: ViewChild,
142
- args: ['input3']
143
- }], myInput4: [{
144
- type: ViewChild,
145
- args: ['input4']
146
- }], myInput5: [{
147
- type: ViewChild,
148
- args: ['input5']
149
- }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL3ZlcmlmaWNhdGlvbi1jb2RlL3ZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy92ZXJpZmljYXRpb24tY29kZS92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVd0SCxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLGFBQWEsQ0FBVTtJQUN2QixNQUFNLENBQXFEO0lBQzNELG9CQUFvQixDQUFvQztJQUV2RCxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNyQyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWpDLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFDcEIsUUFBUSxDQUFZO0lBQ3BCLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFHekMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQzVCLHdCQUF3QixHQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUNwQix1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDaEMsY0FBYyxDQUFxQjtJQUVuQyxVQUFVLENBQWdCO0lBTzFCLGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBT0QsV0FBVyxDQUFDLE9BQXNCO1FBRWhDLElBQ0UsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFlBQVksS0FBSyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsYUFBYTtZQUNsRixPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxhQUFhLEVBQ2hFLENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFHRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQXVELENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzlHLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxDQUFDO2dCQUNELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFPRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFTRCxpQ0FBaUMsQ0FBQyxLQUF1QixFQUFFLEtBQWE7UUFDdEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBR2pDLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBT08sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFRTyxjQUFjLENBQUMsWUFBb0I7UUFDekMsSUFBSSxZQUFZLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDL0IsWUFBWSxLQUFLLENBQUM7WUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFO1lBQzNCLENBQUMsQ0FBQyxZQUFZLEtBQUssQ0FBQztnQkFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFO2dCQUMzQixDQUFDLENBQUMsWUFBWSxLQUFLLENBQUM7b0JBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRTtvQkFDM0IsQ0FBQyxDQUFDLFlBQVksS0FBSyxDQUFDO3dCQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUU7d0JBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFRTyxjQUFjLENBQUMsS0FBYTtRQUNsQyxRQUFRLEtBQUssRUFBRSxDQUFDO1lBQ2QsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFPRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7d0dBektVLHlCQUF5Qjs0RkFBekIseUJBQXlCLDRyQkMxQnRDLDZtTEE0SEE7OzRGRGxHYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQUt2QixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRWMsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNFLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRSxRQUFRO3NCQUE1QixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0UsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNFLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IGxpYnJhcnkgLSBWZXJpZmljYXRpb24gQ29kZSBJbnB1dFxuICpcbiAqIEBmaWxlICAgICAgICAgIHZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBhIENhcmVGaXJzdCBWZXJpZmljYXRpb24gQ29kZSBJbnB1dFxuICogQGF1dGhvciAgICAgICAgQXJubyBKYW5zZW4gdmFuIFZ1dXJlblxuICogQHNpbmNlICAgICAgICAgMjAyNCAtIDAzIC0gMDdcbiAqIEB1c2FnZSAgICAgICAgICAgPGNmLXZlcmlmaWNhdGlvbi1jb2RlXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1ZlcmlmeT1gc3RyaW5nYFxuICAgICAgICAgICAgICAgICAgICAgIChvdXRjb21lKT1gb21pdHMgY29kZSB2YWx1ZWBcbiAgICAgICAgICAgICAgICAgICAgICAocmVzZW5kQ2xpY2tFdmVudCk9YHJlc2VuZCBjbGljayBldmVudGBcbiAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1gQmVoYXZpb3JTdWJqZWN0PCdpbml0aWFsJyB8ICdpbnZhbGlkJz5gPlxuICAgICAgICAgICAgICAgICAgICA8L2NmLXZlcmlmaWNhdGlvbi1jb2RlPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIHR5cGUgT25DaGFuZ2VzLCB0eXBlIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIHsgSW5wdXRDdXN0b21FdmVudCwgSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG4vLy0tLSBJbnRlcmZhY2VcbmltcG9ydCB0eXBlIHsgQ2ZDb2RlSW5wdXRVc2VyRmVlZGJhY2tNZXNzYWdlc0ksIENmQ29kZUlucHV0VmVyaWZpY2F0aW9uU3RhdHVzZXNUIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy92ZXJpZmljYXRpb24tY29kZS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi12ZXJpZmljYXRpb24tY29kZScsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB2YWx1ZVRvVmVyaWZ5ITogc3RyaW5nO1xuICBASW5wdXQoKSBzdGF0dXMhOiBCZWhhdmlvclN1YmplY3Q8Q2ZDb2RlSW5wdXRWZXJpZmljYXRpb25TdGF0dXNlc1Q+O1xuICBASW5wdXQoKSB1c2VyRmVlZGJhY2tNZXNzYWdlcz86IENmQ29kZUlucHV0VXNlckZlZWRiYWNrTWVzc2FnZXNJO1xuXG4gIEBPdXRwdXQoKSBvdXRjb21lID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSByZXNlbmRDbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx0cnVlPigpO1xuXG4gIEBWaWV3Q2hpbGQoYGlucHV0MWApIG15SW5wdXQxPzogSW9uSW5wdXQ7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0MicpIG15SW5wdXQyPzogSW9uSW5wdXQ7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0MycpIG15SW5wdXQzPzogSW9uSW5wdXQ7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0NCcpIG15SW5wdXQ0PzogSW9uSW5wdXQ7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0NScpIG15SW5wdXQ1PzogSW9uSW5wdXQ7XG5cbiAgLy8tLS0gSFRNTCB2YXJpYWJsZXNcbiAgdmFsaWRhdGlvbkNvZGVFcnJvciA9IGZhbHNlO1xuICB2ZXJpZmljYXRpb25Db2RlSW5wdXRBcnI6IChudW1iZXIgfCBudWxsKVtdID0gW251bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGxdO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGNvbW1zU2VudENvdW50ID0gMDtcbiAgY29tbXNJbnB1dENvdW50ID0gMDtcbiAgY29tbXNJbnB1dENvdW50RXhjZWVkZWQgPSBmYWxzZTtcbiAgdmFsaWRhdGlvbkNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBzdGF0dXNTdWIkPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgaW9uVmlld1dpbGxFbnRlclxuICAgKiBAZGVzY3JpcHRpb24gICBVcGRhdGUgdmFyaW91cyB2YWx1ZXMgb24gY29tcG9uZW50IGluaXRpYWxpemF0aW9uXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgaW9uVmlld0RpZEVudGVyKCk6IHZvaWQge1xuICAgIHRoaXMuY29tbXNTZW50Q291bnQgPSAwO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBVcGRhdGUgdmFyaW91cyB2YWx1ZXMgb24gaW5wdXQgY2hhbmdlc1xuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBWYWx1ZSB0byB2ZXJpZnlcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWyd2YWx1ZVRvVmVyaWZ5J10/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1sndmFsdWVUb1ZlcmlmeSddPy5wcmV2aW91c1ZhbHVlIHx8XG4gICAgICBjaGFuZ2VzWydjb2RlJ10/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1snY29kZSddPy5wcmV2aW91c1ZhbHVlXG4gICAgKSB7XG4gICAgICB0aGlzLmNvbW1zU2VudENvdW50ID0gMDtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkNvZGVFcnJvciA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXNldEFsbElucHV0RmllbGRzKCk7XG4gICAgfVxuXG4gICAgLy8tLS0gU3RhdHVzIGRpc3BsYXlcbiAgICBpZiAoY2hhbmdlc1snc3RhdHVzJ10pIHtcbiAgICAgIHRoaXMuc3RhdHVzU3ViJCA9IChjaGFuZ2VzWydzdGF0dXMnXS5jdXJyZW50VmFsdWUgYXMgQmVoYXZpb3JTdWJqZWN0PCdpbml0aWFsJyB8ICdpbnZhbGlkJz4pLnN1YnNjcmliZSgoc3RhdCkgPT4ge1xuICAgICAgICBpZiAoc3RhdCA9PT0gJ2ludmFsaWQnKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uQ29kZUVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc2V0QWxsSW5wdXRGaWVsZHMoKTtcbiAgICAgICAgdGhpcy5zZXRGb2N1c1RvTmV4dCgwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgcmVzZW5kVmVyaWZpY2F0aW9uQ29kZVxuICAgKiBAZGVzY3JpcHRpb24gICBSZXNlbmQgYSB2ZXJpZmljYXRpb24gY29kZVxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHJlc2VuZFZlcmlmaWNhdGlvbkNvZGUoKTogdm9pZCB7XG4gICAgdGhpcy5jb21tc0lucHV0Q291bnQgPSAwO1xuICAgIHRoaXMuY29tbXNJbnB1dENvdW50RXhjZWVkZWQgPSBmYWxzZTtcbiAgICB0aGlzLnZhbGlkYXRpb25Db2RlRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLmNvbW1zU2VudENvdW50Kys7XG4gICAgdGhpcy5zdGF0dXMubmV4dCgnaW5pdGlhbCcpO1xuICAgIHRoaXMucmVzZW5kQ2xpY2tFdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGVcbiAgICogQGRlc2NyaXB0aW9uICAgSGFuZGxlIGlucHV0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHZlcmlmaWNhdGlvbiBjb2RlIGFuZCBkbyBjYWxsIG9uY2UgY29kZSBpcyBjb21wbGV0ZVxuICAgKiBAcGFyYW0gICAgICAgICB7SW5wdXRDdXN0b21FdmVudH0gZXZlbnRcbiAgICogQHBhcmFtICAgICAgICAge251bWJlcn0gaW5kZXhcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoZXZlbnQ6IElucHV0Q3VzdG9tRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LmRldGFpbC52YWx1ZTtcbiAgICBpZiAoIXZhbHVlIHx8ICEodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgfHwgISgrdmFsdWUgPCAxMCkpIHtcbiAgICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoaW5kZXgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Rm9jdXNUb05leHQoaW5kZXgpO1xuICAgIHRoaXMudmVyaWZpY2F0aW9uQ29kZUlucHV0QXJyW2luZGV4IC0gMV0gPSArdmFsdWU7XG4gICAgdGhpcy52YWxpZGF0aW9uQ29kZUVycm9yID0gZmFsc2U7XG5cbiAgICAvLy0tLSBDaGVjayBpZiBjb2RlIGNvbXBsZXRlZFxuICAgIGlmICh0aGlzLnZlcmlmaWNhdGlvbkNvZGVJbnB1dEFyci5ldmVyeSgodmFsKSA9PiB2YWwgIT09IG51bGwpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25Db2RlID0gdGhpcy52ZXJpZmljYXRpb25Db2RlSW5wdXRBcnIuam9pbignJyk7XG4gICAgICB0aGlzLm91dGNvbWUuZW1pdCh0aGlzLnZhbGlkYXRpb25Db2RlKTtcbiAgICAgIHRoaXMuY29tbXNJbnB1dENvdW50Kys7XG4gICAgICB0aGlzLmNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkID0gdGhpcy5jb21tc0lucHV0Q291bnQgPj0gMztcbiAgICB9XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIHJlc2V0QWxsSW5wdXRGaWVsZHNcbiAgICogQGRlc2NyaXB0aW9uICAgUmVzZXQgYWxsIGlucHV0IGZpZWxkc1xuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHByaXZhdGUgcmVzZXRBbGxJbnB1dEZpZWxkcygpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQ29kZUlucHV0KDEpO1xuICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoMik7XG4gICAgdGhpcy5jbGVhckNvZGVJbnB1dCgzKTtcbiAgICB0aGlzLmNsZWFyQ29kZUlucHV0KDQpO1xuICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoNSk7XG4gICAgdGhpcy52ZXJpZmljYXRpb25Db2RlSW5wdXRBcnIuZmlsbChudWxsKTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgc2V0Rm9jdXNUb05leHRcbiAgICogQGRlc2NyaXB0aW9uICAgU2V0IHRoZSBmb2N1cyB0byB0aGUgbmV4dCBpbnB1dFxuICAgKiBAcGFyYW0gICAgICAgICB7bnVtYmVyfSBjdXJyZW50SW5kZXhcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBwcml2YXRlIHNldEZvY3VzVG9OZXh0KGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gNSkgcmV0dXJuO1xuICAgIGN1cnJlbnRJbmRleCA9PT0gMFxuICAgICAgPyB0aGlzLm15SW5wdXQxPy5zZXRGb2N1cygpXG4gICAgICA6IGN1cnJlbnRJbmRleCA9PT0gMVxuICAgICAgICA/IHRoaXMubXlJbnB1dDI/LnNldEZvY3VzKClcbiAgICAgICAgOiBjdXJyZW50SW5kZXggPT09IDJcbiAgICAgICAgICA/IHRoaXMubXlJbnB1dDM/LnNldEZvY3VzKClcbiAgICAgICAgICA6IGN1cnJlbnRJbmRleCA9PT0gM1xuICAgICAgICAgICAgPyB0aGlzLm15SW5wdXQ0Py5zZXRGb2N1cygpXG4gICAgICAgICAgICA6IHRoaXMubXlJbnB1dDU/LnNldEZvY3VzKCk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGNsZWFyQ29kZUlucHV0XG4gICAqIEBkZXNjcmlwdGlvbiAgIENsZWFyIGEgY29kZSBpbnB1dCBvbiBpbnZhbGlkIGtleVxuICAgKiBAcGFyYW0gICAgICAgICB7bnVtYmVyfSBpbmRleFxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHByaXZhdGUgY2xlYXJDb2RlSW5wdXQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHN3aXRjaCAoaW5kZXgpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDEpIHRoaXMubXlJbnB1dDEudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDIpIHRoaXMubXlJbnB1dDIudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDMpIHRoaXMubXlJbnB1dDMudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNDpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDQpIHRoaXMubXlJbnB1dDQudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNTpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDUpIHRoaXMubXlJbnB1dDUudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGlvblZpZXdXaWxsTGVhdmVcbiAgICogQGRlc2NyaXB0aW9uICAgVW5zdWJzY3JpYmUgb24gY29tcG9uZW50IGxlYXZlXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgaW9uVmlld1dpbGxMZWF2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c1N1YiQ/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS0gLS0tPD4gcmV0aGluayBpZiBzdGF0ZW1lbnQgbG9naWMgLS0+XG48ZGl2IGlkPVwidmVyaWZpY2F0aW9uLWNvbnRhaW5lclwiPlxuICA8aW9uLWdyaWQgaWQ9XCJ2ZXJpZmljYXRpb24tZ3JpZFwiIFtuZ1N0eWxlXT1cInN0YXR1cy52YWx1ZSA9PT0gJ3Byb2Nlc3NpbmcnID8geyB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9IDoge31cIj5cbiAgICA8IS0tIElucHV0IGJveGVzIGZvciB2ZXJpZmljYXRpb24gY29kZSA1IG51bWVyaWMgZGlnaXRzIC0tPlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0dXMudmFsdWUgIT09ICdkaXNhYmxlZCdcIj5cbiAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJ2YWxpZGF0aW9uQ29kZUVycm9yICYmICFjb21tc0lucHV0Q291bnRFeGNlZWRlZFwiIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgPHBcbiAgICAgICAgICAgIGNsYXNzPVwiYm9keS1zbWFsbCBlcnJvciBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8uZXJyb3I/LmVycm9yTWVzc2FnZSB8fCBbJ0ludmFsaWQgQ29kZSAtIFBsZWFzZSBSZXRyeSddXCJcbiAgICAgICAgICAgID57eyBzdHJpbmcgfX08L3BcbiAgICAgICAgICA+XG4gICAgICAgICAgPGNmLXNwYWNlciBkZWZhdWx0PVwiMTZcIj48L2NmLXNwYWNlcj5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCAqbmdJZj1cImNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkXCIgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICA8cCBjbGFzcz1cImJvZHktc21hbGwgZXJyb3IgaW9uLXRleHQtY2VudGVyXCI+SW52YWxpZCBDb2RlIC0gTWF4IGF0dGVtcHRzIGV4Y2VlZGVkPC9wPlxuICAgICAgICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjE2XCI+PC9jZi1zcGFjZXI+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJzdGF0dXMudmFsdWUgPT09ICdpbml0aWFsJ1wiPlxuICAgICAgICAgIDxwICpuZ0Zvcj1cImxldCBzdHJpbmcgb2YgdXNlckZlZWRiYWNrTWVzc2FnZXM/LmluaXRpYWwgfHwgWydDb2RlIHNlbnQsIFBsZWFzZSBjaGVjayB5b3VyIGluYm94J11cIiBjbGFzcz1cImJvZHktc21hbGwgZ29vZCBpb24tdGV4dC1jZW50ZXJcIj57e1xuICAgICAgICAgICAgc3RyaW5nXG4gICAgICAgICAgfX08L3A+XG4gICAgICAgICAgPGNmLXNwYWNlciBkZWZhdWx0PVwiMTZcIj48L2NmLXNwYWNlcj5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8aW9uLWNvbFxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICghdmFsaWRhdGlvbkNvZGVFcnJvciAmJiBzdGF0dXMudmFsdWUgPT09ICdkaXNhYmxlZCcpIHx8IHN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJyB8fCAoc3RhdHVzLnZhbHVlID09PSAnaW52YWxpZCcgJiYgIXZhbGlkYXRpb25Db2RlRXJyb3IpXG4gICAgICAgIFwiPlxuICAgICAgICA8Y2Ytc3BhY2VyIGRlZmF1bHQ9XCIzMlwiPjwvY2Ytc3BhY2VyPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICA8aW9uLWNvbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7IGVycm9yOiB2YWxpZGF0aW9uQ29kZUVycm9yIH1cIj5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICAjaW5wdXQxXG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1kaWdpdC1pbnB1dCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgY29tbXNJbnB1dENvdW50RXhjZWVkZWQgfHwgc3RhdHVzLnZhbHVlID09PSAnZGlzYWJsZWQnXCJcbiAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjFcIlxuICAgICAgICAgICAgY2xlYXJPbkVkaXQ9XCJ0cnVlXCJcbiAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgbW9kZT1cIm1kXCJcbiAgICAgICAgICAgIChpb25JbnB1dCk9XCJmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoJGV2ZW50LCAxKVwiPjwvaW9uLWlucHV0PlxuICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgICNpbnB1dDJcbiAgICAgICAgICAgIGNsYXNzPVwic2luZ2xlLWRpZ2l0LWlucHV0IGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBjb21tc0lucHV0Q291bnRFeGNlZWRlZCB8fCBzdGF0dXMudmFsdWUgPT09ICdkaXNhYmxlZCdcIlxuICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAgICAgICBjbGVhck9uRWRpdD1cInRydWVcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICBtb2RlPVwibWRcIlxuICAgICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDIpXCI+PC9pb24taW5wdXQ+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgI2lucHV0M1xuICAgICAgICAgICAgY2xhc3M9XCJzaW5nbGUtZGlnaXQtaW5wdXQgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkIHx8IHN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgICAgICAgIGNsZWFyT25FZGl0PVwidHJ1ZVwiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIChpb25JbnB1dCk9XCJmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoJGV2ZW50LCAzKVwiPjwvaW9uLWlucHV0PlxuICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgICNpbnB1dDRcbiAgICAgICAgICAgIGNsYXNzPVwic2luZ2xlLWRpZ2l0LWlucHV0IGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBjb21tc0lucHV0Q291bnRFeGNlZWRlZCB8fCBzdGF0dXMudmFsdWUgPT09ICdkaXNhYmxlZCdcIlxuICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAgICAgICBjbGVhck9uRWRpdD1cInRydWVcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICBtb2RlPVwibWRcIlxuICAgICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDQpXCI+PC9pb24taW5wdXQ+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgI2lucHV0NVxuICAgICAgICAgICAgY2xhc3M9XCJzaW5nbGUtZGlnaXQtaW5wdXQgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkIHx8IHN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgICAgICAgIGNsZWFyT25FZGl0PVwidHJ1ZVwiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIG1vZGU9XCJtZFwiXG4gICAgICAgICAgICAoaW9uSW5wdXQpPVwiZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlKCRldmVudCwgNSlcIj48L2lvbi1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZyAmJiBzdGF0dXMudmFsdWUgIT09ICdkaXNhYmxlZCdcIj5cbiAgICAgICAgICA8Y2Ytc3BhY2VyIGRlZmF1bHQ9XCIxNlwiPjwvY2Ytc3BhY2VyPlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb21tc1NlbnRDb3VudCA8IDNcIiAoY2xpY2spPVwicmVzZW5kVmVyaWZpY2F0aW9uQ29kZSgpXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbGlkYXRpb25Db2RlRXJyb3JcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJib2R5LXNtYWxsIGlvbi10ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBzdHJpbmcgb2YgdXNlckZlZWRiYWNrTWVzc2FnZXM/LmVycm9yPy5yZXNlbmQgfHwgWydSZXNlbmQgQ29kZSddXCI+XG4gICAgICAgICAgICAgICAge3sgc3RyaW5nIH19XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF2YWxpZGF0aW9uQ29kZUVycm9yXCI+XG4gICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJib2R5LXNtYWxsIGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8uc3RhbmRhcmRSZXNlbmQgfHwgWydEaWRuYHQgZ2V0IGEgY29kZT8gUGxlYXNlIHJlc2VuZCB0aGUgY29kZSddXCI+XG4gICAgICAgICAgICAgICAge3sgc3RyaW5nIH19XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21tc1NlbnRDb3VudCA+PSAzXCI+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICBjbGFzcz1cImJvZHktc21hbGwgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8ubGltaXRSZWFjaGVkIHx8IFsnU3RpbGwgc3RydWdnbGluZyB3aXRoIHlvdXIgY29kZT8nLCAnUGxlYXNlIGNvbnRhY3Qgc3VwcG9ydCBmb3IgYXNzaXN0YW5jZSddXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID57eyBzdHJpbmcgfX08L3BcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxjZi1zcGFjZXIgKm5nSWY9XCJzdGF0dXMudmFsdWUgPT09ICdkaXNhYmxlZCdcIiBkZWZhdWx0PVwiMzJcIj48L2NmLXNwYWNlcj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj4gPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgPC9pb24tZ3JpZD5cbiAgPGNmLXNwaW5uZXIgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGVcIiBbc2l6ZV09XCI0MFwiIFtuZ0NsYXNzXT1cInsgJ2Jsb2NrLWhpZGRlbic6IHN0YXR1cy52YWx1ZSAhPT0gJ3Byb2Nlc3NpbmcnIH1cIj48L2NmLXNwaW5uZXI+XG48L2Rpdj5cbiJdfQ==