@softpak/components 19.0.0-beta.1 → 19.0.0-beta.10

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 (195) 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 +203 -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 +107 -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 +323 -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 +117 -0
  38. package/esm2022/spx-card/spx-card-line.component.mjs +124 -0
  39. package/esm2022/spx-card/spx-card.component.mjs +96 -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 +197 -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 +132 -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 +91 -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 +42 -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 +117 -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 +297 -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 +10 -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 +93 -0
  71. package/esm2022/spx-inputs/spx-input-box.component.mjs +273 -0
  72. package/esm2022/spx-inputs/spx-input-date/spx-input-date.component.mjs +194 -0
  73. package/esm2022/spx-inputs/spx-input-float.component.mjs +157 -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 +160 -0
  77. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +131 -0
  78. package/esm2022/spx-inputs/spx-input-time.component.mjs +156 -0
  79. package/esm2022/spx-inputs/spx-input-type.enum.mjs +17 -0
  80. package/esm2022/spx-inputs/spx-input.component.mjs +461 -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 +71 -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 +47 -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 +265 -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 +54 -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 +160 -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 +324 -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 +61 -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 +168 -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 +86 -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 +65 -0
  134. package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
  135. package/fesm2022/softpak-components-spx-alert.mjs +56 -45
  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 +59 -41
  139. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  140. package/fesm2022/softpak-components-spx-app-update.mjs +74 -68
  141. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  142. package/fesm2022/softpak-components-spx-button.mjs +5 -4
  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 +163 -127
  147. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  148. package/fesm2022/softpak-components-spx-change-details.mjs +5 -7
  149. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  150. package/fesm2022/softpak-components-spx-channel-selection.mjs +11 -12
  151. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  152. package/fesm2022/softpak-components-spx-check-digit.mjs +6 -9
  153. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  154. package/fesm2022/softpak-components-spx-form-section.mjs +20 -15
  155. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  156. package/fesm2022/softpak-components-spx-form-view.mjs +147 -139
  157. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  158. package/fesm2022/softpak-components-spx-helpers.mjs +1 -0
  159. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  160. package/fesm2022/softpak-components-spx-inputs.mjs +817 -862
  161. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  162. package/fesm2022/softpak-components-spx-navigation.mjs +53 -52
  163. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  164. package/fesm2022/softpak-components-spx-number-check.mjs +49 -42
  165. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  166. package/fesm2022/softpak-components-spx-pagination.mjs +4 -4
  167. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  168. package/fesm2022/softpak-components-spx-patch.mjs +29 -22
  169. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  170. package/fesm2022/softpak-components-spx-progress-bar.mjs +3 -3
  171. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  172. package/fesm2022/softpak-components-spx-spinner.mjs +144 -143
  173. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  174. package/fesm2022/softpak-components-spx-stock-info.mjs +8 -11
  175. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  176. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
  177. package/fesm2022/softpak-components-spx-suggestion.mjs +41 -49
  178. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  179. package/fesm2022/softpak-components-spx-toaster.mjs +94 -98
  180. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  181. package/fesm2022/softpak-components-spx-update.mjs +11 -11
  182. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  183. package/fesm2022/softpak-components-spx-validation.mjs +5 -8
  184. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  185. package/package.json +76 -23
  186. package/spx-app-update/spx-app-update.component.d.ts +3 -3
  187. package/spx-helpers/spx-severity.enum.d.ts +2 -1
  188. package/spx-inputs/spx-input-date/spx-input-date.component.d.ts +43 -0
  189. package/spx-inputs/spx-input-float.component.d.ts +5 -4
  190. package/spx-inputs/spx-input-text.component.d.ts +2 -1
  191. package/spx-inputs/spx-input-time.component.d.ts +1 -1
  192. package/spx-inputs/spx-input.component.d.ts +2 -1
  193. package/spx-suggestion/spx-suggestion.component.d.ts +5 -5
  194. package/tailwind.css +1 -1
  195. package/spx-inputs/spx-input-date.component.d.ts +0 -50
