@carefirst/library 1.3.10 → 1.3.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. package/esm2022/carefirst-library.mjs +2 -0
  2. package/esm2022/lib/components/alert/alert.component.mjs +56 -0
  3. package/esm2022/lib/components/badge/badge.component.mjs +39 -0
  4. package/esm2022/lib/components/button/button.component.mjs +92 -0
  5. package/esm2022/lib/components/calendar/calendar.component.mjs +39 -0
  6. package/esm2022/lib/components/chat-bubble/chat-bubble.component.mjs +31 -0
  7. package/esm2022/lib/components/form-input/form-input.component.mjs +87 -0
  8. package/esm2022/lib/components/form-input-select/form-input-select.component.mjs +46 -0
  9. package/esm2022/lib/components/form-input-text-area/form-input-text-area.component.mjs +61 -0
  10. package/esm2022/lib/components/form-validation/form-validation.component.mjs +20 -0
  11. package/esm2022/lib/components/icon/icon.component.mjs +29 -0
  12. package/esm2022/lib/components/logo/logo.component.mjs +18 -0
  13. package/esm2022/lib/components/notification/notification.component.mjs +22 -0
  14. package/esm2022/lib/components/page/page.component.mjs +31 -0
  15. package/esm2022/lib/components/spacer/spacer.component.mjs +30 -0
  16. package/esm2022/lib/components/spinner/spinner.component.mjs +19 -0
  17. package/esm2022/lib/directives/button-loader.directive.mjs +41 -0
  18. package/esm2022/lib/interfaces/alert.interface.mjs +2 -0
  19. package/esm2022/lib/interfaces/icon.interface.mjs +52 -0
  20. package/esm2022/lib/interfaces/input.interface.mjs +2 -0
  21. package/esm2022/lib/interfaces/notification.interface.mjs +2 -0
  22. package/esm2022/lib/interfaces/spacer.interface.mjs +2 -0
  23. package/esm2022/lib/library.module.mjs +100 -0
  24. package/esm2022/lib/utils/attribute.util.mjs +34 -0
  25. package/esm2022/lib/utils/form-validators-utility.mjs +113 -0
  26. package/esm2022/public-api.mjs +24 -0
  27. package/fesm2022/carefirst-library.mjs +890 -0
  28. package/fesm2022/carefirst-library.mjs.map +1 -0
  29. package/index.d.ts +2 -0
  30. package/lib/components/alert/alert.component.d.ts +14 -0
  31. package/lib/components/badge/badge.component.d.ts +15 -0
  32. package/lib/components/button/button.component.d.ts +32 -0
  33. package/lib/components/calendar/calendar.component.d.ts +15 -0
  34. package/lib/components/chat-bubble/chat-bubble.component.d.ts +13 -0
  35. package/lib/components/form-input/form-input.component.d.ts +37 -0
  36. package/lib/components/form-input-select/form-input-select.component.d.ts +21 -0
  37. package/lib/components/form-input-text-area/form-input-text-area.component.d.ts +27 -0
  38. package/lib/components/form-validation/form-validation.component.d.ts +9 -0
  39. package/lib/components/icon/icon.component.d.ts +13 -0
  40. package/lib/components/logo/logo.component.d.ts +7 -0
  41. package/lib/components/notification/notification.component.d.ts +9 -0
  42. package/lib/components/page/page.component.d.ts +13 -0
  43. package/lib/components/spacer/spacer.component.d.ts +14 -0
  44. package/lib/components/spinner/spinner.component.d.ts +9 -0
  45. package/lib/directives/button-loader.directive.d.ts +12 -0
  46. package/lib/interfaces/alert.interface.d.ts +11 -0
  47. package/lib/interfaces/icon.interface.d.ts +4 -0
  48. package/lib/interfaces/input.interface.d.ts +4 -0
  49. package/lib/interfaces/notification.interface.d.ts +11 -0
  50. package/lib/interfaces/spacer.interface.d.ts +3 -0
  51. package/lib/library.module.d.ts +25 -0
  52. package/lib/utils/attribute.util.d.ts +4 -0
  53. package/lib/utils/form-validators-utility.d.ts +8 -0
  54. package/package.json +14 -11
  55. package/{src/public-api.ts → public-api.d.ts} +0 -18
  56. package/.eslintrc.json +0 -31
  57. package/ng-package.json +0 -8
  58. package/src/lib/components/alert/alert.component.html +0 -0
  59. package/src/lib/components/alert/alert.component.scss +0 -63
  60. package/src/lib/components/alert/alert.component.spec.ts +0 -23
  61. package/src/lib/components/alert/alert.component.ts +0 -73
  62. package/src/lib/components/badge/badge.component.html +0 -5
  63. package/src/lib/components/badge/badge.component.scss +0 -96
  64. package/src/lib/components/badge/badge.component.spec.ts +0 -23
  65. package/src/lib/components/badge/badge.component.ts +0 -61
  66. package/src/lib/components/button/button.component.html +0 -20
  67. package/src/lib/components/button/button.component.scss +0 -153
  68. package/src/lib/components/button/button.component.spec.ts +0 -21
  69. package/src/lib/components/button/button.component.ts +0 -94
  70. package/src/lib/components/calendar/calendar.component.html +0 -9
  71. package/src/lib/components/calendar/calendar.component.scss +0 -34
  72. package/src/lib/components/calendar/calendar.component.spec.ts +0 -23
  73. package/src/lib/components/calendar/calendar.component.ts +0 -53
  74. package/src/lib/components/chat-bubble/chat-bubble.component.html +0 -9
  75. package/src/lib/components/chat-bubble/chat-bubble.component.scss +0 -31
  76. package/src/lib/components/chat-bubble/chat-bubble.component.spec.ts +0 -23
  77. package/src/lib/components/chat-bubble/chat-bubble.component.ts +0 -43
  78. package/src/lib/components/form-input/form-input.component.html +0 -37
  79. package/src/lib/components/form-input/form-input.component.scss +0 -23
  80. package/src/lib/components/form-input/form-input.component.spec.ts +0 -23
  81. package/src/lib/components/form-input/form-input.component.ts +0 -95
  82. package/src/lib/components/form-input-select/form-input-select.component.html +0 -27
  83. package/src/lib/components/form-input-select/form-input-select.component.scss +0 -40
  84. package/src/lib/components/form-input-select/form-input-select.component.spec.ts +0 -23
  85. package/src/lib/components/form-input-select/form-input-select.component.ts +0 -61
  86. package/src/lib/components/form-input-text-area/form-input-text-area.component.html +0 -29
  87. package/src/lib/components/form-input-text-area/form-input-text-area.component.scss +0 -19
  88. package/src/lib/components/form-input-text-area/form-input-text-area.component.spec.ts +0 -23
  89. package/src/lib/components/form-input-text-area/form-input-text-area.component.ts +0 -76
  90. package/src/lib/components/form-validation/form-validation.component.html +0 -8
  91. package/src/lib/components/form-validation/form-validation.component.scss +0 -8
  92. package/src/lib/components/form-validation/form-validation.component.spec.ts +0 -23
  93. package/src/lib/components/form-validation/form-validation.component.ts +0 -34
  94. package/src/lib/components/icon/icon.component.html +0 -529
  95. package/src/lib/components/icon/icon.component.scss +0 -61
  96. package/src/lib/components/icon/icon.component.spec.ts +0 -21
  97. package/src/lib/components/icon/icon.component.ts +0 -40
  98. package/src/lib/components/logo/logo.component.html +0 -10
  99. package/src/lib/components/logo/logo.component.scss +0 -5
  100. package/src/lib/components/logo/logo.component.spec.ts +0 -23
  101. package/src/lib/components/logo/logo.component.ts +0 -21
  102. package/src/lib/components/notification/notification.component.html +0 -39
  103. package/src/lib/components/notification/notification.component.scss +0 -20
  104. package/src/lib/components/notification/notification.component.spec.ts +0 -21
  105. package/src/lib/components/notification/notification.component.ts +0 -23
  106. package/src/lib/components/page/page.component.html +0 -5
  107. package/src/lib/components/page/page.component.scss +0 -35
  108. package/src/lib/components/page/page.component.spec.ts +0 -21
  109. package/src/lib/components/page/page.component.ts +0 -42
  110. package/src/lib/components/spacer/spacer.component.html +0 -4
  111. package/src/lib/components/spacer/spacer.component.scss +0 -27
  112. package/src/lib/components/spacer/spacer.component.spec.ts +0 -21
  113. package/src/lib/components/spacer/spacer.component.ts +0 -43
  114. package/src/lib/components/spinner/spinner.component.html +0 -1
  115. package/src/lib/components/spinner/spinner.component.scss +0 -14
  116. package/src/lib/components/spinner/spinner.component.spec.ts +0 -23
  117. package/src/lib/components/spinner/spinner.component.ts +0 -33
  118. package/src/lib/directives/button-loader.directive.spec.ts +0 -8
  119. package/src/lib/directives/button-loader.directive.ts +0 -77
  120. package/src/lib/interfaces/alert.interface.ts +0 -20
  121. package/src/lib/interfaces/icon.interface.ts +0 -62
  122. package/src/lib/interfaces/input.interface.ts +0 -8
  123. package/src/lib/interfaces/notification.interface.ts +0 -15
  124. package/src/lib/interfaces/spacer.interface.ts +0 -6
  125. package/src/lib/library.module.ts +0 -66
  126. package/src/lib/utils/attribute.util.ts +0 -66
  127. package/src/lib/utils/form-validators-utility.ts +0 -186
  128. package/tsconfig.lib.json +0 -12
  129. package/tsconfig.lib.prod.json +0 -10
  130. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,22 @@
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
+ buttonClick = new EventEmitter();
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: NotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: NotificationComponent, selector: "cf-notification", inputs: { data: "data" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<div *ngIf=\"data\">\n <cf-spacer mobile=\"16\" desktop=\"32\"></cf-spacer>\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"12\" size-md=\"6\">\n <div [ngClass]=\"data.status\" id=\"notification-container\">\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 icon=\"close\" *ngIf=\"data.canClose\" (click)=\"data = undefined\" [height]=\"10\" [iconColor]=\"data.status\"></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.button?.buttonHeading\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-medium bold\">{{ data.button?.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.button\">\n <cf-spacer default=\"8\"></cf-spacer>\n <cf-btn type=\"primary\" fontSize=\"large\" action snug (click)=\"buttonClick.emit(data.button.buttonClickIdentifier)\">{{\n data.button.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 <cf-spacer mobile=\"16\" desktop=\"32\"></cf-spacer>\n</div>\n", styles: ["#notification-container{border-radius:4px;text-align:start;padding:12px}#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", "snug", "accent", "fontSize", "iconStart", "iconEnd", "loading", "customColor"] }, { kind: "component", type: i4.SpacerComponent, selector: "cf-spacer", inputs: ["default", "mobile", "desktop"] }, { kind: "component", type: i5.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "iconColor"] }] });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: NotificationComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'cf-notification', template: "<div *ngIf=\"data\">\n <cf-spacer mobile=\"16\" desktop=\"32\"></cf-spacer>\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"12\" size-md=\"6\">\n <div [ngClass]=\"data.status\" id=\"notification-container\">\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 icon=\"close\" *ngIf=\"data.canClose\" (click)=\"data = undefined\" [height]=\"10\" [iconColor]=\"data.status\"></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.button?.buttonHeading\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-medium bold\">{{ data.button?.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.button\">\n <cf-spacer default=\"8\"></cf-spacer>\n <cf-btn type=\"primary\" fontSize=\"large\" action snug (click)=\"buttonClick.emit(data.button.buttonClickIdentifier)\">{{\n data.button.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 <cf-spacer mobile=\"16\" desktop=\"32\"></cf-spacer>\n</div>\n", styles: ["#notification-container{border-radius:4px;text-align:start;padding:12px}#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"] }]
17
+ }], propDecorators: { data: [{
18
+ type: Input
19
+ }], buttonClick: [{
20
+ type: Output
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFTdkUsTUFBTSxPQUFPLHFCQUFxQjtJQUN2QixJQUFJLENBQW9DO0lBQ3ZDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUUsQ0FBQzt1R0FGbkcscUJBQXFCOzJGQUFyQixxQkFBcUIsMEhDbkJsQyx3dERBdUNBOzsyRkRwQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGlCQUFpQjs4QkFLbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcmVGaXJzdCBMaWJyYXJ5IC0gTm90aWZpY2F0aW9uXG4gKlxuICogQGZpbGUgICAgICAgICAgbm90aWZpY2F0aW9uLmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBhIENhcmVGaXJzdCBOb3RpZmljYXRpb25cbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMSAtIDI3XG4gKiBAdXNhZ2UgICAgICAgICA8Y2Ytbm90aWZpY2F0aW9uIFtkYXRhXT1cIntoZWFkaW5nLCBzdGF0dXMsICVtZXNzYWdlJSwgJWNhbkNsb3NlJSwgJWJ1dHRvbiV9XCIgKGJ1dHRvbkNsaWNrKT1cIlwiPjwvY2Ytbm90aWZpY2F0aW9uPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLy0tLSBJbnRlcmZhY2VzXG5pbXBvcnQgdHlwZSB7IE5vdGlmaWNhdGlvblBheWxvYWRJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub3RpZmljYXRpb24uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2Ytbm90aWZpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhPzogTm90aWZpY2F0aW9uUGF5bG9hZEkgfCB1bmRlZmluZWQ7XG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UmVxdWlyZWQ8Tm90aWZpY2F0aW9uUGF5bG9hZEk+WydidXR0b24nXVsnYnV0dG9uQ2xpY2tJZGVudGlmaWVyJ10+KCk7XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGF0YVwiPlxuICA8Y2Ytc3BhY2VyIG1vYmlsZT1cIjE2XCIgZGVza3RvcD1cIjMyXCI+PC9jZi1zcGFjZXI+XG4gIDxpb24tZ3JpZD5cbiAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplLW1kPVwiNlwiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImRhdGEuc3RhdHVzXCIgaWQ9XCJub3RpZmljYXRpb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgPGlvbi1ncmlkPlxuICAgICAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLWFsaWduLXNlbGYtY2VudGVyIGlvbi10ZXh0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJib2R5LW1lZGl1bSBib2xkXCI+e3sgZGF0YS5oZWFkaW5nIH19PC9wPlxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgICAgICAgPGNmLWljb24gaWNvbj1cImNsb3NlXCIgKm5nSWY9XCJkYXRhLmNhbkNsb3NlXCIgKGNsaWNrKT1cImRhdGEgPSB1bmRlZmluZWRcIiBbaGVpZ2h0XT1cIjEwXCIgW2ljb25Db2xvcl09XCJkYXRhLnN0YXR1c1wiPjwvY2YtaWNvbj5cbiAgICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgICAgICA8aW9uLWNvbCAqbmdJZj1cImRhdGEubWVzc2FnZVwiIHNpemU9XCIxMlwiPlxuICAgICAgICAgICAgICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjhcIj48L2NmLXNwYWNlcj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImJvZHktc21hbGxcIj57eyBkYXRhLm1lc3NhZ2UgfX08L3A+XG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJkYXRhLmJ1dHRvbj8uYnV0dG9uSGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjhcIj48L2NmLXNwYWNlcj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImJvZHktbWVkaXVtIGJvbGRcIj57eyBkYXRhLmJ1dHRvbj8uYnV0dG9uSGVhZGluZyB9fTwvcD5cbiAgICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgKm5nSWY9XCJkYXRhLmJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjhcIj48L2NmLXNwYWNlcj5cbiAgICAgICAgICAgICAgICA8Y2YtYnRuIHR5cGU9XCJwcmltYXJ5XCIgZm9udFNpemU9XCJsYXJnZVwiIGFjdGlvbiBzbnVnIChjbGljayk9XCJidXR0b25DbGljay5lbWl0KGRhdGEuYnV0dG9uLmJ1dHRvbkNsaWNrSWRlbnRpZmllcilcIj57e1xuICAgICAgICAgICAgICAgICAgZGF0YS5idXR0b24uYnV0dG9uVGV4dFxuICAgICAgICAgICAgICAgIH19PC9jZi1idG4+XG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgIDwvaW9uLXJvdz5cbiAgICAgICAgICA8L2lvbi1ncmlkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvaW9uLWdyaWQ+XG4gIDxjZi1zcGFjZXIgbW9iaWxlPVwiMTZcIiBkZXNrdG9wPVwiMzJcIj48L2NmLXNwYWNlcj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,31 @@
1
+ import { Component, Input } 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
+ dark;
10
+ inputCenterH = false;
11
+ inputCenterV = false;
12
+ inputDark = false;
13
+ ngOnChanges(changes) {
14
+ this.inputCenterH = checkTruthAttribute(changes, 'centerH', this.inputCenterH);
15
+ this.inputCenterV = checkTruthAttribute(changes, 'centerV', this.inputCenterV);
16
+ this.inputDark = checkTruthAttribute(changes, 'dark', this.inputDark);
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: PageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: PageComponent, selector: "cf-page", inputs: { centerH: "centerH", centerV: "centerV", dark: "dark" }, usesOnChanges: true, ngImport: i0, template: "<ion-content class=\"ion-page cf-page\" [ngClass]=\"{ 'bg-dark': inputDark }\">\n <div class=\"page\" [ngClass]=\"{ 'center-h': inputCenterH, 'center-v': inputCenterV }\">\n <ng-content></ng-content>\n </div>\n</ion-content>\n", styles: ["ion-content.cf-page::part(scroll){padding-inline:var(--cf-page-inline-padding, 16px);background-color:var(--cf-app-background-light)}ion-content.cf-page.bg-dark::part(scroll){background-color:var(--cf-app-background-dark)}ion-content.cf-page>div.page{height:100%;max-width:var(--cf-page-max-width, 1300px);margin-inline:auto;overflow:hidden}ion-content.cf-page>div.page.center-h,ion-content.cf-page>div.page.center-v{display:flex;flex-direction:column}ion-content.cf-page>div.page.center-h{align-items:center;text-align:center}ion-content.cf-page>div.page.center-v{justify-content:center}\n"], dependencies: [{ kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: PageComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'cf-page', template: "<ion-content class=\"ion-page cf-page\" [ngClass]=\"{ 'bg-dark': inputDark }\">\n <div class=\"page\" [ngClass]=\"{ 'center-h': inputCenterH, 'center-v': inputCenterV }\">\n <ng-content></ng-content>\n </div>\n</ion-content>\n", styles: ["ion-content.cf-page::part(scroll){padding-inline:var(--cf-page-inline-padding, 16px);background-color:var(--cf-app-background-light)}ion-content.cf-page.bg-dark::part(scroll){background-color:var(--cf-app-background-dark)}ion-content.cf-page>div.page{height:100%;max-width:var(--cf-page-max-width, 1300px);margin-inline:auto;overflow:hidden}ion-content.cf-page>div.page.center-h,ion-content.cf-page>div.page.center-v{display:flex;flex-direction:column}ion-content.cf-page>div.page.center-h{align-items:center;text-align:center}ion-content.cf-page>div.page.center-v{justify-content:center}\n"] }]
24
+ }], propDecorators: { centerH: [{
25
+ type: Input
26
+ }], centerV: [{
27
+ type: Input
28
+ }], dark: [{
29
+ type: Input
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS9wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9wYWdlL3BhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXNDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBT2pFLE1BQU0sT0FBTyxhQUFhO0lBQ2YsT0FBTyxDQUFnQztJQUN2QyxPQUFPLENBQWdDO0lBQ3ZDLElBQUksQ0FBZ0M7SUFHN0MsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFPbEIsV0FBVyxDQUFDLE9BQXNCO1FBRWhDLElBQUksQ0FBQyxZQUFZLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7dUdBdEJVLGFBQWE7MkZBQWIsYUFBYSxzSUNsQjFCLHlPQUtBOzsyRkRhYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7OEJBS1YsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcmVGaXJzdCBMaWJyYXJ5IC0gUGFnZVxuICpcbiAqIEBmaWxlICAgICAgICAgIHBhZ2UuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgYmFzaWMgQ2FyZUZpcnN0IFBhZ2Ugc3RydWN0dXJlXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMSAtIDA3XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtcGFnZSAlY2VudGVySCUgJWNlbnRlclYlICVkYXJrJSBzdHlsZT1cIi0tY2YtcGFnZS1pbmxpbmUtcGFkZGluZzogMTZweDsgLS1jZi1wYWdlLW1heC13aWR0aDogMTMwMHB4XCI+Q09OVEVOVDwvY2YtcGFnZT5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja1RydXRoQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjZW50ZXJIPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY2VudGVyVj86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRhcms/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dENlbnRlckggPSBmYWxzZTtcbiAgaW5wdXRDZW50ZXJWID0gZmFsc2U7XG4gIGlucHV0RGFyayA9IGZhbHNlO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgVXBkYXRlIHZhcmlvdXMgdmFsdWVzIG9uIGlucHV0IGNoYW5nZXNcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8tLS0gQ2VudGVyIEhcbiAgICB0aGlzLmlucHV0Q2VudGVySCA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2NlbnRlckgnLCB0aGlzLmlucHV0Q2VudGVySCk7XG4gICAgLy8tLS0gQ2VudGVyIFZcbiAgICB0aGlzLmlucHV0Q2VudGVyViA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2NlbnRlclYnLCB0aGlzLmlucHV0Q2VudGVyVik7XG4gICAgLy8tLS0gRGFya1xuICAgIHRoaXMuaW5wdXREYXJrID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnZGFyaycsIHRoaXMuaW5wdXREYXJrKTtcbiAgfVxufVxuIiwiPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZ2UgY2YtcGFnZVwiIFtuZ0NsYXNzXT1cInsgJ2JnLWRhcmsnOiBpbnB1dERhcmsgfVwiPlxuICA8ZGl2IGNsYXNzPVwicGFnZVwiIFtuZ0NsYXNzXT1cInsgJ2NlbnRlci1oJzogaW5wdXRDZW50ZXJILCAnY2VudGVyLXYnOiBpbnB1dENlbnRlclYgfVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2lvbi1jb250ZW50PlxuIl19
@@ -0,0 +1,30 @@
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: "17.0.9", ngImport: i0, type: SpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", 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: "17.0.9", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9zcGFjZXIvc3BhY2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9zcGFjZXIvc3BhY2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBUWpFLE1BQU0sT0FBTyxlQUFlO0lBQ2pCLE9BQU8sQ0FBNkM7SUFDcEQsTUFBTSxDQUE2QztJQUNuRCxPQUFPLENBQTZDO0lBRzdELFlBQVksR0FBdUIsU0FBUyxDQUFDO0lBQzdDLFdBQVcsR0FBdUIsU0FBUyxDQUFDO0lBQzVDLFlBQVksR0FBdUIsU0FBUyxDQUFDO0lBTzdDLFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9FLElBQUksQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRixDQUFDO3VHQXRCVSxlQUFlOzJGQUFmLGVBQWUsNElDbkI1QixtV0FJQTs7MkZEZWEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxXQUFXOzhCQUtaLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlRmlyc3QgTGlicmFyeSAtIFNwYWNlclxuICpcbiAqIEBmaWxlICAgICAgICAgIHNwYWNlci5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgYSBDYXJlRmlyc3QgRGl2IFNwYWNlclxuICogQGF1dGhvciAgICAgICAgSmFjcXVlcyBDb2V0emVlXG4gKiBAc2luY2UgICAgICAgICAyMDIzIC0gMTEgLSAwN1xuICogQHVzYWdlICAgICAgICAgPGNmLXNwYWNlciAlZGVmYXVsdD1cIlwiJSAlbW9iaWxlPVwiXCIlICVkZXNrdG9wPVwiXCIlPkNPTlRFTlQ8L2NmLXNwYWNlcj5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB2YWxpZGF0ZU51bWJlclZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuaW1wb3J0IHR5cGUgeyBTcGFjZXJOdW1iZXJULCBTcGFjZXJTdHJpbmdUIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zcGFjZXIuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2Ytc3BhY2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwYWNlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwYWNlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTcGFjZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkZWZhdWx0PzogU3BhY2VyU3RyaW5nVCB8IFNwYWNlck51bWJlclQgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1vYmlsZT86IFNwYWNlclN0cmluZ1QgfCBTcGFjZXJOdW1iZXJUIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBkZXNrdG9wPzogU3BhY2VyU3RyaW5nVCB8IFNwYWNlck51bWJlclQgfCB1bmRlZmluZWQ7XG5cbiAgLy8tLS0gTG9jYWwgdmFyaWFibGVzXG4gIGlucHV0RGVmYXVsdDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBpbnB1dE1vYmlsZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBpbnB1dERlc2t0b3A6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVwZGF0ZSB2YXJpb3VzIHZhbHVlcyBvbiBpbnB1dCBjaGFuZ2VzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIERlZmF1bHRcbiAgICB0aGlzLmlucHV0RGVmYXVsdCA9IHZhbGlkYXRlTnVtYmVyVmFsdWUoY2hhbmdlcywgJ2RlZmF1bHQnLCB0aGlzLmlucHV0RGVmYXVsdCk7XG4gICAgLy8tLS0gTW9iaWxlXG4gICAgdGhpcy5pbnB1dE1vYmlsZSA9IHZhbGlkYXRlTnVtYmVyVmFsdWUoY2hhbmdlcywgJ21vYmlsZScsIHRoaXMuaW5wdXRNb2JpbGUpO1xuICAgIC8vLS0tIERlc2t0b3BcbiAgICB0aGlzLmlucHV0RGVza3RvcCA9IHZhbGlkYXRlTnVtYmVyVmFsdWUoY2hhbmdlcywgJ2Rlc2t0b3AnLCB0aGlzLmlucHV0RGVza3RvcCk7XG4gIH1cbn1cbiIsIjwhLS0gTW9iaWxlIE9ubHkgT1IgRGVmYXVsdCAtLT5cbjxkaXYgKm5nSWY9XCJpbnB1dE1vYmlsZSB8fCBpbnB1dERlZmF1bHRcIiBjbGFzcz1cIm1vYmlsZS1vbmx5XCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IChpbnB1dE1vYmlsZSB8fCBpbnB1dERlZmF1bHQgfHwgMCkgKyAncHgnIH1cIj4gPC9kaXY+XG48IS0tIERlc2t0b3AgT25seSBPUiBEZWZhdWx0LS0+XG48ZGl2ICpuZ0lmPVwiaW5wdXREZXNrdG9wIHx8IGlucHV0RGVmYXVsdFwiIGNsYXNzPVwiZGVza3RvcC1vbmx5XCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IChpbnB1dERlc2t0b3AgfHwgaW5wdXREZWZhdWx0IHx8IDApICsgJ3B4JyB9XCI+IDwvZGl2PlxuIl19
@@ -0,0 +1,19 @@
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: "17.0.9", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", 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: "17.0.9", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXNDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU9qRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ2xCLElBQUksR0FBb0IsRUFBRSxDQUFDO0lBR3BDLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFPdkIsV0FBVyxDQUFDLE9BQXNCO1FBRWhDLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxRixDQUFDO3VHQWRVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLGlHQ2pCN0IsMkVBQ0E7OzJGRGdCYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTs4QkFLYixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcmVGaXJzdCBMaWJyYXJ5IC0gU3Bpbm5lclxuICpcbiAqIEBmaWxlICAgICAgICAgIHNwaW5uZXIuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IFNwaW5uZXJcbiAqIEBhdXRob3IgICAgICAgIEphY3F1ZXMgQ29ldHplZVxuICogQHNpbmNlICAgICAgICAgMjAyNCAtIDAyIC0gMjNcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB2YWxpZGF0ZU51bWJlclZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1zcGlubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3Bpbm5lci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNwaW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzaXplOiBudW1iZXIgfCBzdHJpbmcgPSAyMDtcblxuICAvLy0tLSBMb2NhbCB2YXJpYWJsZXNcbiAgaW5wdXRTaXplOiBudW1iZXIgPSAyMDtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVwZGF0ZSB2YXJpb3VzIHZhbHVlcyBvbiBpbnB1dCBjaGFuZ2VzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIFNpemVcbiAgICB0aGlzLmlucHV0U2l6ZSA9IHZhbGlkYXRlTnVtYmVyVmFsdWUoY2hhbmdlcywgJ3NpemUnLCB0aGlzLmlucHV0U2l6ZSkgfHwgdGhpcy5pbnB1dFNpemU7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJzcGlubmVyXCIgW3N0eWxlXT1cIidmb250LXNpemU6ICcgKyBpbnB1dFNpemUgKyAncHgnXCI+PC9kaXY+XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Component, Directive, Input, Renderer2, TemplateRef, ViewContainerRef, ElementRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ButtonLoaderDirective {
4
+ templateRef;
5
+ renderer;
6
+ viewContainer;
7
+ elementRef;
8
+ constructor(templateRef, renderer, viewContainer, elementRef) {
9
+ this.templateRef = templateRef;
10
+ this.renderer = renderer;
11
+ this.viewContainer = viewContainer;
12
+ this.elementRef = elementRef;
13
+ }
14
+ set cfButtonLoader(loading) {
15
+ this.viewContainer.clear();
16
+ this.viewContainer.createEmbeddedView(this.templateRef);
17
+ if (loading) {
18
+ this.viewContainer.createComponent(SpinnerComponent);
19
+ this.renderer.setStyle(this.elementRef.nativeElement.parentElement, 'position', 'relative');
20
+ }
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ButtonLoaderDirective, deps: [{ token: i0.TemplateRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
23
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: ButtonLoaderDirective, selector: "[cfButtonLoader]", inputs: { cfButtonLoader: "cfButtonLoader" }, ngImport: i0 });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ButtonLoaderDirective, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: '[cfButtonLoader]',
29
+ }]
30
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }], propDecorators: { cfButtonLoader: [{
31
+ type: Input
32
+ }] } });
33
+ class SpinnerComponent {
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: SpinnerComponent, selector: "ng-component", ngImport: i0, template: '<div class="loading-spinner"></div>', isInline: true, styles: ["@keyframes spinner{to{transform:rotate(360deg)}}.loading-spinner{position:absolute;top:calc(50% - 1em);left:calc(50% - 1em);width:2em;height:2em;border-radius:50%;border:3px solid var(--cf-app-system-color-outline);border-top-color:var(--cf-app-color-accent);animation:spinner 1s linear infinite}\n"] });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SpinnerComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ template: '<div class="loading-spinner"></div>', styles: ["@keyframes spinner{to{transform:rotate(360deg)}}.loading-spinner{position:absolute;top:calc(50% - 1em);left:calc(50% - 1em);width:2em;height:2em;border-radius:50%;border:3px solid var(--cf-app-system-color-outline);border-top-color:var(--cf-app-color-accent);animation:spinner 1s linear infinite}\n"] }]
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWxvYWRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2RpcmVjdGl2ZXMvYnV0dG9uLWxvYWRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtsSCxNQUFNLE9BQU8scUJBQXFCO0lBS3RCO0lBQ0E7SUFDQTtJQUNBO0lBSlYsWUFDVSxXQUFxQyxFQUNyQyxRQUFtQixFQUNuQixhQUErQixFQUMvQixVQUFtQztRQUhuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBMEI7UUFDckMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7SUFDMUMsQ0FBQztJQU9KLElBQWEsY0FBYyxDQUFDLE9BQWdCO1FBRTFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsSUFBSSxPQUFPLEVBQUU7WUFFWCxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRXJELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDN0Y7SUFDSCxDQUFDO3VHQTNCVSxxQkFBcUI7MkZBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjtnS0FpQmMsY0FBYztzQkFBMUIsS0FBSzs7QUFxQlIsTUF3Qk0sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQixvREF2QlYscUNBQXFDOzsyRkF1QjNDLGdCQUFnQjtrQkF4QnJCLFNBQVM7K0JBQ0UscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdXR0b24gTG9hZGVyIERpcmVjdGl2ZVxuICpcbiAqIEBmaWxlICAgICAgICAgIGJ1dHRvbi1sb2FkZXIuZGlyZWN0aXZlXG4gKiBAZGVzY3JpcHRpb24gICBIVE1MIGRpcmVjdGl2ZSB1c2VkIHRvIGRpc2FibGUgYSBidXR0b24gd2hpbGUgbG9hZGluZ1xuICogQGF1dGhvciAgICAgICAgSmFjcXVlcyBDb2V0emVlXG4gKiBAc2luY2UgICAgICAgICAyMDIyIC0gMDcgLSAyMlxuICogQHVzYWdlICAgICAgICAgQWRkIHRvIGFueSBIVE1MIHRhZzogKmNmQnV0dG9uTG9hZGVyPVwidHJ1ZVwiXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBEaXJlY3RpdmUsIElucHV0LCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjZkJ1dHRvbkxvYWRlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Mb2FkZXJEaXJlY3RpdmUge1xuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICBDb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHt9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBjZkJ1dHRvbkxvYWRlclxuICAgKiBAZGVzY3JpcHRpb24gICBEaXNwbGF5cyBhIGxvYWRpbmcgb3ZlcmxheSBhbmQgZGlzYWJsZXMgYSBidXR0b25cbiAgICogQHBhcmFtICAgICAgICAge2Jvb2xlYW59IGxvYWRpbmdcbiAgICovXG4gIEBJbnB1dCgpIHNldCBjZkJ1dHRvbkxvYWRlcihsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgLy8tLS0gQ2xlYXIgSFRNTCBjb250YWluZXJcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICAvLy0tLSBSZWF0dGFjaCBlbGVtZW50IGFzIGNoaWxkXG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcbiAgICBpZiAobG9hZGluZykge1xuICAgICAgLy8tLS0gQWRkIGxvYWRpbmcgc3Bpbm5lclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChTcGlubmVyQ29tcG9uZW50KTtcbiAgICAgIC8vLS0tIFNldCBwYXJlbnQgY29udGFpbmVyIHBvc2l0aW9uIHRvIHJlbGF0aXZlXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgIH1cbiAgfVxufVxuXG4vKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEBjbGFzcyAgICAgICAgIFNwaW5uZXJDb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIFRoZSBzcGlubmVyIGNvbXBvbmVudCB1c2VkIHRvIHJlbmRlciBhbiBpb24tc3Bpbm5lciBvbiB0aGUgYnV0dG9uXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjIgLSAwNyAtIDIyXG4gKiA9PT09PSAqL1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICc8ZGl2IGNsYXNzPVwibG9hZGluZy1zcGlubmVyXCI+PC9kaXY+JyxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgQGtleWZyYW1lcyBzcGlubmVyIHtcbiAgICAgICAgdG8ge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxvYWRpbmctc3Bpbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDFlbSk7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMWVtKTtcbiAgICAgICAgd2lkdGg6IDJlbTtcbiAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tY2YtYXBwLXN5c3RlbS1jb2xvci1vdXRsaW5lKTtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY2YtYXBwLWNvbG9yLWFjY2VudCk7XG4gICAgICAgIGFuaW1hdGlvbjogc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5jbGFzcyBTcGlubmVyQ29tcG9uZW50IHt9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9pbnRlcmZhY2VzL2FsZXJ0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQGludGVyZmFjZSAgICAgQWxlcnREYXRhSVxuICogQGRlc2NyaXB0aW9uICAgRGVmaW5lcyB0aGUgcHJvcGVydGllcyBuZWVkZWQgdG8gc2hvdyBhIGNhcmUgZmlyc3QgYWxlcnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGVydERhdGFJIHtcbiAgaGVhZGluZzogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGFsZXJ0SWRlbnRpZmllcjogc3RyaW5nIHwgbnVtYmVyO1xuICBidXR0b25UcnVlPzogc3RyaW5nOyAvLy0tLSBEZWZhdWx0IHRvICdPSydcbiAgYnV0dG9uRmFsc2U/OiBzdHJpbmc7IC8vLS0tIERlZmF1bHQgdG8gJ0NhbmNlbCdcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQGludGVyZmFjZSAgICAgQWxlcnRFdmVudElcbiAqIEBkZXNjcmlwdGlvbiAgIERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgcmV0dXJuZWQgZXZlbnQgZnJvbSB0aGUgYWxlcnQgd2hlbiBhIGJ1dHRvbiBpcyBjbGlja2VkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxlcnRFdmVudEkge1xuICBpZGVudGlmaWVyOiBzdHJpbmcgfCBudW1iZXI7XG4gIHN0YXR1czogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,52 @@
1
+ export const iconsC = [
2
+ 'home',
3
+ 'cog',
4
+ 'profile',
5
+ 'scan',
6
+ 'person',
7
+ 'appointment',
8
+ 'clock',
9
+ 'calendar',
10
+ 'email',
11
+ 'phone',
12
+ 'sign-out',
13
+ 'sign-in',
14
+ 'close',
15
+ 'check-mark',
16
+ 'rating-star-blank',
17
+ 'rating-star-filled',
18
+ 'back-arrow',
19
+ 'lock',
20
+ 'show-password',
21
+ 'hide-password',
22
+ 'circle-check',
23
+ 'circle-alert',
24
+ 'direction-switch',
25
+ 'chat-bubbles',
26
+ 'phone-down',
27
+ 'mic',
28
+ 'no-mic',
29
+ 'button-forward-arrow',
30
+ 'button-check-box',
31
+ 'social-media-whatsapp',
32
+ 'social-media-facebook',
33
+ 'social-media-linkedin',
34
+ 'social-media-instagram',
35
+ 'social-media-google-mail',
36
+ 'instant-video-service',
37
+ 'instant-telephonic-service',
38
+ 'scheduled-video-service',
39
+ 'scheduled-telephonic-service',
40
+ 'vital-scan-service',
41
+ 'open-back-arrow',
42
+ 'open-forward-arrow',
43
+ 'open-up-arrow',
44
+ 'open-down-arrow',
45
+ 'single-document',
46
+ 'lightning',
47
+ 'microsoft-365',
48
+ 'user-dependent',
49
+ 'plus',
50
+ ];
51
+ export const iconColorC = ['primary', 'secondary', 'success', 'warning', 'error', 'white', 'accent'];
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2ludGVyZmFjZXMvaWNvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLE1BQU07SUFDTixLQUFLO0lBQ0wsU0FBUztJQUNULE1BQU07SUFDTixRQUFRO0lBQ1IsYUFBYTtJQUNiLE9BQU87SUFDUCxVQUFVO0lBQ1YsT0FBTztJQUNQLE9BQU87SUFDUCxVQUFVO0lBQ1YsU0FBUztJQUNULE9BQU87SUFDUCxZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1osTUFBTTtJQUNOLGVBQWU7SUFDZixlQUFlO0lBQ2YsY0FBYztJQUNkLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsY0FBYztJQUNkLFlBQVk7SUFDWixLQUFLO0lBQ0wsUUFBUTtJQUNSLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLDBCQUEwQjtJQUMxQix1QkFBdUI7SUFDdkIsNEJBQTRCO0lBQzVCLHlCQUF5QjtJQUN6Qiw4QkFBOEI7SUFDOUIsb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsV0FBVztJQUNYLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsTUFBTTtDQUNFLENBQUM7QUFPWCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEBpbnRlcmZhY2UgICAgIEljb25zVFxuICogQGRlc2NyaXB0aW9uICAgU2hvcnQgZGVzY3JpcHRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGljb25zQyA9IFtcbiAgJ2hvbWUnLFxuICAnY29nJyxcbiAgJ3Byb2ZpbGUnLFxuICAnc2NhbicsXG4gICdwZXJzb24nLFxuICAnYXBwb2ludG1lbnQnLFxuICAnY2xvY2snLFxuICAnY2FsZW5kYXInLFxuICAnZW1haWwnLFxuICAncGhvbmUnLFxuICAnc2lnbi1vdXQnLFxuICAnc2lnbi1pbicsXG4gICdjbG9zZScsXG4gICdjaGVjay1tYXJrJyxcbiAgJ3JhdGluZy1zdGFyLWJsYW5rJyxcbiAgJ3JhdGluZy1zdGFyLWZpbGxlZCcsXG4gICdiYWNrLWFycm93JyxcbiAgJ2xvY2snLFxuICAnc2hvdy1wYXNzd29yZCcsXG4gICdoaWRlLXBhc3N3b3JkJyxcbiAgJ2NpcmNsZS1jaGVjaycsXG4gICdjaXJjbGUtYWxlcnQnLFxuICAnZGlyZWN0aW9uLXN3aXRjaCcsXG4gICdjaGF0LWJ1YmJsZXMnLFxuICAncGhvbmUtZG93bicsXG4gICdtaWMnLFxuICAnbm8tbWljJyxcbiAgJ2J1dHRvbi1mb3J3YXJkLWFycm93JyxcbiAgJ2J1dHRvbi1jaGVjay1ib3gnLFxuICAnc29jaWFsLW1lZGlhLXdoYXRzYXBwJyxcbiAgJ3NvY2lhbC1tZWRpYS1mYWNlYm9vaycsXG4gICdzb2NpYWwtbWVkaWEtbGlua2VkaW4nLFxuICAnc29jaWFsLW1lZGlhLWluc3RhZ3JhbScsXG4gICdzb2NpYWwtbWVkaWEtZ29vZ2xlLW1haWwnLFxuICAnaW5zdGFudC12aWRlby1zZXJ2aWNlJyxcbiAgJ2luc3RhbnQtdGVsZXBob25pYy1zZXJ2aWNlJyxcbiAgJ3NjaGVkdWxlZC12aWRlby1zZXJ2aWNlJyxcbiAgJ3NjaGVkdWxlZC10ZWxlcGhvbmljLXNlcnZpY2UnLFxuICAndml0YWwtc2Nhbi1zZXJ2aWNlJyxcbiAgJ29wZW4tYmFjay1hcnJvdycsXG4gICdvcGVuLWZvcndhcmQtYXJyb3cnLFxuICAnb3Blbi11cC1hcnJvdycsXG4gICdvcGVuLWRvd24tYXJyb3cnLFxuICAnc2luZ2xlLWRvY3VtZW50JyxcbiAgJ2xpZ2h0bmluZycsXG4gICdtaWNyb3NvZnQtMzY1JyxcbiAgJ3VzZXItZGVwZW5kZW50JyxcbiAgJ3BsdXMnLFxuXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEljb25zVCA9ICh0eXBlb2YgaWNvbnNDKVtudW1iZXJdO1xuXG4vKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBAaW50ZXJmYWNlICAgICBJY29uQ29sb3JUXG4gKiBAZGVzY3JpcHRpb24gICBBbGwgYXZhaWxhYmxlIGNvbG9ycyBpbiBDU1MgY2xhc3Nlc1xuICovXG5leHBvcnQgY29uc3QgaWNvbkNvbG9yQyA9IFsncHJpbWFyeScsICdzZWNvbmRhcnknLCAnc3VjY2VzcycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ3doaXRlJywgJ2FjY2VudCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgSWNvbkNvbG9yVCA9ICh0eXBlb2YgaWNvbkNvbG9yQylbbnVtYmVyXTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9pbnRlcmZhY2VzL2lucHV0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQGludGVyZmFjZSAgICAgRm9ybUlucHV0U2VsZWN0T3B0aW9uc0lcbiAqIEBkZXNjcmlwdGlvbiAgIFN0cnVjdHVyZSBmb3IgdGhlIGlucHV0IHNlbGVjdCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUlucHV0U2VsZWN0T3B0aW9uc0k8VD4ge1xuICBkaXNwbGF5TmFtZTogc3RyaW5nIHwgbnVtYmVyO1xuICB2YWx1ZTogVDtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvaW50ZXJmYWNlcy9ub3RpZmljYXRpb24uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBAaW50ZXJmYWNlICAgICBOb3RpZmljYXRpb25QYXlsb2FkSVxuICogQGRlc2NyaXB0aW9uICAgU2V0dXAgbmVlZGVkIHRvIHNob3cgYSBub3RpZmljYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25QYXlsb2FkSSB7XG4gIGhlYWRpbmc6IHN0cmluZztcbiAgc3RhdHVzOiAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZXJyb3InOyAvLy0tLSBzdWNjZXNzPWdyZWVuLCB3YXJuaW5nPXllbGxvdywgZXJyb3I9cmVkXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIGNhbkNsb3NlPzogdHJ1ZTsgLy8tLS0gQWRkcyBhIGNsaWNrYWJsZSB4IHRvIGhpZGUgbm90aWZpY2F0aW9uXG4gIGJ1dHRvbj86IHtcbiAgICBidXR0b25UZXh0OiBzdHJpbmc7XG4gICAgYnV0dG9uQ2xpY2tJZGVudGlmaWVyOiBzdHJpbmcgfCBudW1iZXI7IC8vLS0tIHVzZXIgc2V0IGlkZW50aWZpZXIgdXNlZCB0byBrbm93IHdpdGNoIG5vdGlmaWNhdGlvbnMgYnV0dG9uIGhhcyBiZWVuIGNsaWNrZWRcbiAgICBidXR0b25IZWFkaW5nPzogc3RyaW5nO1xuICB9O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export const spacerNumberArray = [4, 8, 12, 16, 24, 32, 38, 48, 72];
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvaW50ZXJmYWNlcy9zcGFjZXIuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEBkZXNjcmlwdGlvbiAgIEF2YWlsYWJsZSBTcGFjZXIgVmFsdWVzXG4gKi9cbmV4cG9ydCBjb25zdCBzcGFjZXJOdW1iZXJBcnJheSA9IFs0LCA4LCAxMiwgMTYsIDI0LCAzMiwgMzgsIDQ4LCA3Ml0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTcGFjZXJOdW1iZXJUID0gKHR5cGVvZiBzcGFjZXJOdW1iZXJBcnJheSlbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNwYWNlclN0cmluZ1QgPSBgJHtTcGFjZXJOdW1iZXJUfWA7XG4iXX0=
@@ -0,0 +1,100 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IonicModule } from '@ionic/angular';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { ButtonLoaderDirective } from './directives/button-loader.directive';
6
+ import { PageComponent } from './components/page/page.component';
7
+ import { ButtonComponent } from './components/button/button.component';
8
+ import { SpacerComponent } from './components/spacer/spacer.component';
9
+ import { IconComponent } from './components/icon/icon.component';
10
+ import { NotificationComponent } from './components/notification/notification.component';
11
+ import { AlertComponent } from './components/alert/alert.component';
12
+ import { LogoComponent } from './components/logo/logo.component';
13
+ import { CalendarComponent } from './components/calendar/calendar.component';
14
+ import { FormValidationComponent } from './components/form-validation/form-validation.component';
15
+ import { FormInputComponent } from './components/form-input/form-input.component';
16
+ import { FormInputSelectComponent } from './components/form-input-select/form-input-select.component';
17
+ import { FormInputTextAreaComponent } from './components/form-input-text-area/form-input-text-area.component';
18
+ import { ChatBubbleComponent } from './components/chat-bubble/chat-bubble.component';
19
+ import { BadgeComponent } from './components/badge/badge.component';
20
+ import { SpinnerComponent } from './components/spinner/spinner.component';
21
+ import * as i0 from "@angular/core";
22
+ export class CareFirstLibraryModule {
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CareFirstLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: CareFirstLibraryModule, declarations: [PageComponent,
25
+ ButtonComponent,
26
+ SpacerComponent,
27
+ IconComponent,
28
+ ButtonLoaderDirective,
29
+ NotificationComponent,
30
+ AlertComponent,
31
+ LogoComponent,
32
+ CalendarComponent,
33
+ FormValidationComponent,
34
+ FormInputComponent,
35
+ FormInputSelectComponent,
36
+ FormInputTextAreaComponent,
37
+ ChatBubbleComponent,
38
+ BadgeComponent,
39
+ SpinnerComponent], imports: [IonicModule, CommonModule, ReactiveFormsModule], exports: [PageComponent,
40
+ ButtonComponent,
41
+ SpacerComponent,
42
+ IconComponent,
43
+ ButtonLoaderDirective,
44
+ NotificationComponent,
45
+ AlertComponent,
46
+ LogoComponent,
47
+ CalendarComponent,
48
+ FormValidationComponent,
49
+ FormInputComponent,
50
+ FormInputSelectComponent,
51
+ FormInputTextAreaComponent,
52
+ ChatBubbleComponent,
53
+ BadgeComponent,
54
+ SpinnerComponent] });
55
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CareFirstLibraryModule, imports: [IonicModule, CommonModule, ReactiveFormsModule] });
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CareFirstLibraryModule, decorators: [{
58
+ type: NgModule,
59
+ args: [{
60
+ declarations: [
61
+ PageComponent,
62
+ ButtonComponent,
63
+ SpacerComponent,
64
+ IconComponent,
65
+ ButtonLoaderDirective,
66
+ NotificationComponent,
67
+ AlertComponent,
68
+ LogoComponent,
69
+ CalendarComponent,
70
+ FormValidationComponent,
71
+ FormInputComponent,
72
+ FormInputSelectComponent,
73
+ FormInputTextAreaComponent,
74
+ ChatBubbleComponent,
75
+ BadgeComponent,
76
+ SpinnerComponent,
77
+ ],
78
+ imports: [IonicModule, CommonModule, ReactiveFormsModule],
79
+ exports: [
80
+ PageComponent,
81
+ ButtonComponent,
82
+ SpacerComponent,
83
+ IconComponent,
84
+ ButtonLoaderDirective,
85
+ NotificationComponent,
86
+ AlertComponent,
87
+ LogoComponent,
88
+ CalendarComponent,
89
+ FormValidationComponent,
90
+ FormInputComponent,
91
+ FormInputSelectComponent,
92
+ FormInputTextAreaComponent,
93
+ ChatBubbleComponent,
94
+ BadgeComponent,
95
+ SpinnerComponent,
96
+ ],
97
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
98
+ }]
99
+ }] });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2xpYnJhcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBMkMxRSxNQUFNLE9BQU8sc0JBQXNCO3VHQUF0QixzQkFBc0I7d0dBQXRCLHNCQUFzQixpQkF2Qy9CLGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGFBQWE7WUFDYixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsd0JBQXdCO1lBQ3hCLDBCQUEwQjtZQUMxQixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGdCQUFnQixhQUdSLFdBQVcsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLGFBRXRELGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGFBQWE7WUFDYixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsd0JBQXdCO1lBQ3hCLDBCQUEwQjtZQUMxQixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGdCQUFnQjt3R0FJUCxzQkFBc0IsWUFyQnZCLFdBQVcsRUFBRSxZQUFZLEVBQUUsbUJBQW1COzsyRkFxQjdDLHNCQUFzQjtrQkF6Q2xDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBRUQsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztvQkFDekQsT0FBTyxFQUFFO3dCQUNQLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG4vLy0tLSBNb2R1bGVzXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLy0tLSBEaXJlY3RpdmVzXG5pbXBvcnQgeyBCdXR0b25Mb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYnV0dG9uLWxvYWRlci5kaXJlY3RpdmUnO1xuLy8tLS0gQ29tcG9uZW50c1xuaW1wb3J0IHsgUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlL3BhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGFjZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3BhY2VyL3NwYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9nb0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2dvL2xvZ28uY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC1zZWxlY3QvZm9ybS1pbnB1dC1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1JbnB1dFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0taW5wdXQtdGV4dC1hcmVhL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGF0QnViYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYXQtYnViYmxlL2NoYXQtYnViYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUGFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgU3BhY2VyQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgQnV0dG9uTG9hZGVyRGlyZWN0aXZlLFxuICAgIE5vdGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBMb2dvQ29tcG9uZW50LFxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgIEZvcm1WYWxpZGF0aW9uQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRTZWxlY3RDb21wb25lbnQsXG4gICAgRm9ybUlucHV0VGV4dEFyZWFDb21wb25lbnQsXG4gICAgQ2hhdEJ1YmJsZUNvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICBdLFxuXG4gIGltcG9ydHM6IFtJb25pY01vZHVsZSwgQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgZXhwb3J0czogW1xuICAgIFBhZ2VDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIFNwYWNlckNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkxvYWRlckRpcmVjdGl2ZSxcbiAgICBOb3RpZmljYXRpb25Db21wb25lbnQsXG4gICAgQWxlcnRDb21wb25lbnQsXG4gICAgTG9nb0NvbXBvbmVudCxcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBGb3JtVmFsaWRhdGlvbkNvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybUlucHV0U2VsZWN0Q29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFRleHRBcmVhQ29tcG9uZW50LFxuICAgIENoYXRCdWJibGVDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJlRmlyc3RMaWJyYXJ5TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,34 @@
1
+ export function checkTruthAttribute(changes, attribute, curVal) {
2
+ if (!(attribute in changes))
3
+ return curVal;
4
+ const valueChanged = changes[attribute]?.currentValue;
5
+ if (typeof valueChanged === 'boolean') {
6
+ return valueChanged;
7
+ }
8
+ else if (typeof valueChanged === 'string' && ['true', ''].includes(valueChanged)) {
9
+ return true;
10
+ }
11
+ return false;
12
+ }
13
+ export function validateStringValue(changes, attribute, options, curVal) {
14
+ if (!(attribute in changes))
15
+ return curVal;
16
+ const valueChanged = changes[attribute]?.currentValue;
17
+ if (valueChanged && options.includes(valueChanged)) {
18
+ return valueChanged;
19
+ }
20
+ return undefined;
21
+ }
22
+ export function validateNumberValue(changes, attribute, curVal) {
23
+ if (!(attribute in changes))
24
+ return curVal;
25
+ const valueChanged = changes[attribute]?.currentValue;
26
+ if (typeof valueChanged === 'number' && valueChanged >= 0) {
27
+ return valueChanged;
28
+ }
29
+ else if (typeof valueChanged === 'string' && +valueChanged >= 0) {
30
+ return +valueChanged;
31
+ }
32
+ return undefined;
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL3V0aWxzL2F0dHJpYnV0ZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CQSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBc0IsRUFBRSxTQUFpQixFQUFFLE1BQWU7SUFDNUYsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQzNDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDdEQsSUFBSSxPQUFPLFlBQVksS0FBSyxTQUFTLEVBQUU7UUFDckMsT0FBTyxZQUFZLENBQUM7S0FDckI7U0FBTSxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDbEYsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVdELE1BQU0sVUFBVSxtQkFBbUIsQ0FBSSxPQUFzQixFQUFFLFNBQWlCLEVBQUUsT0FBWSxFQUFFLE1BQXFCO0lBQ25ILElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUMzQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxDQUFDO0lBQ3RELElBQUksWUFBWSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDbEQsT0FBTyxZQUFpQixDQUFDO0tBQzFCO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUFzQixFQUFFLFNBQWlCLEVBQUUsTUFBMEI7SUFDdkcsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQzNDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDdEQsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksWUFBWSxJQUFJLENBQUMsRUFBRTtRQUN6RCxPQUFPLFlBQVksQ0FBQztLQUNyQjtTQUFNLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsRUFBRTtRQUNqRSxPQUFPLENBQUMsWUFBWSxDQUFDO0tBQ3RCO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXR0cmlidXRlIFV0aWxpdHlcbiAqXG4gKiBAZmlsZSAgICAgICAgICBhdHRyaWJ1dGUudXRpbFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgdmFyaW91cyB1dGlsaXR5IGZ1bmN0aW9ucyBwZXJ0YWluaW5nIHRvIGF0dHJpYnV0ZSBoYW5kbGluZ1xuICogQGF1dGhvciAgICAgICAgSmFjcXVlcyBDb2V0emVlXG4gKiBAc2luY2UgICAgICAgICAyMDIzIC0gMTEgLSAwOFxuICovXG5cbmltcG9ydCB0eXBlIHsgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBAbmFtZSAgICAgICAgICBjaGVja1RydXRoQXR0cmlidXRlXG4gKiBAZGVzY3JpcHRpb24gICBDaGVjayB3aGV0aGVyIGFuIGF0dHJpYnV0ZSBpcyBlaXRoZXIganVzdCBhdmFpbGFibGUgb3Igc3BlY2lmaWNhbGx5IHNldCB0byBib29sZWFuIHZhbHVlXG4gKiBAcGFyYW0gICAgICAgICB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlc1xuICogQHBhcmFtICAgICAgICAge3N0cmluZ30gYXR0cmlidXRlXG4gKiBAcGFyYW0gICAgICAgICB7Ym9vbGVhbn0gY3VyVmFsXG4gKiBAcmV0dXJucyAgICAgICB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgYXR0cmlidXRlOiBzdHJpbmcsIGN1clZhbDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICBpZiAoIShhdHRyaWJ1dGUgaW4gY2hhbmdlcykpIHJldHVybiBjdXJWYWw7XG4gIGNvbnN0IHZhbHVlQ2hhbmdlZCA9IGNoYW5nZXNbYXR0cmlidXRlXT8uY3VycmVudFZhbHVlO1xuICBpZiAodHlwZW9mIHZhbHVlQ2hhbmdlZCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIHZhbHVlQ2hhbmdlZDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWVDaGFuZ2VkID09PSAnc3RyaW5nJyAmJiBbJ3RydWUnLCAnJ10uaW5jbHVkZXModmFsdWVDaGFuZ2VkKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQG5hbWUgICAgICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZVxuICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgd2hldGhlciBhbiBhdHRyaWJ1dGUgaXMgc2V0IGFuZCBjb250YWlucyBhIHNwZWNpZmljIHN0cmluZyBvcHRpb25cbiAqIEBwYXJhbSAgICAgICAgIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzXG4gKiBAcGFyYW0gICAgICAgICB7c3RyaW5nfSBhdHRyaWJ1dGVcbiAqIEBwYXJhbSAgICAgICAgIHtzdHJpbmdbXX0gb3B0aW9uc1xuICogQHBhcmFtICAgICAgICAge1QgfCB1bmRlZmluZWR9IGN1clZhbFxuICogQHJldHVybnMgICAgICAge3N0cmluZyB8IHVuZGVmaW5lZH0gUmV0dXJucyBjb3JyZWN0IHN0cmluZyB2YWx1ZSBvciB1bmRlZmluZWQgaWYgZWl0aGVyIG5vdCBhdmFpbGFibGUgb3Igbm90IGluIGxpc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nVmFsdWU8VD4oY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgYXR0cmlidXRlOiBzdHJpbmcsIG9wdGlvbnM6IFRbXSwgY3VyVmFsOiBUIHwgdW5kZWZpbmVkKTogVCB8IHVuZGVmaW5lZCB7XG4gIGlmICghKGF0dHJpYnV0ZSBpbiBjaGFuZ2VzKSkgcmV0dXJuIGN1clZhbDtcbiAgY29uc3QgdmFsdWVDaGFuZ2VkID0gY2hhbmdlc1thdHRyaWJ1dGVdPy5jdXJyZW50VmFsdWU7XG4gIGlmICh2YWx1ZUNoYW5nZWQgJiYgb3B0aW9ucy5pbmNsdWRlcyh2YWx1ZUNoYW5nZWQpKSB7XG4gICAgcmV0dXJuIHZhbHVlQ2hhbmdlZCBhcyBUO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEBuYW1lICAgICAgICAgIHZhbGlkYXRlTnVtYmVyVmFsdWVcbiAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIHdoZXRoZXIgYW4gYXR0cmlidXRlIGlzIHNldCBhbmQgY29udGFpbnMgYSBzcGVjaWZpYyBudW1iZXIgdmFsdWVcbiAqIEBwYXJhbSAgICAgICAgIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzXG4gKiBAcGFyYW0gICAgICAgICB7c3RyaW5nfSBhdHRyaWJ1dGVcbiAqIEBwYXJhbSAgICAgICAgIHtudW1iZXIgfCB1bmRlZmluZWR9IGN1clZhbFxuICogQHJldHVybnMgICAgICAge251bWJlciB8IHVuZGVmaW5lZH0gUmV0dXJucyBjb3JyZWN0IG51bWJlciB2YWx1ZSBvciB1bmRlZmluZWQgaWYgZWl0aGVyIG5vdCBhdmFpbGFibGUgb3Igbm90IGEgbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU51bWJlclZhbHVlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMsIGF0dHJpYnV0ZTogc3RyaW5nLCBjdXJWYWw6IG51bWJlciB8IHVuZGVmaW5lZCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGlmICghKGF0dHJpYnV0ZSBpbiBjaGFuZ2VzKSkgcmV0dXJuIGN1clZhbDtcbiAgY29uc3QgdmFsdWVDaGFuZ2VkID0gY2hhbmdlc1thdHRyaWJ1dGVdPy5jdXJyZW50VmFsdWU7XG4gIGlmICh0eXBlb2YgdmFsdWVDaGFuZ2VkID09PSAnbnVtYmVyJyAmJiB2YWx1ZUNoYW5nZWQgPj0gMCkge1xuICAgIHJldHVybiB2YWx1ZUNoYW5nZWQ7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlQ2hhbmdlZCA9PT0gJ3N0cmluZycgJiYgK3ZhbHVlQ2hhbmdlZCA+PSAwKSB7XG4gICAgcmV0dXJuICt2YWx1ZUNoYW5nZWQ7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -0,0 +1,113 @@
1
+ import { AbstractControl } from '@angular/forms';
2
+ import passwordValidator from 'password-validator';
3
+ import dayjs from 'dayjs';
4
+ import customParseFormat from 'dayjs/plugin/customParseFormat';
5
+ dayjs.extend(customParseFormat);
6
+ export class CFPFormValidators {
7
+ static compareTo(controlNameToCheckAgainst) {
8
+ return (control) => {
9
+ const controlToCheckTo = control?.parent?.get(controlNameToCheckAgainst) || null;
10
+ if (!controlToCheckTo?.value)
11
+ return { errorMessage: `Password Required` };
12
+ else if (!control.value)
13
+ return { errorMessage: `Password confirmation required` };
14
+ else if (control.value && control?.value !== controlToCheckTo?.value)
15
+ return { errorMessage: `Passwords do not match` };
16
+ return null;
17
+ };
18
+ }
19
+ static asPassword() {
20
+ return (control) => {
21
+ const schema = new passwordValidator();
22
+ schema
23
+ .is()
24
+ .min(8, 'Minimum of 8 characters')
25
+ .is()
26
+ .max(30, 'Maximum of 30 characters')
27
+ .has()
28
+ .uppercase(undefined, 'At least one UPPERCASE character')
29
+ .has()
30
+ .lowercase(undefined, 'At least one lowercase character')
31
+ .has()
32
+ .digits(undefined, 'At least one digit')
33
+ .has()
34
+ .symbols(undefined, 'At least one special character');
35
+ const inValid = schema.validate(control.value, { details: true });
36
+ const returnResponse = {};
37
+ inValid.forEach((error) => {
38
+ returnResponse['password-' + error.validation] = error.message;
39
+ });
40
+ return inValid.length ? returnResponse : null;
41
+ };
42
+ }
43
+ static asEmail(canBeEmpty) {
44
+ return (control) => {
45
+ let setErrors = null;
46
+ const emailRegEx = new RegExp('^[\\w-.]+@[\\w]+\\.[\\w]+');
47
+ if (canBeEmpty && (control.value === null || control.value === '')) {
48
+ return null;
49
+ }
50
+ if (!(control.value && emailRegEx.test(control.value))) {
51
+ setErrors = { errorMessage: `Not a valid email address` };
52
+ }
53
+ return setErrors;
54
+ };
55
+ }
56
+ static isIn(list) {
57
+ return (control) => {
58
+ if (!list.includes(control.value))
59
+ return { errorMessage: 'Control value not part of eligible values' };
60
+ return null;
61
+ };
62
+ }
63
+ static isSAIDNumber(canBeEmpty) {
64
+ return (control) => {
65
+ const validateDate = () => {
66
+ if (typeof control.value !== 'string' || control.value.length < 6)
67
+ return false;
68
+ const month = control.value.slice(2, 4);
69
+ const day = control.value.slice(4, 6);
70
+ if (+month < 0 && +month > 13)
71
+ return false;
72
+ if (+day < 0 && +day > 31)
73
+ return false;
74
+ if (!dayjs(control.value.slice(0, 6), 'YYMMDD', true).isValid())
75
+ return false;
76
+ return true;
77
+ };
78
+ const checksum = () => {
79
+ if (typeof control.value !== 'string' || control.value.length !== 13)
80
+ return false;
81
+ let nSum = 0;
82
+ let isSecond = false;
83
+ for (let i = control.value.length - 1; i >= 0; i--) {
84
+ const val = control.value[i];
85
+ if (!val)
86
+ return false;
87
+ let d = val.charCodeAt(0) - '0'.charCodeAt(0);
88
+ if (isSecond == true)
89
+ d = d * 2;
90
+ nSum += Math.floor(d / 10);
91
+ nSum += d % 10;
92
+ isSecond = !isSecond;
93
+ }
94
+ return nSum % 10 == 0;
95
+ };
96
+ let error = null;
97
+ if (canBeEmpty && (!control.value || control.value?.length === 0))
98
+ return null;
99
+ else if (typeof control.value !== 'string')
100
+ error = 'Invalid RSA ID Number';
101
+ else if (control.value.length !== 13)
102
+ error = `Length required: ${13 - control.value.length}`;
103
+ else if (!validateDate())
104
+ error = `Invalid date of birth`;
105
+ else if (!['0', '1'].includes(control.value.slice(10, 11)))
106
+ error = `Invalid citizenship value`;
107
+ else if (!checksum())
108
+ error = `Invalid RSA ID number checksum`;
109
+ return error ? { errorMessage: error } : null;
110
+ };
111
+ }
112
+ }
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3JzLXV0aWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL3V0aWxzL2Zvcm0tdmFsaWRhdG9ycy11dGlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUloQyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLE1BQU0sQ0FBQyxTQUFTLENBQUMseUJBQWlDO1FBQ2hELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1lBRTNELE1BQU0sZ0JBQWdCLEdBQTJCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksSUFBSSxDQUFDO1lBR3pHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztpQkFFdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQztpQkFFOUUsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBRSxLQUFLLEtBQUssZ0JBQWdCLEVBQUUsS0FBSztnQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLENBQUM7WUFFeEgsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0lBUUQsTUFBTSxDQUFDLFVBQVU7UUFDZixPQUFPLENBQUMsT0FBd0IsRUFBMkIs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ICAgICAgICAgIGZvcm0tdmFsaWRhdG9yc1xuICogQGRlc2NyaXB0aW9uICAgVmFyaW91cyBmb3JtIHZhbGlkYXRvcnNcbiAqIEBhdXRob3IgICAgICAgIEphY3F1ZXMgQ29ldHplZVxuICogQHNpbmNlICAgICAgICAgMjAyMiAtIDAxIC0gMjBcbiAqIEB1c2FnZSAgICAgICAgIERpc3BsYXkgXCJlcnJvck1lc3NhZ2VcIiBrZXkgdmFsdWUgYXMgdmFsaWRhdG9yIHJlc3BvbnNlIG1lc3NhZ2VcbiAqL1xuXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgcGFzc3dvcmRWYWxpZGF0b3IgZnJvbSAncGFzc3dvcmQtdmFsaWRhdG9yJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcbmRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XG4vLy0tLSBJbnRlcmZhY2VzXG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY2xhc3MgQ0ZQRm9ybVZhbGlkYXRvcnMge1xuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGNoZWNrUFNXUmV0eXBlXG4gICAqIEBkZXNjcmlwdGlvbiAgIENoZWNrIGlmIHBhc3N3b3JkcyBtYXRjaFxuICAgKiBAcGFyYW0gICAgICAgICB7c3RyaW5nfSBjb250cm9sTmFtZVRvQ2hlY2tBZ2FpbnN0XG4gICAqIEByZXR1cm5zICAgICAgIHtWYWxpZGF0b3JGbn1cbiAgICogQHVzYWdlICAgICAgICAgRm9ybVZhbGlkYXRvcnMuY29tcGFyZVRvKCdwYXNzd29yZCcpXG4gICAqL1xuICBzdGF0aWMgY29tcGFyZVRvKGNvbnRyb2xOYW1lVG9DaGVja0FnYWluc3Q6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIC8vLS0tIENvbXBhcmUgY29udHJvbHNcbiAgICAgIGNvbnN0IGNvbnRyb2xUb0NoZWNrVG86IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBjb250cm9sPy5wYXJlbnQ/LmdldChjb250cm9sTmFtZVRvQ2hlY2tBZ2FpbnN0KSB8fCBudWxsO1xuXG4gICAgICAvLy0tLSBDaGVjayBwcmltYXJ5IGNvbnRyb2wgdmFsdWVcbiAgICAgIGlmICghY29udHJvbFRvQ2hlY2tUbz8udmFsdWUpIHJldHVybiB7IGVycm9yTWVzc2FnZTogYFBhc3N3b3JkIFJlcXVpcmVkYCB9O1xuICAgICAgLy8tLS0gQ2hlY2sgc2Vjb25kYXJ5IGNvbnRyb2wgdmFsdWVcbiAgICAgIGVsc2UgaWYgKCFjb250cm9sLnZhbHVlKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBQYXNzd29yZCBjb25maXJtYXRpb24gcmVxdWlyZWRgIH07XG4gICAgICAvLy0tLSBDb21wYXJlIGNvbnRyb2xzXG4gICAgICBlbHNlIGlmIChjb250cm9sLnZhbHVlICYmIGNvbnRyb2w/LnZhbHVlICE9PSBjb250cm9sVG9DaGVja1RvPy52YWx1ZSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgUGFzc3dvcmRzIGRvIG5vdCBtYXRjaGAgfTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgYXNQYXNzd29yZFxuICAgKiBAZGVzY3JpcHRpb24gICBWYWxpZGF0ZSBjb250cm9sIGFzIHBhc3N3b3JkXG4gICAqIEByZXR1cm5zICAgICAgIHtWYWxpZGF0b3JGbn1cbiAgICogQHVzYWdlICAgICAgICAgRm9ybVZhbGlkYXRvcnMuYXNQYXNzd29yZCgpXG4gICAqL1xuICBzdGF0aWMgYXNQYXNzd29yZCgpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBzY2hlbWEgPSBuZXcgcGFzc3dvcmRWYWxpZGF0b3IoKTtcblxuICAgICAgLy8tLS0gU2V0dXAgcGFzc3dvcmQgcmVxdWlyZW1lbnRzXG4gICAgICBzY2hlbWFcbiAgICAgICAgLy8tLS0gTWluaW11bSBsZW5ndGggOFxuICAgICAgICAuaXMoKVxuICAgICAgICAubWluKDgsICdNaW5pbXVtIG9mIDggY2hhcmFjdGVycycpXG4gICAgICAgIC8vLS0tIE1heGltdW0gbGVuZ3RoIDUwXG4gICAgICAgIC5pcygpXG4gICAgICAgIC5tYXgoMzAsICdNYXhpbXVtIG9mIDMwIGNoYXJhY3RlcnMnKVxuICAgICAgICAvLy0tLSBNdXN0IGhhdmUgdXBwZXJjYXNlIGxldHRlcnNcbiAgICAgICAgLmhhcygpXG4gICAgICAgIC51cHBlcmNhc2UodW5kZWZpbmVkLCAnQXQgbGVhc3Qgb25lIFVQUEVSQ0FTRSBjaGFyYWN0ZXInKVxuICAgICAgICAvLy0tLSBNdXN0IGhhdmUgbG93ZXJjYXNlIGxldHRlcnNcbiAgICAgICAgLmhhcygpXG4gICAgICAgIC5sb3dlcmNhc2UodW5kZWZpbmVkLCAnQXQgbGVhc3Qgb25lIGxvd2VyY2FzZSBjaGFyYWN0ZXInKVxuICAgICAgICAvLy0tLSBNdXN0IGhhdmUgYXQgbGVhc3QgMSBkaWdpdHNcbiAgICAgICAgLmhhcygpXG4gICAgICAgIC5kaWdpdHModW5kZWZpbmVkLCAnQXQgbGVhc3Qgb25lIGRpZ2l0JylcbiAgICAgICAgLy8tLS0gU3BlY2lhbCBjaGFyYWN0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAuc3ltYm9scyh1bmRlZmluZWQsICdBdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXInKTtcblxuICAgICAgLy8tLS0gVmFsaWRhdGUgc3RyaW5nXG4gICAgICBjb25zdCBpblZhbGlkID0gc2NoZW1hLnZhbGlkYXRlKGNvbnRyb2wudmFsdWUsIHsgZGV0YWlsczogdHJ1ZSB9KSBhcyB7XG4gICAgICAgIHZhbGlkYXRpb246IHN0cmluZztcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgICBhcmd1bWVudHM/OiBudW1iZXI7XG4gICAgICB9W107XG5cbiAgICAgIGNvbnN0IHJldHVyblJlc3BvbnNlOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSA9IHt9O1xuICAgICAgaW5WYWxpZC5mb3JFYWNoKChlcnJvcikgPT4ge1xuICAgICAgICByZXR1cm5SZXNwb25zZVsncGFzc3dvcmQtJyArIGVycm9yLnZhbGlkYXRpb25dID0gZXJyb3IubWVzc2FnZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGluVmFsaWQubGVuZ3RoID8gcmV0dXJuUmVzcG9uc2UgOiBudWxsO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGFzRW1haWxcbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCBhcyBlbWFpbFxuICAgKiBAcGFyYW0gICAgICAgICB7dHJ1ZX0gY2FuQmVFbXB0eVxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmFzRW1haWwodHJ1ZT8pXG4gICAqL1xuICBzdGF0aWMgYXNFbWFpbChjYW5CZUVtcHR5PzogdHJ1ZSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGxldCBzZXRFcnJvcnMgPSBudWxsO1xuICAgICAgY29uc3QgZW1haWxSZWdFeCA9IG5ldyBSZWdFeHAoJ15bXFxcXHctLl0rQFtcXFxcd10rXFxcXC5bXFxcXHddKycpO1xuXG4gICAgICAvLy0tLSBDaGVjayBpZiBlbWFpbCBjYW4gYmUgZW1wdHlcbiAgICAgIGlmIChjYW5CZUVtcHR5ICYmIChjb250cm9sLnZhbHVlID09PSBudWxsIHx8IGNvbnRyb2wudmFsdWUgPT09ICcnKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8tLS0gVGVzdCBSZWdFeHBcbiAgICAgIGlmICghKGNvbnRyb2wudmFsdWUgJiYgZW1haWxSZWdFeC50ZXN0KGNvbnRyb2wudmFsdWUpKSkge1xuICAgICAgICBzZXRFcnJvcnMgPSB7IGVycm9yTWVzc2FnZTogYE5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3NgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzZXRFcnJvcnM7XG4gICAgfTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgaXNJblxuICAgKiBAZGVzY3JpcHRpb24gICBWYWxpZGF0ZSBjb250cm9sIHZhbHVlIGlzIHBhcnQgb2YgYSBnaXZlbiBsaXN0XG4gICAqIEBwYXJhbSAgICAgICAgIHtzdHJpbmcgfCBudW1iZXJbXX0gbGlzdFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmlzSW4oKVxuICAgKi9cbiAgc3RhdGljIGlzSW4obGlzdDogKHN0cmluZyB8IG51bWJlcilbXSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGlmICghbGlzdC5pbmNsdWRlcyhjb250cm9sLnZhbHVlKSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiAnQ29udHJvbCB2YWx1ZSBub3QgcGFydCBvZiBlbGlnaWJsZSB2YWx1ZXMnIH07XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpc1NBSUROdW1iZXJcbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCB2YWx1ZSBpcyBhIHZhbGlkIFJTQSBJRCBOdW1iZXJcbiAgICogQHBhcmFtICAgICAgICAge3RydWV9IGNhbkJlRW1wdHlcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5pc1NBSUROdW1iZXIodHJ1ZT8pXG4gICAqL1xuICBzdGF0aWMgaXNTQUlETnVtYmVyKGNhbkJlRW1wdHk/OiB0cnVlKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdGVEYXRlID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdzdHJpbmcnIHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoIDwgNikgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBtb250aCA9IGNvbnRyb2wudmFsdWUuc2xpY2UoMiwgNCk7XG4gICAgICAgIGNvbnN0IGRheSA9IGNvbnRyb2wudmFsdWUuc2xpY2UoNCwgNik7XG4gICAgICAgIGlmICgrbW9udGggPCAwICYmICttb250aCA+IDEzKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICgrZGF5IDwgMCAmJiArZGF5ID4gMzEpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKCFkYXlqcyhjb250cm9sLnZhbHVlLnNsaWNlKDAsIDYpLCAnWVlNTUREJywgdHJ1ZSkuaXNWYWxpZCgpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgY2hlY2tzdW0gPSAoKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgY29udHJvbC52YWx1ZSAhPT0gJ3N0cmluZycgfHwgY29udHJvbC52YWx1ZS5sZW5ndGggIT09IDEzKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCBuU3VtID0gMDsgLy8tLS0gVG90YWwgc3VtIG9mIGFsbCB0aGUgdmFsdWVzXG4gICAgICAgIGxldCBpc1NlY29uZCA9IGZhbHNlOyAvLy0tLSBUbyBkb3VibGUgZXZlcnkgb3RoZXIgdmFsdWVcbiAgICAgICAgLy8tLS0gU3RhcnQgZnJvbSB0aGUgZW5kXG4gICAgICAgIGZvciAobGV0IGkgPSBjb250cm9sLnZhbHVlLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgY29uc3QgdmFsOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBjb250cm9sLnZhbHVlW2ldO1xuICAgICAgICAgIGlmICghdmFsKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgLy8tLS0gR2V0IG51bWVyaWNhbCB2YWx1ZSBmcm9tIGFzY2lpIHN0cmluZ1xuICAgICAgICAgIGxldCBkOiBudW1iZXIgPSB2YWwuY2hhckNvZGVBdCgwKSAtICcwJy5jaGFyQ29kZUF0KDApO1xuICAgICAgICAgIC8vLS0tIERvdWJsZSBldmVyeSBvdGhlciB2YWx1ZVxuICAgICAgICAgIGlmIChpc1NlY29uZCA9PSB0cnVlKSBkID0gZCAqIDI7XG4gICAgICAgICAgLy8tLS0gU3VtIHRoZSB0b3RhbCBvZiB0aGUgZG91YmxlZCB2YWx1ZXMgaWYgYXZhaWxhYmxlXG4gICAgICAgICAgblN1bSArPSBNYXRoLmZsb29yKGQgLyAxMCk7XG4gICAgICAgICAgblN1bSArPSBkICUgMTA7XG4gICAgICAgICAgLy8tLS0gSW52ZXJzZSBzZWNvbmQgdG8gZGV0ZXJtaW5lIGV2ZXJ5IG90aGVyIGluZGV4IHZhbHVlXG4gICAgICAgICAgaXNTZWNvbmQgPSAhaXNTZWNvbmQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8tLS0gUmV0dXJuIHRoZSBtb2R1bHVzIDEwIG9mIHRoZSBzdW1tYXRpb25cbiAgICAgICAgcmV0dXJuIG5TdW0gJSAxMCA9PSAwO1xuICAgICAgfTtcblxuICAgICAgbGV0IGVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAgIGlmIChjYW5CZUVtcHR5ICYmICghY29udHJvbC52YWx1ZSB8fCBjb250cm9sLnZhbHVlPy5sZW5ndGggPT09IDApKSByZXR1cm4gbnVsbDtcbiAgICAgIC8vLS0tIHN0cmluZ1xuICAgICAgZWxzZSBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdzdHJpbmcnKSBlcnJvciA9ICdJbnZhbGlkIFJTQSBJRCBOdW1iZXInO1xuICAgICAgLy8tLS0gTGVuZ3RoID0gMTNcbiAgICAgIGVsc2UgaWYgKGNvbnRyb2wudmFsdWUubGVuZ3RoICE9PSAxMykgZXJyb3IgPSBgTGVuZ3RoIHJlcXVpcmVkOiAkezEzIC0gY29udHJvbC52YWx1ZS5sZW5ndGh9YDtcbiAgICAgIC8vLS0tIFZhbGlkYXRlIGRhdGVcbiAgICAgIGVsc2UgaWYgKCF2YWxpZGF0ZURhdGUoKSkgZXJyb3IgPSBgSW52YWxpZCBkYXRlIG9mIGJpcnRoYDtcbiAgICAgIC8vLS0tIENpdGl6ZW5zaGlwXG4gICAgICBlbHNlIGlmICghWycwJywgJzEnXS5pbmNsdWRlcyhjb250cm9sLnZhbHVlLnNsaWNlKDEwLCAxMSkpKSBlcnJvciA9IGBJbnZhbGlkIGNpdGl6ZW5zaGlwIHZhbHVlYDtcbiAgICAgIC8vLS0tIENoZWNrc3VtXG4gICAgICBlbHNlIGlmICghY2hlY2tzdW0oKSkgZXJyb3IgPSBgSW52YWxpZCBSU0EgSUQgbnVtYmVyIGNoZWNrc3VtYDtcblxuICAgICAgcmV0dXJuIGVycm9yID8geyBlcnJvck1lc3NhZ2U6IGVycm9yIH0gOiBudWxsO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==