@softpak/components 0.3.4 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/esm2022/placeholder.mjs +2 -0
  2. package/esm2022/public_api.mjs +2 -0
  3. package/esm2022/softpak-components.mjs +5 -0
  4. package/esm2022/spx-alert/public-api.mjs +3 -0
  5. package/esm2022/spx-alert/softpak-components-spx-alert.mjs +5 -0
  6. package/esm2022/spx-alert/spx-alert.component.mjs +193 -0
  7. package/esm2022/spx-alert/spx-alert.interface.mjs +3 -0
  8. package/esm2022/spx-app-configuration/public-api.mjs +8 -0
  9. package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +5 -0
  10. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +2 -0
  11. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +2 -0
  12. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +8 -0
  13. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +2 -0
  14. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +2 -0
  15. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +8 -0
  16. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +6 -0
  17. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +2 -0
  18. package/esm2022/spx-app-expiry/public-api.mjs +6 -0
  19. package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +5 -0
  20. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +90 -0
  21. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +2 -0
  22. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +5 -0
  23. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +5 -0
  24. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +5 -0
  25. package/esm2022/spx-app-update/public-api.mjs +2 -0
  26. package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +5 -0
  27. package/esm2022/spx-app-update/spx-app-update.component.mjs +314 -0
  28. package/esm2022/spx-button/public-api.mjs +2 -0
  29. package/esm2022/spx-button/softpak-components-spx-button.mjs +5 -0
  30. package/esm2022/spx-button/spx-button.component.mjs +142 -0
  31. package/esm2022/spx-capitalize/public-api.mjs +2 -0
  32. package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +5 -0
  33. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +20 -0
  34. package/esm2022/spx-card/public-api.mjs +5 -0
  35. package/esm2022/spx-card/softpak-components-spx-card.mjs +5 -0
  36. package/esm2022/spx-card/spx-card-grid.component.mjs +46 -0
  37. package/esm2022/spx-card/spx-card-item.component.mjs +111 -0
  38. package/esm2022/spx-card/spx-card-line.component.mjs +101 -0
  39. package/esm2022/spx-card/spx-card.component.mjs +93 -0
  40. package/esm2022/spx-change-details/public-api.mjs +2 -0
  41. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
  42. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
  43. package/esm2022/spx-change-details/spx-change-details.component.mjs +199 -0
  44. package/esm2022/spx-channel-selection/public-api.mjs +3 -0
  45. package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +5 -0
  46. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +45 -0
  47. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +135 -0
  48. package/esm2022/spx-check-digit/public-api.mjs +2 -0
  49. package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +5 -0
  50. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +94 -0
  51. package/esm2022/spx-form-section/public-api.mjs +2 -0
  52. package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +5 -0
  53. package/esm2022/spx-form-section/spx-form-section.component.mjs +37 -0
  54. package/esm2022/spx-form-view/public-api.mjs +7 -0
  55. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +5 -0
  56. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +119 -0
  57. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +6 -0
  58. package/esm2022/spx-form-view/spx-form-button.interface.mjs +2 -0
  59. package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
  60. package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
  61. package/esm2022/spx-form-view/spx-form-view.component.mjs +289 -0
  62. package/esm2022/spx-form-view/spx-form.interface.mjs +2 -0
  63. package/esm2022/spx-helpers/calc-check-digit.function.mjs +21 -0
  64. package/esm2022/spx-helpers/public-api.mjs +4 -0
  65. package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +5 -0
  66. package/esm2022/spx-helpers/spx-severity.enum.mjs +9 -0
  67. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +7 -0
  68. package/esm2022/spx-inputs/public-api.mjs +6 -0
  69. package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +5 -0
  70. package/esm2022/spx-inputs/spx-dropdown.component.mjs +94 -0
  71. package/esm2022/spx-inputs/spx-input-box.component.mjs +255 -0
  72. package/esm2022/spx-inputs/spx-input-date.component.mjs +294 -0
  73. package/esm2022/spx-inputs/spx-input-float.component.mjs +159 -0
  74. package/esm2022/spx-inputs/spx-input-number.component.mjs +87 -0
  75. package/esm2022/spx-inputs/spx-input-radio.component.mjs +129 -0
  76. package/esm2022/spx-inputs/spx-input-text.component.mjs +156 -0
  77. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +116 -0
  78. package/esm2022/spx-inputs/spx-input-time.component.mjs +166 -0
  79. package/esm2022/spx-inputs/spx-input-type.enum.mjs +17 -0
  80. package/esm2022/spx-inputs/spx-input.component.mjs +449 -0
  81. package/esm2022/spx-inputs/spx-value-interface.mjs +2 -0
  82. package/esm2022/spx-navigation/public-api.mjs +5 -0
  83. package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +5 -0
  84. package/esm2022/spx-navigation/spx-home-tile.component.mjs +68 -0
  85. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +24 -0
  86. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +2 -0
  87. package/esm2022/spx-navigation/spx-navigation.component.mjs +51 -0
  88. package/esm2022/spx-number-check/public-api.mjs +2 -0
  89. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +5 -0
  90. package/esm2022/spx-number-check/spx-number-check.component.mjs +259 -0
  91. package/esm2022/spx-pagination/public-api.mjs +2 -0
  92. package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +5 -0
  93. package/esm2022/spx-pagination/spx-pagination.component.mjs +44 -0
  94. package/esm2022/spx-patch/patch-check.function.mjs +9 -0
  95. package/esm2022/spx-patch/public-api.mjs +4 -0
  96. package/esm2022/spx-patch/release-check.function.mjs +14 -0
  97. package/esm2022/spx-patch/softpak-components-spx-patch.mjs +5 -0
  98. package/esm2022/spx-patch/spx-patch.component.mjs +48 -0
  99. package/esm2022/spx-progress-bar/public-api.mjs +2 -0
  100. package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +5 -0
  101. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +29 -0
  102. package/esm2022/spx-spinner/public-api.mjs +2 -0
  103. package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +5 -0
  104. package/esm2022/spx-spinner/spx-spinner.component.mjs +159 -0
  105. package/esm2022/spx-stock-info/public-api.mjs +3 -0
  106. package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +5 -0
  107. package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +2 -0
  108. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +327 -0
  109. package/esm2022/spx-storage/public-api.mjs +3 -0
  110. package/esm2022/spx-storage/softpak-components-spx-storage.mjs +5 -0
  111. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +13 -0
  112. package/esm2022/spx-storage/src/spx-storage.class.mjs +45 -0
  113. package/esm2022/spx-suggestion/public-api.mjs +2 -0
  114. package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +5 -0
  115. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +69 -0
  116. package/esm2022/spx-toaster/public-api.mjs +4 -0
  117. package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +5 -0
  118. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +23 -0
  119. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +3 -0
  120. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +173 -0
  121. package/esm2022/spx-update/public-api.mjs +3 -0
  122. package/esm2022/spx-update/softpak-components-spx-update.mjs +5 -0
  123. package/esm2022/spx-update/src/spx-update-info.component.mjs +88 -0
  124. package/esm2022/spx-update/src/spx-update-progress.component.mjs +46 -0
  125. package/esm2022/spx-validation/max.validator.mjs +17 -0
  126. package/esm2022/spx-validation/maxlength.validator.mjs +20 -0
  127. package/esm2022/spx-validation/min.validator.mjs +17 -0
  128. package/esm2022/spx-validation/minlength.validator.mjs +20 -0
  129. package/esm2022/spx-validation/pattern.validator.mjs +12 -0
  130. package/esm2022/spx-validation/public-api.mjs +9 -0
  131. package/esm2022/spx-validation/required.validator.mjs +12 -0
  132. package/esm2022/spx-validation/softpak-components-spx-validation.mjs +5 -0
  133. package/esm2022/spx-validation/spx-validate-control.component.mjs +68 -0
  134. package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
  135. package/fesm2022/softpak-components-spx-alert.mjs +3 -3
  136. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  137. package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
  138. package/fesm2022/softpak-components-spx-app-expiry.mjs +3 -3
  139. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  140. package/fesm2022/softpak-components-spx-app-update.mjs +4 -4
  141. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  142. package/fesm2022/softpak-components-spx-button.mjs +3 -3
  143. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  144. package/fesm2022/softpak-components-spx-capitalize.mjs +3 -3
  145. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
  146. package/fesm2022/softpak-components-spx-card.mjs +16 -16
  147. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  148. package/fesm2022/softpak-components-spx-change-details.mjs +3 -3
  149. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  150. package/fesm2022/softpak-components-spx-channel-selection.mjs +6 -6
  151. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  152. package/fesm2022/softpak-components-spx-check-digit.mjs +3 -3
  153. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  154. package/fesm2022/softpak-components-spx-form-section.mjs +3 -3
  155. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  156. package/fesm2022/softpak-components-spx-form-view.mjs +7 -7
  157. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  158. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  159. package/fesm2022/softpak-components-spx-inputs.mjs +39 -33
  160. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  161. package/fesm2022/softpak-components-spx-navigation.mjs +9 -9
  162. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  163. package/fesm2022/softpak-components-spx-number-check.mjs +3 -3
  164. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  165. package/fesm2022/softpak-components-spx-pagination.mjs +3 -3
  166. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  167. package/fesm2022/softpak-components-spx-patch.mjs +3 -3
  168. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  169. package/fesm2022/softpak-components-spx-progress-bar.mjs +3 -3
  170. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  171. package/fesm2022/softpak-components-spx-spinner.mjs +3 -3
  172. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  173. package/fesm2022/softpak-components-spx-stock-info.mjs +3 -3
  174. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  175. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
  176. package/fesm2022/softpak-components-spx-suggestion.mjs +3 -3
  177. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  178. package/fesm2022/softpak-components-spx-toaster.mjs +4 -4
  179. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  180. package/fesm2022/softpak-components-spx-update.mjs +7 -7
  181. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  182. package/fesm2022/softpak-components-spx-validation.mjs +3 -3
  183. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  184. package/package.json +59 -5
  185. package/spx-inputs/spx-input-text.component.d.ts +2 -1
  186. package/spx-inputs/spx-input.component.d.ts +2 -1
  187. package/tailwind.css +1 -1