@@ -0,0 +1,168 @@
1
+ import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
+ import { SpxAlertComponent } from '@softpak/components/spx-alert';
3
+ import { SpxToasterAutoCloseSpeedEnum } from './spx-toaster-autoclose-speed';
4
+ import * as i0 from "@angular/core";
5
+ export class SpxToasterComponent {
6
+ constructor(renderer, el) {
7
+ this.renderer = renderer;
8
+ this.el = el;
9
+ this.hostClass = true;
10
+ this.spxClose = new EventEmitter();
11
+ this.count = 0;
12
+ }
13
+ ngOnChanges() {
14
+ this.messages = this.messages.map(m => ({ ...m, autoClose: this.calcToasterAutocloseSpeed(m.autoClose, m.message) }));
15
+ if (this.messages.length > 0) {
16
+ setTimeout(() => {
17
+ this.messages = this.messages.map(message => {
18
+ if (message.autoClose) {
19
+ // console.log(message.autoClose);
20
+ // this.showProgressBar(message.autoClose, message.id)
21
+ // this.showProgressBar(600000, message.id)
22
+ setTimeout(() => {
23
+ this.handleClose(message.id);
24
+ }, message.autoClose);
25
+ }
26
+ return message;
27
+ });
28
+ }, 0);
29
+ }
30
+ }
31
+ showProgressBar(autoclose, id) {
32
+ const alertElement = this.el.nativeElement.querySelector(`spx-alert[id="${id}"]`);
33
+ console.log(alertElement);
34
+ if (alertElement) {
35
+ }
36
+ else {
37
+ console.error(`spx-alert element with ID ${id} not found.`);
38
+ }
39
+ }
40
+ handleClose(id) {
41
+ this.spxClose.emit(id);
42
+ }
43
+ calcToasterAutocloseSpeed(autoCloseSpeed, messageText) {
44
+ switch (autoCloseSpeed) {
45
+ case SpxToasterAutoCloseSpeedEnum.DEFAULT:
46
+ return Math.min(Math.max(messageText.length * 50, 2000), 7000);
47
+ case SpxToasterAutoCloseSpeedEnum.SLOW:
48
+ return Math.min(Math.max(messageText.length * 60, 3000), 10000);
49
+ default:
50
+ return autoCloseSpeed;
51
+ }
52
+ }
53
+ 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 }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.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: `
55
+ @if (messages && messages.length > 0) {
56
+ <div
57
+ class="flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50">
58
+ <style>
59
+ .progress-bar-container {
60
+ width: 100%;
61
+ height: 5px;
62
+ background-color: #ccc;
63
+ margin-top: 8px;
64
+ border-radius: 2px;
65
+ overflow: hidden;
66
+ }
67
+ .progress-bar {
68
+ height: 100%;
69
+ background-color: #76c7c0;
70
+ animation-name: progress;
71
+ animation-timing-function: ease-in-out;
72
+ animation-fill-mode: forwards;
73
+ animation-duration: 5000;
74
+ }
75
+ @keyframes progress {
76
+ from {
77
+ width: 0%;
78
+ }
79
+ to {
80
+ width: 100%;
81
+ }
82
+ }
83
+ </style>
84
+ @for (message of messages; track message) {
85
+ <spx-alert
86
+ [spxAutoclose]="message.autoClose"
87
+ [spxCloseable]="message.closeable"
88
+ [spxSeverity]="message.severity"
89
+ [spxTitle]="message.title"
90
+ (spxClose)="handleClose(message.id)"
91
+ (click)="handleClose(message.id)"
92
+ [id]="message.id"
93
+ >{{message.message}}
94
+ <!-- <div *ngIf="message.autoClose" class="progress-bar-container">
95
+ <div class="progress-bar"></div>
96
+ </div> -->
97
+ </spx-alert>
98
+ }
99
+ </div>
100
+ }`, 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 .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 @keyframes progress {\n from {\n width: 0%;\n }\n to {\n width: 100%;\n }\n }\n "], dependencies: [{ kind: "component", type: SpxAlertComponent, selector: "spx-alert", inputs: ["spxAutoclose", "spxCloseable", "spxHideTitle", "spxTitle", "spxMarginTop", "spxSeverity", "tick"], outputs: ["spxClose"] }] }); }
101
+ }
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxToasterComponent, decorators: [{
103
+ type: Component,
104
+ args: [{
105
+ selector: 'spx-toaster',
106
+ template: `
107
+ @if (messages && messages.length > 0) {
108
+ <div
109
+ class="flex flex-col gap-2 fixed bottom-16 left-0 right-0 mx-auto px-3 z-50">
110
+ <style>
111
+ .progress-bar-container {
112
+ width: 100%;
113
+ height: 5px;
114
+ background-color: #ccc;
115
+ margin-top: 8px;
116
+ border-radius: 2px;
117
+ overflow: hidden;
118
+ }
119
+ .progress-bar {
120
+ height: 100%;
121
+ background-color: #76c7c0;
122
+ animation-name: progress;
123
+ animation-timing-function: ease-in-out;
124
+ animation-fill-mode: forwards;
125
+ animation-duration: 5000;
126
+ }
127
+ @keyframes progress {
128
+ from {
129
+ width: 0%;
130
+ }
131
+ to {
132
+ width: 100%;
133
+ }
134
+ }
135
+ </style>
136
+ @for (message of messages; track message) {
137
+ <spx-alert
138
+ [spxAutoclose]="message.autoClose"
139
+ [spxCloseable]="message.closeable"
140
+ [spxSeverity]="message.severity"
141
+ [spxTitle]="message.title"
142
+ (spxClose)="handleClose(message.id)"
143
+ (click)="handleClose(message.id)"
144
+ [id]="message.id"
145
+ >{{message.message}}
146
+ <!-- <div *ngIf="message.autoClose" class="progress-bar-container">
147
+ <div class="progress-bar"></div>
148
+ </div> -->
149
+ </spx-alert>
150
+ }
151
+ </div>
152
+ }`,
153
+ standalone: true,
154
+ imports: [
155
+ SpxAlertComponent
156
+ ],
157
+ }]
158
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { hostClass: [{
159
+ type: HostBinding,
160
+ args: ['class.spx-toasts-displayer']
161
+ }], messages: [{
162
+ type: Input
163
+ }], spxClose: [{
164
+ type: Output
165
+ }], spxAutoclose: [{
166
+ type: Input
167
+ }] } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXRvYXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC10b2FzdGVyL3NyYy9zcHgtdG9hc3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBd0Q3RSxNQUFNLE9BQU8sbUJBQW1CO0lBTTVCLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUxwQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWxELGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RSxVQUFLLEdBQVcsQ0FBQyxDQUFDO0lBR2xCLENBQUM7SUFHRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RILElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUN4QyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQzt3QkFDcEIsa0NBQWtDO3dCQUNsQyxzREFBc0Q7d0JBQ3RELDJDQUEyQzt3QkFDM0MsVUFBVSxDQUFDLEdBQUcsRUFBRTs0QkFDWixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTt3QkFDaEMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDMUIsQ0FBQztvQkFDRCxPQUFPLE9BQU8sQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0wsQ0FBQztJQUdELGVBQWUsQ0FBQyxTQUFpQixFQUFFLEVBQVU7UUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7SUFHSSxXQUFXLENBQUMsRUFBVTtRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU8seUJBQXlCLENBQUMsY0FBNEMsRUFBRSxXQUFtQjtRQUMvRixRQUFRLGNBQWMsRUFBRSxDQUFDO1lBQ3JCLEtBQUssNEJBQTRCLENBQUMsT0FBTztnQkFDckMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkUsS0FBSyw0QkFBNEIsQ0FBQyxJQUFJO2dCQUNsQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRTtnQkFDSSxPQUFPLGNBQWMsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQzsrR0F2RFEsbUJBQW1CO21HQUFuQixtQkFBbUIseVFBcERsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQThDUixxcEJBR0YsaUJBQWlCOzs0RkFHUixtQkFBbUI7a0JBdEQvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUE4Q1I7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDVCxpQkFBaUI7cUJBQ3BCO2lCQUNBO3VHQUU4QyxTQUFTO3NCQUFuRCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFDaEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweFRvYXN0ZXJNZXNzYWdlSSB9IGZyb20gJy4vc3B4LXRvYXN0ZXItbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3B4QWxlcnRDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1hbGVydCc7XG5cbmltcG9ydCB7IFNweFRvYXN0ZXJBdXRvQ2xvc2VTcGVlZEVudW0gfSBmcm9tICcuL3NweC10b2FzdGVyLWF1dG9jbG9zZS1zcGVlZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc3B4LXRvYXN0ZXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgQGlmIChtZXNzYWdlcyAmJiBtZXNzYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiBmaXhlZCBib3R0b20tMTYgbGVmdC0wIHJpZ2h0LTAgbXgtYXV0byBweC0zIHotNTBcIj5cbiAgICAgICAgPHN0eWxlPlxuICAgICAgICAgIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgICAucHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzZjN2MwO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogcHJvZ3Jlc3M7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDAwO1xuICAgICAgfVxuICAgICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7XG4gICAgICBmcm9tIHtcbiAgICAgIHdpZHRoOiAwJTtcbiAgICB9XG4gICAgdG8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICB9XG4gICAgPC9zdHlsZT5cbiAgICBAZm9yIChtZXNzYWdlIG9mIG1lc3NhZ2VzOyB0cmFjayBtZXNzYWdlKSB7XG4gICAgICA8c3B4LWFsZXJ0XG4gICAgICAgIFtzcHhBdXRvY2xvc2VdPVwibWVzc2FnZS5hdXRvQ2xvc2VcIlxuICAgICAgICBbc3B4Q2xvc2VhYmxlXT1cIm1lc3NhZ2UuY2xvc2VhYmxlXCJcbiAgICAgICAgW3NweFNldmVyaXR5XT1cIm1lc3NhZ2Uuc2V2ZXJpdHlcIlxuICAgICAgICBbc3B4VGl0bGVdPVwibWVzc2FnZS50aXRsZVwiXG4gICAgICAgIChzcHhDbG9zZSk9XCJoYW5kbGVDbG9zZShtZXNzYWdlLmlkKVwiXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVDbG9zZShtZXNzYWdlLmlkKVwiXG4gICAgICAgIFtpZF09XCJtZXNzYWdlLmlkXCJcbiAgICAgICAgPnt7bWVzc2FnZS5tZXNzYWdlfX1cbiAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwibWVzc2FnZS5hdXRvQ2xvc2VcIiBjbGFzcz1cInByb2dyZXNzLWJhci1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhclwiPjwvZGl2PlxuICAgICAgPC9kaXY+IC0tPlxuICAgIDwvc3B4LWFsZXJ0PlxuICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9YCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICBTcHhBbGVydENvbXBvbmVudFxuXSxcbn0pXG5leHBvcnQgY2xhc3MgU3B4VG9hc3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zcHgtdG9hc3RzLWRpc3BsYXllcicpIGhvc3RDbGFzcyA9IHRydWU7XG4gICAgQElucHV0KCkgbWVzc2FnZXMhOiBTcHhUb2FzdGVyTWVzc2FnZUlbXTtcbiAgICBAT3V0cHV0KCkgc3B4Q2xvc2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+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,86 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';
4
+ import { SpxInputComponent } from '@softpak/components/spx-inputs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ const ctrlAppStoreVersion = 'appStoreVersion';
8
+ const ctrlChannel = 'channel';
9
+ const ctrlNextVersionNumber = 'nextVersionNumber';
10
+ const ctrlVersionNumber = 'versionNumber';
11
+ export class SpxUpdateInfoComponent {
12
+ get ctrlVersionNumber() { return this.form.get(ctrlVersionNumber); }
13
+ get ctrlNextVersionNumber() { return this.form.get(ctrlNextVersionNumber); }
14
+ get ctrlConfiguredChannel() { return this.form.get(ctrlChannel); }
15
+ get ctrlAppStoreVersion() { return this.form.get(ctrlAppStoreVersion); }
16
+ constructor(formBuilder) {
17
+ this.formBuilder = formBuilder;
18
+ this.form = this.formBuilder.group({
19
+ [ctrlAppStoreVersion]: [null, []],
20
+ [ctrlChannel]: [null, []],
21
+ [ctrlNextVersionNumber]: [null, []],
22
+ [ctrlVersionNumber]: [null, []],
23
+ });
24
+ }
25
+ update(appStoreVersion, channel, nextVersion, version) {
26
+ this.ctrlVersionNumber.setValue({
27
+ value: version,
28
+ });
29
+ this.ctrlNextVersionNumber.setValue({
30
+ value: nextVersion,
31
+ });
32
+ this.ctrlConfiguredChannel.setValue({
33
+ value: channel,
34
+ });
35
+ this.ctrlAppStoreVersion.setValue({
36
+ value: appStoreVersion,
37
+ });
38
+ }
39
+ 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 }); }
40
+ 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">
41
+ <div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3">
42
+ <spx-input [formControl]="ctrlVersionNumber" [spxLabel]="txtVersion | capitalize"
43
+ [spxReadonly]="true"></spx-input>
44
+ <spx-input [formControl]="ctrlNextVersionNumber" [spxLabel]="txtNextVersion | capitalize"
45
+ [spxReadonly]="true"></spx-input>
46
+ <spx-input [formControl]="ctrlConfiguredChannel" [spxLabel]="txtChannel | capitalize"
47
+ [spxReadonly]="true"></spx-input>
48
+ <spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | capitalize"
49
+ [spxReadonly]="true"></spx-input>
50
+ </div>
51
+ </form>`, isInline: true, dependencies: [{ 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"] }] }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxUpdateInfoComponent, decorators: [{
54
+ type: Component,
55
+ args: [{
56
+ selector: 'spx-update-info',
57
+ template: `<form [formGroup]="form" class="mt-3">
58
+ <div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3">
59
+ <spx-input [formControl]="ctrlVersionNumber" [spxLabel]="txtVersion | capitalize"
60
+ [spxReadonly]="true"></spx-input>
61
+ <spx-input [formControl]="ctrlNextVersionNumber" [spxLabel]="txtNextVersion | capitalize"
62
+ [spxReadonly]="true"></spx-input>
63
+ <spx-input [formControl]="ctrlConfiguredChannel" [spxLabel]="txtChannel | capitalize"
64
+ [spxReadonly]="true"></spx-input>
65
+ <spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | capitalize"
66
+ [spxReadonly]="true"></spx-input>
67
+ </div>
68
+ </form>`,
69
+ standalone: true,
70
+ imports: [
71
+ FormsModule,
72
+ ReactiveFormsModule,
73
+ SpxCapitalizePipe,
74
+ SpxInputComponent
75
+ ]
76
+ }]
77
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { txtAppStoreVersion: [{
78
+ type: Input
79
+ }], txtChannel: [{
80
+ type: Input
81
+ }], txtNextVersion: [{
82
+ type: Input
83
+ }], txtVersion: [{
84
+ type: Input
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXVwZGF0ZS1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdXBkYXRlL3NyYy9zcHgtdXBkYXRlLWluZm8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBdUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUVuRSxNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDO0FBQzlDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQztBQUM5QixNQUFNLHFCQUFxQixHQUFHLG1CQUFtQixDQUFDO0FBQ2xELE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDO0FBd0IxQyxNQUFNLE9BQU8sc0JBQXNCO0lBT2pDLElBQUksaUJBQWlCLEtBQWtCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLElBQUkscUJBQXFCLEtBQWtCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLElBQUkscUJBQXFCLEtBQWtCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFnQixDQUFDLENBQUMsQ0FBQztJQUM5RixJQUFJLG1CQUFtQixLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFnQixDQUFDLENBQUMsQ0FBQztJQUVwRyxZQUNtQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUV6QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2pDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDakMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDekIsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNuQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBdUIsRUFBRSxPQUFlLEVBQUUsV0FBbUIsRUFBRSxPQUFlO1FBQ25GLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7WUFDOUIsS0FBSyxFQUFFLE9BQU87U0FDZixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDO1lBQ2xDLEtBQUssRUFBRSxXQUFXO1NBQ25CLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7WUFDbEMsS0FBSyxFQUFFLE9BQU87U0FDZixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1lBQ2hDLEtBQUssRUFBRSxlQUFlO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBcENVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHVOQXBCdkI7Ozs7Ozs7Ozs7O1VBV0YsMkRBR04sV0FBVywyWUFDWCxtQkFBbUIsOFZBQ25CLGlCQUFpQixtREFDakIsaUJBQWlCOzs0RkFHUixzQkFBc0I7a0JBdEJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7VUFXRjtvQkFDUixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjtxQkFDcEI7aUJBQ0E7Z0ZBR1Usa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTcHhDYXBpdGFsaXplUGlwZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWNhcGl0YWxpemUnO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMnO1xuXG5jb25zdCBjdHJsQXBwU3RvcmVWZXJzaW9uID0gJ2FwcFN0b3JlVmVyc2lvbic7XG5jb25zdCBjdHJsQ2hhbm5lbCA9ICdjaGFubmVsJztcbmNvbnN0IGN0cmxOZXh0VmVyc2lvbk51bWJlciA9ICduZXh0VmVyc2lvbk51bWJlcic7XG5jb25zdCBjdHJsVmVyc2lvbk51bWJlciA9ICd2ZXJzaW9uTnVtYmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LXVwZGF0ZS1pbmZvJyxcbiAgdGVtcGxhdGU6IGA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cIm10LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiB4bDpncmlkLWNvbHMtMyBnYXAtM1wiPlxuICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybFZlcnNpb25OdW1iZXJcIiBbc3B4TGFiZWxdPVwidHh0VmVyc2lvbiB8IGNhcGl0YWxpemVcIlxuICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybE5leHRWZXJzaW9uTnVtYmVyXCIgW3NweExhYmVsXT1cInR4dE5leHRWZXJzaW9uIHwgY2FwaXRhbGl6ZVwiXG4gICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgICA8c3B4LWlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsQ29uZmlndXJlZENoYW5uZWxcIiBbc3B4TGFiZWxdPVwidHh0Q2hhbm5lbCB8IGNhcGl0YWxpemVcIlxuICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybEFwcFN0b3JlVmVyc2lvblwiIFtzcHhMYWJlbF09XCJ0eHRBcHBTdG9yZVZlcnNpb24gfCBjYXBpdGFsaXplXCJcbiAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPmAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNweENhcGl0YWxpemVQaXBlLFxuICAgIFNweElucHV0Q29tcG9uZW50XG5dXG59KVxuZXhwb3J0IGNsYXNzIFNweFVwZGF0ZUluZm9Db21wb25lbnQge1xuICBmb3JtITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSB0eHRBcHBTdG9yZVZlcnNpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENoYW5uZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dE5leHRWZXJzaW9uITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRWZXJzaW9uITogc3RyaW5nO1xuICBcbiAgZ2V0IGN0cmxWZXJzaW9uTnVtYmVyKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoY3RybFZlcnNpb25OdW1iZXIpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsTmV4dFZlcnNpb25OdW1iZXIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsTmV4dFZlcnNpb25OdW1iZXIpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsQ29uZmlndXJlZENoYW5uZWwoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsQ2hhbm5lbCkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxBcHBTdG9yZVZlcnNpb24oKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsQXBwU3RvcmVWZXJzaW9uKSBhcyBGb3JtQ29udHJvbDsgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICApIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIFtjdHJsQXBwU3RvcmVWZXJzaW9uXTogW251bGwsIFtdXSxcbiAgICAgIFtjdHJsQ2hhbm5lbF06IFtudWxsLCBbXV0sXG4gICAgICBbY3RybE5leHRWZXJzaW9uTnVtYmVyXTogW251bGwsIFtdXSxcbiAgICAgIFtjdHJsVmVyc2lvbk51bWJlcl06IFtudWxsLCBbXV0sXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGUoYXBwU3RvcmVWZXJzaW9uOiBzdHJpbmcsIGNoYW5uZWw6IHN0cmluZywgbmV4dFZlcnNpb246IHN0cmluZywgdmVyc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5jdHJsVmVyc2lvbk51bWJlci5zZXRWYWx1ZSh7XG4gICAgICB2YWx1ZTogdmVyc2lvbixcbiAgICB9KTtcbiAgICB0aGlzLmN0cmxOZXh0VmVyc2lvbk51bWJlci5zZXRWYWx1ZSh7XG4gICAgICB2YWx1ZTogbmV4dFZlcnNpb24sXG4gICAgfSk7XG4gICAgdGhpcy5jdHJsQ29uZmlndXJlZENoYW5uZWwuc2V0VmFsdWUoe1xuICAgICAgdmFsdWU6IGNoYW5uZWwsXG4gICAgfSk7XG4gICAgdGhpcy5jdHJsQXBwU3RvcmVWZXJzaW9uLnNldFZhbHVlKHtcbiAgICAgIHZhbHVlOiBhcHBTdG9yZVZlcnNpb24sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -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,65 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export class SpxValidateControlComponent {
5
+ get maxLength() {
6
+ return this.control.errors && this.control.errors['maxlength'];
7
+ }
8
+ get maxLengthRequiredLength() {
9
+ return this.maxLength && this.control.errors && this.control.errors['maxlength']['requiredLength'];
10
+ }
11
+ get minLength() {
12
+ return this.control.errors && this.control.errors['minlength'];
13
+ }
14
+ get minLengthRequiredLength() {
15
+ return this.minLength && this.control.errors && this.control.errors['minlength']['requiredLength'];
16
+ }
17
+ get max() {
18
+ return this.control.errors && this.control.errors['max'];
19
+ }
20
+ get maxRequiredMax() {
21
+ return this.max && this.control.errors && this.control.errors['max']['max'];
22
+ }
23
+ get min() {
24
+ return this.control.errors && this.control.errors['min'];
25
+ }
26
+ get minRequiredMin() {
27
+ return this.min && this.control.errors && this.control.errors['min']['min'];
28
+ }
29
+ get pattern() {
30
+ return this.control.errors && this.control.errors['pattern'];
31
+ }
32
+ get required() {
33
+ return this.control.errors && this.control.errors['required'];
34
+ }
35
+ get year() {
36
+ return this.control.errors && this.control.errors['year'];
37
+ }
38
+ get yearFuture() {
39
+ return this.control.errors && this.control.errors['yearFuture'];
40
+ }
41
+ get month() {
42
+ return this.control.errors && this.control.errors['month'];
43
+ }
44
+ get future() {
45
+ return this.control.errors && this.control.errors['future'];
46
+ }
47
+ get past() {
48
+ return this.control.errors && this.control.errors['past'];
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxValidateControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxValidateControlComponent, isStandalone: true, selector: "spx-validate-control", inputs: { control: "control", label: "label", submitTried: "submitTried" }, ngImport: i0, template: "@if (control && control.errors && (control.touched || submitTried)) {\n @if (maxLength) {\n <div>'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n }\n @if (minLength) {\n <div>'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n }\n @if (max) {\n <div>The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n }\n @if (min) {\n <div>The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n }\n @if (pattern) {\n <div>The pattern of '{{ label }}' not valid.</div>\n }\n @if (required) {\n <div>'{{ label }}' is required.</div>\n }\n @if (year) {\n <div>Please choose a year between 1991 and the current year.</div>\n }\n @if (yearFuture) {\n <div>Please choose a year between the current year and 2050.</div>\n }\n @if (month) {\n <div>Please choose a valid month (a value between 01 and 12).</div>\n }\n @if (future) {\n <div>The selected date may not be in the future.</div>\n }\n @if (past) {\n <div>The selected date may not be in the past.</div>\n }\n}", dependencies: [{ kind: "ngmodule", type: FormsModule }] }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxValidateControlComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'spx-validate-control', imports: [
56
+ FormsModule
57
+ ], standalone: true, template: "@if (control && control.errors && (control.touched || submitTried)) {\n @if (maxLength) {\n <div>'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n }\n @if (minLength) {\n <div>'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n }\n @if (max) {\n <div>The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n }\n @if (min) {\n <div>The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n }\n @if (pattern) {\n <div>The pattern of '{{ label }}' not valid.</div>\n }\n @if (required) {\n <div>'{{ label }}' is required.</div>\n }\n @if (year) {\n <div>Please choose a year between 1991 and the current year.</div>\n }\n @if (yearFuture) {\n <div>Please choose a year between the current year and 2050.</div>\n }\n @if (month) {\n <div>Please choose a valid month (a value between 01 and 12).</div>\n }\n @if (future) {\n <div>The selected date may not be in the future.</div>\n }\n @if (past) {\n <div>The selected date may not be in the past.</div>\n }\n}" }]
58
+ }], propDecorators: { control: [{
59
+ type: Input
60
+ }], label: [{
61
+ type: Input
62
+ }], submitTried: [{
63
+ type: Input
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXZhbGlkYXRlLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uL3NweC12YWxpZGF0ZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9zcHgtdmFsaWRhdGUtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVU5RCxNQUFNLE9BQU8sMkJBQTJCO0lBS3RDLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDOytHQS9EVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiw0SkNaeEMscW5DQWtDQywyQ0QxQkcsV0FBVzs7NEZBSUYsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNFLHNCQUFzQixXQUV2Qjt3QkFDUCxXQUFXO3FCQUNkLGNBQ2EsSUFBSTs4QkFHUCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC12YWxpZGF0ZS1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NweC12YWxpZGF0ZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlXG5dLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhWYWxpZGF0ZUNvbnRyb2xDb21wb25lbnQge1xuICBASW5wdXQoKSBjb250cm9sITogQWJzdHJhY3RDb250cm9sO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgdW5rbm93bjtcbiAgQElucHV0KCkgc3VibWl0VHJpZWQhOiBib29sZWFuO1xuXG4gIGdldCBtYXhMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1snbWF4bGVuZ3RoJ107XG4gIH1cblxuICBnZXQgbWF4TGVuZ3RoUmVxdWlyZWRMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4TGVuZ3RoICYmIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1snbWF4bGVuZ3RoJ11bJ3JlcXVpcmVkTGVuZ3RoJ107XG4gIH1cblxuICBnZXQgbWluTGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21pbmxlbmd0aCddO1xuICB9XG5cbiAgZ2V0IG1pbkxlbmd0aFJlcXVpcmVkTGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLm1pbkxlbmd0aCAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21pbmxlbmd0aCddWydyZXF1aXJlZExlbmd0aCddO1xuICB9XG5cbiAgZ2V0IG1heCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtYXgnXTtcbiAgfVxuXG4gIGdldCBtYXhSZXF1aXJlZE1heCgpIHtcbiAgICByZXR1cm4gdGhpcy5tYXggJiYgdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtYXgnXVsnbWF4J107XG4gIH1cblxuICBnZXQgbWluKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21pbiddO1xuICB9XG5cbiAgZ2V0IG1pblJlcXVpcmVkTWluKCkge1xuICAgIHJldHVybiB0aGlzLm1pbiAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21pbiddWydtaW4nXTtcbiAgfVxuXG4gIGdldCBwYXR0ZXJuKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ3BhdHRlcm4nXTtcbiAgfVxuXG4gIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydyZXF1aXJlZCddO1xuICB9XG5cbiAgZ2V0IHllYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1sneWVhciddO1xuICB9XG5cbiAgZ2V0IHllYXJGdXR1cmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1sneWVhckZ1dHVyZSddO1xuICB9XG5cbiAgZ2V0IG1vbnRoKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21vbnRoJ107XG4gIH1cblxuICBnZXQgZnV0dXJlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ2Z1dHVyZSddO1xuICB9XG5cbiAgZ2V0IHBhc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1sncGFzdCddO1xuICB9XG59XG4iLCJAaWYgKGNvbnRyb2wgJiYgY29udHJvbC5lcnJvcnMgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBzdWJtaXRUcmllZCkpIHtcbiAgQGlmIChtYXhMZW5ndGgpIHtcbiAgICA8ZGl2Pid7eyBsYWJlbCB9fScgaXMgdG9vIGxvbmcsIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyB7eyBtYXhMZW5ndGhSZXF1aXJlZExlbmd0aCB9fS48L2Rpdj5cbiAgfVxuICBAaWYgKG1pbkxlbmd0aCkge1xuICAgIDxkaXY+J3t7IGxhYmVsIH19JyBpcyB0b28gc2hvcnQsIHRoZSBtaW5pbXVtIGxlbmd0aCBpcyB7eyBtaW5MZW5ndGhSZXF1aXJlZExlbmd0aCB9fS48L2Rpdj5cbiAgfVxuICBAaWYgKG1heCkge1xuICAgIDxkaXY+VGhlIHZhbHVlIG9mICd7eyBsYWJlbCB9fScgaXMgdG9vIGhpZ2gsIHRoZSBtYXhpbXVtIGlzIHt7IG1heFJlcXVpcmVkTWF4IH19LjwvZGl2PlxuICB9XG4gIEBpZiAobWluKSB7XG4gICAgPGRpdj5UaGUgdmFsdWUgb2YgJ3t7IGxhYmVsIH19JyBpcyB0b28gbG93LCB0aGUgbWluaW11bSBpcyB7eyBtaW5SZXF1aXJlZE1pbiB9fS48L2Rpdj5cbiAgfVxuICBAaWYgKHBhdHRlcm4pIHtcbiAgICA8ZGl2PlRoZSBwYXR0ZXJuIG9mICd7eyBsYWJlbCB9fScgbm90IHZhbGlkLjwvZGl2PlxuICB9XG4gIEBpZiAocmVxdWlyZWQpIHtcbiAgICA8ZGl2Pid7eyBsYWJlbCB9fScgaXMgcmVxdWlyZWQuPC9kaXY+XG4gIH1cbiAgQGlmICh5ZWFyKSB7XG4gICAgPGRpdj5QbGVhc2UgY2hvb3NlIGEgeWVhciBiZXR3ZWVuIDE5OTEgYW5kIHRoZSBjdXJyZW50IHllYXIuPC9kaXY+XG4gIH1cbiAgQGlmICh5ZWFyRnV0dXJlKSB7XG4gICAgPGRpdj5QbGVhc2UgY2hvb3NlIGEgeWVhciBiZXR3ZWVuIHRoZSBjdXJyZW50IHllYXIgYW5kIDIwNTAuPC9kaXY+XG4gIH1cbiAgQGlmIChtb250aCkge1xuICAgIDxkaXY+UGxlYXNlIGNob29zZSBhIHZhbGlkIG1vbnRoIChhIHZhbHVlIGJldHdlZW4gMDEgYW5kIDEyKS48L2Rpdj5cbiAgfVxuICBAaWYgKGZ1dHVyZSkge1xuICAgIDxkaXY+VGhlIHNlbGVjdGVkIGRhdGUgbWF5IG5vdCBiZSBpbiB0aGUgZnV0dXJlLjwvZGl2PlxuICB9XG4gIEBpZiAocGFzdCkge1xuICAgIDxkaXY+VGhlIHNlbGVjdGVkIGRhdGUgbWF5IG5vdCBiZSBpbiB0aGUgcGFzdC48L2Rpdj5cbiAgfVxufSJdfQ==