@softpak/components 0.3.2 → 0.3.3

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/fesm2022/softpak-components-spx-alert.mjs +3 -3
  2. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  3. package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
  4. package/fesm2022/softpak-components-spx-app-expiry.mjs +3 -3
  5. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  6. package/fesm2022/softpak-components-spx-app-update.mjs +13 -15
  7. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  8. package/fesm2022/softpak-components-spx-button.mjs +3 -3
  9. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  10. package/fesm2022/softpak-components-spx-capitalize.mjs +3 -3
  11. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
  12. package/fesm2022/softpak-components-spx-card.mjs +12 -12
  13. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  14. package/fesm2022/softpak-components-spx-change-details.mjs +3 -3
  15. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  16. package/fesm2022/softpak-components-spx-channel-selection.mjs +6 -6
  17. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  18. package/fesm2022/softpak-components-spx-check-digit.mjs +3 -3
  19. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  20. package/fesm2022/softpak-components-spx-form-section.mjs +3 -3
  21. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  22. package/fesm2022/softpak-components-spx-form-view.mjs +6 -6
  23. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  24. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  25. package/fesm2022/softpak-components-spx-inputs.mjs +30 -30
  26. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  27. package/fesm2022/softpak-components-spx-navigation.mjs +9 -9
  28. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  29. package/fesm2022/softpak-components-spx-number-check.mjs +3 -3
  30. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  31. package/fesm2022/softpak-components-spx-pagination.mjs +3 -3
  32. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  33. package/fesm2022/softpak-components-spx-patch.mjs +3 -3
  34. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  35. package/fesm2022/softpak-components-spx-progress-bar.mjs +3 -3
  36. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  37. package/fesm2022/softpak-components-spx-spinner.mjs +3 -3
  38. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  39. package/fesm2022/softpak-components-spx-stock-info.mjs +3 -3
  40. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  41. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
  42. package/fesm2022/softpak-components-spx-suggestion.mjs +3 -3
  43. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  44. package/fesm2022/softpak-components-spx-toaster.mjs +4 -4
  45. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  46. package/fesm2022/softpak-components-spx-update.mjs +6 -6
  47. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  48. package/fesm2022/softpak-components-spx-validation.mjs +3 -3
  49. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  50. package/package.json +12 -66
  51. package/spx-app-update/spx-app-update.component.d.ts +3 -3
  52. package/esm2022/placeholder.mjs +0 -2
  53. package/esm2022/public_api.mjs +0 -2
  54. package/esm2022/softpak-components.mjs +0 -5
  55. package/esm2022/spx-alert/public-api.mjs +0 -3
  56. package/esm2022/spx-alert/softpak-components-spx-alert.mjs +0 -5
  57. package/esm2022/spx-alert/spx-alert.component.mjs +0 -193
  58. package/esm2022/spx-alert/spx-alert.interface.mjs +0 -3
  59. package/esm2022/spx-app-configuration/public-api.mjs +0 -8
  60. package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +0 -5
  61. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +0 -2
  62. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +0 -2
  63. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +0 -8
  64. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +0 -2
  65. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +0 -2
  66. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +0 -8
  67. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +0 -6
  68. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +0 -2
  69. package/esm2022/spx-app-expiry/public-api.mjs +0 -6
  70. package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +0 -5
  71. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +0 -90
  72. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +0 -2
  73. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +0 -5
  74. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +0 -5
  75. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +0 -5
  76. package/esm2022/spx-app-update/public-api.mjs +0 -2
  77. package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +0 -5
  78. package/esm2022/spx-app-update/spx-app-update.component.mjs +0 -316
  79. package/esm2022/spx-button/public-api.mjs +0 -2
  80. package/esm2022/spx-button/softpak-components-spx-button.mjs +0 -5
  81. package/esm2022/spx-button/spx-button.component.mjs +0 -142
  82. package/esm2022/spx-capitalize/public-api.mjs +0 -2
  83. package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +0 -5
  84. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +0 -20
  85. package/esm2022/spx-card/public-api.mjs +0 -5
  86. package/esm2022/spx-card/softpak-components-spx-card.mjs +0 -5
  87. package/esm2022/spx-card/spx-card-grid.component.mjs +0 -46
  88. package/esm2022/spx-card/spx-card-item.component.mjs +0 -111
  89. package/esm2022/spx-card/spx-card-line.component.mjs +0 -101
  90. package/esm2022/spx-card/spx-card.component.mjs +0 -93
  91. package/esm2022/spx-change-details/public-api.mjs +0 -2
  92. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +0 -5
  93. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +0 -2
  94. package/esm2022/spx-change-details/spx-change-details.component.mjs +0 -199
  95. package/esm2022/spx-channel-selection/public-api.mjs +0 -3
  96. package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +0 -5
  97. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +0 -45
  98. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +0 -135
  99. package/esm2022/spx-check-digit/public-api.mjs +0 -2
  100. package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +0 -5
  101. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +0 -94
  102. package/esm2022/spx-form-section/public-api.mjs +0 -2
  103. package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +0 -5
  104. package/esm2022/spx-form-section/spx-form-section.component.mjs +0 -37
  105. package/esm2022/spx-form-view/public-api.mjs +0 -7
  106. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +0 -5
  107. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +0 -119
  108. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +0 -6
  109. package/esm2022/spx-form-view/spx-form-button.interface.mjs +0 -2
  110. package/esm2022/spx-form-view/spx-form-field.interface.mjs +0 -2
  111. package/esm2022/spx-form-view/spx-form-section.interface.mjs +0 -2
  112. package/esm2022/spx-form-view/spx-form-view.component.mjs +0 -289
  113. package/esm2022/spx-form-view/spx-form.interface.mjs +0 -2
  114. package/esm2022/spx-helpers/calc-check-digit.function.mjs +0 -21
  115. package/esm2022/spx-helpers/public-api.mjs +0 -4
  116. package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +0 -5
  117. package/esm2022/spx-helpers/spx-severity.enum.mjs +0 -9
  118. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +0 -7
  119. package/esm2022/spx-inputs/public-api.mjs +0 -6
  120. package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +0 -5
  121. package/esm2022/spx-inputs/spx-dropdown.component.mjs +0 -94
  122. package/esm2022/spx-inputs/spx-input-box.component.mjs +0 -255
  123. package/esm2022/spx-inputs/spx-input-date.component.mjs +0 -294
  124. package/esm2022/spx-inputs/spx-input-float.component.mjs +0 -159
  125. package/esm2022/spx-inputs/spx-input-number.component.mjs +0 -87
  126. package/esm2022/spx-inputs/spx-input-radio.component.mjs +0 -129
  127. package/esm2022/spx-inputs/spx-input-text.component.mjs +0 -155
  128. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +0 -116
  129. package/esm2022/spx-inputs/spx-input-time.component.mjs +0 -166
  130. package/esm2022/spx-inputs/spx-input-type.enum.mjs +0 -17
  131. package/esm2022/spx-inputs/spx-input.component.mjs +0 -445
  132. package/esm2022/spx-inputs/spx-value-interface.mjs +0 -2
  133. package/esm2022/spx-navigation/public-api.mjs +0 -5
  134. package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +0 -5
  135. package/esm2022/spx-navigation/spx-home-tile.component.mjs +0 -68
  136. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +0 -24
  137. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +0 -2
  138. package/esm2022/spx-navigation/spx-navigation.component.mjs +0 -51
  139. package/esm2022/spx-number-check/public-api.mjs +0 -2
  140. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +0 -5
  141. package/esm2022/spx-number-check/spx-number-check.component.mjs +0 -259
  142. package/esm2022/spx-pagination/public-api.mjs +0 -2
  143. package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +0 -5
  144. package/esm2022/spx-pagination/spx-pagination.component.mjs +0 -44
  145. package/esm2022/spx-patch/patch-check.function.mjs +0 -9
  146. package/esm2022/spx-patch/public-api.mjs +0 -4
  147. package/esm2022/spx-patch/release-check.function.mjs +0 -14
  148. package/esm2022/spx-patch/softpak-components-spx-patch.mjs +0 -5
  149. package/esm2022/spx-patch/spx-patch.component.mjs +0 -48
  150. package/esm2022/spx-progress-bar/public-api.mjs +0 -2
  151. package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +0 -5
  152. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +0 -29
  153. package/esm2022/spx-spinner/public-api.mjs +0 -2
  154. package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +0 -5
  155. package/esm2022/spx-spinner/spx-spinner.component.mjs +0 -159
  156. package/esm2022/spx-stock-info/public-api.mjs +0 -3
  157. package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +0 -5
  158. package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +0 -2
  159. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +0 -327
  160. package/esm2022/spx-storage/public-api.mjs +0 -3
  161. package/esm2022/spx-storage/softpak-components-spx-storage.mjs +0 -5
  162. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +0 -13
  163. package/esm2022/spx-storage/src/spx-storage.class.mjs +0 -45
  164. package/esm2022/spx-suggestion/public-api.mjs +0 -2
  165. package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +0 -5
  166. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +0 -69
  167. package/esm2022/spx-toaster/public-api.mjs +0 -4
  168. package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +0 -5
  169. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +0 -23
  170. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +0 -3
  171. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +0 -173
  172. package/esm2022/spx-update/public-api.mjs +0 -3
  173. package/esm2022/spx-update/softpak-components-spx-update.mjs +0 -5
  174. package/esm2022/spx-update/src/spx-update-info.component.mjs +0 -88
  175. package/esm2022/spx-update/src/spx-update-progress.component.mjs +0 -46
  176. package/esm2022/spx-validation/max.validator.mjs +0 -17
  177. package/esm2022/spx-validation/maxlength.validator.mjs +0 -20
  178. package/esm2022/spx-validation/min.validator.mjs +0 -17
  179. package/esm2022/spx-validation/minlength.validator.mjs +0 -20
  180. package/esm2022/spx-validation/pattern.validator.mjs +0 -12
  181. package/esm2022/spx-validation/public-api.mjs +0 -9
  182. package/esm2022/spx-validation/required.validator.mjs +0 -12
  183. package/esm2022/spx-validation/softpak-components-spx-validation.mjs +0 -5
  184. package/esm2022/spx-validation/spx-validate-control.component.mjs +0 -68
  185. package/esm2022/spx-validation/year-and-month.validator.mjs +0 -42
