@softpak/components 0.3.5 → 0.3.6

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 (185) hide show
  1. package/esm2022/placeholder.mjs +2 -0
  2. package/esm2022/public_api.mjs +2 -0
  3. package/esm2022/softpak-components.mjs +5 -0
  4. package/esm2022/spx-alert/public-api.mjs +3 -0
  5. package/esm2022/spx-alert/softpak-components-spx-alert.mjs +5 -0
  6. package/esm2022/spx-alert/spx-alert.component.mjs +193 -0
  7. package/esm2022/spx-alert/spx-alert.interface.mjs +3 -0
  8. package/esm2022/spx-app-configuration/public-api.mjs +8 -0
  9. package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +5 -0
  10. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +2 -0
  11. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +2 -0
  12. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +8 -0
  13. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +2 -0
  14. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +2 -0
  15. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +8 -0
  16. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +6 -0
  17. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +2 -0
  18. package/esm2022/spx-app-expiry/public-api.mjs +6 -0
  19. package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +5 -0
  20. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +90 -0
  21. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +2 -0
  22. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +5 -0
  23. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +5 -0
  24. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +5 -0
  25. package/esm2022/spx-app-update/public-api.mjs +2 -0
  26. package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +5 -0
  27. package/esm2022/spx-app-update/spx-app-update.component.mjs +314 -0
  28. package/esm2022/spx-button/public-api.mjs +2 -0
  29. package/esm2022/spx-button/softpak-components-spx-button.mjs +5 -0
  30. package/esm2022/spx-button/spx-button.component.mjs +142 -0
  31. package/esm2022/spx-capitalize/public-api.mjs +2 -0
  32. package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +5 -0
  33. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +20 -0
  34. package/esm2022/spx-card/public-api.mjs +5 -0
  35. package/esm2022/spx-card/softpak-components-spx-card.mjs +5 -0
  36. package/esm2022/spx-card/spx-card-grid.component.mjs +46 -0
  37. package/esm2022/spx-card/spx-card-item.component.mjs +111 -0
  38. package/esm2022/spx-card/spx-card-line.component.mjs +101 -0
  39. package/esm2022/spx-card/spx-card.component.mjs +93 -0
  40. package/esm2022/spx-change-details/public-api.mjs +2 -0
  41. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
  42. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
  43. package/esm2022/spx-change-details/spx-change-details.component.mjs +199 -0
  44. package/esm2022/spx-channel-selection/public-api.mjs +3 -0
  45. package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +5 -0
  46. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +45 -0
  47. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +135 -0
  48. package/esm2022/spx-check-digit/public-api.mjs +2 -0
  49. package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +5 -0
  50. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +94 -0
  51. package/esm2022/spx-form-section/public-api.mjs +2 -0
  52. package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +5 -0
  53. package/esm2022/spx-form-section/spx-form-section.component.mjs +37 -0
  54. package/esm2022/spx-form-view/public-api.mjs +7 -0
  55. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +5 -0
  56. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +119 -0
  57. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +6 -0
  58. package/esm2022/spx-form-view/spx-form-button.interface.mjs +2 -0
  59. package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
  60. package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
  61. package/esm2022/spx-form-view/spx-form-view.component.mjs +289 -0
  62. package/esm2022/spx-form-view/spx-form.interface.mjs +2 -0
  63. package/esm2022/spx-helpers/calc-check-digit.function.mjs +21 -0
  64. package/esm2022/spx-helpers/public-api.mjs +4 -0
  65. package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +5 -0
  66. package/esm2022/spx-helpers/spx-severity.enum.mjs +9 -0
  67. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +7 -0
  68. package/esm2022/spx-inputs/public-api.mjs +6 -0
  69. package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +5 -0
  70. package/esm2022/spx-inputs/spx-dropdown.component.mjs +94 -0
  71. package/esm2022/spx-inputs/spx-input-box.component.mjs +255 -0
  72. package/esm2022/spx-inputs/spx-input-date.component.mjs +294 -0
  73. package/esm2022/spx-inputs/spx-input-float.component.mjs +159 -0
  74. package/esm2022/spx-inputs/spx-input-number.component.mjs +87 -0
  75. package/esm2022/spx-inputs/spx-input-radio.component.mjs +129 -0
  76. package/esm2022/spx-inputs/spx-input-text.component.mjs +156 -0
  77. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +116 -0
  78. package/esm2022/spx-inputs/spx-input-time.component.mjs +166 -0
  79. package/esm2022/spx-inputs/spx-input-type.enum.mjs +17 -0
  80. package/esm2022/spx-inputs/spx-input.component.mjs +449 -0
  81. package/esm2022/spx-inputs/spx-value-interface.mjs +2 -0
  82. package/esm2022/spx-navigation/public-api.mjs +5 -0
  83. package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +5 -0
  84. package/esm2022/spx-navigation/spx-home-tile.component.mjs +68 -0
  85. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +24 -0
  86. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +2 -0
  87. package/esm2022/spx-navigation/spx-navigation.component.mjs +51 -0
  88. package/esm2022/spx-number-check/public-api.mjs +2 -0
  89. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +5 -0
  90. package/esm2022/spx-number-check/spx-number-check.component.mjs +259 -0
  91. package/esm2022/spx-pagination/public-api.mjs +2 -0
  92. package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +5 -0
  93. package/esm2022/spx-pagination/spx-pagination.component.mjs +44 -0
  94. package/esm2022/spx-patch/patch-check.function.mjs +9 -0
  95. package/esm2022/spx-patch/public-api.mjs +4 -0
  96. package/esm2022/spx-patch/release-check.function.mjs +14 -0
  97. package/esm2022/spx-patch/softpak-components-spx-patch.mjs +5 -0
  98. package/esm2022/spx-patch/spx-patch.component.mjs +48 -0
  99. package/esm2022/spx-progress-bar/public-api.mjs +2 -0
  100. package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +5 -0
  101. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +29 -0
  102. package/esm2022/spx-spinner/public-api.mjs +2 -0
  103. package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +5 -0
  104. package/esm2022/spx-spinner/spx-spinner.component.mjs +159 -0
  105. package/esm2022/spx-stock-info/public-api.mjs +3 -0
  106. package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +5 -0
  107. package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +2 -0
  108. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +327 -0
  109. package/esm2022/spx-storage/public-api.mjs +3 -0
  110. package/esm2022/spx-storage/softpak-components-spx-storage.mjs +5 -0
  111. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +13 -0
  112. package/esm2022/spx-storage/src/spx-storage.class.mjs +45 -0
  113. package/esm2022/spx-suggestion/public-api.mjs +2 -0
  114. package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +5 -0
  115. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +69 -0
  116. package/esm2022/spx-toaster/public-api.mjs +4 -0
  117. package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +5 -0
  118. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +23 -0
  119. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +3 -0
  120. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +173 -0
  121. package/esm2022/spx-update/public-api.mjs +3 -0
  122. package/esm2022/spx-update/softpak-components-spx-update.mjs +5 -0
  123. package/esm2022/spx-update/src/spx-update-info.component.mjs +88 -0
  124. package/esm2022/spx-update/src/spx-update-progress.component.mjs +46 -0
  125. package/esm2022/spx-validation/max.validator.mjs +17 -0
  126. package/esm2022/spx-validation/maxlength.validator.mjs +20 -0
  127. package/esm2022/spx-validation/min.validator.mjs +17 -0
  128. package/esm2022/spx-validation/minlength.validator.mjs +20 -0
  129. package/esm2022/spx-validation/pattern.validator.mjs +12 -0
  130. package/esm2022/spx-validation/public-api.mjs +9 -0
  131. package/esm2022/spx-validation/required.validator.mjs +12 -0
  132. package/esm2022/spx-validation/softpak-components-spx-validation.mjs +5 -0
  133. package/esm2022/spx-validation/spx-validate-control.component.mjs +68 -0
  134. package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
  135. package/fesm2022/softpak-components-spx-alert.mjs +3 -3
  136. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  137. package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
  138. package/fesm2022/softpak-components-spx-app-expiry.mjs +3 -3
  139. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  140. package/fesm2022/softpak-components-spx-app-update.mjs +3 -3
  141. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  142. package/fesm2022/softpak-components-spx-button.mjs +3 -3
  143. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  144. package/fesm2022/softpak-components-spx-capitalize.mjs +3 -3
  145. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
  146. package/fesm2022/softpak-components-spx-card.mjs +16 -16
  147. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  148. package/fesm2022/softpak-components-spx-change-details.mjs +3 -3
  149. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  150. package/fesm2022/softpak-components-spx-channel-selection.mjs +6 -6
  151. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  152. package/fesm2022/softpak-components-spx-check-digit.mjs +3 -3
  153. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  154. package/fesm2022/softpak-components-spx-form-section.mjs +3 -3
  155. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  156. package/fesm2022/softpak-components-spx-form-view.mjs +6 -6
  157. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  158. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  159. package/fesm2022/softpak-components-spx-inputs.mjs +30 -30
  160. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  161. package/fesm2022/softpak-components-spx-navigation.mjs +9 -9
  162. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  163. package/fesm2022/softpak-components-spx-number-check.mjs +3 -3
  164. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  165. package/fesm2022/softpak-components-spx-pagination.mjs +3 -3
  166. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  167. package/fesm2022/softpak-components-spx-patch.mjs +3 -3
  168. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  169. package/fesm2022/softpak-components-spx-progress-bar.mjs +3 -3
  170. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  171. package/fesm2022/softpak-components-spx-spinner.mjs +3 -3
  172. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  173. package/fesm2022/softpak-components-spx-stock-info.mjs +3 -3
  174. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  175. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
  176. package/fesm2022/softpak-components-spx-suggestion.mjs +3 -3
  177. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  178. package/fesm2022/softpak-components-spx-toaster.mjs +4 -4
  179. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  180. package/fesm2022/softpak-components-spx-update.mjs +6 -6
  181. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  182. package/fesm2022/softpak-components-spx-validation.mjs +3 -3
  183. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  184. package/package.json +75 -21
  185. package/tailwind.css +1 -1