@@ -0,0 +1,116 @@
1
+ import { NgFor, NgIf } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { SpxButtonComponent } from '@softpak/components/spx-button';
4
+ import { SpxDropdownComponent } from './spx-dropdown.component';
5
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
6
+ import { faXmark } from '@fortawesome/free-solid-svg-icons';
7
+ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
8
+ import { IonicModule } from '@ionic/angular';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@ionic/angular";
11
+ import * as i2 from "@fortawesome/angular-fontawesome";
12
+ export class SpxInputTimeModalComponent {
13
+ constructor(modalController) {
14
+ this.modalController = modalController;
15
+ this.change = new EventEmitter();
16
+ this.faXmark = faXmark;
17
+ this.hourOptions = Array.from({ length: 24 }, (_, i) => i); // 0 to 23
18
+ this.minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5); // Minutes in incrementen van 5
19
+ this.typeError = SpxSeverityEnum.error;
20
+ this.hourOptions.push(this.hourOptions.shift());
21
+ this.minuteOptions.push(this.minuteOptions.shift());
22
+ }
23
+ closeDialog() {
24
+ this.modalController.dismiss();
25
+ }
26
+ onChange(value) {
27
+ this.change.emit(value);
28
+ console.log(value);
29
+ this.modalController.dismiss(value);
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputTimeModalComponent, isStandalone: true, selector: "spx-input-time-modal", inputs: { view: "view", value: "value" }, outputs: { change: "change" }, ngImport: i0, template: `<ion-header>
33
+ <ion-toolbar>
34
+ <ion-title>Select {{view}}</ion-title>
35
+ <ion-buttons slot="end">
36
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
37
+ <fa-icon [icon]="faXmark"></fa-icon>
38
+ </spx-button>
39
+ </ion-buttons>
40
+ </ion-toolbar>
41
+ </ion-header>
42
+ <ion-content class="ion-padding bg-white">
43
+ <!-- Uren -->
44
+ <div class="custom-bg grid grid-cols-1 gap-3">
45
+ <div *ngIf="view === 'hours'" class="flex-wrap gap-2">
46
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
47
+ <div *ngFor="let hour of hourOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
48
+ {{ hour }}
49
+ </div>
50
+ </div>
51
+ </div>
52
+ <!-- Minuten -->
53
+ <div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
54
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
55
+ <div *ngFor="let minute of minuteOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
56
+ {{ minute }}
57
+ </div>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </ion-content>
62
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeModalComponent, decorators: [{
65
+ type: Component,
66
+ args: [{
67
+ selector: 'spx-input-time-modal',
68
+ standalone: true,
69
+ imports: [
70
+ NgIf,
71
+ NgFor,
72
+ IonicModule,
73
+ SpxButtonComponent,
74
+ SpxDropdownComponent,
75
+ FontAwesomeModule,
76
+ ],
77
+ template: `<ion-header>
78
+ <ion-toolbar>
79
+ <ion-title>Select {{view}}</ion-title>
80
+ <ion-buttons slot="end">
81
+ <spx-button [spxSeverity]="typeError" (spxClick)="closeDialog()">
82
+ <fa-icon [icon]="faXmark"></fa-icon>
83
+ </spx-button>
84
+ </ion-buttons>
85
+ </ion-toolbar>
86
+ </ion-header>
87
+ <ion-content class="ion-padding bg-white">
88
+ <!-- Uren -->
89
+ <div class="custom-bg grid grid-cols-1 gap-3">
90
+ <div *ngIf="view === 'hours'" class="flex-wrap gap-2">
91
+ <div class="grid grid-cols-3 md:grid-cols-4 gap-3">
92
+ <div *ngFor="let hour of hourOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-full truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === hour" (click)="onChange(hour)">
93
+ {{ hour }}
94
+ </div>
95
+ </div>
96
+ </div>
97
+ <!-- Minuten -->
98
+ <div *ngIf="view === 'minutes'" class="grid grid-cols-1 gap-3">
99
+ <div class="grid grid-cols-4 md:grid-cols-5 gap-3">
100
+ <div *ngFor="let minute of minuteOptions" class="text-center font-bold custom-square rounded text-gray-900 text-lg p-3 w-ful truncate outline-none bg-sky-100 focus:ring-sky-300 hover:bg-sky-300 active:bg-sky-300" [class.selected]="value === minute" (click)="onChange(minute)">
101
+ {{ minute }}
102
+ </div>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </ion-content>
107
+ `,
108
+ }]
109
+ }], ctorParameters: () => [{ type: i1.ModalController }], propDecorators: { view: [{
110
+ type: Input
111
+ }], value: [{
112
+ type: Input
113
+ }], change: [{
114
+ type: Output
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXRpbWUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LXRpbWUtbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUE2QzlELE1BQU0sT0FBTywwQkFBMEI7SUFVckMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBUDFDLFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVwRSxZQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ2pCLGdCQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUNqRSxrQkFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0I7UUFDNUYsY0FBUyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFHaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzsrR0F2QlUsMEJBQTBCO21HQUExQiwwQkFBMEIseUpBaEMzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBOEJQLDREQXJDRCxJQUFJLDZGQUNKLEtBQUssa0hBQ0wsV0FBVywybEJBQ1gsa0JBQWtCLG9PQUVsQixpQkFBaUI7OzRGQWtDUiwwQkFBMEI7a0JBM0N0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsSUFBSTt3QkFDSixLQUFLO3dCQUNMLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E4QlA7aUJBQ0o7b0ZBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1idXR0b24nO1xuaW1wb3J0IHsgU3B4RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL3NweC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3B4U2V2ZXJpdHlFbnVtIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycyc7XG5pbXBvcnQgeyBmYVhtYXJrIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUsIE1vZGFsQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LXRpbWUtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0ZvcixcbiAgICBJb25pY01vZHVsZSxcbiAgICBTcHhCdXR0b25Db21wb25lbnQsXG4gICAgU3B4RHJvcGRvd25Db21wb25lbnQsXG4gICAgRm9udEF3ZXNvbWVNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhcj5cbiAgICA8aW9uLXRpdGxlPlNlbGVjdCB7e3ZpZXd9fTwvaW9uLXRpdGxlPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICA8c3B4LWJ1dHRvbiBbc3B4U2V2ZXJpdHldPVwidHlwZUVycm9yXCIgKHNweENsaWNrKT1cImNsb3NlRGlhbG9nKClcIj5cbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFYbWFya1wiPjwvZmEtaWNvbj5cbiAgICAgIDwvc3B4LWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmcgYmctd2hpdGVcIj5cbiAgPCEtLSBVcmVuIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWJnIGdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTNcIj5cbiAgICA8ZGl2ICpuZ0lmPVwidmlldyA9PT0gJ2hvdXJzJ1wiIGNsYXNzPVwiZmxleC13cmFwIGdhcC0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMyBtZDpncmlkLWNvbHMtNCBnYXAtM1wiPlxuICAgICAgICA8ZGl2ICAqbmdGb3I9XCJsZXQgaG91ciBvZiBob3VyT3B0aW9uc1wiIGNsYXNzPVwidGV4dC1jZW50ZXIgZm9udC1ib2xkIGN1c3RvbS1zcXVhcmUgcm91bmRlZCB0ZXh0LWdyYXktOTAwIHRleHQtbGcgcC0zIHctZnVsbCB0cnVuY2F0ZSBvdXRsaW5lLW5vbmUgYmctc2t5LTEwMCBmb2N1czpyaW5nLXNreS0zMDAgaG92ZXI6Ymctc2t5LTMwMCBhY3RpdmU6Ymctc2t5LTMwMFwiIFtjbGFzcy5zZWxlY3RlZF09XCJ2YWx1ZSA9PT0gaG91clwiIChjbGljayk9XCJvbkNoYW5nZShob3VyKVwiPlxuICAgICAgICAgIHt7IGhvdXIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIE1pbnV0ZW4gLS0+XG4gICAgPGRpdiAqbmdJZj1cInZpZXcgPT09ICdtaW51dGVzJ1wiIGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBnYXAtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTQgbWQ6Z3JpZC1jb2xzLTUgZ2FwLTNcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbWludXRlIG9mIG1pbnV0ZU9wdGlvbnNcIiBjbGFzcz1cInRleHQtY2VudGVyIGZvbnQtYm9sZCBjdXN0b20tc3F1YXJlIHJvdW5kZWQgdGV4dC1ncmF5LTkwMCB0ZXh0LWxnIHAtMyB3LWZ1bCB0cnVuY2F0ZSBvdXRsaW5lLW5vbmUgYmctc2t5LTEwMCBmb2N1czpyaW5nLXNreS0zMDAgaG92ZXI6Ymctc2t5LTMwMCBhY3RpdmU6Ymctc2t5LTMwMFwiIFtjbGFzcy5zZWxlY3RlZF09XCJ2YWx1ZSA9PT0gbWludXRlXCIgKGNsaWNrKT1cIm9uQ2hhbmdlKG1pbnV0ZSlcIj5cbiAgICAgICAgICB7eyBtaW51dGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2lvbi1jb250ZW50PlxuICAgIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNweElucHV0VGltZU1vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmlldyE6ICdob3VycycgfCAnbWludXRlcyc7XG4gIEBJbnB1dCgpIHZhbHVlITogbnVtYmVyO1xuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGZhWG1hcmsgPSBmYVhtYXJrXG4gIGhvdXJPcHRpb25zID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMjQgfSwgKF8sIGkpID0+IGkpOyAvLyAwIHRvIDIzXG4gIG1pbnV0ZU9wdGlvbnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMiB9LCAoXywgaSkgPT4gaSAqIDUpOyAvLyBNaW51dGVzIGluIGluY3JlbWVudGVuIHZhbiA1XG4gIHR5cGVFcnJvciA9IFNweFNldmVyaXR5RW51bS5lcnJvcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsQ29udHJvbGxlcjogTW9kYWxDb250cm9sbGVyKXtcbiAgICB0aGlzLmhvdXJPcHRpb25zLnB1c2godGhpcy5ob3VyT3B0aW9ucy5zaGlmdCgpISk7XG4gICAgdGhpcy5taW51dGVPcHRpb25zLnB1c2godGhpcy5taW51dGVPcHRpb25zLnNoaWZ0KCkhKTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCkge1xuICAgIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICBjb25zb2xlLmxvZyh2YWx1ZSk7XG4gICAgdGhpcy5tb2RhbENvbnRyb2xsZXIuZGlzbWlzcyh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,166 @@
1
+ import { NgFor, NgIf } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
+ import { SpxButtonComponent } from '@softpak/components/spx-button';
4
+ import { SpxDropdownComponent } from './spx-dropdown.component';
5
+ import { DateTime } from 'luxon';
6
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
7
+ import { SpxInputTimeModalComponent } from './spx-input-time-modal.component';
8
+ import { IonicModule } from '@ionic/angular';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@ionic/angular";
11
+ export class SpxInputTimeComponent {
12
+ get formattedHour() {
13
+ return this.selectedHour !== null && this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;
14
+ }
15
+ get formattedMinute() {
16
+ return this.selectedMinute !== null && this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;
17
+ }
18
+ get hour() { return this.value?.value ? DateTime.fromISO(this.value.value).hour : null; }
19
+ get minute() { return this.value?.value ? DateTime.fromISO(this.value.value).minute : null; }
20
+ constructor(modalController) {
21
+ this.modalController = modalController;
22
+ this.spxAutofocus = false;
23
+ this.spxSuggestions = [];
24
+ this.spxReadonly = false;
25
+ this.spxCapitalize = false;
26
+ this.spxFocused = true;
27
+ this.spxBlurFromChild = new EventEmitter();
28
+ this.spxChange = new EventEmitter();
29
+ this.spxFocus = new EventEmitter();
30
+ this.spxWasInternalUpdate = false;
31
+ this.severitySuccess = SpxSeverityEnum.success;
32
+ this.hourOptions = Array.from({ length: 24 }, (_, i) => i).unshift(); // 0 to 23
33
+ this.minuteOptions = Array.from({ length: 12 }, (_, i) => i * 5).unshift(); // Minutes in incrementen van 5
34
+ this.selectedHour = null;
35
+ this.selectedMinute = null;
36
+ }
37
+ spxSetFocus() {
38
+ this.inputRef?.nativeElement?.focus();
39
+ }
40
+ componentDidLoad() {
41
+ if (this.spxAutofocus) {
42
+ this.spxFocus.emit();
43
+ this.spxSetFocus();
44
+ }
45
+ }
46
+ handleBlur() {
47
+ this.spxBlurFromChild.emit();
48
+ }
49
+ handleFocus() {
50
+ this.spxFocus.emit();
51
+ }
52
+ handleDescriptionInput(event) {
53
+ this.value = {
54
+ description: event.target ? event.target.value : null,
55
+ value: event.target ? event.target.value : null,
56
+ };
57
+ this.spxChange.emit(this.value);
58
+ }
59
+ handleSuggestionClick(value) {
60
+ if (!this.spxReadonly) {
61
+ this.value = value;
62
+ this.spxChange.emit(this.value);
63
+ this.spxFocused = false;
64
+ }
65
+ }
66
+ handleKeyUp() {
67
+ this.spxFocused = true;
68
+ }
69
+ async openDialog(view) {
70
+ const modal = await this.modalController.create({
71
+ component: SpxInputTimeModalComponent,
72
+ componentProps: {
73
+ value: this.value?.value ?
74
+ (view === 'hours' ? DateTime.fromISO(this.value.value).hour : DateTime.fromISO(this.value.value).minute) : undefined,
75
+ view,
76
+ },
77
+ });
78
+ modal.onDidDismiss().then((data) => {
79
+ // this.appStore.dispatch(infArticleActions.reset({}));
80
+ if (view === 'hours') {
81
+ // console.log('hours');
82
+ // console.log(data);
83
+ this.selectedHour = data.data;
84
+ this.openDialog('minutes');
85
+ this.updateValue();
86
+ }
87
+ else if (view === 'minutes') {
88
+ // console.log('minutes');
89
+ // console.log(data);
90
+ this.selectedMinute = data.data;
91
+ this.updateValue();
92
+ }
93
+ });
94
+ await modal.present();
95
+ }
96
+ updateValue() {
97
+ if (this.selectedHour !== null && this.selectedMinute !== null) {
98
+ const formattedHour = this.selectedHour < 10 ? `0${this.selectedHour}` : this.selectedHour;
99
+ const formattedMinute = this.selectedMinute < 10 ? `0${this.selectedMinute}` : this.selectedMinute;
100
+ const newValue = `${formattedHour}:${formattedMinute}`;
101
+ this.value = {
102
+ description: newValue,
103
+ value: newValue,
104
+ };
105
+ this.spxChange.emit(this.value);
106
+ }
107
+ }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxInputTimeComponent, isStandalone: true, selector: "spx-input-time", inputs: { spxName: "spxName", spxAutofocus: "spxAutofocus", spxInputMode: "spxInputMode", spxPattern: "spxPattern", spxSuggestions: "spxSuggestions", spxReadonly: "spxReadonly", spxValidators: "spxValidators", spxCapitalize: "spxCapitalize", spxFocused: "spxFocused", spxType: "spxType", value: "value", spxWasInternalUpdate: "spxWasInternalUpdate" }, outputs: { spxBlurFromChild: "spxBlurFromChild", spxChange: "spxChange", spxFocus: "spxFocus" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<div class="relative text-black">
110
+ <div class="flex items-center justify-around gap-3">
111
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
112
+ <div class="text-gray text-xl">:</div>
113
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
114
+ </div>
115
+ </div>`, isInline: true, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }] }); }
116
+ }
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputTimeComponent, decorators: [{
118
+ type: Component,
119
+ args: [{ selector: 'spx-input-time', standalone: true, imports: [
120
+ NgIf,
121
+ NgFor,
122
+ SpxButtonComponent,
123
+ SpxDropdownComponent,
124
+ IonicModule,
125
+ ], template: `<div class="relative text-black">
126
+ <div class="flex items-center justify-around gap-3">
127
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('hours')">{{ formattedHour ?? '--' }}</div>
128
+ <div class="text-gray text-xl">:</div>
129
+ <div class="grow rounded bg-gray-100 p-3 text-xl text-center font-bold" (click)="openDialog('minutes')">{{ formattedMinute ?? '--' }}</div>
130
+ </div>
131
+ </div>`, styles: [".custom-square.selected{background-color:#007bff;color:#fff;border-color:#007bff}.custom-bg{--background: #FFFFFF}\n"] }]
132
+ }], ctorParameters: () => [{ type: i1.ModalController }], propDecorators: { spxName: [{
133
+ type: Input
134
+ }], spxAutofocus: [{
135
+ type: Input
136
+ }], spxInputMode: [{
137
+ type: Input
138
+ }], spxPattern: [{
139
+ type: Input
140
+ }], spxSuggestions: [{
141
+ type: Input
142
+ }], spxReadonly: [{
143
+ type: Input
144
+ }], spxValidators: [{
145
+ type: Input
146
+ }], spxCapitalize: [{
147
+ type: Input
148
+ }], spxFocused: [{
149
+ type: Input
150
+ }], spxType: [{
151
+ type: Input
152
+ }], value: [{
153
+ type: Input
154
+ }], spxBlurFromChild: [{
155
+ type: Output
156
+ }], spxChange: [{
157
+ type: Output
158
+ }], spxFocus: [{
159
+ type: Output
160
+ }], spxWasInternalUpdate: [{
161
+ type: Input
162
+ }], inputRef: [{
163
+ type: ViewChild,
164
+ args: ['input', { static: true }]
165
+ }] } });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMvc3B4LWlucHV0LXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBOEI5RCxNQUFNLE9BQU8scUJBQXFCO0lBMEJoQyxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM1RyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3BILENBQUM7SUFHRCxJQUFJLElBQUksS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLElBQUksTUFBTSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFN0YsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBbEMzQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixtQkFBYyxHQUE4QyxFQUFFLENBQUM7UUFDL0QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUdqQixxQkFBZ0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNoRSxjQUFTLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ25GLGFBQVEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6RCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFHdEMsb0JBQWUsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQzFDLGdCQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsVUFBVTtRQUMzRSxrQkFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQywrQkFBK0I7UUFDdEcsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBQ25DLG1CQUFjLEdBQWtCLElBQUksQ0FBQztJQWNrQixDQUFDO0lBRXhELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3JELEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFVO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLElBQXlCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7WUFDOUMsU0FBUyxFQUFFLDBCQUEwQjtZQUNyQyxjQUFjLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3hCLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUN0SCxJQUFJO2FBQ0w7U0FDRixDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakMsdURBQXVEO1lBRXZELElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNyQix3QkFBd0I7Z0JBQ3hCLHFCQUFxQjtnQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFckIsQ0FBQztpQkFBTSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDOUIsMEJBQTBCO2dCQUMxQixxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQy9ELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUMzRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDbkcsTUFBTSxRQUFRLEdBQUcsR0FBRyxhQUFhLElBQUksZUFBZSxFQUFFLENBQUM7WUFFdkQsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDWCxXQUFXLEVBQUUsUUFBUTtnQkFDckIsS0FBSyxFQUFFLFFBQVE7YUFDaEIsQ0FBQztZQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQzsrR0EzSFUscUJBQXFCO21HQUFyQixxQkFBcUIsNG5CQVJ0Qjs7Ozs7O09BTUwsNkxBbEJILFdBQVc7OzRGQW9CRixxQkFBcUI7a0JBNUJqQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLFdBQVc7cUJBQ1osWUFXUzs7Ozs7O09BTUw7b0ZBS0ksT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNnQyxRQUFRO3NCQUE3QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBTcHhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1idXR0b24nO1xuaW1wb3J0IHsgU3B4RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL3NweC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgeyBTcHhTZXZlcml0eUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcbmltcG9ydCB7IFNweElucHV0VGltZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zcHgtaW5wdXQtdGltZS1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUsIE1vZGFsQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWlucHV0LXRpbWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0ZvcixcbiAgICBTcHhCdXR0b25Db21wb25lbnQsXG4gICAgU3B4RHJvcGRvd25Db21wb25lbnQsXG4gICAgSW9uaWNNb2R1bGUsXG4gIF0sXG4gIHN0eWxlczogYFxuICAgIC5jdXN0b20tc3F1YXJlLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICMwMDdiZmY7XG4gICAgfVxuICAgIC5jdXN0b20tYmcge1xuICAgICAgLS1iYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICAgIH1cbiAgYCxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgdGV4dC1ibGFja1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWFyb3VuZCBnYXAtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdyb3cgcm91bmRlZCBiZy1ncmF5LTEwMCBwLTMgdGV4dC14bCB0ZXh0LWNlbnRlciBmb250LWJvbGRcIiAoY2xpY2spPVwib3BlbkRpYWxvZygnaG91cnMnKVwiPnt7IGZvcm1hdHRlZEhvdXIgPz8gJy0tJyB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheSB0ZXh0LXhsXCI+OjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdyb3cgcm91bmRlZCBiZy1ncmF5LTEwMCBwLTMgdGV4dC14bCB0ZXh0LWNlbnRlciBmb250LWJvbGRcIiAoY2xpY2spPVwib3BlbkRpYWxvZygnbWludXRlcycpXCI+e3sgZm9ybWF0dGVkTWludXRlID8/ICctLScgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweElucHV0VGltZUNvbXBvbmVudCB7XG4gIC8vIHByaXZhdGUgZWxJbnB1dD86IEhUTUxFbGVtZW50O1xuICAvLyBARWxlbWVudCgpIGVsITogSFRNTEVsZW1lbnQ7XG4gIEBJbnB1dCgpIHNweE5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweEF1dG9mb2N1cyA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhJbnB1dE1vZGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweFBhdHRlcm4/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zOiBTcHhWYWx1ZVBhaXI8Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZz5bXSA9IFtdO1xuICBASW5wdXQoKSBzcHhSZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhWYWxpZGF0b3JzPzogYW55W107XG4gIEBJbnB1dCgpIHNweENhcGl0YWxpemUgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4Rm9jdXNlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHNweFR5cGUhOiBhbnk7XG4gIEBJbnB1dCgpIHZhbHVlPzogU3B4VmFsdWVQYWlyPGFueT47XG4gIEBPdXRwdXQoKSBzcHhCbHVyRnJvbUNoaWxkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzcHhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PigpO1xuICBAT3V0cHV0KCkgc3B4Rm9jdXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgc3B4V2FzSW50ZXJuYWxVcGRhdGUgPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgc2V2ZXJpdHlTdWNjZXNzID0gU3B4U2V2ZXJpdHlFbnVtLnN1Y2Nlc3M7XG4gIGhvdXJPcHRpb25zID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMjQgfSwgKF8sIGkpID0+IGkpLnVuc2hpZnQoKTsgLy8gMCB0byAyM1xuICBtaW51dGVPcHRpb25zID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMTIgfSwgKF8sIGkpID0+IGkgKiA1KS51bnNoaWZ0KCk7IC8vIE1pbnV0ZXMgaW4gaW5jcmVtZW50ZW4gdmFuIDVcbiAgc2VsZWN0ZWRIb3VyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgc2VsZWN0ZWRNaW51dGU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIGdldCBmb3JtYXR0ZWRIb3VyKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSG91ciAhPT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkSG91ciA8IDEwID8gYDAke3RoaXMuc2VsZWN0ZWRIb3VyfWAgOiB0aGlzLnNlbGVjdGVkSG91cjtcbiAgfVxuXG4gIGdldCBmb3JtYXR0ZWRNaW51dGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRNaW51dGUgIT09IG51bGwgJiYgdGhpcy5zZWxlY3RlZE1pbnV0ZSA8IDEwID8gYDAke3RoaXMuc2VsZWN0ZWRNaW51dGV9YCA6IHRoaXMuc2VsZWN0ZWRNaW51dGU7XG4gIH1cblxuXG4gIGdldCBob3VyKCkgeyByZXR1cm4gdGhpcy52YWx1ZT8udmFsdWUgPyBEYXRlVGltZS5mcm9tSVNPKHRoaXMudmFsdWUudmFsdWUpLmhvdXIgOiBudWxsOyB9XG4gIGdldCBtaW51dGUoKSB7IHJldHVybiB0aGlzLnZhbHVlPy52YWx1ZSA/IERhdGVUaW1lLmZyb21JU08odGhpcy52YWx1ZS52YWx1ZSkubWludXRlIDogbnVsbDsgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxDb250cm9sbGVyOiBNb2RhbENvbnRyb2xsZXIpIHt9XG5cbiAgc3B4U2V0Rm9jdXMoKSB7XG4gICAgdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZExvYWQoKSB7XG4gICAgaWYgKHRoaXMuc3B4QXV0b2ZvY3VzKSB7XG4gICAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcbiAgICAgIHRoaXMuc3B4U2V0Rm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVCbHVyKCkge1xuICAgIHRoaXMuc3B4Qmx1ckZyb21DaGlsZC5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVGb2N1cygpIHtcbiAgICB0aGlzLnNweEZvY3VzLmVtaXQoKTtcbiAgfVxuXG4gIGhhbmRsZURlc2NyaXB0aW9uSW5wdXQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICBkZXNjcmlwdGlvbjogZXZlbnQudGFyZ2V0ID8gZXZlbnQudGFyZ2V0LnZhbHVlIDogbnVsbCxcbiAgICAgIHZhbHVlOiBldmVudC50YXJnZXQgPyBldmVudC50YXJnZXQudmFsdWUgOiBudWxsLFxuICAgIH07XG4gICAgdGhpcy5zcHhDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLnNweFJlYWRvbmx5KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5zcHhGb2N1c2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5VXAoKSB7XG4gICAgdGhpcy5zcHhGb2N1c2VkID0gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIG9wZW5EaWFsb2codmlldzogJ2hvdXJzJyB8ICdtaW51dGVzJykge1xuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgdGhpcy5tb2RhbENvbnRyb2xsZXIuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogU3B4SW5wdXRUaW1lTW9kYWxDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZT8udmFsdWUgP1xuICAgICAgICAgICh2aWV3ID09PSAnaG91cnMnID8gRGF0ZVRpbWUuZnJvbUlTTyh0aGlzLnZhbHVlLnZhbHVlKS5ob3VyIDogRGF0ZVRpbWUuZnJvbUlTTyh0aGlzLnZhbHVlLnZhbHVlKS5taW51dGUpIDogdW5kZWZpbmVkLFxuICAgICAgICB2aWV3LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIG1vZGFsLm9uRGlkRGlzbWlzcygpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIC8vIHRoaXMuYXBwU3RvcmUuZGlzcGF0Y2goaW5mQXJ0aWNsZUFjdGlvbnMucmVzZXQoe30pKTtcblxuICAgICAgaWYgKHZpZXcgPT09ICdob3VycycpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2hvdXJzJyk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy5vcGVuRGlhbG9nKCdtaW51dGVzJyk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcblxuICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAnbWludXRlcycpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ21pbnV0ZXMnKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coZGF0YSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGUgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGF3YWl0IG1vZGFsLnByZXNlbnQoKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSG91ciAhPT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkTWludXRlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRIb3VyID0gdGhpcy5zZWxlY3RlZEhvdXIgPCAxMCA/IGAwJHt0aGlzLnNlbGVjdGVkSG91cn1gIDogdGhpcy5zZWxlY3RlZEhvdXI7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRNaW51dGUgPSB0aGlzLnNlbGVjdGVkTWludXRlIDwgMTAgPyBgMCR7dGhpcy5zZWxlY3RlZE1pbnV0ZX1gIDogdGhpcy5zZWxlY3RlZE1pbnV0ZTtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYCR7Zm9ybWF0dGVkSG91cn06JHtmb3JtYXR0ZWRNaW51dGV9YDtcblxuICAgICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgICAgZGVzY3JpcHRpb246IG5ld1ZhbHVlLFxuICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnNweENoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,17 @@
1
+ export var SpxInputTypeEnum;
2
+ (function (SpxInputTypeEnum) {
3
+ SpxInputTypeEnum["autocomplete"] = "autocomplete";
4
+ SpxInputTypeEnum["button"] = "button";
5
+ SpxInputTypeEnum["date"] = "date";
6
+ SpxInputTypeEnum["float"] = "float";
7
+ SpxInputTypeEnum["hidden"] = "hidden";
8
+ SpxInputTypeEnum["overlay"] = "overlay";
9
+ SpxInputTypeEnum["overlayNumber"] = "overlaynumber";
10
+ SpxInputTypeEnum["radio"] = "radio";
11
+ SpxInputTypeEnum["number"] = "number";
12
+ SpxInputTypeEnum["password"] = "password";
13
+ SpxInputTypeEnum["text"] = "text";
14
+ SpxInputTypeEnum["textNumericKeyboard"] = "textNumericKeyboard";
15
+ SpxInputTypeEnum["time"] = "time";
16
+ })(SpxInputTypeEnum || (SpxInputTypeEnum = {}));
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1pbnB1dC10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZ0JBY1g7QUFkRCxXQUFZLGdCQUFnQjtJQUN4QixpREFBNkIsQ0FBQTtJQUM3QixxQ0FBaUIsQ0FBQTtJQUNqQixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtJQUNmLHFDQUFpQixDQUFBO0lBQ2pCLHVDQUFtQixDQUFBO0lBQ25CLG1EQUFnQyxDQUFBO0lBQ2hDLG1DQUFlLENBQUE7SUFDZixxQ0FBaUIsQ0FBQTtJQUNqQix5Q0FBcUIsQ0FBQTtJQUNyQixpQ0FBYSxDQUFBO0lBQ2IsK0RBQTJDLENBQUE7SUFDM0MsaUNBQWEsQ0FBQTtBQUNqQixDQUFDLEVBZFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQWMzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFNweElucHV0VHlwZUVudW0ge1xuICAgIGF1dG9jb21wbGV0ZSA9ICdhdXRvY29tcGxldGUnLFxuICAgIGJ1dHRvbiA9ICdidXR0b24nLFxuICAgIGRhdGUgPSAnZGF0ZScsXG4gICAgZmxvYXQgPSAnZmxvYXQnLFxuICAgIGhpZGRlbiA9ICdoaWRkZW4nLFxuICAgIG92ZXJsYXkgPSAnb3ZlcmxheScsXG4gICAgb3ZlcmxheU51bWJlciA9ICAnb3ZlcmxheW51bWJlcicsXG4gICAgcmFkaW8gPSAncmFkaW8nLFxuICAgIG51bWJlciA9ICdudW1iZXInLFxuICAgIHBhc3N3b3JkID0gJ3Bhc3N3b3JkJyxcbiAgICB0ZXh0ID0gJ3RleHQnLFxuICAgIHRleHROdW1lcmljS2V5Ym9hcmQgPSAndGV4dE51bWVyaWNLZXlib2FyZCcsXG4gICAgdGltZSA9ICd0aW1lJyxcbn0iXX0=