@@ -1,42 +0,0 @@
1
- import { DateTime } from 'luxon';
2
- import { valuePairToValue } from '@softpak/components/spx-helpers';
3
- import { spxValidatorRequired } from './required.validator';
4
- export const spxValidatorYearAndMonth = (future) => (control) => {
5
- if (!spxValidatorRequired()(control)) {
6
- const val = valuePairToValue(control.value);
7
- if (val.toUpperCase() !== 'ACEP') {
8
- const date = DateTime.fromISO(val);
9
- const year = date.year;
10
- const month = date.month;
11
- if (val.length < 6) {
12
- return {
13
- minlength: {
14
- requiredLength: 6,
15
- actualLength: val.length
16
- }
17
- };
18
- }
19
- if (month < 1 || month > 12) {
20
- return { month: true };
21
- }
22
- if (future) {
23
- if (year > 2050 || year < DateTime.now().year) {
24
- return { yearFuture: true };
25
- }
26
- if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') < DateTime.now()) {
27
- return { past: true };
28
- }
29
- }
30
- else {
31
- if (year < 1971 || year > DateTime.now().year) {
32
- return { year: true };
33
- }
34
- if (DateTime.now().set({ year: year, month: DateTime.now().month - 1 }).startOf('month') > DateTime.now()) {
35
- return { future: true };
36
- }
37
- }
38
- }
39
- }
40
- return null;
41
- };
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci1hbmQtbW9udGgudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uL3llYXItYW5kLW1vbnRoLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsTUFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUF3QixFQUEyQixFQUFFO0lBQ2hILElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3pCLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDakIsT0FBTztvQkFDSCxTQUFTLEVBQUU7d0JBQ1AsY0FBYyxFQUFFLENBQUM7d0JBQ2pCLFlBQVksRUFBRSxHQUFHLENBQUMsTUFBTTtxQkFDM0I7aUJBQ0osQ0FBQztZQUNOLENBQUM7WUFDRCxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUMxQixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNoQyxDQUFDO2dCQUNELElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7b0JBQ3hHLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQzFCLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQzFCLENBQUM7Z0JBQ0QsSUFBSSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztvQkFDeEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgeyB2YWx1ZVBhaXJUb1ZhbHVlIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycyc7XG5pbXBvcnQgeyBzcHhWYWxpZGF0b3JSZXF1aXJlZCB9IGZyb20gJy4vcmVxdWlyZWQudmFsaWRhdG9yJztcblxuZXhwb3J0IGNvbnN0IHNweFZhbGlkYXRvclllYXJBbmRNb250aCA9IChmdXR1cmU/OiBib29sZWFuKSA9PiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgIGlmICghc3B4VmFsaWRhdG9yUmVxdWlyZWQoKShjb250cm9sKSkge1xuICAgICAgICBjb25zdCB2YWwgPSB2YWx1ZVBhaXJUb1ZhbHVlKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICBpZiAodmFsLnRvVXBwZXJDYXNlKCkgIT09ICdBQ0VQJykge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IERhdGVUaW1lLmZyb21JU08odmFsKTtcbiAgICAgICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLnllYXI7XG4gICAgICAgICAgICBjb25zdCBtb250aCA9IGRhdGUubW9udGg7XG4gICAgICAgICAgICBpZiAodmFsLmxlbmd0aCA8IDYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkTGVuZ3RoOiA2LFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsTGVuZ3RoOiB2YWwubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1vbnRoIDwgMSB8fCBtb250aCA+IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbW9udGg6IHRydWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmdXR1cmUpIHtcbiAgICAgICAgICAgICAgICBpZiAoeWVhciA+IDIwNTAgfHwgeWVhciA8IERhdGVUaW1lLm5vdygpLnllYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgeWVhckZ1dHVyZTogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoRGF0ZVRpbWUubm93KCkuc2V0KHsgeWVhcjogeWVhciwgbW9udGg6IERhdGVUaW1lLm5vdygpLm1vbnRoIC0gMSB9KS5zdGFydE9mKCdtb250aCcpIDwgRGF0ZVRpbWUubm93KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFzdDogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHllYXIgPCAxOTcxIHx8IHllYXIgPiBEYXRlVGltZS5ub3coKS55ZWFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHllYXI6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKERhdGVUaW1lLm5vdygpLnNldCh7IHllYXI6IHllYXIsIG1vbnRoOiBEYXRlVGltZS5ub3coKS5tb250aCAtIDEgfSkuc3RhcnRPZignbW9udGgnKSA+IERhdGVUaW1lLm5vdygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGZ1dHVyZTogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG4iXX0=