@@ -0,0 +1,3 @@
1
+ export class SpxToasterMessageI {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXRvYXN0ZXItbWVzc2FnZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXRvYXN0ZXIvc3JjL3NweC10b2FzdGVyLW1lc3NhZ2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxrQkFBa0I7Q0FROUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcHhTZXZlcml0eUVudW0gfSBmcm9tIFwiQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVyc1wiO1xuXG5leHBvcnQgY2xhc3MgU3B4VG9hc3Rlck1lc3NhZ2VJIHtcbiAgICBhdXRvQ2xvc2U/OiBhbnk7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgY2xvc2VhYmxlPzogYm9vbGVhbjtcbiAgICBpZCE6IG51bWJlcjtcbiAgICBtZXNzYWdlITogc3RyaW5nO1xuICAgIHNldmVyaXR5ITogU3B4U2V2ZXJpdHlFbnVtO1xuICAgIHVuaXF1ZUlkZW50aWZpZXI/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,173 @@
1
+ import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
+ import { SpxAlertComponent } from '@softpak/components/spx-alert';
3
+ import { NgFor, NgIf } from '@angular/common';
4
+ import { SpxToasterAutoCloseSpeedEnum } from './spx-toaster-autoclose-speed';
5
+ import * as i0 from "@angular/core";
6
+ export class SpxToasterComponent {
7
+ constructor(renderer, el) {
8
+ this.renderer = renderer;
9
+ this.el = el;
10
+ this.hostClass = true;
11
+ this.spxClose = new EventEmitter();
12
+ this.count = 0;
13
+ }
14
+ ngOnChanges() {
15
+ this.messages = this.messages.map(m => ({ ...m, autoClose: this.calcToasterAutocloseSpeed(m.autoClose, m.message) }));
16
+ if (this.messages.length > 0) {
17
+ setTimeout(() => {
18
+ this.messages = this.messages.map(message => {
19
+ if (message.autoClose) {
20
+ // console.log(message.autoClose);
21
+ // this.showProgressBar(message.autoClose, message.id)
22
+ // this.showProgressBar(600000, message.id)
23
+ setTimeout(() => {
24
+ this.handleClose(message.id);
25
+ }, message.autoClose);
26
+ }
27
+ return message;
28
+ });
29
+ }, 0);
30
+ }
31
+ }
32
+ showProgressBar(autoclose, id) {
33
+ const alertElement = this.el.nativeElement.querySelector(`spx-alert[id="${id}"]`);
34
+ console.log(alertElement);
35
+ if (alertElement) {
36
+ }
37
+ else {
38
+ console.error(`spx-alert element with ID ${id} not found.`);
39
+ }
40
+ }
41
+ handleClose(id) {
42
+ this.spxClose.emit(id);
43
+ }
44
+ calcToasterAutocloseSpeed(autoCloseSpeed, messageText) {
45
+ switch (autoCloseSpeed) {
46
+ case SpxToasterAutoCloseSpeedEnum.DEFAULT:
47
+ return Math.min(Math.max(messageText.length * 50, 2000), 7000);
48
+ case SpxToasterAutoCloseSpeedEnum.SLOW:
49
+ return Math.min(Math.max(messageText.length * 60, 3000), 10000);
50
+ default:
51
+ return autoCloseSpeed;
52
+ }
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxToasterComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxToasterComponent, isStandalone: true, selector: "spx-toaster", inputs: { messages: "messages", spxAutoclose: "spxAutoclose" }, outputs: { spxClose: "spxClose" }, host: { properties: { "class.spx-toasts-displayer": "this.hostClass" } }, usesOnChanges: true, ngImport: i0, template: `
56
+ <div
57
+ *ngIf="messages && messages.length > 0"
58
+ class="flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50">
59
+ <style>
60
+ .progress-bar-container {
61
+ width: 100%;
62
+ height: 5px;
63
+ background-color: #ccc;
64
+ margin-top: 8px;
65
+ border-radius: 2px;
66
+ overflow: hidden;
67
+ }
68
+
69
+ .progress-bar {
70
+ height: 100%;
71
+ background-color: #76c7c0;
72
+ animation-name: progress;
73
+ animation-timing-function: ease-in-out;
74
+ animation-fill-mode: forwards;
75
+ animation-duration: 5000;
76
+ }
77
+
78
+ @keyframes progress {
79
+ from {
80
+ width: 0%;
81
+ }
82
+ to {
83
+ width: 100%;
84
+ }
85
+ }
86
+ </style>
87
+ <spx-alert
88
+ *ngFor="let message of messages"
89
+ [spxAutoclose]="message.autoClose"
90
+ [spxCloseable]="message.closeable"
91
+ [spxSeverity]="message.severity"
92
+ [spxTitle]="message.title"
93
+ (spxClose)="handleClose(message.id)"
94
+ (click)="handleClose(message.id)"
95
+ [id]="message.id"
96
+ >{{message.message}}
97
+ <!-- <div *ngIf="message.autoClose" class="progress-bar-container">
98
+ <div class="progress-bar"></div>
99
+ </div> -->
100
+ </spx-alert>
101
+
102
+ </div>`, isInline: true, styles: ["\n .progress-bar-container {\n width: 100%;\n height: 5px;\n background-color: #ccc;\n margin-top: 8px;\n border-radius: 2px;\n overflow: hidden;\n }\n\n .progress-bar {\n height: 100%;\n background-color: #76c7c0;\n animation-name: progress;\n animation-timing-function: ease-in-out;\n animation-fill-mode: forwards;\n animation-duration: 5000;\n }\n\n @keyframes progress {\n from {\n width: 0%;\n }\n to {\n width: 100%;\n }\n }\n "], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SpxAlertComponent, selector: "spx-alert", inputs: ["spxAutoclose", "spxCloseable", "spxHideTitle", "spxTitle", "spxMarginTop", "spxSeverity", "tick"], outputs: ["spxClose"] }] }); }
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxToasterComponent, decorators: [{
105
+ type: Component,
106
+ args: [{
107
+ selector: 'spx-toaster',
108
+ template: `
109
+ <div
110
+ *ngIf="messages && messages.length > 0"
111
+ class="flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50">
112
+ <style>
113
+ .progress-bar-container {
114
+ width: 100%;
115
+ height: 5px;
116
+ background-color: #ccc;
117
+ margin-top: 8px;
118
+ border-radius: 2px;
119
+ overflow: hidden;
120
+ }
121
+
122
+ .progress-bar {
123
+ height: 100%;
124
+ background-color: #76c7c0;
125
+ animation-name: progress;
126
+ animation-timing-function: ease-in-out;
127
+ animation-fill-mode: forwards;
128
+ animation-duration: 5000;
129
+ }
130
+
131
+ @keyframes progress {
132
+ from {
133
+ width: 0%;
134
+ }
135
+ to {
136
+ width: 100%;
137
+ }
138
+ }
139
+ </style>
140
+ <spx-alert
141
+ *ngFor="let message of messages"
142
+ [spxAutoclose]="message.autoClose"
143
+ [spxCloseable]="message.closeable"
144
+ [spxSeverity]="message.severity"
145
+ [spxTitle]="message.title"
146
+ (spxClose)="handleClose(message.id)"
147
+ (click)="handleClose(message.id)"
148
+ [id]="message.id"
149
+ >{{message.message}}
150
+ <!-- <div *ngIf="message.autoClose" class="progress-bar-container">
151
+ <div class="progress-bar"></div>
152
+ </div> -->
153
+ </spx-alert>
154
+
155
+ </div>`,
156
+ standalone: true,
157
+ imports: [
158
+ NgIf,
159
+ NgFor,
160
+ SpxAlertComponent,
161
+ ],
162
+ }]
163
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { hostClass: [{
164
+ type: HostBinding,
165
+ args: ['class.spx-toasts-displayer']
166
+ }], messages: [{
167
+ type: Input
168
+ }], spxClose: [{
169
+ type: Output
170
+ }], spxAutoclose: [{
171
+ type: Input
172
+ }] } });
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXRvYXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC10b2FzdGVyL3NyYy9zcHgtdG9hc3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUE0RDdFLE1BQU0sT0FBTyxtQkFBbUI7SUFNNUIsWUFBb0IsUUFBbUIsRUFBVSxFQUFjO1FBQTNDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBTHBCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFbEQsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXRFLFVBQUssR0FBVyxDQUFDLENBQUM7SUFHbEIsQ0FBQztJQUdELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEgsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3hDLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO3dCQUNwQixrQ0FBa0M7d0JBQ2xDLHNEQUFzRDt3QkFDdEQsMkNBQTJDO3dCQUMzQyxVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO3dCQUNoQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMxQixDQUFDO29CQUNELE9BQU8sT0FBTyxDQUFDO2dCQUNuQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDTCxDQUFDO0lBR0QsZUFBZSxDQUFDLFNBQWlCLEVBQUUsRUFBVTtRQUN6QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5CLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUdJLFdBQVcsQ0FBQyxFQUFVO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxjQUE0QyxFQUFFLFdBQW1CO1FBQy9GLFFBQVEsY0FBYyxFQUFFLENBQUM7WUFDckIsS0FBSyw0QkFBNEIsQ0FBQyxPQUFPO2dCQUNyQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuRSxLQUFLLDRCQUE0QixDQUFDLElBQUk7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BFO2dCQUNJLE9BQU8sY0FBYyxDQUFDO1FBQzlCLENBQUM7SUFDTCxDQUFDOytHQXZEUSxtQkFBbUI7bUdBQW5CLG1CQUFtQix5UUF4RGxCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQStDSCwyMUJBR0gsSUFBSSw2RkFDSixLQUFLLG1IQUNMLGlCQUFpQjs7NEZBSVosbUJBQW1CO2tCQTFEL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQStDSDtvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxpQkFBaUI7cUJBRXBCO2lCQUNKO3VHQUU4QyxTQUFTO3NCQUFuRCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFDaEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweFRvYXN0ZXJNZXNzYWdlSSB9IGZyb20gJy4vc3B4LXRvYXN0ZXItbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3B4QWxlcnRDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1hbGVydCc7XG5pbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTcHhUb2FzdGVyQXV0b0Nsb3NlU3BlZWRFbnVtIH0gZnJvbSAnLi9zcHgtdG9hc3Rlci1hdXRvY2xvc2Utc3BlZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NweC10b2FzdGVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgXG4gICAgICAgICpuZ0lmPVwibWVzc2FnZXMgJiYgbWVzc2FnZXMubGVuZ3RoID4gMFwiXG4gICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiBmaXhlZCBib3R0b20tMTYgbGVmdC0wIHJpZ2h0LTAgbXgtYXV0byBweC0zIHotNTBcIj5cbiAgICAgICAgPHN0eWxlPlxuICAgICAgICAgICAgLnByb2dyZXNzLWJhci1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc2YzdjMDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tbmFtZTogcHJvZ3Jlc3M7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAa2V5ZnJhbWVzIHByb2dyZXNzIHtcbiAgICAgICAgICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0byB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9zdHlsZT5cbiAgICAgICAgPHNweC1hbGVydFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgbWVzc2FnZXNcIlxuICAgICAgICAgICAgW3NweEF1dG9jbG9zZV09XCJtZXNzYWdlLmF1dG9DbG9zZVwiXG4gICAgICAgICAgICBbc3B4Q2xvc2VhYmxlXT1cIm1lc3NhZ2UuY2xvc2VhYmxlXCJcbiAgICAgICAgICAgIFtzcHhTZXZlcml0eV09XCJtZXNzYWdlLnNldmVyaXR5XCJcbiAgICAgICAgICAgIFtzcHhUaXRsZV09XCJtZXNzYWdlLnRpdGxlXCJcbiAgICAgICAgICAgIChzcHhDbG9zZSk9XCJoYW5kbGVDbG9zZShtZXNzYWdlLmlkKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xvc2UobWVzc2FnZS5pZClcIlxuICAgICAgICAgICAgW2lkXT1cIm1lc3NhZ2UuaWRcIlxuICAgICAgICAgICAgPnt7bWVzc2FnZS5tZXNzYWdlfX1cbiAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cIm1lc3NhZ2UuYXV0b0Nsb3NlXCIgY2xhc3M9XCJwcm9ncmVzcy1iYXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8L3NweC1hbGVydD5cbiAgICAgICAgXG4gICAgPC9kaXY+YCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIFNweEFsZXJ0Q29tcG9uZW50LFxuXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3B4VG9hc3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zcHgtdG9hc3RzLWRpc3BsYXllcicpIGhvc3RDbGFzcyA9IHRydWU7XG4gICAgQElucHV0KCkgbWVzc2FnZXMhOiBTcHhUb2FzdGVyTWVzc2FnZUlbXTtcbiAgICBAT3V0cHV0KCkgc3B4Q2xvc2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQElucHV0KCkgc3B4QXV0b2Nsb3NlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgY291bnQ6IG51bWJlciA9IDA7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7IFxuXG4gICAgfVxuXG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlcyA9IHRoaXMubWVzc2FnZXMubWFwKG0gPT4gKHsgLi4ubSwgYXV0b0Nsb3NlOiB0aGlzLmNhbGNUb2FzdGVyQXV0b2Nsb3NlU3BlZWQobS5hdXRvQ2xvc2UsIG0ubWVzc2FnZSkgfSkpO1xuICAgICAgICBpZiAodGhpcy5tZXNzYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5tZXNzYWdlcy5tYXAobWVzc2FnZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmF1dG9DbG9zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2cobWVzc2FnZS5hdXRvQ2xvc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5zaG93UHJvZ3Jlc3NCYXIobWVzc2FnZS5hdXRvQ2xvc2UsIG1lc3NhZ2UuaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnNob3dQcm9ncmVzc0Jhcig2MDAwMDAsIG1lc3NhZ2UuaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNsb3NlKG1lc3NhZ2UuaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBtZXNzYWdlLmF1dG9DbG9zZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAgIFxuXG4gICAgc2hvd1Byb2dyZXNzQmFyKGF1dG9jbG9zZTogbnVtYmVyLCBpZDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGFsZXJ0RWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGBzcHgtYWxlcnRbaWQ9XCIke2lkfVwiXWApO1xuICAgICAgICBjb25zb2xlLmxvZyhhbGVydEVsZW1lbnQpO1xuICAgICAgICBpZiAoYWxlcnRFbGVtZW50KSB7XG4gICAgICAgICAgXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgc3B4LWFsZXJ0IGVsZW1lbnQgd2l0aCBJRCAke2lkfSBub3QgZm91bmQuYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuXG4gICAgcHVibGljIGhhbmRsZUNsb3NlKGlkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zcHhDbG9zZS5lbWl0KGlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGNUb2FzdGVyQXV0b2Nsb3NlU3BlZWQoYXV0b0Nsb3NlU3BlZWQ6IFNweFRvYXN0ZXJBdXRvQ2xvc2VTcGVlZEVudW0sIG1lc3NhZ2VUZXh0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBzd2l0Y2ggKGF1dG9DbG9zZVNwZWVkKSB7XG4gICAgICAgICAgICBjYXNlIFNweFRvYXN0ZXJBdXRvQ2xvc2VTcGVlZEVudW0uREVGQVVMVDpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgobWVzc2FnZVRleHQubGVuZ3RoICogNTAsIDIwMDApLCA3MDAwKTtcbiAgICAgICAgICAgIGNhc2UgU3B4VG9hc3RlckF1dG9DbG9zZVNwZWVkRW51bS5TTE9XOlxuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChtZXNzYWdlVGV4dC5sZW5ndGggKiA2MCwgMzAwMCksIDEwMDAwKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF1dG9DbG9zZVNwZWVkO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './src/spx-update-info.component';
2
+ export * from './src/spx-update-progress.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdXBkYXRlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvc3B4LXVwZGF0ZS1pbmZvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zcHgtdXBkYXRlLXByb2dyZXNzLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHBhay1jb21wb25lbnRzLXNweC11cGRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXVwZGF0ZS9zb2Z0cGFrLWNvbXBvbmVudHMtc3B4LXVwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,88 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';
5
+ import { SpxInputComponent } from '@softpak/components/spx-inputs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ const ctrlAppStoreVersion = 'appStoreVersion';
9
+ const ctrlChannel = 'channel';
10
+ const ctrlNextVersionNumber = 'nextVersionNumber';
11
+ const ctrlVersionNumber = 'versionNumber';
12
+ export class SpxUpdateInfoComponent {
13
+ get ctrlVersionNumber() { return this.form.get(ctrlVersionNumber); }
14
+ get ctrlNextVersionNumber() { return this.form.get(ctrlNextVersionNumber); }
15
+ get ctrlConfiguredChannel() { return this.form.get(ctrlChannel); }
16
+ get ctrlAppStoreVersion() { return this.form.get(ctrlAppStoreVersion); }
17
+ constructor(formBuilder) {
18
+ this.formBuilder = formBuilder;
19
+ this.form = this.formBuilder.group({
20
+ [ctrlAppStoreVersion]: [null, []],
21
+ [ctrlChannel]: [null, []],
22
+ [ctrlNextVersionNumber]: [null, []],
23
+ [ctrlVersionNumber]: [null, []],
24
+ });
25
+ }
26
+ update(appStoreVersion, channel, nextVersion, version) {
27
+ this.ctrlVersionNumber.setValue({
28
+ value: version,
29
+ });
30
+ this.ctrlNextVersionNumber.setValue({
31
+ value: nextVersion,
32
+ });
33
+ this.ctrlConfiguredChannel.setValue({
34
+ value: channel,
35
+ });
36
+ this.ctrlAppStoreVersion.setValue({
37
+ value: appStoreVersion,
38
+ });
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxUpdateInfoComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxUpdateInfoComponent, isStandalone: true, selector: "spx-update-info", inputs: { txtAppStoreVersion: "txtAppStoreVersion", txtChannel: "txtChannel", txtNextVersion: "txtNextVersion", txtVersion: "txtVersion" }, ngImport: i0, template: `<form [formGroup]="form" class="mt-3">
42
+ <div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3">
43
+ <spx-input [formControl]="ctrlVersionNumber" [spxLabel]="txtVersion | capitalize"
44
+ [spxReadonly]="true"></spx-input>
45
+ <spx-input [formControl]="ctrlNextVersionNumber" [spxLabel]="txtNextVersion | capitalize"
46
+ [spxReadonly]="true"></spx-input>
47
+ <spx-input [formControl]="ctrlConfiguredChannel" [spxLabel]="txtChannel | capitalize"
48
+ [spxReadonly]="true"></spx-input>
49
+ <spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | capitalize"
50
+ [spxReadonly]="true"></spx-input>
51
+ </div>
52
+ </form>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutocomplete", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }] }); }
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxUpdateInfoComponent, decorators: [{
55
+ type: Component,
56
+ args: [{
57
+ selector: 'spx-update-info',
58
+ template: `<form [formGroup]="form" class="mt-3">
59
+ <div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3">
60
+ <spx-input [formControl]="ctrlVersionNumber" [spxLabel]="txtVersion | capitalize"
61
+ [spxReadonly]="true"></spx-input>
62
+ <spx-input [formControl]="ctrlNextVersionNumber" [spxLabel]="txtNextVersion | capitalize"
63
+ [spxReadonly]="true"></spx-input>
64
+ <spx-input [formControl]="ctrlConfiguredChannel" [spxLabel]="txtChannel | capitalize"
65
+ [spxReadonly]="true"></spx-input>
66
+ <spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | capitalize"
67
+ [spxReadonly]="true"></spx-input>
68
+ </div>
69
+ </form>`,
70
+ standalone: true,
71
+ imports: [
72
+ CommonModule,
73
+ FormsModule,
74
+ ReactiveFormsModule,
75
+ SpxCapitalizePipe,
76
+ SpxInputComponent,
77
+ ]
78
+ }]
79
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { txtAppStoreVersion: [{
80
+ type: Input
81
+ }], txtChannel: [{
82
+ type: Input
83
+ }], txtNextVersion: [{
84
+ type: Input
85
+ }], txtVersion: [{
86
+ type: Input
87
+ }] } });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXVwZGF0ZS1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdXBkYXRlL3NyYy9zcHgtdXBkYXRlLWluZm8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQXVDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFFbkUsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQztBQUM5QyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUM7QUFDOUIsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FBQztBQUNsRCxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQztBQXlCMUMsTUFBTSxPQUFPLHNCQUFzQjtJQU9qQyxJQUFJLGlCQUFpQixLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFnQixDQUFDLENBQUMsQ0FBQztJQUNoRyxJQUFJLHFCQUFxQixLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFnQixDQUFDLENBQUMsQ0FBQztJQUN4RyxJQUFJLHFCQUFxQixLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDOUYsSUFBSSxtQkFBbUIsS0FBa0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7SUFFcEcsWUFDbUIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNqQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbkMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQXVCLEVBQUUsT0FBZSxFQUFFLFdBQW1CLEVBQUUsT0FBZTtRQUNuRixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1lBQzlCLEtBQUssRUFBRSxPQUFPO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztZQUNsQyxLQUFLLEVBQUUsV0FBVztTQUNuQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDO1lBQ2xDLEtBQUssRUFBRSxPQUFPO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQztZQUNoQyxLQUFLLEVBQUUsZUFBZTtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXBDVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix1TkFyQnZCOzs7Ozs7Ozs7OztVQVdGLDJEQUdOLFlBQVksOEJBQ1osV0FBVywyWUFDWCxtQkFBbUIsOFZBQ25CLGlCQUFpQixtREFDakIsaUJBQWlCOzs0RkFHUixzQkFBc0I7a0JBdkJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7VUFXRjtvQkFDUixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsaUJBQWlCO3FCQUNsQjtpQkFDRjtnRkFHVSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3B4Q2FwaXRhbGl6ZVBpcGUgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1jYXBpdGFsaXplJztcbmltcG9ydCB7IFNweElucHV0Q29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzJztcblxuY29uc3QgY3RybEFwcFN0b3JlVmVyc2lvbiA9ICdhcHBTdG9yZVZlcnNpb24nO1xuY29uc3QgY3RybENoYW5uZWwgPSAnY2hhbm5lbCc7XG5jb25zdCBjdHJsTmV4dFZlcnNpb25OdW1iZXIgPSAnbmV4dFZlcnNpb25OdW1iZXInO1xuY29uc3QgY3RybFZlcnNpb25OdW1iZXIgPSAndmVyc2lvbk51bWJlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC11cGRhdGUtaW5mbycsXG4gIHRlbXBsYXRlOiBgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJtdC0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgeGw6Z3JpZC1jb2xzLTMgZ2FwLTNcIj5cbiAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxWZXJzaW9uTnVtYmVyXCIgW3NweExhYmVsXT1cInR4dFZlcnNpb24gfCBjYXBpdGFsaXplXCJcbiAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxOZXh0VmVyc2lvbk51bWJlclwiIFtzcHhMYWJlbF09XCJ0eHROZXh0VmVyc2lvbiB8IGNhcGl0YWxpemVcIlxuICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybENvbmZpZ3VyZWRDaGFubmVsXCIgW3NweExhYmVsXT1cInR4dENoYW5uZWwgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxBcHBTdG9yZVZlcnNpb25cIiBbc3B4TGFiZWxdPVwidHh0QXBwU3RvcmVWZXJzaW9uIHwgY2FwaXRhbGl6ZVwiXG4gICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5gLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3B4Q2FwaXRhbGl6ZVBpcGUsXG4gICAgU3B4SW5wdXRDb21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU3B4VXBkYXRlSW5mb0NvbXBvbmVudCB7XG4gIGZvcm0hOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHR4dEFwcFN0b3JlVmVyc2lvbiE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0Q2hhbm5lbCE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0TmV4dFZlcnNpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFZlcnNpb24hOiBzdHJpbmc7XG4gIFxuICBnZXQgY3RybFZlcnNpb25OdW1iZXIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsVmVyc2lvbk51bWJlcikgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxOZXh0VmVyc2lvbk51bWJlcigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KGN0cmxOZXh0VmVyc2lvbk51bWJlcikgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDb25maWd1cmVkQ2hhbm5lbCgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KGN0cmxDaGFubmVsKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybEFwcFN0b3JlVmVyc2lvbigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KGN0cmxBcHBTdG9yZVZlcnNpb24pIGFzIEZvcm1Db250cm9sOyB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgW2N0cmxBcHBTdG9yZVZlcnNpb25dOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxDaGFubmVsXTogW251bGwsIFtdXSxcbiAgICAgIFtjdHJsTmV4dFZlcnNpb25OdW1iZXJdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxWZXJzaW9uTnVtYmVyXTogW251bGwsIFtdXSxcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZShhcHBTdG9yZVZlcnNpb246IHN0cmluZywgY2hhbm5lbDogc3RyaW5nLCBuZXh0VmVyc2lvbjogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN0cmxWZXJzaW9uTnVtYmVyLnNldFZhbHVlKHtcbiAgICAgIHZhbHVlOiB2ZXJzaW9uLFxuICAgIH0pO1xuICAgIHRoaXMuY3RybE5leHRWZXJzaW9uTnVtYmVyLnNldFZhbHVlKHtcbiAgICAgIHZhbHVlOiBuZXh0VmVyc2lvbixcbiAgICB9KTtcbiAgICB0aGlzLmN0cmxDb25maWd1cmVkQ2hhbm5lbC5zZXRWYWx1ZSh7XG4gICAgICB2YWx1ZTogY2hhbm5lbCxcbiAgICB9KTtcbiAgICB0aGlzLmN0cmxBcHBTdG9yZVZlcnNpb24uc2V0VmFsdWUoe1xuICAgICAgdmFsdWU6IGFwcFN0b3JlVmVyc2lvbixcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,46 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';
3
+ import { SpxProgressBarComponent } from '@softpak/components/spx-progress-bar';
4
+ import * as i0 from "@angular/core";
5
+ export class SpxUpdateProgressComponent {
6
+ ngOnInit() {
7
+ this.startLoaderSync();
8
+ }
9
+ ngOnDestroy() {
10
+ this.stopLoaderSync();
11
+ }
12
+ startLoaderSync() {
13
+ if (this.syncTruckInterval === null) {
14
+ this.syncTruckInterval = setInterval(() => {
15
+ this.delayedPercentage = this.percentage;
16
+ }, 200);
17
+ }
18
+ }
19
+ stopLoaderSync() {
20
+ if (this.syncTruckInterval !== null) {
21
+ clearInterval(this.syncTruckInterval);
22
+ this.syncTruckInterval = undefined;
23
+ }
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxUpdateProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxUpdateProgressComponent, isStandalone: true, selector: "spx-update-progress", inputs: { title: "title", percentage: "percentage" }, ngImport: i0, template: `<spx-progress-bar [spxPercentage]="delayedPercentage" [spxTitle]="title | capitalize">
27
+ </spx-progress-bar>`, isInline: true, dependencies: [{ kind: "component", type: SpxProgressBarComponent, selector: "spx-progress-bar", inputs: ["spxPercentage", "spxTitle"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxUpdateProgressComponent, decorators: [{
30
+ type: Component,
31
+ args: [{
32
+ selector: 'spx-update-progress',
33
+ template: `<spx-progress-bar [spxPercentage]="delayedPercentage" [spxTitle]="title | capitalize">
34
+ </spx-progress-bar>`,
35
+ standalone: true,
36
+ imports: [
37
+ SpxProgressBarComponent,
38
+ SpxCapitalizePipe,
39
+ ],
40
+ }]
41
+ }], propDecorators: { title: [{
42
+ type: Input
43
+ }], percentage: [{
44
+ type: Input
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXVwZGF0ZS1wcm9ncmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXVwZGF0ZS9zcmMvc3B4LXVwZGF0ZS1wcm9ncmVzcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQVkvRSxNQUFNLE9BQU8sMEJBQTBCO0lBTXJDLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzNDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQzsrR0EzQlUsMEJBQTBCO21HQUExQiwwQkFBMEIscUlBUjNCO3NCQUNVLDREQUdsQix1QkFBdUIsK0ZBQ3ZCLGlCQUFpQjs7NEZBR1IsMEJBQTBCO2tCQVZ0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRTtzQkFDVTtvQkFDcEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLGlCQUFpQjtxQkFDbEI7aUJBQ0Y7OEJBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3B4Q2FwaXRhbGl6ZVBpcGUgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1jYXBpdGFsaXplJztcbmltcG9ydCB7IFNweFByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtcHJvZ3Jlc3MtYmFyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LXVwZGF0ZS1wcm9ncmVzcycsXG4gIHRlbXBsYXRlOiBgPHNweC1wcm9ncmVzcy1iYXIgW3NweFBlcmNlbnRhZ2VdPVwiZGVsYXllZFBlcmNlbnRhZ2VcIiBbc3B4VGl0bGVdPVwidGl0bGUgfCBjYXBpdGFsaXplXCI+XG4gIDwvc3B4LXByb2dyZXNzLWJhcj5gLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU3B4UHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgU3B4Q2FwaXRhbGl6ZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNweFVwZGF0ZVByb2dyZXNzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0aXRsZSE6IHN0cmluZztcbiAgQElucHV0KCkgcGVyY2VudGFnZSE6IG51bWJlcjtcbiAgZGVsYXllZFBlcmNlbnRhZ2UhOiBudW1iZXI7XG4gIHN5bmNUcnVja0ludGVydmFsPzogYW55O1xuICBcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydExvYWRlclN5bmMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcExvYWRlclN5bmMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRMb2FkZXJTeW5jKCkge1xuICAgIGlmICh0aGlzLnN5bmNUcnVja0ludGVydmFsID09PSBudWxsKSB7XG4gICAgICB0aGlzLnN5bmNUcnVja0ludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICB0aGlzLmRlbGF5ZWRQZXJjZW50YWdlID0gdGhpcy5wZXJjZW50YWdlO1xuICAgICAgfSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0b3BMb2FkZXJTeW5jKCkge1xuICAgIGlmICh0aGlzLnN5bmNUcnVja0ludGVydmFsICE9PSBudWxsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuc3luY1RydWNrSW50ZXJ2YWwpO1xuICAgICAgdGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { spxValidatorRequired } from './required.validator';
2
+ import { valuePairToValue } from '@softpak/components/spx-helpers';
3
+ export const spxValidatorMax = (max) => (control) => {
4
+ if (!spxValidatorRequired()(control)) {
5
+ const value = parseInt(valuePairToValue(control.value).toString(), 10);
6
+ if (!isNaN(value) && value > max) {
7
+ return {
8
+ max: {
9
+ max,
10
+ actual: value
11
+ }
12
+ };
13
+ }
14
+ }
15
+ return null;
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9tYXgudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUF3QixFQUFtRCxFQUFFO0lBQzFILElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUMvQixPQUFPO2dCQUNILEdBQUcsRUFBRTtvQkFDRCxHQUFHO29CQUNILE1BQU0sRUFBRSxLQUFLO2lCQUNoQjthQUNKLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHNweFZhbGlkYXRvclJlcXVpcmVkIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuXG5leHBvcnQgY29uc3Qgc3B4VmFsaWRhdG9yTWF4ID0gKG1heDogbnVtYmVyKSA9PiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtYXg6IHsgbWF4OiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgIGlmICghc3B4VmFsaWRhdG9yUmVxdWlyZWQoKShjb250cm9sKSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlUGFpclRvVmFsdWUoY29udHJvbC52YWx1ZSkudG9TdHJpbmcoKSwgMTApO1xuICAgICAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+IG1heCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtYXg6IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LFxuICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbHVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { spxValidatorRequired } from './required.validator';
2
+ import { valuePairToValue } from '@softpak/components/spx-helpers';
3
+ export const spxValidatorMaxLength = (maximumLength, sanitizer) => (control) => {
4
+ if (!spxValidatorRequired()(control)) {
5
+ let value = valuePairToValue(control.value);
6
+ if (sanitizer) {
7
+ value = sanitizer(value.toString());
8
+ }
9
+ if (value.toString().length > maximumLength) {
10
+ return {
11
+ maxlength: {
12
+ requiredLength: maximumLength,
13
+ actualLength: value.toString().length
14
+ }
15
+ };
16
+ }
17
+ }
18
+ return null;
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4bGVuZ3RoLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9tYXhsZW5ndGgudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsYUFBcUIsRUFBRSxTQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQXdCLEVBQTBFLEVBQUU7SUFDeE0sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxJQUFJLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sR0FBRyxhQUFhLEVBQUUsQ0FBQztZQUMxQyxPQUFPO2dCQUNILFNBQVMsRUFBRTtvQkFDUCxjQUFjLEVBQUUsYUFBYTtvQkFDN0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO2lCQUN4QzthQUNKLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHNweFZhbGlkYXRvclJlcXVpcmVkIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuXG5leHBvcnQgY29uc3Qgc3B4VmFsaWRhdG9yTWF4TGVuZ3RoID0gKG1heGltdW1MZW5ndGg6IG51bWJlciwgc2FuaXRpemVyPzogKGlucHV0OiBzdHJpbmcpID0+IHN0cmluZykgPT4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWF4bGVuZ3RoOiB7IHJlcXVpcmVkTGVuZ3RoOiBudW1iZXI7IGFjdHVhbExlbmd0aDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgIGlmICghc3B4VmFsaWRhdG9yUmVxdWlyZWQoKShjb250cm9sKSkge1xuICAgICAgICBsZXQgdmFsdWUgPSB2YWx1ZVBhaXJUb1ZhbHVlKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICBpZiAoc2FuaXRpemVyKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHNhbml0aXplcih2YWx1ZS50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUudG9TdHJpbmcoKS5sZW5ndGggPiBtYXhpbXVtTGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1heGxlbmd0aDoge1xuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZExlbmd0aDogbWF4aW11bUxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgYWN0dWFsTGVuZ3RoOiB2YWx1ZS50b1N0cmluZygpLmxlbmd0aFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuIl19
@@ -0,0 +1,17 @@
1
+ import { spxValidatorRequired } from './required.validator';
2
+ import { valuePairToValue } from '@softpak/components/spx-helpers';
3
+ export const spxValidatorMin = (min) => (control) => {
4
+ if (!spxValidatorRequired()(control)) {
5
+ const value = parseInt(valuePairToValue(control.value).toString(), 10);
6
+ if (!isNaN(value) && value < min) {
7
+ return {
8
+ min: {
9
+ min,
10
+ actual: value
11
+ }
12
+ };
13
+ }
14
+ }
15
+ return null;
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9taW4udmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUF3QixFQUFtRCxFQUFFO0lBQzFILElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV2RSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUMvQixPQUFPO2dCQUNILEdBQUcsRUFBRTtvQkFDRCxHQUFHO29CQUNILE1BQU0sRUFBRSxLQUFLO2lCQUNoQjthQUNKLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHNweFZhbGlkYXRvclJlcXVpcmVkIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuXG5leHBvcnQgY29uc3Qgc3B4VmFsaWRhdG9yTWluID0gKG1pbjogbnVtYmVyKSA9PiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtaW46IHsgbWluOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgIGlmICghc3B4VmFsaWRhdG9yUmVxdWlyZWQoKShjb250cm9sKSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlUGFpclRvVmFsdWUoY29udHJvbC52YWx1ZSkudG9TdHJpbmcoKSwgMTApO1xuXG4gICAgICAgIGlmICghaXNOYU4odmFsdWUpICYmIHZhbHVlIDwgbWluKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1pbjoge1xuICAgICAgICAgICAgICAgICAgICBtaW4sXG4gICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsdWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { spxValidatorRequired } from './required.validator';
2
+ import { valuePairToValue } from '@softpak/components/spx-helpers';
3
+ export const spxValidatorMinLength = (minimumLength, sanitizer) => (control) => {
4
+ if (!spxValidatorRequired()(control)) {
5
+ let value = valuePairToValue(control.value);
6
+ if (sanitizer) {
7
+ value = sanitizer(value.toString());
8
+ }
9
+ if (value.toString().length < minimumLength) {
10
+ return {
11
+ minlength: {
12
+ requiredLength: minimumLength,
13
+ actualLength: value.toString().length
14
+ }
15
+ };
16
+ }
17
+ }
18
+ return null;
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlubGVuZ3RoLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9taW5sZW5ndGgudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsYUFBcUIsRUFBRSxTQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQXdCLEVBQTBFLEVBQUU7SUFDeE0sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxJQUFJLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sR0FBRyxhQUFhLEVBQUUsQ0FBQztZQUMxQyxPQUFPO2dCQUNILFNBQVMsRUFBRTtvQkFDUCxjQUFjLEVBQUUsYUFBYTtvQkFDN0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO2lCQUN4QzthQUNKLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHNweFZhbGlkYXRvclJlcXVpcmVkIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgdmFsdWVQYWlyVG9WYWx1ZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuXG5leHBvcnQgY29uc3Qgc3B4VmFsaWRhdG9yTWluTGVuZ3RoID0gKG1pbmltdW1MZW5ndGg6IG51bWJlciwgc2FuaXRpemVyPzogKGlucHV0OiBzdHJpbmcpID0+IHN0cmluZykgPT4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWlubGVuZ3RoOiB7IHJlcXVpcmVkTGVuZ3RoOiBudW1iZXI7IGFjdHVhbExlbmd0aDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgIGlmICghc3B4VmFsaWRhdG9yUmVxdWlyZWQoKShjb250cm9sKSkge1xuICAgICAgICBsZXQgdmFsdWUgPSB2YWx1ZVBhaXJUb1ZhbHVlKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICBpZiAoc2FuaXRpemVyKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHNhbml0aXplcih2YWx1ZS50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUudG9TdHJpbmcoKS5sZW5ndGggPCBtaW5pbXVtTGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1pbmxlbmd0aDoge1xuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZExlbmd0aDogbWluaW11bUxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgYWN0dWFsTGVuZ3RoOiB2YWx1ZS50b1N0cmluZygpLmxlbmd0aFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuIl19
@@ -0,0 +1,12 @@
1
+ import { valuePairToValue } from '@softpak/components/spx-helpers';
2
+ import { spxValidatorRequired } from './required.validator';
3
+ export const spxValidatorPattern = (matcher) => (control) => {
4
+ if (!spxValidatorRequired()(control)) {
5
+ const matches = valuePairToValue(control.value).toString().match(matcher);
6
+ if (matches === null || matches.length === 0) {
7
+ return { pattern: true };
8
+ }
9
+ }
10
+ return null;
11
+ };
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXZhbGlkYXRpb24vcGF0dGVybi52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFNUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtJQUMxRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUUsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHZhbHVlUGFpclRvVmFsdWUgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcbmltcG9ydCB7IHNweFZhbGlkYXRvclJlcXVpcmVkIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuXG5leHBvcnQgY29uc3Qgc3B4VmFsaWRhdG9yUGF0dGVybiA9IChtYXRjaGVyOiBSZWdFeHApID0+IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgaWYgKCFzcHhWYWxpZGF0b3JSZXF1aXJlZCgpKGNvbnRyb2wpKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSB2YWx1ZVBhaXJUb1ZhbHVlKGNvbnRyb2wudmFsdWUpLnRvU3RyaW5nKCkubWF0Y2gobWF0Y2hlcik7XG4gICAgICAgIGlmIChtYXRjaGVzID09PSBudWxsIHx8IG1hdGNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4geyBwYXR0ZXJuOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuIl19
@@ -0,0 +1,9 @@
1
+ export * from './max.validator';
2
+ export * from './maxlength.validator';
3
+ export * from './min.validator';
4
+ export * from './minlength.validator';
5
+ export * from './pattern.validator';
6
+ export * from './required.validator';
7
+ export * from './year-and-month.validator';
8
+ export * from './spx-validate-control.component';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWF4LnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL21heGxlbmd0aC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9taW4udmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWlubGVuZ3RoLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcmVxdWlyZWQudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4veWVhci1hbmQtbW9udGgudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LXZhbGlkYXRlLWNvbnRyb2wuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { valuePairToValue } from '@softpak/components/spx-helpers';
2
+ export const spxValidatorRequired = () => (control) => {
3
+ if (control &&
4
+ valuePairToValue(control.value) === undefined ||
5
+ valuePairToValue(control.value) === null ||
6
+ valuePairToValue(control.value) === '' ||
7
+ valuePairToValue(control.value) === 0) {
8
+ return { required: true };
9
+ }
10
+ return null;
11
+ };
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uL3JlcXVpcmVkLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7SUFDNUYsSUFDSSxPQUFPO1FBQ1AsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLFNBQVM7UUFDN0MsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUk7UUFDeEMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDdEMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFDdkMsQ0FBQztRQUNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHZhbHVlUGFpclRvVmFsdWUgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IHNweFZhbGlkYXRvclJlcXVpcmVkID0gKCkgPT4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBpZiAoXG4gICAgICAgIGNvbnRyb2wgJiZcbiAgICAgICAgdmFsdWVQYWlyVG9WYWx1ZShjb250cm9sLnZhbHVlKSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHZhbHVlUGFpclRvVmFsdWUoY29udHJvbC52YWx1ZSkgPT09IG51bGwgfHxcbiAgICAgICAgdmFsdWVQYWlyVG9WYWx1ZShjb250cm9sLnZhbHVlKSA9PT0gJycgfHxcbiAgICAgICAgdmFsdWVQYWlyVG9WYWx1ZShjb250cm9sLnZhbHVlKSA9PT0gMFxuICAgICkge1xuICAgICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHBhay1jb21wb25lbnRzLXNweC12YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uL3NvZnRwYWstY29tcG9uZW50cy1zcHgtdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,68 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class SpxValidateControlComponent {
7
+ get maxLength() {
8
+ return this.control.errors && this.control.errors['maxlength'];
9
+ }
10
+ get maxLengthRequiredLength() {
11
+ return this.maxLength && this.control.errors && this.control.errors['maxlength']['requiredLength'];
12
+ }
13
+ get minLength() {
14
+ return this.control.errors && this.control.errors['minlength'];
15
+ }
16
+ get minLengthRequiredLength() {
17
+ return this.minLength && this.control.errors && this.control.errors['minlength']['requiredLength'];
18
+ }
19
+ get max() {
20
+ return this.control.errors && this.control.errors['max'];
21
+ }
22
+ get maxRequiredMax() {
23
+ return this.max && this.control.errors && this.control.errors['max']['max'];
24
+ }
25
+ get min() {
26
+ return this.control.errors && this.control.errors['min'];
27
+ }
28
+ get minRequiredMin() {
29
+ return this.min && this.control.errors && this.control.errors['min']['min'];
30
+ }
31
+ get pattern() {
32
+ return this.control.errors && this.control.errors['pattern'];
33
+ }
34
+ get required() {
35
+ return this.control.errors && this.control.errors['required'];
36
+ }
37
+ get year() {
38
+ return this.control.errors && this.control.errors['year'];
39
+ }
40
+ get yearFuture() {
41
+ return this.control.errors && this.control.errors['yearFuture'];
42
+ }
43
+ get month() {
44
+ return this.control.errors && this.control.errors['month'];
45
+ }
46
+ get future() {
47
+ return this.control.errors && this.control.errors['future'];
48
+ }
49
+ get past() {
50
+ return this.control.errors && this.control.errors['past'];
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxValidateControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxValidateControlComponent, isStandalone: true, selector: "spx-validate-control", inputs: { control: "control", label: "label", submitTried: "submitTried" }, ngImport: i0, template: "<ng-container *ngIf=\"control && control.errors && (control.touched || submitTried)\">\n <div *ngIf=\"maxLength\">'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n <div *ngIf=\"minLength\">'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n <div *ngIf=\"max\">The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n <div *ngIf=\"min\">The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n <div *ngIf=\"pattern\">The pattern of '{{ label }}' not valid.</div>\n <div *ngIf=\"required\">'{{ label }}' is required.</div>\n <div *ngIf=\"year\">Please choose a year between 1991 and the current year.</div>\n <div *ngIf=\"yearFuture\">Please choose a year between the current year and 2050.</div>\n <div *ngIf=\"month\">Please choose a valid month (a value between 01 and 12).</div>\n <div *ngIf=\"future\">The selected date may not be in the future.</div>\n <div *ngIf=\"past\">The selected date may not be in the past.</div>\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxValidateControlComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ selector: 'spx-validate-control', imports: [
58
+ CommonModule,
59
+ FormsModule,
60
+ ], standalone: true, template: "<ng-container *ngIf=\"control && control.errors && (control.touched || submitTried)\">\n <div *ngIf=\"maxLength\">'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n <div *ngIf=\"minLength\">'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n <div *ngIf=\"max\">The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n <div *ngIf=\"min\">The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n <div *ngIf=\"pattern\">The pattern of '{{ label }}' not valid.</div>\n <div *ngIf=\"required\">'{{ label }}' is required.</div>\n <div *ngIf=\"year\">Please choose a year between 1991 and the current year.</div>\n <div *ngIf=\"yearFuture\">Please choose a year between the current year and 2050.</div>\n <div *ngIf=\"month\">Please choose a valid month (a value between 01 and 12).</div>\n <div *ngIf=\"future\">The selected date may not be in the future.</div>\n <div *ngIf=\"past\">The selected date may not be in the past.</div>\n</ng-container>" }]
61
+ }], propDecorators: { control: [{
62
+ type: Input
63
+ }], label: [{
64
+ type: Input
65
+ }], submitTried: [{
66
+ type: Input
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXZhbGlkYXRlLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uL3NweC12YWxpZGF0ZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9zcHgtdmFsaWRhdGUtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFtQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzlELE1BQU0sT0FBTywyQkFBMkI7SUFLdEMsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7K0dBL0RVLDJCQUEyQjttR0FBM0IsMkJBQTJCLDRKQ2J4Qyw0akNBWWUsMkNESlgsWUFBWSxrSUFDWixXQUFXOzs0RkFJRiwyQkFBMkI7a0JBVHZDLFNBQVM7K0JBQ0Usc0JBQXNCLFdBRXZCO3dCQUNQLFlBQVk7d0JBQ1osV0FBVztxQkFDWixjQUNXLElBQUk7OEJBR1AsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC12YWxpZGF0ZS1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NweC12YWxpZGF0ZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU3B4VmFsaWRhdGVDb250cm9sQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29udHJvbCE6IEFic3RyYWN0Q29udHJvbDtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IHVua25vd247XG4gIEBJbnB1dCgpIHN1Ym1pdFRyaWVkITogYm9vbGVhbjtcblxuICBnZXQgbWF4TGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21heGxlbmd0aCddO1xuICB9XG5cbiAgZ2V0IG1heExlbmd0aFJlcXVpcmVkTGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLm1heExlbmd0aCAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21heGxlbmd0aCddWydyZXF1aXJlZExlbmd0aCddO1xuICB9XG5cbiAgZ2V0IG1pbkxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW5sZW5ndGgnXTtcbiAgfVxuXG4gIGdldCBtaW5MZW5ndGhSZXF1aXJlZExlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5taW5MZW5ndGggJiYgdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW5sZW5ndGgnXVsncmVxdWlyZWRMZW5ndGgnXTtcbiAgfVxuXG4gIGdldCBtYXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1snbWF4J107XG4gIH1cblxuICBnZXQgbWF4UmVxdWlyZWRNYXgoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4ICYmIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1snbWF4J11bJ21heCddO1xuICB9XG5cbiAgZ2V0IG1pbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW4nXTtcbiAgfVxuXG4gIGdldCBtaW5SZXF1aXJlZE1pbigpIHtcbiAgICByZXR1cm4gdGhpcy5taW4gJiYgdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW4nXVsnbWluJ107XG4gIH1cblxuICBnZXQgcGF0dGVybigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydwYXR0ZXJuJ107XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1sncmVxdWlyZWQnXTtcbiAgfVxuXG4gIGdldCB5ZWFyKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ3llYXInXTtcbiAgfVxuXG4gIGdldCB5ZWFyRnV0dXJlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ3llYXJGdXR1cmUnXTtcbiAgfVxuXG4gIGdldCBtb250aCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtb250aCddO1xuICB9XG5cbiAgZ2V0IGZ1dHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydmdXR1cmUnXTtcbiAgfVxuXG4gIGdldCBwYXN0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ3Bhc3QnXTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wgJiYgY29udHJvbC5lcnJvcnMgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBzdWJtaXRUcmllZClcIj5cbiAgPGRpdiAqbmdJZj1cIm1heExlbmd0aFwiPid7eyBsYWJlbCB9fScgaXMgdG9vIGxvbmcsIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyB7eyBtYXhMZW5ndGhSZXF1aXJlZExlbmd0aCB9fS48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIm1pbkxlbmd0aFwiPid7eyBsYWJlbCB9fScgaXMgdG9vIHNob3J0LCB0aGUgbWluaW11bSBsZW5ndGggaXMge3sgbWluTGVuZ3RoUmVxdWlyZWRMZW5ndGggfX0uPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJtYXhcIj5UaGUgdmFsdWUgb2YgJ3t7IGxhYmVsIH19JyBpcyB0b28gaGlnaCwgdGhlIG1heGltdW0gaXMge3sgbWF4UmVxdWlyZWRNYXggfX0uPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJtaW5cIj5UaGUgdmFsdWUgb2YgJ3t7IGxhYmVsIH19JyBpcyB0b28gbG93LCB0aGUgbWluaW11bSBpcyB7eyBtaW5SZXF1aXJlZE1pbiB9fS48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInBhdHRlcm5cIj5UaGUgcGF0dGVybiBvZiAne3sgbGFiZWwgfX0nIG5vdCB2YWxpZC48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInJlcXVpcmVkXCI+J3t7IGxhYmVsIH19JyBpcyByZXF1aXJlZC48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInllYXJcIj5QbGVhc2UgY2hvb3NlIGEgeWVhciBiZXR3ZWVuIDE5OTEgYW5kIHRoZSBjdXJyZW50IHllYXIuPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ5ZWFyRnV0dXJlXCI+UGxlYXNlIGNob29zZSBhIHllYXIgYmV0d2VlbiB0aGUgY3VycmVudCB5ZWFyIGFuZCAyMDUwLjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwibW9udGhcIj5QbGVhc2UgY2hvb3NlIGEgdmFsaWQgbW9udGggKGEgdmFsdWUgYmV0d2VlbiAwMSBhbmQgMTIpLjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZnV0dXJlXCI+VGhlIHNlbGVjdGVkIGRhdGUgbWF5IG5vdCBiZSBpbiB0aGUgZnV0dXJlLjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwicGFzdFwiPlRoZSBzZWxlY3RlZCBkYXRlIG1heSBub3QgYmUgaW4gdGhlIHBhc3QuPC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=